同じネットワークのはずなのに通信できない原因の切り分け
同じセグメントに置いたはずの機器と通信できないとき、アドレスの設定だけで説明がつく原因は5つあります。両端のマスクの食い違いから予約アドレスの割り当てまで、確かめる順番と直し方を整理しました。
公開読了目安 約5分
この記事の要点
- 両端のマスクが違うと、片側からだけ同じネットワークに見える
- ネットワークアドレスとブロードキャストアドレスは機器に割り当てられない
- ゲートウェイが自分の範囲の外にあると、外向きの通信だけが止まる
- /30 と /31 では置ける機器の数が変わる
- アドレスで説明がつかないときは、経路より下の層へ調べる先を移す
目次
同じ場所に置いて、同じ 10.0 で始まるアドレスを振ったのに通信できない。このとき原因がアドレスの設定にあるなら、疑う場所は 5 つに絞れます。
この記事では、その 5 つを確かめる順番に並べます。上から潰していけば、アドレスで説明がつく問題かどうかが先に分かります。
順番が大事な理由
ネットワークがつながらない原因は、ケーブルから名前解決まで層をまたいで散らばっています。手当たり次第に触ると、直したのか直っていないのかが分からなくなります。
アドレスの設定は、その中でも机の上だけで確かめられる数少ない層です。機器に触る前に片付けておくと、残りの調査範囲がはっきりします。
原因1: 両端のマスクが食い違っている
もっとも見つけにくいのがこれです。アドレスは正しいのに、プレフィックス長だけが両端で違っている状態を指します。
たとえば、サーバーが 10.0.1.5/16、複合機が 10.0.2.7/24 だとします。サーバーから見ると複合機は同じネットワークの中ですが、複合機から見るとサーバーは外です。
この非対称が厄介なのは、片側の設定だけを見ても正しく見えることです。サーバー側で確かめた人は「同じネットワークです」と結論し、複合機側で確かめた人は「別セグメントです」と結論します。
通信としては、行きは直接届き、帰りは既定のゲートウェイへ投げられます。ゲートウェイが折り返してくれない構成なら、応答だけが消えます。
サブネット計算ツールの「同じネットワークか確かめる」は、両側のプレフィックス長を別々に受け取ります。
こちらから見た結果と相手から見た結果を、別々の行に並べて出します。
原因2: 予約されたアドレスを機器に割り当てている
ブロックの先頭はネットワークアドレス、末尾はブロードキャストアドレスとして予約されています。ここを機器に振ると、通信が成立しません。
192.168.1.0/24 なら 192.168.1.0 と 192.168.1.255 の 2 つです。/24 を使っている限りは末尾が .0 と .255 なので、目で見て避けられます。
見落とすのは /26 や /28 のように途中で切ったときです。192.168.1.0/26 を 4 つに割ると、192.168.1.64 も 192.168.1.128 もブロックの先頭になります。
.64 は一見ただの空き番号に見えます。台帳を上から埋めていく運用だと、ここに当たった機器だけが黙って通信できなくなります。
原因3: そもそも範囲の外にいる
アドレスの第 3 オクテットまで同じでも、範囲の中とは限りません。/26 は 64 個ずつの区切りなので、192.168.1.60 と 192.168.1.70 は別のブロックです。
手で数えると、この境目を 1 つずらしがちです。/25 の境目は .128、/26 は .64 ごと、/27 は .32 ごとに切り替わります。
DHCP の配布範囲を後から広げたときも、ここでずれます。プールの終わりがブロックの外へはみ出すと、遅れて接続した機器だけが範囲外のアドレスを受け取ります。
原因4: ゲートウェイが自分の範囲の外にある
既定のゲートウェイは、自分と同じネットワークの中に無ければ届きません。ここがずれていると、同じセグメント内は通じるのに外向きだけ止まるという切り分けやすい症状になります。
10.0.2.7/24 の機器に、ゲートウェイとして 10.0.1.1 を設定した場合がこれです。/24 では 10.0.1.1 は別のネットワークなので、そこへ至る経路がありません。
原因1 のマスク違いと合わせて起きることも多い組み合わせです。マスクを /16 に広げるとゲートウェイが範囲に入るので、症状が急に変わって混乱のもとになります。
原因5: 直結リンクで置ける数を数え違えている
機器同士を直結するときは /30 か /31 を使います。ここで数え方が変わる点を押さえていないと、アドレスが足りなくなります。
/30 は 4 アドレスのうち先頭と末尾が予約なので、置けるのは 2 台です。/31 は RFC 3021 で予約を置かない決まりになっていて、2 アドレスをそのまま両端に割り当てます。
古い機器は /31 に対応していないことがあります。対向の仕様を確かめてから決めてください。
5 つを確かめる手順
上から順に、机の上で片付けられます。
- 両端の IP アドレスとプレフィックス長を、4 つとも書き出す
- それぞれのマスクで、相手が自分の範囲に入るかを両方向確かめる
- 使っているアドレスが、ブロックの先頭・末尾に当たっていないか見る
- ゲートウェイが自分の範囲の中にあるか確かめる
- 直結リンクなら、置ける台数と対向機器の対応を確かめる
数える作業はサブネット計算ツールに任せられます。ネットワークアドレスと使えるホストの範囲が出るので、手順 2〜4 はその表を見るだけで済みます。
ここまでで説明がつかないときの調べ先
5 つを潰しても直らないなら、原因はアドレスの層より下か上にあります。調べる先を移してください。
アドレスより下: ケーブルとポートの状態、スイッチの VLAN 割り当て、無線の接続先。同じ範囲のアドレスを振っていても、線がつながっていなければ届きません。
アドレスより上: ファイアウォールや OS の受信規則、サービスが待ち受けているポート。ping は通るのに特定の通信だけ届かないときは、たいていこちらです。
名前の層: ホスト名で試して失敗しているなら、まず IP アドレスで直接試してください。名前解決の問題なら、そこで切り分けがつきます。
この記事が扱ったのは、あくまでアドレスの設定だけで説明がつく範囲です。線引きをはっきりさせておくと、次に見る場所で迷いません。
まとめ
「同じネットワークのはず」という思い込みは、片側の設定しか見ていないことから生まれます。両端の 4 つの値を書き出すだけで、原因1 はその場で見つかります。
予約アドレスと範囲の境目は、/24 以外を使い始めた途端に間違えやすくなります。ブロックの先頭が .0 とは限らない点を覚えておいてください。
アドレスの層を先に片付けると、残りの調査が短くなります。手を動かす前に、机の上で 5 つを確かめてみてください。
あわせて読みたい
同じテーマ・関連ツールの記事です。