監聽路由廣播
安裝 rdisc6
sudo apt-get install rdisc6
監聽RA
sudo rdisc6 eth0
通常輸出
Soliciting ff02::2 (ff02::2) on eth0...
Hop limit : 64 ( 0x40) // 路由器广告中指定的跳数限制
Stateful address conf. : Yes // 这意味着除了SLAAC(无状态地址自动配置)外,设备还可以通过DHCPv6获取IPv6地址和其他配置信息。
Stateful other conf. : Yes // 设备可以通过DHCPv6获取除IPv6地址之外的其他网络配置信息。
Mobile home agent : No // 指示路由器是否充当移动家园代理
Router preference : medium // 路由器優先級適中
Neighbor discovery proxy : No // No 表示此路由器不充当邻居发现代理。
Router lifetime : 1800 (0x00000708) seconds // 路由器的有效寿命
Reachable time : unspecified (0x00000000) // 指示可达性时间
Retransmit time : unspecified (0x00000000) // 指示重传时间
Source link-layer address: MAC地址
MTU : 1440 bytes (valid)
Prefix : 前缀 /64
On-link : Yes // 表示此前缀是本地链路上的,即设备可以直接与同一前缀内的其他设备通信,无需通过路由器转发。
Autonomous address conf.: Yes // 表示此前缀支持自主地址配置,即设备可以通过SLAAC自动生成其IPv6地址。
Valid time : 60504 (0x0000ec58) seconds // 前缀的有效时间
Pref. time : 60504 (0x0000ec58) seconds // 前缀的首选时间
from fe80::be24:11ff:feaf:51ac // 路由器的本地地址
需要檢查 Source link-layer address
Prefix
Autonomous address conf.
如果不存在前缀以及mac地址,則可能是路由問題
檢查系統配置
檢查accept_ra和autoconf
sysctl net.ipv6.conf.eth0.accept_ra
sysctl net.ipv6.conf.eth0.autoconf
輸出
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.autoconf = 1
0則未開啟,手動啟用
sudo sysctl -w net.ipv6.conf.eth0.accept_ra=1
sudo sysctl -w net.ipv6.conf.eth0.autoconf=1
檢查interfaces
sudo nano /etc/network/interfaces
確定是否包含 iface eth0 inet6 auto
注意網卡名稱是否正確(當初沒主意到卡了我一整天。。)
重啟網絡服務
sudo systemctl restart networking
檢查systemd-networkd
sudo nano /etc/systemd/network/10-eth0.network
是否包含
[Network]
DHCP=ipv6
IPv6AcceptRA=true
重新啟動網絡服務 sudo systemctl restart systemd-networkd