1、搭建radvd环境
2、确认网口配置信息
$ cat /proc/sys/net/ipv6/conf/all/autoconf
1
$ cat /proc/sys/net/ipv6/conf/default/autoconf
1
$ cat /proc/sys/net/ipv6/conf/eth0/autoconf
1
$ cat /proc/sys/net/ipv6/conf/all/accept_ra_pinfo
1
$ cat /proc/sys/net/ipv6/conf/default/accept_ra_pinfo
1
$ cat /proc/sys/net/ipv6/conf/eth0/accept_ra_pinfo
3、问题
ifconfig eth0
发现 ipv6 全球地址没有生成
分析ra报文处理流程
icmpv6_rcv -> ndisc_rcv-> ndisc_router_discovery -> addrconf_prefix_rcv
发现异常出现的位置
if (!ipv6_accept_ra(in6_dev)) {
ND_PRINTK(2, info,"RA: %s, did not accept ra for dev: %s\n", __func__, skb->dev->name);
goto skip_linkparms;
}
发现forwarding与 accept_ra 冲突
修改 /proc/sys/net/ipv6/conf/eth0/forwarding 为0