2016-06-21 6 views
1

Openstack에서 실행되는 몇 개의 VM이 있습니다. VMU가 실행되어야하는 MTU = 1500의 스위치에 하나의 데이터 네트워크 게이트웨이가 할당되었습니다.MTU 1500 : 1472 바이트 이후 패킷 조각화

또한 Openstack에서 네트워크의 기본 MTU = 1500으로 설정했습니다.

VM에서 게이트웨이 (또는 동일한 네트워크에있는 모든 IP)에 대해 1500 패킷 크기의 스위치로 핑 (ping)을 시도하고 있습니다. 패킷 조각화가 없습니다. 나는 작은 MTU (1472) 작동으로 패킷을 전송하고있는 경우

localhost:~# ping -M do -s 1500 10.4.14.18 
PING 10.4.14.18 (10.4.14.18) 1500(1528) bytes of data. 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500 

대신

는 내가 차이의 28 바이트를 볼 수 있습니다

, 난 이해가 안

localhost:~# ping -M do -s 1472 10.4.14.18 
PING 10.4.14.18 (10.4.14.18) 1472(1500) bytes of data. 
1480 bytes from 10.4.14.18: icmp_seq=1 ttl=64 time=0.965 ms 
1480 bytes from 10.4.14.18: icmp_seq=2 ttl=64 time=0.515 ms 
^C 
--- 10.4.14.18 ping statistics --- 
2 packets transmitted, 2 received, 0% packet loss, time 1875ms 
rtt min/avg/max/mdev = 0.515/0.740/0.965/0.225 ms 
이 28 바이트 되는 곳 활용?

답변

4

1500 바이트 MTU는 네트워크 계층의 표준 이더넷에 적용됩니다. 즉, 조각화되지 않고 이더넷 프레임에서 1500 바이트를 전송할 수 있습니다. 그러나 이더넷의 최상위 프로토콜은 물론 최대 페이로드를 줄입니다.

귀하의 경우 (핑의 경우) 추가 프로토콜은 IP 및 ICMP입니다. 그것들은 길이가 각각 20 바이트와 8 바이트 인 헤더를 가지고있다.

이 당신의 가장

1500 bytes (Ethernet mtu) - 20 byte (IP header) - 8 byte (ICMP header) 
= 1472 byte 

도 참조 this question regarding MTU for UDP를 전송할 수 있다는 것을 의미한다.

0

핑은 28 바이트 헤더를 추가 한 다음 전송합니다.

그래서 -s 1500을 보내려면 실제 크기는 1500 + 28 = 1528 바이트입니다.