IPv6 SLAAC介绍
所谓LSAAC,即Stateless Address Autoconfiguration,无状态地址自动配置。SLAAC技术是自动获取IP地址的技术,在IPv6中,除了配置使用HDCP外,还支持使用SLAAC技术获取IPv6地址,以达到设备即插即用的效果。
SLAAC的实现依托于NDP协议中的RS报文和RA报文。在IPv6的NDP协议中,共有五种报文,而RS报文,即Router Solicitation,路由器请求报文,RA报文,即Router Advertisement,路由器公告报文。
IPv6可以设置一个网络设备上线后,先发送RS报文,在其上层路由器上可以配置定时发送RA报文。在一个网络设备收到RA报文后,就可以得到该链路上的IPv6地址前缀,之后,该网络设备就会根据IPv6地址范围和EUI64规则计算出一个IPv6地址给自己使用。因此,利用RS和RA报文,一个IPv6的网络设备就可以实现无状态IP地址配置了。
问题描述
PC端在路由设备IPv6地址前缀更新之后,有概率出现无法访问IPv6网站的问题
问题分析
抓包发现,当RTL8197设备的IPv6地址前缀发生变化的时候,PC端可以获取到IPv6地址,但是请求的时候依然使用的之前的IPv6地址,而且RTL8197设备也不会回复地址无效
解决方案
可以在radvd进程里面修改当检测到iface->AdvDefaultLifetime为0的时候就将pinfo->nd_opt_pi_preferred_time=3,让旧的IPv6地址过期,这样就可以解决设备用旧