MTU 계산에 대한 오해는 무엇입니까? 다릅니다). ping -D -s <mtu> <ip_address> traceroute

좋아, 방금 Xserve, Netgear GSM7224 및 Drobo B800i 간의 점보 프레임 문제 해결을 마쳤습니다. Xserves (Mac OS X 10.6.8 Server)와 Drobo B800i는 정상적으로 예상대로 바이트 단위로 MTU를 허용하지만 (1500-9000) Netgear는 다양한 이더넷 헤더 / 바닥 글 (예고편 포함)을 원했습니다 ) 그리고 결국 Xserves & Drobo가 MTU 9000으로 구성되고 Netgear 포트가 MTU 9216으로 설정되었습니다.

Netgear를 통해 두 Xserve 사이의 MTU를 테스트하고 확인하기 위해 다음 명령을 사용했습니다 (참고 : Mac OS X 명령이며 Windows 및 Linux 명령이 다릅니다).

ping -D -s <mtu> <ip_address>

traceroute -F <ip_address> <mtu>

의 전 사용량 유의 man페이지 “데이터의 개수가 전송 될 바이트를 지정한다. 기본값은 ICMP 헤더 데이터의 8 바이트와 결합 64 ICMP 데이터 바이트로 변환하는 (56)이다.”로 테스트에서 나는 ping -D 1472 <ip_address>8 바이트의 ICMP 헤더 데이터와 20 바이트의 IP 헤더로 인해 MTU 1500과 동등한 것으로 나타났습니다 ( thisthis 참조 ). 그게 말이 되네요

이제 왜 9000 MTU에 해당하는 명령 ping -D -s 8164 <ip_address>입니까? “sendto : Message too long”오류가 발생하기 전에 이것이 한계임을 확인했지만 9000 MTU가 올바르게 traceroute -F <ip_address> 9000작동하고 작동 traceroute -F <ip_address> 9001하지 않습니다. 그렇다면 왜 8164입니까? 8972 (1,500 MTU와 마찬가지로 MTU-28 바이트)를 예상했습니다.

또한 왜 넷기어를위한 9216 MTU? MAC 및 이더넷 헤더 (CRC 포함)의 경우 42 바이트, IP 헤더의 경우 20 바이트 (MTU로 먹어야 함)를 계산했습니다.

나는이 수학에 정말 녹슬었고 뭔가 빠진 것을 알고 있습니다.



답변

점보 프레임의 이상하고 신비로운 세계에 오신 것을 환영합니다! 점보 프레임 이더넷 기어의 MTU> 1518 및 <65K 바이트를 갖는 것이 정상이며 적절한 점보 트래픽을 가능하게하려면 L2 도메인에서 공통 분모가 가장 낮은 설정을 찾아야합니다.

내 생각에 ping / ICMP 구현은 8192 바이트 페이로드에서만 작동하므로 8164 + 28 (IP 헤더의 경우 20, ICMP 헤더의 경우 8)은 8192 바이트를 제공합니다.

MTU 9216은 또한 많은 Cisco 장비의 표준 9K MTU이므로 Netgear가 이에 호환되기를 원한다고 가정합니다.

또한 MTU 크기 사양을 신중하게 고려해야하며 많은 공급 업체가 802.1Q (vLAN) 또는 L2 프레임 헤더를 포함하지 않습니다. 스위치 공급 업체의 설명서에서 MTU 크기에 대해 이야기 할 때 실제로 지정하는 내용을 확인하십시오.


답변