![使用 IP 数据报和 TTL 进行 Dos 攻击的可能性](https://linux22.com/image/1662666/%E4%BD%BF%E7%94%A8%20IP%20%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%92%8C%20TTL%20%E8%BF%9B%E8%A1%8C%20Dos%20%E6%94%BB%E5%87%BB%E7%9A%84%E5%8F%AF%E8%83%BD%E6%80%A7.png)
所以我最近学习了整个 IP 数据报及其报头。我们学习了 TTL 字段,该字段之所以存在是因为有时来自某个网络 ID 的数据包会被发送到另一个路由器,但在另一个路由器中,它会被发送回第一个路由器,从而导致无限循环,给系统带来负担。因此,TTL 是为了限制数据包可以传输的次数,从而结束循环。
所以我想到的是,你可以向一个与另一个路由器有环路连接的路由器发送一个 TTL 设置为 256 的数据报,这意味着每次处理请求时,每个路由器都会处理 256 次(发送和接收),这使得非常容易受到 Dos 攻击,因为路由器占用的计算能力是你的 256 倍,因此很容易发送大量数据包导致系统过载。
所以我发现肯定有人在我之前想到了这一点,并且想知道什么可以阻止这种情况发生?是否有一个功能可以阻止这种情况发生?也许是某种防御机制?我尝试用谷歌搜索,但找不到合适的措辞方式。谢谢!
答案1
答案2
所以我想肯定有人在我之前想到了这一点,并且想知道如何阻止这种情况发生?是否有一个功能可以阻止这种情况?也许是某种防御机制?
是的,一般来说,不产生路由循环首先。它们不是您在正常运行中会看到的东西。自动路由协议(例如 OSPF 或 BGP)是专门为生成无环路网络而构建的。
循环确实会发生,并且这种 DoS是担心(尤其是没用过网络范围内很容易创建一个不被注意的路由循环),但主要的缓解措施是修复配置,以便彻底消除路由循环——而不是在复杂的防御上浪费资源。
(例如,路由器之间经常使用点对点链接。可以将链接配置为使用 /24 或类似的子网掩码,这似乎可以正常工作,但是,一旦联系到该 /24 中未使用的地址,两个路由器都会将数据包从链接的一端反弹到另一端。常见的缓解方法是将网络掩码更改为尽可能小的掩码,即 /31 或 /127,这样就不会有未使用的地址,路由循环也会消失。
再举一个例子,假设路由器 A 具有一条通向路由器 B 的整个 /16 的广泛“聚合”路由,但路由器 B 只识别几个较小的范围,而其他所有内容都沿着默认路由返回路由器 A。换句话说,正在使用的子网工作正常,但不是正在使用的路由器上存在一个等待触发的循环。缓解措施还是要彻底移除循环,只需在路由器 B 上为整个 /16 添加“丢弃”路由即可。)