在Linux中,使用路由到黑洞IP会导致比在IPtables中丢弃更好的性能?

在DDOS攻击期间,如果我们发现要阻塞的IP,我们会看到使用空路由而不是iptables的更好的性能?

空路由我们会做这样的事情:

ip route add blackhole <ip or range> 

在iptables中:

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

有没有区别? 我会怀疑route会更好,但我不确定。

假设你根据地址而不是目的地进行阻塞,那么在raw / PREROUTING中执行DROP就可以很好地工作,因为在做出任何路由决定之前,你基本上可以丢弃数据包。

但请记住,iptables规则本质上是一个链表,并在阻塞多个地址时使用ipset来获得最佳性能。

另一方面,如果按目的地进行阻塞,则在路由表与iptables之间的阻塞可能几乎没有区别,如果源IP被欺骗,在这种情况下,黑色的条目可能消耗路由caching资源; 在这种情况下,原始/ PREROUTING仍然是可取的。

在您尝试将数据包发送回攻击者之前,您的传出路线无关紧要。 到那个时候,你已经承担了套接字设置的大部分成本,甚至可能有一个线程阻塞,等待内核得出你没有路由到主机,加上处理你的服务器进程的任何错误,当它结束了networking问题。

iptables或其他防火墙将允许您阻止传入的stream量,并在到达服务器上的守护进程之前将其丢弃。 在这个用例中似乎显然是优越的。

iptables是阻止ddos攻击的标准工具。 我碰巧有非常沉重的ddos攻击下的一个巨大的iptables列表,它工作得很好。 我宁愿iptables。