底线优先:我无法让接收RAs的Linux盒使用RFC4191“默认路由器首选项”值来选择更高优先级的路由。相反,它首先学到的任何一条默认路线都是它所使用的,对所有人都是不利的。我是缺少了配置选项,还是缺少了内核升级,还是仅仅是注定永远?
长篇版本:
我有一个带有HA默认网关的网络(VRRP/备存)。上游ISP正在将一个/48路由到网关,然后我分割出/64块分配给我的基础设施中的机器(这样他们就可以为它们运行的容器分配全局可路由地址)。然后,每台机器通过radvd向网络的其他部分宣传其容器/64 (使用AdvDefaultLifetime 0显示它没有默认路由)。网关盒也有正在运行的容器,所以它们有自己的/64并做广告,但是使用AdvDefaultLifetime 30,因为网关确实有默认的路由。
我希望能够在网关上做有状态的防火墙,所以双向的所有流量都需要通过HA网关对中的同一个成员。没关系,我可以这样做--一个保持的优先级更高,我只是告诉那台机器上的radvd也以更高的优先级宣传它的默认路径。这样,如果“主”机器从平台上掉下来,一切都会转到另一台机器上,我们就没事了。
除了..。Linux似乎没有对路由器首选项进行任何操作。我已经浏览了内核源代码,虽然它小心地保留了路由标志中的值,而且rt6_score_route甚至看起来像在使用首选项,但我在生产中观察到的行为(使用3.13内核的Ubuntu14.04)是,首先学会的默认路由是使用的路由,而不管哪种路由具有更高的偏好。
除了保持保存以更改radvd配置文件(一个用AdvDefaultLifetime 30,当MASTER时,另一个用AdvDefaultLifetime 0时BACKUP)和重新加载radvd之外,我还能做些什么来确保RA中偏好较高的路由得到优先选择?
发布于 2016-04-08 08:07:21
最近的Linux内核具有您所要求的特性。如果配置内核,设置CONFIG_IPV6_ROUTER_PREF,请参见Networking support -> Networking options -> The IPv6 protocol -> Router Preference (RFC 4191) support。如果发行版默认关闭此功能,则可能需要重新编译内核。
https://serverfault.com/questions/768932
复制相似问题