Настройка двойного NAT MTU для внутренней сети
У меня есть домашняя сеть с двумя роутерами, один за другим. Порт WAN внешнего маршрутизатора представляет собой соединение VDSL2 PPPoE с действующим IP-адресом и размером MTU 1492. Порт WAN внутреннего маршрутизатора назначается через DHCP как еще один клиент в локальной сети внешнего маршрутизатора. MTU по умолчанию для него был 1500 по умолчанию. Я изменил его на 1492, чтобы соответствовать внешнему маршрутизатору.
Теперь мне интересно, имеет ли смысл еще больше уменьшать размер MTU для внутренней сети. Сделало бы это внутреннюю сеть более устойчивой в этом сценарии двойного NAT?
2 ответа
NAT просто изменяет IP-адреса / порты в пакетах, он не включает в пакет никакой дополнительной информации (заголовки и т. Д.). Следовательно, это никак не уменьшает MTU, и наличие того же MTU - это хорошо.
Хотя NAT не увеличивает размер пакетов (или, точнее, уменьшает максимальный размер полезной нагрузки на пакет), PPoE и другие протоколы туннелирования часто делают это.
Тем не менее, в большинстве современных операционных систем реализовано обнаружение Path MTU, описанное в RFC1191, которое оптимально адаптирует исходящие пакеты к пакетам самого маленького MTU любого из каналов между отправляющим хостом и пунктом назначения. Это делается путем установки DF bit
(Не фрагментировать) в больших исходящих пакетах и ищет ошибку ICMP Fragmentation Needed
,
В MacOS и других Unix-подобных операционных системах ping
Утилита имеет несколько переключателей, которые могут установить DF bit
и установить размер полезной нагрузки и даже охватить диапазон размеров, эффективно определяя MTU между исходным хостом и адресатом. В заголовке 8 байтов ICMP Echo Request
ping
отправляет и 20 байтов в IP-пакете, что делает максимальную полезную нагрузку 1472 для пакета ping с DF bit
установить на 1500-байтовом интерфейсе MTU.
Вы могли бы установить свой MTU ниже, чтобы оптимизировать, каким-то очень маленьким способом, этот конкретный путь, в обмен на немного меньший оптимальный размер пакета для каждого другого потока пакетов, в котором участвует хост.
Поэтому, если у вас нет проблем с остановкой передачи файлов, лучше всего, чтобы операционная система автоматически обрабатывала MTU.
[nevin-mac-mini: ~] nevin% ping -c 1 -D -s 1472 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 1472 байта данных 1480 байт из 192.168.2.1: icmp_seq=0 ttl=64 время = 0,667 мс --- 192.168.2.1 пинг статистика --- 1 переданный пакет, 1 полученный пакет, 0.0% потеря пакета туда-обратно мин / ср / макс / стандартное отклонение = 0,667/0,667/0,667/0,000 мс [nevin-mac-mini:~] nevin% ping -c 1 -D -s 1473 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 1473 байта данных ping: sendto: сообщение слишком длинное --- 192.168.2.1 пинг статистика --- 1 пакет передан, 0 пакетов получен, потеря пакета 100.0%