IPv6问题:获取到地址后,ssk进程出现段错误挂掉。
打开SSK Debug,在cli命令模式中执行
loglevel set ssk Debug
很顺利的就定位到挂掉函数,IPv6的配置过程略去。
原因为新增加的代码,没有处理好接口地址的获取,即DHCPCv6没有使用IANA字段获取到IPv6的地址,但代码中又去使用这个地址导致。
在上级IPv6服务器发的RA报文中,当m标志位为1时,路由器设备才需要请求iana;m标志位为0是直接从ra报文中获取前缀自己生成一个地址;在connstatus.c里面,有一个对ra报文的处理, 如果收到Ra中M为0 ,则不请求IANA
按描述,现在我们的服务器发的RA中M为0 ,O为1 , dhcp6c没有请求IANA,所以没有IPv6地址 ;但以前的版本是不管RA中M是否为0,都请求IANA的。虽然可能与协议不符合,但兼容性好。
可以看到,RA报文中的M标志位为0,但是又没有附带前缀信息,导致我们dhcp6c去请求的时候没有请求iana,所以我们wan口就没有地址,写文件的时候就段错误了,这是一种异常情况,没有考虑到,所以代码上只需要修改一下写文件时做判空处理即可