说真的,我阻止(返回,当然不是丢弃)UDP :53 到我的权威名称服务器。解析器将回退到 TCP,我不需要任何针对欺骗性源 IP 的速率限制。因为 DDoS 攻击的欺骗受害者只会得到相当于 UDP 或 TCP ack 的连接被拒绝,而不是更大的 DNS 答案。
简单的解决方案,一切都很好。还是不是那么简单?
说真的,我阻止(返回,当然不是丢弃)UDP :53 到我的权威名称服务器。解析器将回退到 TCP,我不需要任何针对欺骗性源 IP 的速率限制。因为 DDoS 攻击的欺骗受害者只会得到相当于 UDP 或 TCP ack 的连接被拒绝,而不是更大的 DNS 答案。
简单的解决方案,一切都很好。还是不是那么简单?
将客户端切换到 TCP 以进行常规查询的正常机制是发送截断的响应(设置标志的响应
TC
)。这是用于实施速率限制的常用策略,目的是在仍然提供服务的同时限制基于 UDP 的放大攻击。
我一般不会依赖解析器服务器,甚至会自发地尝试 TCP,即使这当然是允许的,如果它们这样做从稳健性的角度来看会很好。
AFAIK 当通过默认 UDP 传输联系权威名称服务器失败时,DNS 协议不要求必须通过 TCP 重试请求。实际上,阻止 UDP 将有效地使您的权威名称服务器无法访问。
通常的方法是 DNS 服务器需要发送一个
TC
设置了位(截断)的 UDP 响应,通知客户端消息长度已超过允许的大小,并通过 TCP 重试。