律子さんが上司の怖い顔を横に固まっていると、スーツの左ポケットにメモが差し込まれているのに気付きます。誰からのメッセージか気にする余裕もなく慌てて取り出すと、課長に見つからないようにそっと読んでみます。
「マシンのネットワーク設定はどうなっていますか?」
と書いてあります。ああ、とにかくええっと、Windowsでネットワークの設定を確認するコマンドは……。ipconfigでいいんだっけ。不安を悟られないように堂々とコマンドを打ち込みます。
課長のipconfig実行結果
C:\>ipconfig Windows IP Configuration Ethernet adapter ローカル エリア接続: Connection-specific DNS Suffix. : IP Address. . . . . . . . . . . . : 192.168.0.20 Subnet Mask . . . . . . . . . . . : 255.255.255.128 Default Gateway . . . . . . . . . : 192.168.0.1
表示されたipconfigの結果を、プリントに成功している自分のマシンの結果と見比べてみます。
律子さんのipconfig実行結果
C:\>ipconfig Windows IP Configuration Ethernet adapter ローカル エリア接続: Connection-specific DNS Suffix. : IP Address. . . . . . . . . . . . : 192.168.0.23 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1
あ、サブネットマスクの設定が違う。
慌てて、ほかの人のマシンを見てみると、サブネットマスクの最後の数字が0の人と128とバラバラです。もちろん律子さんは新規にマシンの設定をするときも、特に何も考えず、自分のマシン同様に、255.255.255.0とデフォルトで入る数字のままで設定していました。だから、問題なくプリントできたのです。
どっちが正しいのかしら。
ルータの設定を確認してみると、サブネットマスクは255.255.255.128になっています。担当者が変わっていく間になぜかサブネットの設定が/25から/24に変わっていたのでしょう。
そして、いままではIPアドレスを192.168.0.1から192.168.0.126までしか割り当てていなかったので、サブネットが間違っていても運良く障害が発生することなく運用できていたのでした。
律子さんはすぐに192.168.0.0/25のネットワーク範囲に入るよう、プリンタのIPアドレスを192.168.0.120にしました。そしてペコペコ頭を下げながら、1台ずつプリンタの設定変更とマシンのサブネットを確認するためにフロア中をうろつくのでした。
最近はDHCPを使ったLANが多いので、サブネットが違っていて通信ができなくなる、という今回取り上げたようなケースはあまりないのかもしれませんが、さまざまな理由でIPアドレスを固定で設定しておきたいというときや、トラフィックの問題などでネットワークをいくつかに分割したいというときなど、ネットワークを設計するというシチュエーションではサブネットワークの設定というのは重要な問題です。
さて、今回なぜサブネットマスクによって通信ができなかったのでしょうか。それはネットワークアドレスが違うからです。
IPアドレスはネットワーク部とホスト部というもので構成されており、サブネットマスクによってその範囲が決められています。
例えばIPアドレスを192.168.0.4のマシンから192.168.0.200のマシンに通信を行うと考えてみましょう。共にサブネットマスクは255.255.255.0だとします。
これを2進数で表してみると
サブネット 11111111.11111111.11111111.00000000(255.255.255.0)
IPアドレス 11000000.10101000.00000000.00000100(192.168.0.4)
IPアドレス 11000000.10101000.00000000.11001000(192.168.0.200)
となります。
このサブネットマスクが1の部分がネットワーク部、0の部分がホスト部です。そう考えるとネットワークアドレスは192.168.0.0、ホストは4、200となります。
ネットワークアドレス 11000000.10101000.00000000.00000000(192.168.0.0)
ホストアドレス 00000000.00000000.00000000.00000100(4)
ネットワークアドレス 11000000.10101000.00000000.00000000(192.168.0.0)
ホストアドレス 00000000.00000000.00000000.11001000(200)
ネットワークアドレス192.168.0.0内の通信ということで問題なく行われるということがわかるでしょう。
次に送信元(192.168.0.4)のサブネットマスクを255.255.255.128にしてみます。
これを2進数で現すと、
サブネットマスク 11111111.11111111.11111111.10000000(255.255.255.128)
IPアドレス 11000000.10101000.00000000.00000100(192.168.0.4)
のようになり、ネットワークアドレスは192.168.0.0になります。
ネットワークアドレス 11000000.10101000.00000000.00000000(192.168.0.0)
そして、宛先(192.168.0.200)のネットワークアドレスを計算してみましょう。
サブネットマスク 11111111.11111111.11111111.10000000(255.255.255.128)
IPアドレス 11000000.10101000.00000000.11001000(192.168.0.200)
ですので、ネットワークアドレスは192.168.0.128となります。
ネットワークアドレス 11000000.10101000.00000000.10000000(192.168.0.128)
ネットワークアドレスが違いますので、違うサブネットワークにあるアドレスとして処理されます。これでは正常に通信できません。
では、どうして今まで他のホストとは通信できたのでしょう。他のホストは192.168.0.100以内だったということで192.168.0.100としておきます。またまた、このアドレスを2進数で表してみると
サブネットマスク 11111111.11111111.11111111.10000000(255.255.255.128)
IPアドレス 11000000.10101000.00000000.01100100(192.168.0.100)
となります。このネットワーク部は192.168.0.0、ホスト部は100となり、同じネットワークにあるということになり、正常に通信できたのです。
とはいえユニキャストの通信は成功するのですが、ブロードキャストアドレスが違ったりすることもあり、さまざまな通信障害が起きますのでサブネットマスクは合わせるに越したことはありません。(著者)
Copyright © ITmedia, Inc. All Rights Reserved.