接入与核心和服务器之间运行OSPFV3,服务器上均配置IPV6地址为2000::1 loopback接口,通过OSPF等价路由的方式来实现服务器的负载分担
问题描述核心去ping2000::1不通,把接入连接2台服务器的任意一个物理链路DOWN掉后核心能够ping通2000::1
过程分析
1、h3c交换机设备缺省情况下不支持前缀大于64的为IPV6路由,可以通过以下命令修改模式:
hardware-resource routing-mode { ipv6-64 |ipv6-128 } 缺省情况下,设备不支持前缀大于64位的IPv6路由功能
2、Ipv4+ipv6(64bit)是可以共享LPM的,如果需要支持ipv6(128bit)需要把LPM一分为2,一半支持Ipv4+ipv6(64bit),另一半支持ipv6(128bit),这样Ipv4+ipv6(64bit)规格就要减半;所以目前设备实现是合理的,有需要的时候再切换模式,这样可以保证IPV4 的规格尽可能大,由于涉及硬件资源的重新划分,因此需要重启设备;
3、为什么缺省情况下,只有一条128位的路由能通,存在等价路由的情况就不通了?
当学习到一条128位的路由(非等价)的时候它和一条ND表项是一样的,就是一条主机路由,这个时候在硬件底层下发的是IPv6 table 表(ND 和主机路由下发的地方),因此这个时候是没有那个不支持大于64位路由的限制的。 之后这条路由变成了等价路由,不再是一条简单的主机路由了,这个时候不能占用上述的硬件表,然而由于芯片的限制,默认情况下发前缀路由的硬件表是不支持大于64位路由的,因此就不通了。
解决方法修改设备支持前缀大于64位的IPV6路由,并重启设备
hardware-resource routing-mode ipv6-128