Т.е. заблокировать все DNS-запросы, все TCP-хендшейки, ICMP ECHO... ? Но у вас тогда трафик вообще перестанет бегать. Ведь любой обмен начинается с мелких пакетов.
Может быть все таки не на MTU смотреть, а на MSS? Тогда вроде как iptables позволяет это делать.
Для начала перестать путать MTU и размер пакета. Например из интерфейса с MTU 1500 вполне может уйти пакет длиной 64 байта.
MTU ограничивает максимальный(первая буква в аббревиатуре, ага) размер пакета, который может быть передан через данный интерфейс. В самом пакете нет никакой инфы о MTU интерфейса, через который он прошел.
Далее, много приложений передают пакеты меньшей длины, чем обычный MTU интерфейса. Примеров тут уже привели достаточно - из самого критичного это ICMP и DNS.
Отсюда следует несколько выводов:
1) ты МОЖЕШЬ заблокировать пакеты с определенным размеров в файрволе; с размером, не с MTU, нету у пакета MTU;
2) ты ТОЧНО огребешь при этом проблем.
Опиши задачу которую ты пытаешься решить. Не метод, который ты выбрал для её решения(блокировать мелкие пакеты), а именно задачу.
Примеров тут уже привели достаточно - из самого критичного это ICMP и DNS.
Не только, в любом соединении при передачи нескольких пакетов последний может оказаться маленьким. Так что можно сказать критично чуть меньше чем все, о чем вы и написали ниже «ты ТОЧНО огребешь при этом проблем.»
Судя по его темам, он хочет сделать блокиратор HTTP трафика по URL'ам. Делать он это собрался через iptables, поиском по содержимому пакета. Ему быстро объяснили, что если послать запрос маленькими пакетиками, его фильтр превращается в тыкву. Вот он и пытается запретить маленькие пакетики.
С сурикатой у него как-то не срастается уже почти год, с конца августа 2015. Блокировками он занялся в июне 2015, но темы про DPI вообще у него начинаются с конца декабря 2013.
Сейчас же вроде даже самые дикие провайдеры не блокируют, а отдают заглушку? Хотя, даже если он просто научится нормально блокировать, будет неплохо, конечно. Два года исканий не пройдут зря
ne-vlezay, уже обсуждали же твою задачу несколько раз. Самый простой и действенный способ - проксировать трафик. Отбирай только нужные порты(https смотреть бессмысленно, например), только к подозрительным доменам. Этот трафик уже посылай в прокси. Для squid вроде даже были какие-то готовые штуки для фильтрации
Если не хочешь проксирования, так просто не получится. Нужно будет собрать TCP, по окончании заголовка проверять URL. Если нужно отдать заглушку, то подменить ответ сервера на свой и больше не пускать ничего в этом направлении. Непонятно, можно ли сурикатой такое сделать
Судя по тому, что фрагментацией обходятся некоторые DPI системы, там тоже реализуют поиском по одному пакету. Хотя так же возможно, это вынужденная мера, так как собирать сессии и копаться в них — ресурсоёмкое занятие.
Для этого лучше использовать прокси, но роутере оверхед будет большой всё собирать. Можно конечно и руками в юзерспейсе всё делать, но мне бы было лень, хотя там всё просто.
Раньше была опция в ядре, которая форсировала сборку фрагментов, но сейчас я её не вижу.
сквид на роутере? squid штука хорошая, но даже офис на 60 тел легко 4 ядра и 3 гб оперативы загрузят, если например надо блочить контактики, игры, левую почту,развлекательные ресурсы, видео, пикчи и тп.
pinkbyte@vpn1 / $ accel-cmd show sessions | wc -l
535
pinkbyte@vpn1 / $ free -m
total used free shared buff/cache available
Mem: 64349 3614 33718 16449 27016 43526
Swap: 0 0 0
Трафика там - примерно 600 мегабит в обе стороны. Load average - около 8, но большая часть его уходит именно на пережевывания трафика, а вовсе не на сам squid.