2012-04-04 136 views
-1
bash-3.00# /usr/sbin/ip -6 route show 
default via fdc6:3001:8e20:9ce9::1 dev int0 metric 1024 expires 2133437sec mtu 1500 advmss 1440 metric10 4294967295 
unreachable default dev lo proto none metric -1 error -101 metric10 255 
unreachable default dev lo proto none metric -1 error -101 metric10 255 
unreachable default dev lo proto none metric -1 error -101 metric10 255 
fdc6:3001:8e20:b06::/64 dev ext0 metric 256 expires 2132985sec mtu 1500 advmss 1440 metric10 4294967295 
fdc6:3001:8e20:9ce9::/64 dev int0 metric 256 expires 2132977sec mtu 1500 advmss 1440 metric10 4294967295 
fe80::/64 dev int0 metric 256 expires 2132977sec mtu 1500 advmss 1440 metric10 4294967295 
fe80::/64 dev ext0 metric 256 expires 2132985sec mtu 1500 advmss 1440 metric10 4294967295 
default via fe80::226:88ff:fee2:5d01 dev int0 proto kernel metric 1024 expires 154sec mtu 1500 advmss 1440 metric10 64 
default via fe80::226:88ff:fee2:5d02 dev ext0 proto kernel metric 1024 expires 175sec mtu 1500 advmss 1440 metric10 64 
default via fdc6:3001:8e20:b06::1 dev ext0 metric 1024 expires 2133059sec mtu 1500 advmss 1440 metric10 4294967295 
unreachable default dev lo proto none metric -1 error -101 metric10 255 
ff00::/8 dev int0 metric 256 expires 2132977sec mtu 1500 advmss 1440 metric10 4294967295 
ff00::/8 dev ext0 metric 256 expires 2132985sec mtu 1500 advmss 1440 metric10 4294967295 
unreachable default dev lo proto none metric -1 error -101 metric10 255 

在上面的输出,并路由的订货指示其中路由查找的顺序?或者“hoplimit”(最后一列)是否会影响查找的顺序? 'hoplimit'和'metric'之间有什么区别,以及哪两个影响查找顺序?IPv6路由查找顺序

谢谢!

+0

问这个问题的具体原因是,当与服务器(其路由如上所述)在同一子网中的客户端启动到它的连接时,服务器以网关的目标地址(fdc6:3001: 8e20:9ce9 :: 1),而不是直接与客户交谈。但是,当我删除默认网关时,连接将通过服务器。 – Maddy 2012-04-04 11:45:25

+0

当我再次添加路由时,通常会再次显示在顶部,并阻止再次连接。对于子网的情况,不应该为路线考虑最佳匹配(在本例中为fdc6:3001:8e20:9ce9 ::/64)?有什么想法吗? – Maddy 2012-04-04 11:49:25

回答

3
  1. 路由首先按最长匹配查找。所以如果有一个/ 64路由,一个/ 48路由和一个默认路由(它是/ 0),它们都与数据包的目的地匹配,那么将使用/ 64路由,其他路由将被忽略。

    实施例:给定的FDC6目的地:3001:8e20:9ce9:1:2:3:4和以下路线:

    default via fdc6:3001:8e20:9ce9::1 dev int0 metric 1024 expires 2133437sec mtu 1500 advmss 1440 metric10 4294967295 
    fdc6:3001:8e20:9ce9::/64 dev int0 metric 256 expires 2132977sec mtu 1500 advmss 1440 metric10 4294967295 
    

    的/ 64路由将总是被选择。

    这是尽管您的意见,否则暗示。你在评论中描述的内容不应该发生。请提供有问题的数据包的确切源和目标IP地址以及源和目标MAC地址,以进一步诊断此问题。

  2. 如果有多条到目的地的路由具有相同的前缀长度,那么首选具有最佳指标的路由。

    您的路由表中没有任何示例,其中关系按指标中断。您需要具有相同目的地和前缀长度但不同指标的路线。

  3. 如果仍有多个路由,则会在每个可用路径上进行负载平衡。

hoplimit在路由查找过程中根本没有使用。它用于在选择路由之后设置本地发出的传出数据包的跳数限制。

+0

客户端数据包详细信息:源地址:fdc6:3001:8e20:b06:dd9c:57d1:8240:8caa目标地址:fdc6:3001:8e20:b06 :: 171 - 对应的MAC地址:00:50:56:86: 07:94和00:18:7d:1c:a9:71。服务器数据包详细信息:源地址:fdc6:3001:8e20:b06 :: 171目标地址:fdc6:3001:8e20:b06:dd9c:57d1:8240:8caa - MAC地址:00:18:7d:1c:a9: 71和00:26:88:e2:5d:02。服务器正在将数据包发送到属于网关的MAC地址00:26:88:e2:5d:02。 – Maddy 2012-04-05 04:24:13

+0

奇怪。服务器上的ip route get fdc6:3001:8e20:b06:dd9c:57d1:8240:8caa'的输出是什么? – Celada 2012-04-05 14:20:49

+0

$/usr/sbin/ip route get fdc6:3001:8e20:b06:dd9c:57d1:8240:8caa fdc6:3001:8e20:b06:dd9c:57d1:8240:8caa via fdc6:3001:8e20:b06: dd9c:57d1:8240:8caa dev ext0 src fdc6:3001:8e20:b06 :: 171 metric 0 cache mtu 1500 advmss 1440 metric10 4294967295 – Maddy 2012-04-05 15:53:47

0

IPv6的路由查找与传统的IPv4没有根本的区别。

IP堆栈将找到最匹配目标IP(即最长前缀)并具有最低度量的路由。

跳数限制不会影响路由决策。 度量指示路线的“成本”。它应该根据到目的地的跳数以及路由的带宽,延迟,价格等来设置。 跳数限制仅用于预先设置IPv6报头中的跳数限制字段。

0

您正在看到重定向ICMP消息的效果。

ip -6 route flush cache使您的路由再次工作。

sysctl -w net.ipv6.conf.all.accept_redirects=0忽略未来的重定向。

最有可能的原因是启动/重新启动时路由不完整的网关。您可能想要告诉该系统不要发送重定向数据包。