Не спрашивайте, зачем, но озаботился ограничением скорости dhcp discover пакетов. Всегда считал, что на начальных этапах работы этого протокола используется raw сокеты, который для iptables недостижимы, ввиду более поздних хуков. Какое же было мое удивление, когда я поймал discover именно в iptables и в цепочке input. heх-последовательность в дампе для dhcp message type: discover составляет 35 01 01. Это легко увидеть в wireshark.
Дальше через модуль string ловим, а через limit - насилуем.
Как-то так:
--new-chain DHCP_LIMITER
--flush DHCP_LIMITER
-A INPUT -i bond1.+ -p udp -d
255.255.255.255 --destination-port 67 -m string --algo kmp --hex-string "|35 01 01|" -j DHCP_LIMITER
-A DHCP_LIMITER -m limit --limit 100/sec --limit-burst 3 -j RETURN
-A DHCP_LIMITER -j DROP
Зажал limit - количество starting сессий в accel уменьшилось. Разжал - вернулось в норму.
Não pergunte por que, mas preocupado com o limite de velocidade de pacotes dhcp discover. Sempre acreditei que, nos estágios iniciais deste protocolo, os soquetes raw são usados, o que é inatingível para iptables, devido a Ganchos posteriores. Qual foi a minha surpresa quando peguei o discover precisamente no iptables e na cadeia input. a sequência Hex no despejo para dhcp message type: discover é 35 01 01. É fácil ver isso no wireshark.
Em seguida, através do módulo string, capturamos e, através do limite, violamos.
De alguma forma:
--new-chain DHCP_LIMITER
--flush DHCP_LIMITER
-A INPUT -i bond1.+ -p udp -d
255.255.255.255 --destination-port 67 -m string --algo kmp --hex-string "|35 01 01|" -j DHCP_LIMITER
-A DHCP_LIMITER -m limit --limit 100/sec --limit-burst 3 -j RETURN
-A DHCP_LIMITER -j DROP
Limite apertado-o número de sessões de inicialização no accel diminuiu. Rebaixado-voltou ao normal.