在
Linux上设置IPv6非常简单,您可以遵循IPv4准则并为自己提供静态IPv6地址.
在Solaris上,事情并不乐观,IPv6仅在运行in.ripng后才能运行.运行此命令后,您将在本地LAN网段上获得IPv6地址自动配置.因此,虽然我为一个静态IPv6地址配置了Solaris,但我最终得到了三个,链接本地范围,静态全局范围和自动配置的全局范围:
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 eri0: flags=1000843<UP,BROADCAST,IPv4> mtu 1500 index 2 inet 10.6.28.36 netmask ffffff00 broadcast 10.6.28.255 lo0: flags=2002000849<UP,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 eri0: flags=2100841<UP,ROUTER,IPv6> mtu 1500 index 2 inet6 fe80::203:baff:fe4e:6cc8/10 eri0:1: flags=2100841<UP,IPv6> mtu 1500 index 2 inet6 2002:dce8:d28e::36/64 eri0:2: flags=2180841<UP,ADDRCONF,IPv6> mtu 1500 index 2 inet6 2002:dce8:d28e:0:203:baff:fe4e:6cc8/64
eri0:1是我通常选择匹配IPv4主机的静态地址,eri0:2显示自动配置的地址重新使用链路本地接口的数字.
in.ripng配置了/etc/inet/ndpd.conf:
ifdefault AdvSendAdvertisements true prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on if eri0 AdvSendAdvertisements 1 prefix 2002:dce8:d28e::/64 eri0
因此,自动配置扩展到LAN网段上的所有其他主机,因此以前只有一个全局范围地址的Linux服务器现在产生两个:
eth0 Link encap:Ethernet HWaddr 00:14:5e:bd:6d:da inet addr:10.6.28.31 Bcast:10.6.28.255 Mask:255.255.255.0 inet6 addr: 2002:dce8:d28e:0:214:5eff:febd:6dda/64 Scope:Global inet6 addr: fe80::214:5eff:febd:6dda/64 Scope:Link inet6 addr: 2002:dce8:d28e::31/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
这些理智的配置?
让面向Internet的服务器从其MAC地址获取地址似乎是不现实的.
从网络堆栈的开发角度来看,我想用IPv6绑定到eth0,而忽略链接本地范围界面很简单,我如何在两个全局范围地址之间进行选择?
应用RFC 3484排序规则很困难,因为它们具有相同的范围和前缀长度.