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

301 天前
 ac169

环境: 在单网卡(两个 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;
	}; 
};
1167 次点击
所在节点    Linux
4 条回复
shenwei18
301 天前
`SLAAC 无状态分配 IP`在 win10 没问题
`RDNSS`分配的 dns 在 win10 中有问题,有概率收不到 RA 服务器下发的 DNS 地址,所以出现**无 Internet 访问权限**。

虽然在 Windows 10 1703 开始,Windows 支持使用`RDNSS`无状态获取 DNS 服务器--IPv6 标准(RFC 8106)。
> 实测我的 Win10TLSC 2021 ,不行,但是在`ipv6 单栈`的情况下,可以收到`RDNSS`下发的 dns 地址。参考:[After update from Windows 10 to Windows 11 - IPv6 RFC 6106 / RDNSS (Router Advertisement Options for DNS) stopped working - Microsoft Q&A]( https://learn.microsoft.com/en-us/answers/questions/884756/after-update-from-windows-10-to-windows-11-ipv6-rf)
ac169
301 天前
@shenwei18

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

我的观察 RDNSS 目前只有 WIN 7 有问题无法处理!

IPv6 地址,DNS 都是正常通过 RA 消息获取并配置! 其实问题完全是 ::/0 的默认路由条目没有导致的,这点基本可以确定,只是不知道什么原因。
shenwei18
301 天前
@ac169 #2 这个我倒是没遇到?加油,有结果踢一下
wheat0r
301 天前
说个题外话,各种文档里都遵守 2001:db8::/32 这个文档段,一度让我以为这个段是 ULA

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1012893

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX