Testowanie, czy ramki jumbo faktycznie działają

28

Czy istnieje polecenie sprawdzające, czy duże ramki rzeczywiście działają? tj. pewnego rodzaju „ping”, który informuje, czy pakiet został rozbity po drodze.

Mam host ESXi z maszyną Wirtualną Ubuntu, która montuje Dell MD3000i przez iSCSI. Podejrzewam, że duże ramki nie są włączone na przełączniku i nie mogę łatwo uzyskać do nich dostępu administratora. Mam opcję podłączenia macierzy dyskowej bezpośrednio do hosta ESXi, ale najpierw chciałbym w jakiś sposób potwierdzić, że duże ramki są problemem.

rozdymka tygrysia
źródło

Odpowiedzi:

42

Włączenie ramek Jumbo oznacza zezwolenie na większą jednostkę maksymalnej transmisji (MTU), zwykle poprzez ustawienie MTU na 9000.

Aby sprawdzić, czy to zadziałało, możesz użyć polecenia ping w systemie Windows z flagą -l, aby ustawić rozmiar pakietu, a flagą -f, aby ustawić flagę Nie fragmentuj w pakiecie.

ping my.test.host -f -l 8972

Jeśli pakiet zostanie pofragmentowany, zobaczysz

Packet needs to be fragmented by DF set

w miejsce tego, co normalnie zobaczysz.

W systemie Linux polecenie ping używa różnych flag. -sustawia rozmiar pakietu i -M doustawia opcję Nie fragmentuj. Tak więc powyższe polecenie brzmiałoby:

ping my.test.host -M do -s 8972

Dostosowując rozmiar pakietu, możesz dowiedzieć się, co to jest mtu dla łącza. Będzie to reprezentować najniższe Mtu dozwolone przez dowolne urządzenie na ścieżce, którym może być Twój przełącznik, komputer, cel lub cokolwiek innego pomiędzy nimi.

Samo to nie powie ci, gdzie jest najniższa MTU - możesz to rozwiązać, uruchamiając test na różnych urządzeniach na ścieżce, ale zawsze mogą istnieć przezroczyste routery, które ograniczają MTU, ale się nie wyświetlają dla traceroute.

Zauważ, że nagłówek ICMP ma narzut 28 bajtów, więc MTU jest o 28 bajtów większy niż liczba ustalona za pomocą powyższej metody. Tak więc, aby sprawdzić, czy MTU wynosi 9000, faktycznie musisz ustawić rozmiar pakietu ping na 9000-28 = 8972.

Aktualizacja Znalazłem niektóre zasoby, które konkretnie ustalą MTU na ścieżce między hostem a celem:

  • Dla Windows mturoute
  • Dla * nix tracepath lub traceroute --mtu

I jeszcze kilka dyskusji na temat znalezienia MTU ścieżki .

dunxd
źródło
+1. Niezła odpowiedź. Myślałem o tym również, ale nie byłem pewien, czy pozwoli mu to wykryć rozmiar ramki obsługiwanej przez przełącznik. Nie myślałem o tym jako o testowaniu ścieżki MTU.
joeqwerty
1
Ładne .. w systemie Windows. Mała zmiana, aby działała na Linuksie. [ping 10.1.1.101 -s 1472] gdzie 1472 to rozmiar MTU. Edytuj swoje pytanie, aby to uwzględnić, a ja zaakceptuję
pufferfish
Oto narzędzie, które korzysta z metody opisanej przez dunxd: elifulkerson.com/projects/mturoute.php
Chris
2
Ok - strona podręcznika pomogłaby ci od razu, ale zaktualizowałem o szczegółowe informacje dla Linuksa. Flaga nie fragmentuj jest wymagana do poprawnego działania testu, co nie jest tak jasne w przypadku pingowania w Linuksie, jak w systemie Windows.
dunxd
1
Jeśli najpierw włączysz SSH na hoście ESXi i zaloguj się, możesz użyć vmkping -d -s 8972 10.1.1.101, gdzie -s ustawia rozmiar pakietu, a -d ustawia flagę Nie fragmentuj.
Eric3
1

Nie jestem pewien, czy to zadziała, ale możesz spróbować:

Na komputerze z klientem MDSM upewnij się, że Jumbo Frames są obsługiwane i włączone, a następnie przejdź do karty pomocy technicznej w kliencie MDSM i wybierz link „Zbierz informacje o pomocy technicznej”, wybierz lokalizację klienta MDSM, do której chcesz pobrać plik, rozpocznij przechwytywanie pakietów na kliencie MDSM i kliknij przycisk Start, aby rozpocząć zbieranie i pobieranie informacji o pomocy technicznej (plik zip). Po zakończeniu pobierania / pobierania spójrz na przechwytywanie i zobacz, jak duże są ramki Ethernet od MD3000i do klienta MDSM. Jeśli przełącznik, MD300i i klient MDSM są skonfigurowane dla Jumbo Frame, powinieneś zobaczyć to w rozmiarze ramki Ethernet w przechwytywaniu.

joeqwerty
źródło
1

W ESXi musisz określić, którego interfejsu chcesz użyć, w przeciwnym razie ping jest kierowany przez interfejs mgmt, plus -d, aby ustawić DF (nie fragmentuj):

vmkping -I vmkX -s 8972 -d xxxx

http://kb.vmware.com/kb/1003728

Jay Ge
źródło
-1

Możesz to również sprawdzić w konsoli ESXi za pośrednictwem SSH: włącz Bezpieczeństwo-> Firewall-> Remote Tech.support (SSH) i po zalogowaniu ssh zrób „vmkping -s 8000” lub coś w tym rodzaju (nie pamiętam dokładnie jego opcji)

Dyr
źródło
4
Poszukaj opcji, a ktoś może cię zagłosować.
dunxd