由于可能发生MITM攻击,应阻止ICMP重定向消息。但是,ICMP重定向消息的最初目的是通知主机更好的路由器(或网关)。

然后,在主机上禁用ICMP重定向消息是否存在速度问题?还是微不足道?

评论

在正确配置的网络中,重定向不会发生,也没有必要。严格遵守规则会导致数据包丢失-永远不会将数据包转发出接收该数据包的接口,但几十年来没有人这样做。重定向不能被信任,因此大多数主机都不接受它们,因此大多数管理员将其路由器配置为不麻烦发送它们。

#1 楼

当您在同一子网中有主机或路由器A与其他两个路由器BC并同时连接到这两个路由器时,最常见的是ICMP重定向。考虑以下网络:

   |__192.168.1.0/24__|
   | |                |
     |
     |   |___192.168.8.0/24__|
     |   | |                 |
     B     C
|____|_____|____|
|       |       |
        A


A将具有指向B的路由(很可能是默认路由),而B将具有指向192.168.8.0/24的更具体路由C

没有ICMP重定向,所有从A192.168.8.0/24的流量都将被路由A->B->C

启用ICMP重定向后,B会通知A C是更好的下一个-跃点和后续流量将被路由。重定向和重新设计网络以完全避免这种情况将是首选解决方案,例如:

   |__192.168.1.0/24__|
   | |                |
     |
     |   |___192.168.8.0/24__|
     |   | |                 |
     B-----C
|____|__________|
|       |       |
        A


(或完全删除A->C并直接将C挂掉192.168.8.0/24) 。

评论


那么,您的意思是网络结构比ICMP重定向更重要?

– baeharam
18/12/6在1:19

ICMP重定向指示已配置了次优路由,并尝试解决此问题-IMO,这是一个设计问题

–本杰明·戴尔(Benjamin Dale)
18/12/6在4:47

实际上,您的重新设计只是消除了使用ICMP重定向优化路由的可能性-您获得的是不可避免的A-> B-> C路由和back(!)。优化重新设计应删除C并将其子网/链接连接到B。

– Zac67
18/12/6在18:35



是的-我在进行重新设计时确实发生了这种情况:)但是我发现删除C可能会改变很多事情-有时C可能是不可避免的要求(将提供者/第三部分的NTU传输到另一个网络等)。

–本杰明·戴尔(Benjamin Dale)
18/12/6在21:49

#2 楼

ICMP重定向是信任时代的残余,部分原因是联网的计算机拥有管理员,而BYOD是不可想象的。这将导致该路由器不必要的工作以及其接口上的不必要流量,从而稍微降低使用该网关的每个人的性能。

还会增加客户端的延迟,因为每个数据包都必须占用

但是,在一般情况下,在现代网络上,这两个“成本”都可以忽略不计。

解决此问题的理想方法是要在客户端上添加以使用正确网关的路由。 ICMP重定向提供了一种使其自动发生的方式,但可能不应该被信任-但是它们仍然表明存在更好的路由,并且对其进行记录可以让人们考虑进行此类更改(也许在咨询网络管理员之后)。

重新设计网络可能是错误的选择。

评论


绝对:有时候配置的简单性比数据包效率重要得多。我见过的网络中所有路由都是静态的,“次优”路由很多,流量低,配置错误从不发生。快乐的网络管理员在中央路由器上保持了完美的静态路由,仅此而已。始终参考自己组织的优先事项。当然,除非存在实际问题,否则不要重新设计网络

– jonathanjo
18年6月6日在10:18

“在现代网络上,这两个“成本”都可以忽略不计””-是的,但前提是只有足够的链路带宽(您可能会在“现代”中包括它;-)。

– Zac67
18/12/6在18:40

主机上的静态路由?颤抖简单,是的,但是很难捕捉

–本杰明·戴尔(Benjamin Dale)
18/12/6在21:51