Назад | Перейти на главную страницу

Пересылка фрагментов с помощью IPTables / FirewallD

У меня есть компьютер с Linux (openSuse Leap 15.0), который подключен к кабельному модему с помощью PPoE (надеюсь, не имеет отношения к этому. РЕДАКТИРОВАТЬ интерфейс ppp0 имеет mtu 1492, но интерфейс eth0, к которому он "привязан" - я точно не понимаю, как это работает - имеет mtu 1500) на ppp0 / eth0 (внешнем) и с локальной сетью (10.1. 0,0 / 8) на eth1 (внутренний). РЕДАКТИРОВАТЬ Он запускает firewalld с включенным маскированием.

Я также использую named и dchpd в локальной сети, и у меня есть пара маршрутизаторов Wi-Fi, принтер и т. Д.

В любом случае все работает в совершенстве если MTU установлен на 1400. Но если MTU установлен на 1500 на машине, подключенной к локальной сети, ничего не получается. В частности, запрос веб-страницы зависнет, и, если я посмотрю на трафик с помощью wirehark, будет возвращена только часть ответа на HTTP-запрос (последняя часть, как это происходит, для примера, который я рассмотрел).

Это все равно нормально - я могу снизить MTU на большинстве подключенных устройств, но мне нужно подключить телефон Android без рута. Единственный способ заставить это работать в настоящее время - использовать Wi-Fi-роутер с собственным DHCP (то есть собственной небольшой сетью) и настроить MTU в настройках роутера.

У меня сложилось впечатление, что в приведенных выше правилах мне не хватает чего-то для обработки фрагментов. Но когда я читаю, мне кажется, что соединения с отслеживанием состояния должны правильно обрабатывать фрагменты. Я также пробовал дублировать правила с помощью -f но это, похоже, не имело никакого эффекта.

Как мне заставить это работать? Точнее, если вышесказанное верно, как мне заставить iptables пересылать фрагменты? Спасибо.

РЕДАКТИРОВАТЬ Или, если это лучший способ, почему все, что подключается к сети, не выполняет PMTUD правильно? Брандмауэр не блокирует сообщения ICMP. Если я сбегу ping он работает нормально (и я вижу ICMP в wirehark). Если я выполняю HTTP-запрос, я не вижу сообщения ICMP, что меня беспокоит. В настоящее время я пытаюсь найти способ проверить, блокируются ли сообщения о фрагментации где-то еще.

РЕДАКТИРОВАТЬ Если бы eth0 и eth1 поменялись местами в тексте. Исправлено сейчас.