环境: 在单网卡(两个 vlan )的 CentOS 7 系统上搭建了 IPv6 网关的下游设备通过 NAT66 模式对外访问,该网关部署有一个 RA 服务(纯 SLAAC 模式)来让下游设备自动配置 IPv6 地址,RA 服务具体配置文件附在最后。
现状:
网关下游 Windows 设备正常获取 RA 并自动收成地址,使用 IPv6 对外访问均正常,也就是整个 NAT66 功能均没有任何问题。
Windows ( 10 ) IPv6 会不时出现 "无 Internet 访问权限" 的情况。有时候很快会出现,有时候几个小时才出现,总之出现的时机没有很明显的特征。这个状态有时候会在收到网关的下一个 RA 消息广播的时候自动恢复,有时候就一直持续除非手动重启接口等方式来恢复,这个时候系统发送 路由请求消息( RS ),RA 服务正常响应。
如果下游设备使用手动方式配置固定 IPv6 地址,一直使用都没有任何问题。
使用 dnsmasq 和 radvd 分别搭建 RA 服务均有同样的问题。
特征: "无 Internet 访问权限" 出现的时候 IPv6 地址是正常有效并且是刚生成不久的状态。但 ::/0 的默认路由条目没有了,所以想问题应该就出在这里。
分析:
前缀和路由的各种 lifetime 参数设置不对,但参考其他正常的 RA 消息尝试修改其他值问题依旧。
RA 发送间隔有问题, 但调小间隔后问题依旧。
windows 自身机制或配置有问题导致当默认路由消失的时候不能及时发送路由请求消息( RS ), 但该系统在其他路由器纯 SLAAC 模式下工作正常(至少没有明显发现这个问题)。
centos 配置有问题或者说服务有冲突, 比如:NetworkManaer 与 radvd , 因为 NetworkManaer 好像支持管理 radvd 。
** 个人能力有限分析有了一些原因但总又能推翻,所以有了解的大佬能指教一下不? **
附:
enable-ra
ra-param=enp0, 120, 3600
dhcp-range=enp0, 2001:db8::, ra-only, 1h
dhcp-option=option6:dns-server, [2001:db8::1]
interface enp0
{
IgnoreIfMissing on;
AdvSendAdvert on;
MinRtrAdvInterval 120;
MaxRtrAdvInterval 300;
AdvManagedFlag off;
AdvOtherConfigFlag off;
AdvDefaultLifetime 3600;
AdvDefaultPreference medium;
AdvSourceLLAddress on;
prefix 2001:db8::/64
{
AdvValidLifetime 3600;
AdvPreferredLifetime 3600;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
RDNSS 2001:db8::1
{
AdvRDNSSLifetime 3600;
};
};
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.