Назад | Перейти на главную страницу

Приводит ли в Linux использование route to blackhole IP лучшую производительность, чем отключение iptables?

Если во время DDOS-атаки мы находим IP-адреса, которые хотим заблокировать, увидим ли мы лучшую производительность при использовании нулевого маршрута по сравнению с iptables?

Null routing мы бы сделали что-то вроде:

ip route add blackhole <ip or range>

В iptables:

/sbin/iptables -A INPUT -s <ip or range> -j DR

Нет разницы? Я подозреваю route будет работать лучше, но я не уверен.

Предполагая, что вы блокируете на основе источник адреса, а не пункта назначения, тогда выполнение DROP в raw / PREROUTING будет работать хорошо, поскольку вы, по сути, сможете отбросить пакет до того, как будет принято какое-либо решение о маршрутизации.

Однако помните, что правила iptables - это, по сути, связанный список, и для оптимальной производительности при блокировке ряда адресов вам следует использовать ipset.

С другой стороны, если блокировка по месту назначения, вероятно, будет небольшая разница между блокировкой в ​​таблице маршрутизации и iptables, ЗА ИСКЛЮЧЕНИЕМ, если исходные IP-адреса подделаны, и в этом случае записи с черной дырой могут потреблять ресурсы кеша маршрутизации; в этом случае предпочтительнее сырые / PREROUTING.

Ваш исходящий маршрут не будет иметь значения, пока вы не попытаетесь отправить пакет обратно злоумышленнику. К этому времени вы уже понесли большую часть затрат на установку сокета и даже можете иметь блокировку потока, ожидающую, пока ядро ​​решит, что у вас нет маршрута к хосту, плюс любая обработка ошибок, которую делает ваш серверный процесс, когда он приходит к выводу о сетевой проблеме. .

iptables или другой брандмауэр позволит вам блокировать входящий трафик и отбрасывать его до того, как он достигнет процесса демона на вашем сервере. В этом случае он кажется явно лучше.

iptables - это стандартный инструмент для блокировки ddos-атак. У меня есть огромный список iptables при очень сильной атаке ddos, и он работает очень хорошо. Я бы предпочел iptables.