use*_*986 8 network-programming ipv6 linux-kernel openstack openstack-nova
当主节点发生故障时,其IP(IPv6)将浮动到备用节点.备用节点应该在该IP上提供服务.
鉴于这两个节点共存于同一LAN中,通常可以看出备用节点变得无法访问.接口为UP和RUNNING,并分配了IPv6地址,但所有IP操作都已停止.
一种可能性是当IP配置为待机时,重复地址检测(DAD)正在开始.RFC表示必须停止所有IP操作.
我的问题是关于Linux内核IPv6实现的细节.以前,从内核代码来看,我认为必须设置sysctl变量"disable_ipv6".但是内核没有禁用IPv6,它只是停止该接口上的所有IP操作.
任何人都可以解释Linux内核IPv6在DAD失败时"禁用这些IP操作"时的作用吗?如果不进行DOWN&UP接口,可以重置为正常吗?代码中的任何指针都将非常有用.
本文详细阐述了有关 IPv6 实现和浮动 IP 配置的内核中实际发生的情况的规范和行为。它还提出了一个解决方案: http://riticindirection.com/2015/06/30/ipv6_dad_floating_ips/
它提到对于“用户分配的本地链路”,IPv6 分配陷入暂定状态,在内核中由 IFA_F_TENTATIVE 标记。此状态意味着 DAD 正在进行,并且 IP 尚未验证。对于“自动分配的本地链路”,如果 DAD 失败,它会重试 Accept_DAD 次(每次都使用新的自动生成的 IP),然后在该接口上禁用 IPv6。
它建议的解决方案是:在配置浮动IP之前禁用DAD,并在其脱离暂定状态时重新启用它。
有关更多详细信息,请参阅上面的链接。
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |