設定 1、間違った設定。
IP 192.168.025.100 11000000.10101000.00011001.01100100 Subnet 255.255.255.000 11111111.11111111.11111111.00000000 Gateway 192.168.025.001 11000000.10101000.00011001.00000001 Network 192.168.025.000 11000000.10101000.00011001.00000000 Broadcast 192.168.025.255 11000000.10101000.00011001.11111111
設定 2、正しい設定。
IP 192.168.025.100 11000000.10101000.00011001.01100100 Subnet 255.255.254.000 11111111.11111111.11111110.00000000 Gateway 192.168.025.001 11000000.10101000.00011001.00000001 Network 192.168.024.000 11000000.10101000.00011000.00000000 Broadcast 192.168.024.255 11000000.10101000.00011000.11111111
問題: この設定の間違いでパケットが届かなくなる IP アドレスは?
Subnet の違いで、自分のいるネットワークセグメントのサイズが変わる。自分のいる内側のネットワークセグメントは arp を使って MAC アドレス通信。外側のネットワークセグメントは Gateway を使って IP アドレス通信。Gateway を使って内側セグメントの IP アドレスと通信は出来ないので、答えは 192.168.24.0 から 192.168.24.255 までだと思うんだけど、間違ってる? 間違ってそうな気がする。
から | まで | 間違い | 正解 |
---|---|---|---|
********.********.********.******** | 11000000.10101000.00010111.11111111 | 外 | 外 |
11000000.10101000.00011000.00000000 | 11000000.10101000.00011000.11111111 | 外 | 内 |
11000000.10101000.00011001.00000000 | 11000000.10101000.00011001.11111111 | 内 | 内 |
11000000.10101000.00011010.00000000 | ********.********.********.******** | 外 | 外 |
から | まで | 間違い | 正解 |
---|---|---|---|
***.***.***.*** | 192.168.023.255 | 外 | 外 |
192.168.024.000 | 192.168.024.255 | 外 | 内 |
192.168.025.000 | 192.168.025.255 | 内 | 内 |
192.168.026.000 | ***.***.***.*** | 外 | 外 |
間違っているかどうかは実際にネットワーク内に間違った設定のノードを作ってみればいいのだけど、その前にそのノードから通信する思考実験。確実に割り振られている IP アドレスに対する ping は成功するはず。
$ ping 192.168.25.100 $ ping 192.168.25.1
設定が間違っている場合も正解の場合も、自分と同じネットワークセグメントとしてオーバーラップしている IP アドレスに対する ping は成功するはず。
$ for i in `seq 1 254`; do ping -c 10 192.168.25.$i; done;
設定が間違っている場合に、自分のネットワークの外側になる IP アドレスに対する ping は失敗するはず。
$ for i in `seq 1 254`; do ping -c 10 192.168.24.$i; done;