はじめに
NWは初心者なので、突っ込みどころが多々有ると思います。
問題
NWの勉強をしている中で出てくる、
- 別NW間の通信はルータ/L3SWが必要
- L2スイッチで繋がれたホストは同じNW
という文言。
しかし、
- L2スイッチはMACアドレスでパケット(フレーム)の転送を行う(IPアドレスは関係ない)
という原則が私の頭を混乱させます。
なぜ、IPアドレスが関係ないのに異なるNW間の通信が出来ないのか。
同じNWかどうかなんてL2(MACアドレス)ではわからないはずでは?
そんな疑問をずっと抱いていました。
解説
同じことを考えている方がいました。
https://www.itbook.info/study/p101.html
簡単に言えば、
ARPが届かない(デフォルトゲートウェイへのARP要求に答えるホストがいない)。
ということのようです。
なるほど。。。
そもそもARPの段階で躓いているのか。と一旦納得。
では、
ARPさえ出来てしまえば、L2スイッチを挟んだ別NW間通信が可能になる?
新たな疑問
- MACアドレステーブルはスイッチが保持
- ARPテーブルはパケット(フレーム)送信元が保持
- スイッチはあくまでポートとMACアドレスのヒモ付けしか行っていない
- 別NWへのARPリクエストはデフォルトゲートウェイ(or デフォルトルート)に投げる
- でもARPはブロードキャストだから、デフォルトゲートウェイを指定しなければ届くのでは?
⇒ 指定していない場合、そもそもARPリクエスト自体投げない。
つまり、
デフォルトルートをL2スイッチに向くようにすれば良いのでは?
やってみた
R1
(config-if)# ip add 192.168.10.10 255.255.255.0
(config)# ip route 0.0.0.0 0.0.0.0 gi 0/0
R2
(config-if)# ip add 192.168.20.20 255.255.255.0
(config)# ip route 0.0.0.0 0.0.0.0 gi 0/0
R1
# show ip route
S* 0.0.0.0/0 is directly connected, GigabitEthernet0/0
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/24 is directly connected, GigabitEthernet0/0
L 192.168.10.10/32 is directly connected, GigabitEthernet0/0
結果↓
# ping 192.168.20.20
.!!!!
出来た。
かなり無理矢理であるが、出来ることがわかった。
しかし結局
ip route 0.0.0.0 0.0.0.0 gi 0/0
↑ルータだから実行出来る。Gi0/0からの送信を強制するイメージ。
ホストだと、アドレスで指定しなきゃならない↓。
route add default gw 192.168.10.1
SWにIPアドレス設定(管理VLAN)してGW設定すれば、、、!?
⇒結局SWのIPアドレスは1つのNWにしか所属出来ない=一方通行にしかならない様な気が(試してない)
結論
SWは別のNW間通信ができないが、SWが区別しているのではなく、結果としてそうなっているという感覚。
(ARPさえブロードキャスト出来てしまえばpingは飛ぶ)
ちなみに、
R1:192.168.10.10/24 ---SW--- R2:192.168.10.20/16
とかだとデフォルトルートすら必要なくpingが通る。
また、R1とR2で別のVLANにすると、デフォルトルート設定しても通信できない⇒SWがVLANを区別できるから。
いい勉強になりました。