在RHEL 7上配置唯一的本地IPv6地址

时间:2020-03-21 11:43:05  来源:igfitidea点击:

配置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