在RHEL 7上配置唯一的本地IPv6地址
配置IPv6地址并执行一些基本的IPv6故障排除。
IPv6简介
IPv6地址格式
IPv6地址被标记为8组的16位(等于4个十六进制数字),例如:
fe80:7eef:0000:0000:1000:002a:0003:0001
有两种格式设置规则:不必写入前导零,并且全零的长字符串可以总结为::。
这将使前面的示例看起来像:
fe80:7eef :: 1000:2a:3:1
通用IPv6地址
本地主机地址为:: 1/128,即IPv4格式的127.0.0.1/8.
所有地址均为::,即IPv4格式的0.0.0.0。
组播地址为ff00 ::/8.
唯一的本地地址
唯一的本地地址是块fc00 ::/7中的IPv6地址。
唯一的本地地址在全球IPv6 Internet中不可路由。
与IPv4的比较将是10.0.0.0/8或者192.168.0.0/16网络。
链接本地地址
本地链接地址是在每个IPv6接口上自动配置的,但不允许全局唯一寻址。
为了符合子网上的标准/64寻址,实际的本地链接地址分配了前缀fe80 ::/64.
IPv6在启用了IPv6协议的每个网络接口上都需要一个本地链接地址,即使同时也分配了可路由地址也是如此。
配置IPv6
将IPv6地址添加到现有接口
# nmcli c NAME UUID TYPE DEVICE slave2 684ab2dc-6b40-4a50-b2b4-0450f65c4cef 802-3-ethernet enp0s8 slave1 00a5d6e6-5360-414e-8997-025fdec6d09e 802-3-ethernet enp0s17 mybond0 d021371e-5e22-4b1a-a4eb-0b96bde80702 bond mybond0
我们要向mybond0接口添加一个IPv6地址fc00 :: 10:8:8:71:
# nmcli c mod mybond0 ipv6.addresses fc00::10:8:8:71/7 ipv6.method manual
# nmcli c down mybond0; nmcli c up slave1; nmcli c up slave2
# ip ad show mybond0 7: mybond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 08:00:27:ff:71:00 brd ff:ff:ff:ff:ff:ff inet 10.8.8.71/24 brd 10.8.8.255 scope global mybond0 valid_lft forever preferred_lft forever inet6 fc00::10:8:8:71/7 scope global valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:feff:7100/64 scope link valid_lft forever preferred_lft forever
我们看到链接本地地址(作用域链接)是根据网络前缀fe80 ::/64,然后是网卡的MAC地址08:00:27:ff:71:00自动创建的,其中fffe是插入到MAC地址部分的中间。
唯一的本地地址(全局范围)是我们刚刚设置的地址,fc00 :: 10:8:8:71/7.
我们应该能够ping6它。
# ping6 -c2 fc00::10:8:8:71 PING fc00::10:8:8:71(fc00::10:8:8:71) 56 data bytes 64 bytes from fc00::10:8:8:71: icmp_seq=1 ttl=64 time=0.037 ms 64 bytes from fc00::10:8:8:71: icmp_seq=2 ttl=64 time=0.054 ms --- fc00::10:8:8:71 ping statistics -- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.037/0.045/0.054/0.010 ms
可以通过接口mybond0访问的本地链接地址:
# ping6 -c2 fe80::a00:27ff:feff:7100%mybond0 PING fe80::a00:27ff:feff:7100%mybond0(fe80::a00:27ff:feff:7100) 56 data bytes 64 bytes from fe80::a00:27ff:feff:7100: icmp_seq=1 ttl=64 time=0.039 ms 64 bytes from fe80::a00:27ff:feff:7100: icmp_seq=2 ttl=64 time=0.059 ms --- fe80::a00:27ff:feff:7100%mybond0 ping statistics -- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.039/0.049/0.059/0.010 ms
创建一个具有IPv6地址的新接口
添加一个新的eth2接口并分配IPv4和IPv6地址:
# nmcli c add type ethernet ifname eth2 con-name eth2 \ ip4 10.8.8.90/24 gw4 10.8.8.2 \ ip6 fc00::10:8:8:90/7 gw6 fc00::10:8:8:2
然后,我们可以稍后修改分配(如果在RHEL 7.2上,请使用ipv4.gateway):
# nmcli c mod eth2 ipv4.addresses "10.8.8.91/24 10.8.8.2" ipv4.method manual \ ipv6.addresses "fc00::10:8:8:91/7" ipv6.method manual
对IPv6进行故障排除
ping连接到mybond0接口的本地网络上的所有节点(多播地址):
# ping6 ff02::1%mybond0
查看IPv6路由表:
# ip -6 ro|grep -v error fc00::/7 dev mybond0 proto kernel metric 256 fe80::/64 dev mybond0 proto kernel metric 256