MTU越えサイズのパケットのフラグメント化
ルーターに小さめのMTUサイズを設定し、ルーターにてフラグメント化する様子を観察する。
環境
ルーターR1およびR2にて、MTUサイズを300として、左側のPC1からPC2へMTUサイズ以上のデータ(ここではICMPパケット)を送る。IPアドレスは記載されたとおり。
設定
関連するところのみ記載。「mtu 300」以外、特筆すべき事項はないだろう。
R1
interface FastEthernet0/0
mtu 300
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet0/1
ip address 192.168.10.254 255.255.255.0
!
router rip
network 10.0.0.0
network 192.168.10.0
R2
interface FastEthernet0/0
mtu 300
ip address 10.1.1.2 255.255.255.0
!
interface FastEthernet0/1
ip address 192.168.20.254 255.255.255.0
!
router rip
network 10.0.0.0
network 192.168.20.0
検証
ping実行
PC1からPC2へ、MTU以上のデータサイズを指定したpingを実行する。ここでは、MTU=300に対して、400バイトを指定。その結果が下記となる。
PC1> ping 192.168.20.1 -c 10 -l 400
192.168.20.1 icmp_seq=1 timeout
192.168.20.1 icmp_seq=2 timeout
428 bytes from 192.168.20.1 icmp_seq=3 ttl=62 time=50.823 ms
428 bytes from 192.168.20.1 icmp_seq=4 ttl=62 time=60.813 ms
428 bytes from 192.168.20.1 icmp_seq=5 ttl=62 time=66.587 ms
428 bytes from 192.168.20.1 icmp_seq=6 ttl=62 time=51.184 ms
428 bytes from 192.168.20.1 icmp_seq=7 ttl=62 time=57.308 ms
428 bytes from 192.168.20.1 icmp_seq=8 ttl=62 time=48.957 ms
428 bytes from 192.168.20.1 icmp_seq=9 ttl=62 time=58.319 ms
428 bytes from 192.168.20.1 icmp_seq=10 ttl=62 time=50.798 ms
考察(Wiresharkで取得したデータ)
PC1-R1
PC1(192.168.10.1)からはフラグメント化されていないデータを送信しているが、PC2(192.168.20.1)からはフラグメント化されているデータを受信している。パケット番号461-463参照。
R1-R2
PC1からのデータは、R1にてフラグメント化されて送られる。PC2からのデータもフラグメント化されて送られる。パケット番号883-886参照。
R2-PC2
R2からフラグメントされたデータはPC2にてリアセンブルされ、応答自体はフラグメント化されずに送られる。パケット番号193-195参照。
フラグメント化されたデータは下記。最初データは、DFビットが立っている。
最後(2番目)のデータは、DFビットが立っていない。
期待どおりの結果である。
EOF