Debian 7 如何设置 IPv6 链接本地地址?

Debian 7 如何设置 IPv6 链接本地地址?

似乎当 dhclient 在 eth0 上运行时,我从 DHCP 服务器获取一个 IPv4 地址和一个附加到 eth0 的 Scope:Link IPv6 地址:

inet6 addr: fe80::a00:27ff:fed0:4d41/64 Scope:Link

但是我无法从 dhclient-script 中看到该地址是如何添加的。在另一个具有静态 IP 地址的接口上,我想添加一个链接本地 IPv6 地址,我想知道是否有通用命令可以在不知道 mac 的情况下执行此操作。

编辑:
看起来,当您执行“ip link set dev ethX up”或“ifconfig ethX up”时,内核会分配链接本地地址。但是,在我的情况下,我将电缆插入了正在 DHCP 的接口,而没有电缆插入我静态设置的接口。直到周一才能验证,但我猜如果没有链接,内核就不会将链接本地地址分配给接口。

答案1

链路本地地址源自设备的 MAC 地址。它们是在启动接口时自动生成的。自动配置包括一个发现过程,以确保地址在网络上是唯一的。

当路由器通告可用时,使用类似的过程来自动配置可路由地址。这些地址可能会定期重新生成以提供隐私。

RFC 4862指定要遵循的流程。

答案2

找到了!这个命令还不够:

ifconfig eth0 up

相反我必须这样做:

ifconfig eth0 up
sysctl -w net.ipv6.conf.eth0.disable_ipv6=0

只有后者确实恢复了 eth0 上的 IPv6 链接本地地址。

换句话说,我的发行版似乎在某处隐藏了一些代码,net.ipv6.conf.eth0.disable_ipv6每次要求它打开或关闭网络时,这些代码都会动态更改。您的情况可能会有所不同。

我仅凭以下几点就搞清楚了这个问题:

sysctl -a | grep ipv6

相关内容