为多网卡Linux云服务器配置IPv4和IPv6策略路由(CentOS)
Linux IPv4操作步骤 (CentOS)
- 收集配置策略路由需要的云服务器网卡地址等信息。
具体操作请参见收集云服务器网络信息。
本示例中,云服务器的网络信息如表1所示。
- 登录源端云服务器。
ECS有多种登录方法,具体请参见登录弹性云服务器。
- 执行以下命令,检查源端云服务器主网卡和目的端云服务器通信情况。
命令示例:
ping -I 10.0.0.115 10.0.2.12
回显类似如下信息,表示可以正常通信。[root@ecs-resource ~]# ping -I 10.0.0.115 10.0.2.12 PING 10.0.2.12 (10.0.2.12) from 10.0.0.115 : 56(84) bytes of data. 64 bytes from 10.0.2.12: icmp_seq=1 ttl=64 time=0.775 ms 64 bytes from 10.0.2.12: icmp_seq=2 ttl=64 time=0.268 ms 64 bytes from 10.0.2.12: icmp_seq=3 ttl=64 time=0.220 ms 64 bytes from 10.0.2.12: icmp_seq=4 ttl=64 time=0.167 ms ^C --- 10.0.2.12 ping statistics ---
配置多网卡策略路由前,请务必确保源端主网卡和目的端通信正常。
- 执行以下命令,查看云服务器网卡名称。
回显类似如下信息,通过网卡地址查找对应的网卡名称,本示例中:
- 10.0.0.115为主网卡地址,对应的名称为eth0。
- 10.0.1.183为扩展网卡地址,对应的名称为eth1。
[root@ecs-resource ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.115 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::f816:3eff:fe92:6e0e prefixlen 64 scopeid 0x20<link> ether fa:16:3e:92:6e:0e txqueuelen 1000 (Ethernet) RX packets 432288 bytes 135762012 (129.4 MiB) RX errors 0 dropped 0 overruns 0 frame 1655 TX packets 423744 bytes 106716932 (101.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.1.183 netmask 255.255.255.0 broadcast 10.0.1.255 inet6 fe80::f816:3eff:febf:5818 prefixlen 64 scopeid 0x20<link> ether fa:16:3e:bf:58:18 txqueuelen 1000 (Ethernet) RX packets 9028 bytes 536972 (524.3 KiB) RX errors 0 dropped 0 overruns 0 frame 1915 TX packets 6290 bytes 272473 (266.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 执行以下步骤,为云服务器配置临时路由。
- 依次执行以下命令,添加主网卡和扩展网卡的策略路由。
- 主网卡
ip route add default via 子网网关 dev 网卡名称 table 路由表名称
ip route add 子网网段 dev 网卡名称 table 路由表名称
ip rule add from 网卡地址 table 路由表名称
- 扩展网卡
ip route add default via 子网网关 dev 网卡名称 table 路由表名称
ip route add 子网网段 dev 网卡名称 table 路由表名称
ip rule add from 网卡地址 table 路由表名称
命令示例:
- 主网卡
ip route add default via 10.0.0.1 dev eth0 table 10
ip route add 10.0.0.0/24 dev eth0 table 10
ip rule add from 10.0.0.115 table 10
- 扩展网卡
ip route add default via 10.0.1.1 dev eth1 table 20
ip route add 10.0.1.0/24 dev eth1 table 20
ip rule add from 10.0.1.183 table 20
如果云服务器有多张网卡,请依次为所有网卡添加策略路由。
- 主网卡
- 依次执行以下命令,确认策略路由是否添加成功。
ip route show table 主网卡路由表名称
ip route show table 扩展网卡路由表名称
其中,路由表名称为5.a中自定义的名称。
命令示例:
ip rule
ip route show table 10
ip route show table 20
回显类似如下信息,表示策略路由添加成功。[root@ecs-resource ~]# ip rule 0: from all lookup local 32764: from 10.0.1.183 lookup 20 32765: from 10.0.0.115 lookup 10 32766: from all lookup main 32767: from all lookup default [root@ecs-resource ~]# ip route show table 10 default via 10.0.0.1 dev eth0 10.0.0.0/24 dev eth0 scope link [root@ecs-resource ~]# ip route show table 20 default via 10.0.1.1 dev eth1 10.0.1.0/24 dev eth1 scope link
- 执行以下命令,验证源端云服务器和目的端云服务器是否可以正常通信。
ping -I 源端云服务器扩展网卡地址 目的端云服务器地址
命令示例:
ping -I 10.0.0.115 10.0.2.12
ping -I 10.0.1.183 10.0.2.12
回显类似如下信息,两个网卡均可以和目的端正常通信,表示策略路由配置成功。
[root@ecs-resource ~]# ping -I 10.0.0.115 10.0.2.12 PING 10.0.2.12 (10.0.2.12) from 10.0.0.115 : 56(84) bytes of data. 64 bytes from 10.0.2.12: icmp_seq=1 ttl=64 time=0.775 ms 64 bytes from 10.0.2.12: icmp_seq=2 ttl=64 time=0.268 ms 64 bytes from 10.0.2.12: icmp_seq=3 ttl=64 time=0.220 ms 64 bytes from 10.0.2.12: icmp_seq=4 ttl=64 time=0.167 ms ^C --- 10.0.2.12 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 102ms rtt min/avg/max/mdev = 0.167/0.357/0.775/0.244 ms [root@ecs-resource ~]# ping -I 10.0.1.183 10.0.2.12 PING 10.0.2.12 (10.0.2.12) from 10.0.1.183 : 56(84) bytes of data. 64 bytes from 10.0.2.12: icmp_seq=1 ttl=64 time=2.84 ms 64 bytes from 10.0.2.12: icmp_seq=2 ttl=64 time=0.258 ms 64 bytes from 10.0.2.12: icmp_seq=3 ttl=64 time=0.234 ms 64 bytes from 10.0.2.12: icmp_seq=4 ttl=64 time=0.153 ms ^C --- 10.0.2.12 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 92ms rtt min/avg/max/mdev = 0.153/0.871/2.840/1.137 ms
- 依次执行以下命令,添加主网卡和扩展网卡的策略路由。
- 执行以下步骤,为云服务器配置永久路由。
- 执行以下命令,打开“/etc/rc.local”文件。
vi /etc/rc.local
- 按i进入编辑模式。
- 在文件末尾添加以下配置。
# check eth0 for ((x=0; x<30; x++)); do if (ping -I eth0 10.0.0.1 -c 1 -W 1 >/dev/null 2>&1); then break fi done # Add v4 routes for eth0 ip route flush table 10 ip route add default via 10.0.0.1 dev eth0 table 10 ip route add 10.0.0.0/24 dev eth0 table 10 ip rule add from 10.0.0.115 table 10 # check eth1 for ((x=0; x<30; x++)); do if (ping -I eth1 10.0.1.1 -c 1 -W 1 >/dev/null 2>&1); then break fi done # Add v4 routes for eth1 ip route flush table 20 ip route add default via 10.0.1.1 dev eth1 table 20 ip route add 10.0.1.0/24 dev eth1 table 20 ip rule add from 10.0.1.183 table 20 # Add v4 routes for cloud-init ip rule add to 169.254.169.254 table main
其中,参数说明如下:
- check eth0:检查主网卡是否启动,通过ping主网卡eth0所在子网的IPv4网关来检查,此处10.0.0.1为eth0所在子网的IPv4网关,-c 1表示一次发送一个数据包,-W 1表示超时时间为1s,重试次数为30次。
- Add v4 routes for eth0:主网卡的策略路由,和5.a配置保持一致。
- check eth1:检查扩展网卡是否启动,通过ping扩展网卡eth1所在子网的IPv4网关来检查,此处10.0.1.1为eth1所在子网的IPv4网关,-c 1表示一次发送一个数据包,-W 1表示超时时间为1s,重试次数为30次。
- Add v4 routes for eth1:扩展网卡的策略路由,和5.a配置保持一致。
- Add v4 routes for cloud-init:配置cloud-init地址,请和本示例中的配置保持一致,不要修改。
- 按ESC退出,并输入:wq!保存配置。
- 执行以下命令,为“/etc/rc.local”文件添加执行权限。
chmod +x /etc/rc.local
如果您的操作系统为Redhat、EulerOS,执行完6.e后,还需要执行以下命令,权限才会添加成功。
chmod +x /etc/rc.d/rc.local
- 执行以下命令,重启云服务器。
“/etc/rc.local”文件添加中添加的策略路由,需要重启云服务器后才会生效,此处请确保不影响业务再重启云服务器操作。
- 参考5.b~5.c,检查策略路由添加情况,并验证源端和目的通信是否正常。
- 执行以下命令,打开“/etc/rc.local”文件。
Linux IPv6操作步骤 (CentOS)
- 收集配置策略路由需要的云服务器网卡地址等信息。
具体操作请参见收集云服务器网络信息。
表2 Linux IPv6场景信息说明(CentOS) 类型
主网卡
扩展网卡
源端
- IPv4网卡地址:10.0.0.102
- IPv6网卡地址:2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9
- 子网IPv6网段:2407:c080:1200:1dd8::/64
- 子网IPv6网关:2407:c080:1200:1dd8::1
- IPv4网卡地址:10.0.1.191
- IPv6网卡地址:2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8
- 子网IPv6网段:2407:c080:1200:1a9c::/64
- 子网IPv6网关:2407:c080:1200:1a9c::1
目的端
- IPv4网卡地址:10.0.2.3
- IPv6网卡地址:2407:c080:1200:1dd9:16a7:fe7a:8f71:7044
不涉及
- 登录源端云服务器。
ECS有多种登录方法,具体请参见登录弹性云服务器。
- 执行以下步骤,确保云服务器已开启IPv6协议栈,并且正常获取到IPv6地址。
对于源端和目的端的IPv6云服务器,均需要执行该操作,确保云服务器已获取到IPv6地址,否则云服务器无法通过IPv6地址进行通信。
本章节云服务器使用的操作系统为CentOS 8.0 64bit公共镜像,以下针对该操作系统举例,更多操作系统配置指导,请参见动态获取IPv6地址的“Linux操作系统(手动配置启用IPv6)” 小节。
- 执行以下命令,检查云服务器是否可以获取到IPv6地址。
回显类似如下信息,eth0和eth1为云服务器的网卡,只有一行inet6地址,为fe80开头,表示该云服务器已开启IPv6协议栈,但是未获取到IPv6地址,需要继续执行3.b~3.g,获取IPv6地址。
[root@ecs-resource ~]# ip addr ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:22:22:88 brd ff:ff:ff:ff:ff:ff inet 10.0.0.102/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0 valid_lft 107943256sec preferred_lft 107943256sec inet6 fe80::f816:3eff:fe22:2288/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:22:23:e1 brd ff:ff:ff:ff:ff:ff inet 10.0.1.191/24 brd 10.0.1.255 scope global dynamic noprefixroute eth1 valid_lft 107943256sec preferred_lft 107943256sec inet6 fe80::f816:3eff:fe22:23e1/64 scope link valid_lft forever preferred_lft forever
- 执行以下命令,查看云服务器网卡名称。
回显类似如下信息,通过网卡地址查找对应的网卡名称,本示例中:
- 10.0.0.102为主网卡地址,对应的名称为eth0。
- 10.0.1.191为扩展网卡地址,对应的名称为eth1。
[root@ecs-resource ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.102 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::f816:3eff:fe22:2288 prefixlen 64 scopeid 0x20<link> ether fa:16:3e:22:22:88 txqueuelen 1000 (Ethernet) RX packets 135116 bytes 132321802 (126.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 60963 bytes 23201005 (22.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.1.191 netmask 255.255.255.0 broadcast 10.0.1.255 inet6 fe80::f816:3eff:fe22:23e1 prefixlen 64 scopeid 0x20<link> ether fa:16:3e:22:23:e1 txqueuelen 1000 (Ethernet) RX packets 885 bytes 97676 (95.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 47 bytes 4478 (4.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 执行以下步骤,编辑主网卡的ifcfg文件。
- 执行以下命令,打开主网卡的ifcfg文件。
vi /etc/sysconfig/network-scripts/ifcfg-主网卡名称
其中,主网卡名称为3.b中查询到的名称。
命令示例:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 按i进入编辑模式。
- 在文件末尾添加以下配置。
IPV6INIT="yes" DHCPV6C="yes"
- 按ESC退出,并输入:wq!保存配置。
- 执行以下命令,打开主网卡的ifcfg文件。
- 执行以下步骤,编辑扩展网卡的ifcfg文件。
- 执行以下命令,打开扩展网卡的ifcfg文件。
vi /etc/sysconfig/network-scripts/ifcfg-扩展网卡名称
其中,扩展网卡名称为3.b中查询到的名称。
命令示例:
vi /etc/sysconfig/network-scripts/ifcfg-eth1
- 按i进入编辑模式。
- 在文件末尾添加以下配置。
IPV6INIT="yes" DHCPV6C="yes"
- 按ESC退出,并输入:wq!保存配置。
- 执行以下命令,打开扩展网卡的ifcfg文件。
- 执行以下步骤,编辑“/etc/sysconfig/network”文件。
- 执行以下命令,打开“/etc/sysconfig/network”文件。
vi /etc/sysconfig/network
- 按i进入编辑模式。
- 在文件末尾添加以下配置。
NETWORKING_IPV6="yes"
- 按ESC退出,并输入:wq!保存配置。
- 执行以下命令,打开“/etc/sysconfig/network”文件。
- 执行以下命令,重启网络服务使配置生效。
- 执行以下命令,检查云服务器是否可以获取到IPv6地址。
回显类似如下信息,eth0和eth1网卡有两行inet6地址,新增一行2407开头的地址,表示配置成功。
[root@ecs-resource ~]# ip addr ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:22:22:88 brd ff:ff:ff:ff:ff:ff inet 10.0.0.102/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0 valid_lft 107999994sec preferred_lft 107999994sec inet6 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9/128 scope global dynamic noprefixroute valid_lft 7195sec preferred_lft 7195sec inet6 fe80::f816:3eff:fe22:2288/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:22:23:e1 brd ff:ff:ff:ff:ff:ff inet 10.0.1.191/24 brd 10.0.1.255 scope global dynamic noprefixroute eth1 valid_lft 107999994sec preferred_lft 107999994sec inet6 2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8/128 scope global dynamic noprefixroute valid_lft 7198sec preferred_lft 7198sec inet6 fe80::f816:3eff:fe22:23e1/64 scope link noprefixroute valid_lft forever preferred_lft forever
- 登录目的端云服务器,参考3.a~3.g,配置目的云服务器获取IPv6地址。
- 执行以下命令,检查云服务器是否可以获取到IPv6地址。
- 登录源端云服务器,执行以下命令,检查源端云服务器主网卡和目的端云服务器通信情况。
ping6 -I 源端云服务器主网卡地址 目的端云服务器地址
命令示例:
ping6 -I 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044
回显类似如下信息,表示可以正常通信。[root@ecs-resource ~]# ping6 -I 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044 PING 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044(2407:c080:1200:1dd9:16a7:fe7a:8f71:7044) from 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 : 56 data bytes 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=1 ttl=64 time=0.635 ms 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=2 ttl=64 time=0.320 ms 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=3 ttl=64 time=0.287 ms 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=4 ttl=64 time=0.193 ms ^C --- 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3074ms rtt min/avg/max/mdev = 0.193/0.358/0.635/0.167 ms
配置多网卡策略路由前,请务必确保源端主网卡和目的端通信正常。
- 登录源端云服务器,执行以下步骤,为云服务器配置临时路由。
- 依次执行以下命令,添加主网卡和扩展网卡的策略路由。
- 主网卡
ip -6 route add default via 子网网关 dev 网卡名称 table 路由表名称
ip -6 route add 子网网段 dev 网卡名称 table 路由表名称
ip -6 rule add from 网卡地址 table 路由表名称
- 扩展网卡
ip -6 route add default via 子网网关 dev 网卡名称 table 路由表名称
ip -6 route add 子网网段 dev 网卡名称 table 路由表名称
ip -6 rule add from 网卡地址 table 路由表名称
命令示例:
- 主网卡
ip -6 route add default via 2407:c080:1200:1dd8::1 dev eth0 table 10
ip -6 route add 2407:c080:1200:1dd8::/64 dev eth0 table 10
ip -6 rule add from 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 table 10
- 扩展网卡
ip -6 route add default via 2407:c080:1200:1a9c::1 dev eth1 table 20
ip -6 route add 2407:c080:1200:1a9c::/64 dev eth1 table 20
ip -6 rule add from 2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8 table 20
如果云服务器有多张网卡,请依次为所有网卡添加策略路由。
- 主网卡
- 依次执行以下命令,确认策略路由是否添加成功。
ip -6 route show table 主网卡路由表名称
ip -6 route show table 扩展网卡路由表名称
其中,路由表名称为5.a中自定义的名称。
命令示例:
ip -6 rule
ip -6 route show table 10
ip -6 route show table 20
回显类似如下信息,表示策略路由添加成功。[root@ecs-resource ~]# ip -6 rule 0: from all lookup local 32764: from 2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8 lookup 20 32765: from 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 lookup 10 32766: from all lookup main [root@ecs-resource ~]# ip -6 route show table 10 2407:c080:1200:1dd8::/64 dev eth0 metric 1024 pref medium default via 2407:c080:1200:1dd8::1 dev eth0 metric 1024 pref medium [root@ecs-resource ~]# ip -6 route show table 20 2407:c080:1200:1a9c::/64 dev eth1 metric 1024 pref medium default via 2407:c080:1200:1a9c::1 dev eth1 metric 1024 pref medium
- 执行以下命令,验证源端云服务器和目的端云服务器是否可以正常通信。
ping -6 -I 源端云服务器主网卡地址 目的端云服务器地址
ping -6 -I 源端云服务器扩展网卡地址 目的端云服务器地址
命令示例:
ping -6 -I 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044
ping -6 -I 2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044
回显类似如下信息,两个网卡均可以和目的端正常通信,表示策略路由配置成功。[root@ecs-resource ~]# ping -6 -I 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044 PING 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044(2407:c080:1200:1dd9:16a7:fe7a:8f71:7044) from 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 : 56 data bytes 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=1 ttl=64 time=0.770 ms 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=2 ttl=64 time=0.295 ms 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=3 ttl=64 time=0.245 ms ^C --- 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2080ms rtt min/avg/max/mdev = 0.245/0.436/0.770/0.237 ms [root@ecs-resource ~]# ping -6 -I 2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044 PING 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044(2407:c080:1200:1dd9:16a7:fe7a:8f71:7044) from 2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8 : 56 data bytes 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=1 ttl=64 time=0.922 ms 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=2 ttl=64 time=0.307 ms 64 bytes from 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044: icmp_seq=3 ttl=64 time=0.174 ms ^C --- 2407:c080:1200:1dd9:16a7:fe7a:8f71:7044 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2059ms rtt min/avg/max/mdev = 0.174/0.467/0.922/0.326 ms
- 依次执行以下命令,添加主网卡和扩展网卡的策略路由。
- 执行以下步骤,为云服务器配置永久路由。
- 执行以下命令,打开“/etc/rc.local”文件。
vi /etc/rc.local
- 按i进入编辑模式。
- 在文件末尾添加以下配置。
# check eth0 for ((x=0; x<30; x++)); do if (ping6 -I eth0 2407:c080:1200:1dd8::1 -c 1 -W 1 >/dev/null 2>&1); then break fi done # Add v6 routes for eth0 ip -6 route flush table 10 ip -6 route add default via 2407:c080:1200:1dd8::1 dev eth0 table 10 ip -6 route add 2407:c080:1200:1dd8::/64 dev eth0 table 10 ip -6 rule add from 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 table 10 # check eth1 for ((x=0; x<30; x++)); do if (ping6 -I eth1 2407:c080:1200:1a9c::1 -c 1 -W 1 >/dev/null 2>&1); then break fi done # Add v6 routes for eth1 ip -6 route flush table 20 ip -6 route add default via 2407:c080:1200:1a9c::1 dev eth1 table 20 ip -6 route add 2407:c080:1200:1a9c::/64 dev eth1 table 20 ip -6 rule add from 2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8 table 20
其中,参数说明如下:
- check eth0:检查主网卡是否启动,通过ping主网卡eth0所在子网的IPv6网关来检查,此处2407:c080:1200:1dd8::1为eth0所在子网的IPv6网关,-c 1表示一次发送一个数据包,-W 1表示超时时间为1s,重试次数为30次。
- Add v6 routes for eth0:主网卡的策略路由,和5.a配置保持一致。
- check eth1:检查扩展网卡是否启动,通过ping扩展网卡eth1所在子网的IPv6网关来检查,此处2407:c080:1200:1a9c::1为eth1所在子网的IPv6网关,-c 1表示一次发送一个数据包,-W 1表示超时时间为1s,重试次数为30次。
- Add v6 routes for eth1:扩展网卡的策略路由,和5.a配置保持一致。
- 按ESC退出,并输入:wq!保存配置。
- 执行以下命令,为“/etc/rc.local”文件添加执行权限。
chmod +x /etc/rc.local
如果您的操作系统为Redhat、EulerOS,执行完6.e后,还需要执行以下命令,权限才会添加成功。
chmod +x /etc/rc.d/rc.local
- 执行以下命令,重启云服务器。
“/etc/rc.local”文件添加中添加的策略路由,需要重启云服务器后才会生效,此处请确保不影响业务再重启云服务器操作。
- 参考5.b~5.c,检查策略路由添加情况,并验证源端和目的通信是否正常。
- 执行以下命令,打开“/etc/rc.local”文件。