Иногда приходится залазить в глубокую сетевую отладку для того, чтобы дрючить всяких нерадивых провайдеров. Западло они, конечно, устраивают образцово-показательное. Но что-то с какого-то момента времени мне стало не всё понятно.
Так, например, я тестировал прохождение UDP-пакетов со взведённым флагом "More Fragments" вот такой командой:
sendip -p ipv4 -is 1.2.3.4 -p udp -ifm 1 -us 1234 -ud 5678 -d r1472 5.6.7.8
На Linux-е с ядром 3.16 она отрабатывала как задумано. На Linux-е с ядром 4.9 почему-то работать перестало. Никакой ошибки она не выдаёт, но реально пакет никуда не уходит. Спрашивается, что изменилось? И можно ли вернуть этот функционал взад?
И ещё вопрос, если вдруг кто-то всерьёз ковырялся с сетками. Поскольку UDP-пакет со взведенным "MF" считается незавершенной датаграммой, то tcpdump на устройстве-отправителе его "не видит", зато прекрасно видят сниффер на устройстве-получателе и отладчики на транзитных узлах. Это справедливо как для 3.16, так и для 4.9. Вопрос, есть ли какой-нибудь такой хитрый флаг в этом самом tcpdump-е, который бы заставил его показать незавершенную датаграмму на отправителе?
Даже интересно, читают ли меня сетевые гуру.