Проверка работоспособности больших кадров

28

Есть ли команда для проверки работоспособности больших кадров? т.е. какой-то «пинг», который сообщает, был ли пакет разбит по пути.

У меня есть хост ESXi с виртуальной машиной Ubuntu, которая монтирует Dell MD3000i через iSCSI. Я подозреваю, что большие кадры не включены на коммутаторе и не могут легко получить к нему доступ администратора. У меня есть возможность подключить дисковый массив напрямую к хосту ESXi, но я хотел бы получить какой-то способ подтвердить, что большие кадры являются проблемой в первую очередь.

рыба фугу
источник

Ответы:

42

Включение Jumbo Frames означает разрешение большего максимального блока передачи (MTU), обычно путем установки MTU в 9000.

Чтобы убедиться, что это сработало, вы можете использовать ping в окнах с флагом -l для установки размера пакета и флагом -f для установки флага не фрагментировать в пакете.

ping my.test.host -f -l 8972

Если пакет будет фрагментирован, вы увидите

Packet needs to be fragmented by DF set

вместо того, что вы обычно видите.

Для Linux команда ping использует разные флаги. -sустанавливает размер пакета и -M doустанавливает Не фрагментировать. Таким образом, приведенная выше команда будет:

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

Регулируя размер пакета, вы можете выяснить, что такое mtu для ссылки. Это будет наименьшее значение mtu, допустимое для любого устройства на пути, которым может быть ваш коммутатор, ваш компьютер, цель или что-то еще между ними.

Само по себе это не скажет вам, где находится самый низкий MTU - вы можете решить это, выполнив тест на разных устройствах в пути, но всегда могут быть прозрачные маршрутизаторы, которые ограничивают MTU, но не отображаются для traceroute.

Обратите внимание, что для заголовков ICMP накладные расходы составляют 28 байтов, поэтому значение MTU на 28 байтов больше, чем значение, которое вы устанавливаете с помощью описанного выше метода. Таким образом, чтобы проверить MTU на 9000, вам нужно установить размер пакета ping на 9000-28 = 8972.

Обновление Я нашел некоторые ресурсы, которые определенно определят MTU на пути между хостом и целью:

  • Для Windows Mturoute
  • Для * nix tracepath или traceroute --mtu

И еще немного обсуждения по поиску MTU пути .

dunxd
источник
+1. Хороший ответ. Я тоже думал об этом, но не был уверен, позволит ли он определить размер кадра, поддерживаемый коммутатором. Я не думал об этом как о тестировании MTU пути.
Joeqwerty
1
Хорошо .. на Windows. Небольшое изменение, чтобы оно работало на Linux. [ping 10.1.1.101 -s 1472], где 1472 - размер MTU. Пожалуйста, отредактируйте свой вопрос, чтобы включить это, и я приму
pufferfish
Вот утилита, которая использует метод, описанный dunxd: elifulkerson.com/projects/mturoute.php
Chris
2
Хорошо, страница справки сразу же помогла бы вам, но я обновил информацию о Linux. Флаг «не фрагментировать» необходим для правильной работы теста, и это не так ясно в Linux-пинге, как в Windows.
dunxd
1
Если вы сначала включите SSH на хосте ESXi и войдете в систему, вы можете использовать vmkping -d -s 8972 10.1.1.101, где -s устанавливает размер пакета, а -d устанавливает флаг Не фрагментировать.
Eric3
1

Я не уверен, что это сработает, но вы можете попробовать:

На компьютере с клиентом MDSM убедитесь, что Jumbo Frames поддерживаются и включены, затем перейдите на вкладку поддержки в клиенте MDSM и выберите ссылку «Сбор информации о поддержке», выберите местоположение на клиенте MDSM для загрузки файла, запустите захват пакета на клиенте MDSM и нажмите кнопку запуска, чтобы начать сбор и загрузку информации о поддержке (zip-файл). Когда сбор / загрузка завершена, посмотрите на захват и посмотрите, насколько большие кадры Ethernet от MD3000i до клиента MDSM. Если коммутатор, MD300i и клиент MDSM сконфигурированы для Jumbo Frames, вы должны увидеть это в размере кадра Ethernet при захвате.

joeqwerty
источник
1

В ESXi вам нужно указать, какой интерфейс вы бы использовали, иначе ping маршрутизируется через интерфейс mgmt, плюс в -d для установки DF (не фрагментируйте):

vmkping -I vmkX -s 8972 -d хххх

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

Джей Ге
источник
-1

Вы также можете проверить это через консоль ESXi через SSH: включите Security-> Firewall-> Remote Tech.support (SSH) и после входа в систему через ssh выполните «vmkping -s 8000» или что-то в этом роде (точно не запомните его параметры)

Дыр
источник
4
Посмотрите варианты, и кто-то может проголосовать за вас.
Данксд