现代路由器会丢弃格式错误的 IP 数据包吗

现代路由器会丢弃格式错误的 IP 数据包吗

如果我使用家用路由器(例如 Netgear、D-Link)在家庭网络中发送 IP 数据包,并且在目标字段中使用了错误的 IP,路由器会丢弃此类数据包还是会对其进行路由?

答案1

带有伪造源地址的数据包并非格式错误;从语法上讲,它格式正确。因此没有路由器会将其作为“格式错误”丢弃。

如果伪造的源地址违反了入口或出口过滤规则 - 例如,如果您将源地址为 192.168.xy 的数据包发送到内部使用 192.168.x 的 NAT 设备的外部接口 - 那么路由器将丢弃它。

如果伪造的源地址只是互联网上的某个随机设备,那么路由器会正常处理它。如果“正常处理”意味着将一些大于请求数据包的数据发送回伪造的源,那么这就是所谓的放大攻击。

答案2

如果 IP 数据报格式错误(校验和不匹配,...),路由器应该直接丢弃它。它的工作是找到将有意义的传入数据报转发到何处。

但是大多数路由器(鉴于当今电子设备的功能和性能要强大得多)承担了更多任务。例如,不转发来自“错误”接口(例如目标网络中的虚假地址)或明显被篡改(源地址是广播地址)的源地址数据报,直至通过 IP 源/目标、TCP/UDP 源/目标端口或其他防火墙功能(包括 NAT/PAT)进行过滤。即使执行最基本的这些操作也可以避免无用的流量并有助于提高安全性。例如,某些 TCP/IP 堆栈在处理具有非法/不寻常标志组合的数据报或段时会行为不当甚至崩溃,对伪造的源地址做出反应可能会产生不良后果(例如(臭名昭著的)米特尼克攻击)。

许多商业产品的一个相当烦人的“功能”是它们会默默地丢弃使用保留标志(通常设置为零,用于将来的扩展)的 IP 数据报或 TCP 段。当 Linux 的 TCP 开始认真使用 ECN(显式拥塞通知)时,许多连接都会失败:途中的一些“有帮助的”路由器注意到设置的“非法”标志,并默默地丢弃了流量。

相关内容