好像当dhclient在eth0上运行时,我从DHCP服务器获得一个IPv4地址,并且连接到eth0的Scope:Link IPv6地址:
inet6 addr: fe80::a00:27ff:fed0:4d41/64 Scope:Link
但是我无法从dhclient脚本中看到这个地址是如何被添加的。 在具有静态IP地址的另一个接口上,我想添加一个链接本地IPv6地址,我想知道是否有一个通用的命令来做到这一点,而不知道MAC。
编辑:
当你执行“ip link set dev ethX up”或“ifconfig ethX up”的时候,看起来内核分配了链接本地地址。 但是,在我的情况下,我有一个电缆插入到DHCP'ing接口,没有电缆插入我静态设置的接口。 直到周一才能validation,但我猜测如果没有链接,内核不会将链路本地地址分配给接口。
链路本地地址源自设备的MAC地址。 它们是自动生成的,作为界面的一部分。 自动configuration包括一个发现过程,以确保地址在networking上是唯一的。
当路由器通告可用时,使用类似的过程来自动configuration可路由地址。 这些地址可以定期重新生成以提供隐私。
RFC 4862规定了要遵循的stream程。
find了! 这个命令是不够的:
ifconfig eth0 up
相反,我必须这样做:
ifconfig eth0 up sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
只有后者才能恢复eth0上的IPv6链路本地地址。
换句话说,我的发行版似乎有一些隐藏在某处的代码,它会net.ipv6.conf.eth0.disable_ipv6
每次net.ipv6.conf.eth0.disable_ipv6
时dynamic地改变networking的状态。 你的旅费可能会改变。
我得到了这一点的感谢仅仅是:
sysctl -a | grep ipv6
http://ben.akrin.com/?p=1347有一个很好的在线计算器来完成从MAC地址到链路本地ipv6地址的转换。
一旦你有地址,添加它
ip address add dev br0 scope link fe80::xxxx:xxff:fexx:xxxx