Главная

Wednesday, 17 January 2018

Как найти оптимальный размер MTU.

Всем привет.

Один из простых и наиболее точных способов определения оптимального размера MTU (Maximum Transmission Unit)  - пинг тест. Вы просто отправляете запросы и постепенно снижаете размер пакета до тех пор, пока пакет больше не подвергается фрагментации. Кроме того, этот простой тест подходит для точного тестирования конечных точек, пользователи могут найти более маленький размер MTU более удобным для себя. 

Как найти правильный размер MTU для домашней сети с роутером TP-Link хорошо рассказано здесь http://www.tp-link.ua/ru/FAQ-190.html.

В связи с дополнительными сложностями, в VPN (виртуальные частные сети) необходим иной способ тестирования MTU. Если у вас сеть с несколькими компьютерами, то каждый компьютер должен быть настроен с одинаковым размером MTU. Кроме того, некоторые компьютеры могут использовать несколько сетевых адаптеров или адаптер клиента VPN на одном компьютере. Удостоверьтесь, что вы изменяете сетевой адаптер, имеющий отношение к службе широкополосного вещания или VPN клиенту.

А теперь узнаем как выполнить тоже самое в сети с маршрутизатором Cisco.

Если от маршрутизатора посылается обычная команда ping, адрес источника этой команды ping является IP-адресом интерфейса, который используется пакетом для выхода из маршрутизатора. При использовании расширенной команды ping IP-адрес источника может быть изменен на любой IP-адрес в маршрутизаторе. Расширенная команда ping используется для более тщательной проверки доступности хоста и возможности сетевого подключения. Расширенная команда ping работает только в привилегированной командной строке EXEC. Обычная команда ping работает как в пользовательском, так и в привилегированном режиме EXEC.

Для того, чтобы найти минимальный MTU на сети нужно использовать расширенную команду ping, причём как c конечных хостов так и с оборудования Cisco. Выполним пинг с маршрутизатора R01 маршрутизатор R02 с выставленным битом DF, c начальным размером пакета в 1000 байт, конечным 1500 байт, и шагом 100 байт. Количество повторений 2.
R01#ping
Protocol [ip]:
Target IP address: 192.168.12.2
Repeat count [5]: 2
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 192.168.12.1
Type of service [0]:
Set DF bit in IP header? [no]: y
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]: y
Sweep min size [36]: 1000
Sweep max size [18024]: 1500
Sweep interval [1]: 100
Type escape sequence to abort.
Sending 12, [1000..1500]-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.12.1
Packet sent with the DF bit set
!!!!..!!!!..
Success rate is 66 percent (8/12), round-trip min/avg/max = 4/24/56 ms

Как видите, проходит только 6 ICMP пакетов размером 1000, 1100, 1200, 1300 байт, а начиная с 1400 байт и выше пакеты не проходят. Следовательно, минимальное MTU между двумя точками - 1300 и 1400, что можно уточнить ещё за несколько циклов, ужимая диапазон и уменьшая шаг. 

Частая проблема возникающая при взаимодействии сетевых и системных администраторов - с конечного устройства проходят пакеты одного размера, с ближнего к нему сетевого устройства большего размера. Причина лежит в том, что операционные системы (в частности Windows), когда вы задаёте размер пакета команде ping, воспринимают это значение как чистый paiload - без заголовков ICMP и IP, т.е. при указании ping 192.168.1.2 -l 100 система будет генерировать пакеты величиной 128 байт, а не 100 (8 байт ICMP заголовок и 20 байт IP). При указании же размера ICMP пакета на сетевом оборудовании Cisco указываемый вами размер включает уже оба заголовка. Поэтому на обычном Ethernet линке пинги с Windows покажут 1472 байт максимальный размер пакета проходящий без фрагментации, а Cisco 1500 байт.

Удачи всем.

No comments:

Post a Comment

А что вы думаете по этому поводу?