На этот вопрос уже есть ответ:
Если во время DDOS-атаки мы находим IP-адреса, которые мы хотим заблокировать, увидим ли мы лучшую производительность при использовании нулевого маршрута по сравнению с iptables?
Нулевой маршрутизацией мы бы что-то сделали вроде:
ip route add blackhole <ip or range>
В iptables:
/sbin/iptables -A INPUT -s <ip or range> -j DR
Разницы нет? Я подозреваю, что маршрут
будет работать лучше, но я не уверен.
Предполагая, что вы блокируете на основе адреса источника , а не назначения, тогда выполнение DROP в режиме raw / PREROUTING будет работать хорошо, так как вы, по сути, сможете отбросить пакет прежде чем будет принято какое-либо решение о маршрутизации.
Помните, однако, что правила iptables - это, по сути, связанный список, и для оптимальной производительности при блокировке ряда адресов вы должны использовать ipset.
С другой стороны, если блокируется по месту назначения, там вероятно, небольшая разница между блокировкой в таблице маршрутизации и iptables, ЗА ИСКЛЮЧЕНИЕМ, если исходные IP-адреса подделываются, и в этом случае записи с черным отверстием могут потреблять ресурсы кеша маршрутизации; в этом случае предпочтительнее использовать RAW / PREROUTING.
Ваш исходящий маршрут не будет иметь значения, пока вы не попытаетесь отправить пакет обратно злоумышленнику. К этому времени вы уже понесли большую часть затрат на установку сокета и даже можете иметь блокировку потока, ожидающую, пока ядро решит, что у вас нет маршрута к хосту, плюс любая обработка ошибок, которую делает ваш серверный процесс, когда он приходит к выводу, что существует проблема с сетью. .
iptables или другой брандмауэр позволит вам блокировать входящий трафик и отбрасывать его до того, как он достигнет процесса демона на вашем сервере. В данном случае он кажется явно лучше.
iptables - это стандартный инструмент для блокировки ddos-атак. У меня есть огромный список iptables при очень сильной атаке ddos, и он работает очень хорошо. Я бы предпочел iptables.