Ubuntu ipv6 本地链路未设置

Ubuntu ipv6 本地链路未设置

我有一个 USB 以太网适配器,用于测试网络配置,Raspberry Pi 位于电缆的另一端。

我正在尝试设置 ipv6 连接,但从未设置过链路本地地址。在我的本地机器上:

$ ip -br a
ip a
enxa0cec855bd4d  DOWN 
$ sudo ip -6 addr add "fc00:7500:6700::1/64" dev enxa0cec855bd4d 
$ ip a
enxa0cec855bd4d  DOWN           fc00:7500:6700::1/64 
# Power up raspberry so iface comes up
$ ip a
enxa0cec855bd4d  UP             fc00:7500:6700::1/64

没有 fe80:: 地址 :(,让我们从头开始尝试 iface 是否启动:

$ ip -br a
ip a
enxa0cec855bd4d  UP 
$ sudo ip -6 addr add "fc00:7500:6700::1/64" dev enxa0cec855bd4d 
$ ip a
enxa0cec855bd4d  UP           fc00:7500:6700::1/64 

没有链路本地地址。

我的主要互联网 iface 正确获取了 ipv6 本地链接和全局地址,我有以下 sysctl

net.ipv6.conf.enxa0cec855bd4d.accept_dad = 1
net.ipv6.conf.enxa0cec855bd4d.accept_ra = 0
net.ipv6.conf.enxa0cec855bd4d.addr_gen_mode = 1
net.ipv6.conf.enxa0cec855bd4d.autoconf = 1
net.ipv6.conf.enxa0cec855bd4d.disable_ipv6 = 0

为什么这个 iface 没有获得链接本地地址?

答案1

我发现我的 RPI 将 addr_gen_mode 设置为 1,并且我没有运行 network-manager,因此没有设置地址。我在 sysctl.conf 中将其恢复为 0,并且成功了。这篇文章帮助我理解了这一点:https://medium.com/opsops/how-to-restore-link-local-ipv6-address-in-linux-737666a505f3

sysctl -w net.ipv6.conf.eth0.addr_gen_mode=0

答案2

经过多次尝试和失败后,我能够通过发出以下两个命令来解决此问题:

sudo ip -6 addr flush dev enxa0cec855bd4d scope link
sudo ip -6 link set enxa0cec855bd4d up

即使 iface 处于关闭状态,它也能正常工作,当它启动时,将正确分配一个链路本地地址。

相关内容