大家可能都知道,3.6 Linux内核系列已经去掉了ipv4路由缓存,这对多路径路由产生了严重的影响。IPv4 路由代码(与 IPv6 不同)以循环方式选择下一跳,因此从给定源 IP 到给定目标 IP 的数据包并不总是经过相同的下一跳。在 3.6 之前,路由缓存正在纠正这种情况,因为下一跳一旦被选中,就会留在缓存中,并且所有从同一源到同一目的地的其他数据包都经过该下一跳。现在为每个数据包重新选择下一跳,这导致了奇怪的事情:路由表中有 2 个等价默认路由,每个都指向一个互联网提供商,我什至无法建立 TCP 连接,因为初始 SYN 和最终 ACK走不同的路线,
是否有任何相对简单的方法来恢复多路径路由的正常行为,以便按流而不是按数据包选择下一跳?是否有补丁可以使 IPv4 下一跳选择基于哈希,就像 IPv6 一样?或者大家都是怎么处理的?