post-factum Posted August 26, 2016 Posted August 26, 2016 Есть вредная железка 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'е — везде одно и то же. Вставить ник Quote
[anp/hsw] Posted August 27, 2016 Posted August 27, 2016 Только патчить ядро и iptables, есть такой таргет. Последнее виденое мною ядро, на который оный накладывался - 3.2 Вставить ник Quote
post-factum Posted August 27, 2016 Author Posted August 27, 2016 Мне тут посоветовали попробовать сделать трюк с обработкой пакета в юзерспейсе через nfqueue. Ещё нашёл упоминание того, что tc тоже может менять поля IP-пакета, правда, пока завести не получилось. Можно ссылку на модуль? В крайнем случае попробую портировать на 3.10. Вставить ник Quote
post-factum Posted August 27, 2016 Author Posted August 27, 2016 (edited) Собственно, решение на NFQUEUE вот. Похоже, что работает. В рабочей обстановке будем тестить с понедельника. Edited August 27, 2016 by post-factum Вставить ник Quote
[anp/hsw] Posted August 28, 2016 Posted August 28, 2016 Вот патч DF для iptables и ядра 3.2 df.tar.gz Вставить ник Quote
post-factum Posted August 28, 2016 Author Posted August 28, 2016 Спасибо. Модуль на 4.7 с кое-какими корректировками собрался, что дальше — пока не пробовал. Вставить ник Quote
post-factum Posted August 29, 2016 Author Posted August 29, 2016 Решение с NFQUEUE проверили в рабочей обстановке — проблем не замечено. Вставить ник Quote
alex_001 Posted August 29, 2016 Posted August 29, 2016 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. Вставить ник Quote
post-factum Posted August 29, 2016 Author Posted August 29, 2016 А это ещё интереснее. Спасибо, так тоже работает. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.