Настройка двойного 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 Requestping отправляет и 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%
Другие вопросы по тегам