Для запобігання флуду можна використовувати команду iptables
iptables -I INPUT --in-interface eth0 --protocol udp --dport 53 --match state --state NEW --match string --algo kmp --hex-string "|00 00 FF 00 01|" --from 40 --match recent --name DNST --update --seconds 600 --jump DROP
де:
eth0 - інтерфейс на котрому присутній флуд (скоріше за все має бути зовнішнім)
53 - порт ДНС серверу
00 00 FF 00 01 - послідовність байто відповідна "ANY"
40 - з якого байту в пакеті починати шукати
600 - кількість секунд за які буде скидатись пакет при повторному звернені (при цьому перше буде пропущене)
Кардинально картина не зміниться: канал все ще буде забитим, але зловмисник не отримає помножену відповідь від ДНС серверу.
Та і не завадило б правильно налаштувати сам ДНС сервер