如何为一个网络接口分配多个 IPv6 别名地址

如何为一个网络接口分配多个 IPv6 别名地址

我有一个 IPv6 范围,我正尝试在 centos6 服务器上分配它。我已更新以下文件以进行 IPv6 配置:

[root@test ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=test.techsuccor.com

[root@test ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
HWADDR=82:d7:5d:50:c9:86
TYPE=Ethernet
UUID=8ea314f3-d89a-4a5c-9ede-64b6675cae71
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=180.149.X.X
NETMASK=255.255.255.0

DNS2=206.183.X.X
GATEWAY=180.X.X.X
DNS1=206.X.X.X
IPV6INIT=yes
USERCTL=no
IPV6ADDR=2001:0df3:3cXX::X/64
IPV6_DEFAULTGW=2001:0df3:3cXX::1
[root@test ~]# 

通过上述配置,我能够对单个主 ipv6 ip 地址进行 ping 进和 ping 出。

使用 IPV6ADDR_SECONDARIES 选项还可以添加别名 IP 并对其进行 ping 操作

IPV6ADDR_SECONDARIES="2001:0df3:3cXX::X1/64 \
2001:0df3:3cXX::X2/64 \
2001:0df3:3cXX::X3/64 \
2001:0df3:3cXX::X4/64 \
2001:0df3:3cXX::X5/64"

我实际上需要做的是一次性将完整的 ipv6 范围分配给单个 NIC 作为别名 ip。我可以使用以下命令执行此操作

[root@test ~]# for ip in {4..10}; do /sbin/ifconfig eth0:1 inet6 add 2001:0df3:3c00::${ip}/64; done

此外,在我运行此命令后,我使用 ifconfig 命令查看我的 ipv6 ip,如下所示,但只有主 IPv6 ping,没有来自外部的 Alias Ip ping。此外,重新启动 newtork 后,所有 ip 都会消失。

[root@test ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 82:D7:5D:50:C9:86  
          inet addr:180.149.XX.XX  Bcast:180.149.XX.XX Mask:255.255.255.0
          **inet6 addr: 2001:df3:3c00::10/64 Scope:Global
          inet6 addr: 2001:df3:3c00::1/64 Scope:Global
          inet6 addr: 2001:df3:3c00::3/64 Scope:Global
          inet6 addr: 2001:df3:3c00::4/64 Scope:Global
          inet6 addr: 2001:df3:3c00::5/64 Scope:Global
          inet6 addr: fe80::80d7:5dff:fe50:c986/64 Scope:Link
          inet6 addr: 2001:df3:3c00::6/64 Scope:Global
          inet6 addr: 2001:df3:3c00::7/64 Scope:Global
          inet6 addr: 2001:df3:3c00::8/64 Scope:Global
          inet6 addr: 2001:df3:3c00::9/64 Scope:Global**
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:312539319 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1808219 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22772397919 (21.2 GiB)  TX bytes:312003644 (297.5 MiB)
          Interrupt:165 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:16406 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16406 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2295915 (2.1 MiB)  TX bytes:2295915 (2.1 MiB)

答案1

理论上,它看起来IPV6ADDR_SECONDARIES应该在 initscripts-ipv6 中支持范围格式:

3ffe:ffff::1f-2a

will set a range from "3ffe:ffff::1f" to "3ffe:ffff::2a"

文档

实际上,Redhat 的 NetworkManager 似乎不支持该格式。

答案2

我认为可以通过添加多个辅助 IPv6 地址来实现此目标,请像之前一样编辑您的文件,vi /etc/sysconfig/network-scripts/ifcfg-eth0文件并按照这种格式添加(删除 ***);

IPV6ADDR_SECONDARIES="2001:0df3:3cXX::X1/64 \
2001:0df3:3cXX::X2/64 \
2001:0df3:3cXX::X3/64 \
2001:0df3:3cXX::X4/64 \
2001:0df3:3cXX::X5/64"

如果问题仍然存在,请为此创建虚拟适配器,希望这能解决您的问题。

相关内容