Jakie mam nieporozumienie dotyczące obliczania MTU?


14

Ok, właśnie skończyłem rozwiązywanie problemu z ramkami typu jumbo między kilkoma Xserves, Netgear GSM7224 i Drobo B800i. Okazało się, że Xserves (Mac OS X 10.6.8 Server) i Drobo B800i akceptują MTU w bajtach, jak zwykle oczekiwano (1500-9000), ale wydaje się, że Netgear chciał go, włączając różne nagłówki / stopki Ethernet (zwiastuny) ) i ostatecznie skończyłem na Xserves & Drobo skonfigurowanym z MTU 9000 i portami Netgear ustawionymi na MTU 9216.

Użyłem następujących poleceń do testowania i weryfikacji MTU między dwoma Xservami w Netgear (Uwaga: są to polecenia Mac OS X, różnią się Windows i Linux):

ping -D -s <mtu> <ip_address>

traceroute -F <ip_address> <mtu>

Użycie formy zostało odnotowane na manstronie jako „Określ liczbę bajtów danych, które mają zostać wysłane. Wartość domyślna to 56, co przekłada się na 64 bajty danych ICMP w połączeniu z 8 bajtami danych nagłówka ICMP”. Podczas testów stwierdziłem, że jest ping -D 1472 <ip_address>to odpowiednik MTU 1500 ze względu na 8 bajtów danych nagłówka ICMP plus 20 bajtów nagłówków IP (zobacz to i to ). To wszystko ma sens.

Dlaczego jest to równoważne polecenie dla 9000 MTU ping -D -s 8164 <ip_address>? Sprawdziłem, czy jest to limit, zanim pojawią się błędy „sendto: Wiadomość za długa”, ale także to, że 9000 MTU działa poprawnie, ponieważ traceroute -F <ip_address> 9000działa i traceroute -F <ip_address> 9001nie działa. Dlaczego więc 8164? Spodziewałbym się 8972 (MTU - 28 bajtów, tak jak dla 1500 MTU).

Ponadto, dlaczego 9216 MTU dla Netgear? Policzyłem 42 bajty dla nagłówków MAC i ethernetowych (włącznie z CRC), plus 20 dla nagłówków IP (które powinny zjeść w MTU).

Jestem naprawdę zardzewiały w tej matematyce i wiem, że po prostu czegoś brakuje.


1
Prawie na pewno wybrano 9216, ponieważ jest to 9 x 2 ^ 10.
Chris S

Odpowiedzi:


11

Witamy w dziwnym i tajemniczym świecie olbrzymich ram! To normalne, że olbrzymi sprzęt ethernetowy ma MTU> 1518 i <65 KB bajtów i musisz znaleźć ustawienie, które jest najniższym wspólnym mianownikiem w domenie L2, aby umożliwić prawidłowy ruch jumbo.

Domyślam się, że twoja implementacja ping / ICMP działa tylko dla ładunku 8192 bajtów, więc 8164 + 28 (20 dla nagłówka IP i 8 dla nagłówka ICMP) daje 8192 bajtów.

MTU 9216 jest również standardowym 9K MTU na wielu urządzeniach Cisco, więc zakładam, że Netgear chciał być z tym „kompatybilny”.

Należy również pamiętać, że specyfikację rozmiaru MTU należy traktować poważnie, wielu dostawców nie obejmuje 802.1Q (vLAN) ani nawet nagłówków ramek L2. Sprawdź w dokumentacji dostawcy przełącznika, co tak naprawdę określają, gdy mówią o rozmiarze MTU.


Wystarczy dodać notatkę: MTU hostów i routerów musi się zgadzać; MTU przełączników można ustawić na 12 bazillionów, pod każdym względem, o ile jest ono wyższe niż ustawienia hosta (+ nagłówek).
Hyppy,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.