自建 RA 服务, Windows IPv6 不时出现“无 Internet 访问权限”, 默认路由条目丢失的情况

39次阅读

共计 1217 个字符,预计需要花费 4 分钟才能阅读完成。

环境: 在单网卡(两个 vlan)的 CentOS 7 系统上搭建了 IPv6 网关的下游设备通过 NAT66 模式对外访问,该网关部署有一个 RA 服务(纯 SLAAC 模式)来让下游设备自动配置 IPv6 地址,RA 服务具体配置文件附在最后。

现状:

  1. 网关下游 Windows 设备正常获取 RA 并自动收成地址,使用 IPv6 对外访问均正常,也就是整个 NAT66 功能均没有任何问题。

  2. Windows(10)IPv6 会不时出现 “ 无 Internet 访问权限 ” 的情况。有时候很快会出现,有时候几个小时才出现,总之出现的时机没有很明显的特征。这个状态有时候会在收到网关的下一个 RA 消息广播的时候自动恢复,有时候就一直持续除非手动重启接口等方式来恢复,这个时候系统发送 路由请求消息(RS),RA 服务正常响应。

  3. 如果下游设备使用手动方式配置固定 IPv6 地址,一直使用都没有任何问题。

  4. 使用 dnsmasq 和 radvd 分别搭建 RA 服务均有同样的问题。

特征: “ 无 Internet 访问权限 ” 出现的时候 IPv6 地址是正常有效并且是刚生成不久的状态。但 ::/0 的默认路由条目没有了,所以想问题应该就出在这里。

分析:

  1. 前缀和路由的各种 lifetime 参数设置不对,但参考其他正常的 RA 消息尝试修改其他值问题依旧。

  2. RA 发送间隔有问题,但调小间隔后问题依旧。

  3. windows 自身机制或配置有问题导致当默认路由消失的时候不能及时发送路由请求消息(RS), 但该系统在其他路由器纯 SLAAC 模式下工作正常(至少没有明显发现这个问题)。

  4. centos 配置有问题或者说服务有冲突,比如:NetworkManaer 与 radvd,因为 NetworkManaer 好像支持管理 radvd。

** 个人能力有限分析有了一些原因但总又能推翻,所以有了解的大佬能指教一下不?**

附:

  1. dnsmasq
enable-ra
ra-param=enp0, 120, 3600
dhcp-range=enp0, 2001:db8::, ra-only, 1h
dhcp-option=option6:dns-server, [2001:db8::1]
  1. radvd
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;}; 
};
正文完
 0