1.问题现象
LAN下联的设备尝试获取ipv6地址,却没有获取到全球ipv6地址。如下
1.未获取到全球ipv6地址的网卡
以太网适配器 以太网 2:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Realtek PCIe GbE Family Controller #2
物理地址. . . . . . . . . . . . . : 14-6B-9C-BD-46-8D
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . :fe80::a032:75cd:be6b:89dc%4(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.1.2(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
2.获取到全球ipv6地址的网卡
以太网适配器 以太网 4:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Realtek USB GbE Family Controller
物理地址. . . . . . . . . . . . . : 00-E0-4C-68-02-6D
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
IPv6 地址 . . . . . . . . . . . . :2408:8459:3030:598e::7aa(首选)
获得租约的时间 . . . . . . . . . : 2021年9月14日 15:10:28
租约过期的时间 . . . . . . . . . : 2157年10月21日 23:48:43
IPv6 地址 . . . . . . . . . . . . :2408:8459:3030:598e:b147:d48f:affe:70a8(首选)
IPv6 地址 . . . . . . . . . . . . :fd22:14ab:59d6::7aa(首选)
获得租约的时间 . . . . . . . . . : 2021年9月14日 15:10:28
租约过期的时间 . . . . . . . . . : 2157年10月21日 23:48:43
IPv6 地址 . . . . . . . . . . . . : fd22:14ab:59d6:0:b147:d48f:affe:70a8(首选)
临时 IPv6 地址. . . . . . . . . . : 2408:8459:3030:598e:29e6:1c87:e6c8:6a0b(首选)
临时 IPv6 地址. . . . . . . . . . : fd22:14ab:59d6:0:29e6:1c87:e6c8:6a0b(首选)
本地链接 IPv6 地址. . . . . . . . : fe80::b147:d48f:affe:70a8%30(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.2.7(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
2.分析与调试
1.异常的
ip -6 addr
3: eth0: <NOARP,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 1000 #--> eth0 是WAN
inet6 240e:47c:30a8:4cd8:16a4:a44b:652a:7aa/64 scope global dynamic mngtmpaddr
valid_lft 602955sec preferred_lft 84555sec
inet6 fe80::16a4:a44b:652a:7aa/64 scope link
valid_lft forever preferred_lft forever37: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000 #--> br-lan 是LAN的bridge
inet6 fd05:ac85:bb46::1/60 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::80b:c0ff:fe30:df8b/64 scope link
valid_lft forever preferred_lft forever
2.正常的
3: eth0: <NOARP,UP,LOWER_UP> mtu 1400 state UNKNOWN qlen 1000 #--> eth0 是WAN
inet6 2408:8459:3030:598e:16a4:9c7f:ee12:c303/128 scope global
valid_lft forever preferred_lft forever44: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000 #--> br-lan 是LAN的bridge
inet6 fd22:14ab:59d6::1/60 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 2408:8459:3030:598e::1/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::54d0:1aff:fe32:2d93/64 scope link
valid_lft forever preferred_lft forever
3.logread 日志分析
odhcpd: A default route is present but there is no public prefix on br-lan thus we don't announce a default route!
通过odhcpd代码分析是br-lan 没有全球的ipv6导致。
3.疑问点
1.br-lan 桥是如何获取到ipv6的地址
2.如何在终端 通过命令,使br-lan获取到ipv6的地址。
附配置选项:
1.异常的
/ #
cat /etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'config globals 'globals'
option ula_prefix 'fd05:ac85:bb46::/48'config interface 'lan'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
option ifname 'eth0 rndis0'/ #
/ #cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf'
option nonwildcard '1'
option localservice '1'config dhcp 'lan'
option interface 'lan'
option ignore '0'
option start '2'
option limit '252'
option leasetime '24'
option dhcpv6 'server'
option ra 'server'
option ra_management '1'config dhcp 'wan'
option interface 'wan'
option ignore '1'config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'/ #