Перейти к содержимому
Калькуляторы

Флаг DF с ip_no_pmtu_disc в LXC

Есть вредная железка X, которую нужно мониторить по SNMP и которая в упор не отвечает на IP-пакеты с флагом DF (баг в прошивке, который неизвестно как, когда и кто пофиксит).

 

Есть софт, живущий в контейнере (systemd-nspawn), который опрашивает snmpget'ом разные железки, в том числе и железку X.

 

Проблема в том, что все пакеты от софта в контейнере шлются с установленным флагом DF. Если на гипервизоре выставить ip_no_pmtu_disc=1 и запустить софт прямо на том же гипервизоре, а не в контейнере, то всё работает. Однако ip_no_pmtu_disc=1 не влияет на софт в контейнере — пакеты всё равно шлются с флагом DF.

 

Как быть?

 

Проверялось на Arch'е, CentOS'е 7, Ubuntu в systemd-nspawn и docker'е — везде одно и то же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Только патчить ядро и iptables, есть такой таргет.

Последнее виденое мною ядро, на который оный накладывался - 3.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне тут посоветовали попробовать сделать трюк с обработкой пакета в юзерспейсе через nfqueue. Ещё нашёл упоминание того, что tc тоже может менять поля IP-пакета, правда, пока завести не получилось.

 

Можно ссылку на модуль? В крайнем случае попробую портировать на 3.10.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собственно, решение на NFQUEUE вот.

 

Похоже, что работает. В рабочей обстановке будем тестить с понедельника.

Изменено пользователем post-factum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот патч DF для iptables и ядра 3.2

df.tar.gz

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо. Модуль на 4.7 с кое-какими корректировками собрался, что дальше — пока не пробовал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решение с NFQUEUE проверили в рабочей обстановке — проблем не замечено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

man ip-route

 

             mtu lock MTU
                    the MTU along the path to the destination.  If the modifier lock is not used, the MTU may be updated by the kernel due to Path MTU Discovery.  If the modifier lock is used,
                    no path MTU discovery will be tried, all packets will be sent without the DF bit in IPv4 case or fragmented to MTU for IPv6.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А это ещё интереснее. Спасибо, так тоже работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.