为多网卡Linux云服务器配置IPv4和IPv6策略路由(Ubuntu)
Linux IPv4操作步骤 (Ubuntu)
- 收集配置策略路由需要的云服务器网卡地址等信息。
具体操作请参见收集云服务器网络信息。
本示例中,云服务器的网络信息如表1所示。
- 登录源端云服务器。
ECS有多种登录方法,具体请参见登录弹性云服务器。
- 执行以下命令,检查源端云服务器主网卡和目的端云服务器通信情况。
命令示例:
ping -I 10.0.0.138 10.0.2.146
回显类似如下信息,表示可以正常通信。root@ecs-s:~# ping -I 10.0.0.138 10.0.2.146 PING 10.0.2.146 (10.0.2.146) from 10.0.0.138 : 56(84) bytes of data. 64 bytes from 10.0.2.146: icmp_seq=1 ttl=64 time=0.247 ms 64 bytes from 10.0.2.146: icmp_seq=2 ttl=64 time=0.194 ms 64 bytes from 10.0.2.146: icmp_seq=3 ttl=64 time=0.190 ms ^C --- 10.0.2.146 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2049ms rtt min/avg/max/mdev = 0.190/0.210/0.247/0.025 ms
配置多网卡策略路由前,请务必确保源端主网卡和目的端通信正常。
- 执行以下命令,查看云服务器网卡名称。
回显类似如下信息,通过网卡地址查找对应的网卡名称,本示例中:
- 10.0.0.138为主网卡地址,对应的名称为eth0。
- 10.0.1.25为扩展网卡地址,对应的名称为eth1。
root@ecs-s:~# ip addr ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether fa:16:3e:22:22:ac brd ff:ff:ff:ff:ff:ff altname enp0s3 altname ens3 inet 10.0.0.138/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0 valid_lft 107999167sec preferred_lft 107999167sec inet6 fe80::f816:3eff:fe22:22ac/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether fa:16:3e:22:23:3b brd ff:ff:ff:ff:ff:ff altname enp4s1 inet 10.0.1.25/24 brd 10.0.1.255 scope global dynamic noprefixroute eth1 valid_lft 107999167sec preferred_lft 107999167sec inet6 fe80::f816:3eff:fe22:233b/64 scope link valid_lft forever preferred_lft forever
- 执行以下步骤,为云服务器配置临时路由。
- 依次执行以下命令,添加主网卡和扩展网卡的策略路由。
- 主网卡
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.138 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.25 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-s:~# ip rule 0: from all lookup local 32764: from 10.0.1.25 lookup 20 32765: from 10.0.0.138 lookup 10 32766: from all lookup main 32767: from all lookup default root@ecs-s:~# ip route show table 10 default via 10.0.0.1 dev eth0 10.0.0.0/24 dev eth0 scope link root@ecs-s:~# 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.138 10.0.2.146
ping -I 10.0.1.25 10.0.2.146
回显类似如下信息,两个网卡均可以和目的端正常通信,表示策略路由配置成功。root@ecs-s:~# ping -I 10.0.0.138 10.0.2.146 PING 10.0.2.146 (10.0.2.146) from 10.0.0.138 : 56(84) bytes of data. 64 bytes from 10.0.2.146: icmp_seq=1 ttl=64 time=0.258 ms 64 bytes from 10.0.2.146: icmp_seq=2 ttl=64 time=0.242 ms 64 bytes from 10.0.2.146: icmp_seq=3 ttl=64 time=0.165 ms ^C --- 10.0.2.146 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2039ms rtt min/avg/max/mdev = 0.165/0.221/0.258/0.040 ms root@ecs-s:~# ping -I 10.0.1.25 10.0.2.146 PING 10.0.2.146 (10.0.2.146) from 10.0.1.25 : 56(84) bytes of data. 64 bytes from 10.0.2.146: icmp_seq=1 ttl=64 time=0.498 ms 64 bytes from 10.0.2.146: icmp_seq=2 ttl=64 time=0.427 ms 64 bytes from 10.0.2.146: icmp_seq=3 ttl=64 time=0.185 ms ^C --- 10.0.2.146 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2031ms rtt min/avg/max/mdev = 0.185/0.370/0.498/0.133 ms
- 依次执行以下命令,添加主网卡和扩展网卡的策略路由。
- 执行以下步骤,为云服务器配置永久路由。
- 执行以下命令,为systemd服务创建一个新的“network-routes.service”文件。
vi /etc/systemd/system/network-routes.service
- 按i进入编辑模式。
- 在文件末尾添加以下配置。
[Unit] Description=Network Routes Configuration After=network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/bash -c 'for((x=0; x<30; x++)); do [[ $(ping -I eth0 10.0.0.1 -c 1 -W 1 >/dev/null 2>&1 && echo 1) ]] && break; done; 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.138 table 10; for((x=0; x<30; x++)); do [[ $(ping -I eth1 10.0.1.1 -c 1 -W 1 >/dev/null 2>&1 && echo 1) ]] && break; done; 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.25 table 20; ip rule add to 169.254.169.254 table main' [Install] WantedBy=multi-user.target
其中,参数说明如下:
- for循环:检查主网卡eth0或者扩展网卡eth1是否启动,通过ping网卡所在子网的IPv4网关来检查,此处10.0.0.1为eth0所在子网的IPv4网关,10.0.1.1为eth1所在子网的IPv4网关,-c 1表示一次发送一个数据包,-W 1表示超时时间为1s,重试次数为30次。
- ip route flush table 路由表名称:假如路由表有残留路由,使用该命令会清空指定路由表中残留的路由,避免影响本次配置新的路由。
- 主网卡的策略路由,和5.a配置保持一致。
- 扩展网卡的策略路由,和5.a配置保持一致。
- ip rule add to 169.254.169.254 table main:配置cloud-init地址,请和本示例中的配置保持一致,不要修改。
- 按ESC退出,并输入:wq!保存配置。
- 执行以下命令,重新加载systemd配置,并启动服务。
systemctl enable network-routes.service
回显类似如下信息,表示启动成功。root@ecs-s:~# systemctl daemon-reload root@ecs-s:~# systemctl enable network-routes.service Created symlink /etc/systemd/system/multi-user.target.wants/network-routes.service → /etc/systemd/system/network-routes.service.
- 执行以下命令,重启云服务器。
“network-routes.service”文件添加中添加的策略路由,需要重启云服务器后才会生效,此处请确保不影响业务再重启云服务器操作。
- 参考5.b~5.c,检查策略路由添加情况,并验证源端和目的通信是否正常。
- 执行以下命令,为systemd服务创建一个新的“network-routes.service”文件。
Linux IPv6操作步骤 (Ubuntu)
- 收集配置策略路由需要的云服务器网卡地址等信息。
具体操作请参见收集云服务器网络信息。
本示例中,云服务器的网络信息如表2所示。
表2 Linux IPv6场景信息说明(Ubuntu) 类型
主网卡
扩展网卡
源端
- IPv4网卡地址:10.0.0.138
- IPv6网卡地址:2407:c080:1200:1dd8:1473:49db:22d7:13c7
- 子网IPv6网段:2407:c080:1200:1dd8::/64
- 子网IPv6网关:2407:c080:1200:1dd8::1
- IPv4网卡地址:10.0.1.25
- IPv6网卡地址:2407:c080:1200:1a9c:691e:fffe:7e22:12c4
- 子网IPv6网段:2407:c080:1200:1a9c::/64
- 子网IPv6网关:2407:c080:1200:1a9c::1
目的端
- IPv4网卡地址:10.0.2.146
- IPv6网卡地址:2407:c080:1200:1dd9:f5e1:94d1:2822:dede
不涉及
- 登录源端云服务器。
ECS有多种登录方法,具体请参见登录弹性云服务器。
- 执行以下步骤,确保云服务器已开启IPv6协议栈,并且正常获取到IPv6地址。
对于源端和目的端的IPv6云服务器,均需要执行该操作,确保云服务器已获取到IPv6地址,否则云服务器无法通过IPv6地址进行通信。
本章节云服务器使用的操作系统为Ubuntu 22.04 server 64bit公共镜像,以下针对该操作系统举例,更多操作系统配置指导,请参见动态获取IPv6地址的“Linux操作系统(手动配置启用IPv6)” 小节。
- 执行以下命令,检查云服务器是否可以获取到IPv6地址。
回显类似如下信息,eth0和eth1为云服务器的网卡,只有一行inet6地址,为fe80开头,表示该云服务器已开启IPv6协议栈,但是未获取到IPv6地址,需要继续执行3.b~3.h,获取IPv6地址。
root@ecs-s:~# ip addr ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether fa:16:3e:22:22:ac brd ff:ff:ff:ff:ff:ff altname enp0s3 altname ens3 inet 10.0.0.138/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0 valid_lft 107999781sec preferred_lft 107999781sec inet6 fe80::f816:3eff:fe22:22ac/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether fa:16:3e:22:23:3b brd ff:ff:ff:ff:ff:ff altname enp4s1 inet 10.0.1.25/24 brd 10.0.1.255 scope global dynamic noprefixroute eth1 valid_lft 107999781sec preferred_lft 107999781sec inet6 fe80::f816:3eff:fe22:233b/64 scope link valid_lft forever preferred_lft forever
- 执行以下命令,查看云服务器网卡名称。
回显类似如下信息,通过网卡地址查找对应的网卡名称,本示例中:
- 10.0.0.138为主网卡地址,对应的名称为eth0。
- 10.0.1.25为扩展网卡地址,对应的名称为eth1。
root@ecs-s:~# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.138 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::f816:3eff:fe22:22ac prefixlen 64 scopeid 0x20<link> ether fa:16:3e:22:22:ac txqueuelen 1000 (Ethernet) RX packets 863 bytes 269089 (269.0 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1117 bytes 359807 (359.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.1.25 netmask 255.255.255.0 broadcast 10.0.1.255 inet6 fe80::f816:3eff:fe22:233b prefixlen 64 scopeid 0x20<link> ether fa:16:3e:22:23:3b txqueuelen 1000 (Ethernet) RX packets 10 bytes 1358 (1.3 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 10 bytes 973 (973.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ...
- 执行以下步骤,配置“01-netcfg.yaml”文件。
- 执行以下命令,进入“/etc/netplan/”目录。
- 执行以下命令,打开“01-netcfg.yaml”文件。
- 按i进入编辑模式。
- 按照以下示例,分别在待配置的网卡下添加内容dhcp6: true,注意新添加内容和已有内容格式保持统一。
本示例中,3.b中查询到的主网卡名称为eth0、扩展网卡名称为eth1。
network: version: 2 renderer: NetworkManager ethernets: eth0: dhcp4: true dhcp6: true eth1: dhcp4: true dhcp6: true eth2: dhcp4: true eth3: dhcp4: true eth4: dhcp4: true
- 按ESC退出,并输入:wq!保存配置。
- 执行以下命令,修改“01-netcfg.yaml”文件权限,确保只有文件所有者拥有读写的权限。
chmod 600 /etc/netplan/01-netcfg.yaml
chown root:root /etc/netplan/01-netcfg.yaml
- 执行以下命令,使配置修改生效。
- 执行以下步骤,配置“NetworkManager.conf”文件。
- 执行以下命令,重启网络服务使配置生效。
- 执行以下命令,检查云服务器是否可以获取到IPv6地址。
回显类似如下信息,eth0和eth1网卡有两行inet6地址,新增一行2407开头的地址,表示配置成功。
root@ecs-s:/etc/netplan# ip addr ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether fa:16:3e:22:22:ac brd ff:ff:ff:ff:ff:ff altname enp0s3 altname ens3 inet 10.0.0.138/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0 valid_lft 107999982sec preferred_lft 107999982sec inet6 2407:c080:1200:1dd8:1473:49db:22d7:13c7/128 scope global dynamic noprefixroute valid_lft 7182sec preferred_lft 7182sec inet6 fe80::f816:3eff:fe22:22ac/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether fa:16:3e:22:23:3b brd ff:ff:ff:ff:ff:ff altname enp4s1 inet 10.0.1.25/24 brd 10.0.1.255 scope global dynamic noprefixroute eth1 valid_lft 107999982sec preferred_lft 107999982sec inet6 2407:c080:1200:1a9c:691e:fffe:7e22:12c4/128 scope global dynamic noprefixroute valid_lft 7182sec preferred_lft 7182sec inet6 fe80::f816:3eff:fe22:233b/64 scope link noprefixroute valid_lft forever preferred_lft forever
- 登录目的端云服务器,参考3.a~3.h,配置目的云服务器获取IPv6地址。
回显类似如下信息,eth0有两行inet6地址,新增一行2407开头的地址,表示目的云服务器已成功获取IPv6地址。
root@ecs-d:/etc/netplan# ip addr ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether fa:16:3e:22:24:b4 brd ff:ff:ff:ff:ff:ff altname enp0s3 altname ens3 inet 10.0.2.146/24 brd 10.0.2.255 scope global dynamic noprefixroute eth0 valid_lft 107999994sec preferred_lft 107999994sec inet6 2407:c080:1200:1dd9:f5e1:94d1:2822:dede/128 scope global dynamic noprefixroute valid_lft 7195sec preferred_lft 7195sec inet6 fe80::f816:3eff:fe22:24b4/64 scope link noprefixroute valid_lft forever preferred_lft forever
- 执行以下命令,检查云服务器是否可以获取到IPv6地址。
- 登录源端云服务器,执行以下命令,检查源端云服务器主网卡和目的端云服务器通信情况。
ping6 -I 源端云服务器主网卡地址 目的端云服务器地址
命令示例:
ping6 -I 2407:c080:1200:1dd8:1473:49db:22d7:13c7 2407:c080:1200:1dd9:f5e1:94d1:2822:dede
回显类似如下信息,表示可以正常通信。root@ecs-s:/etc/netplan# ping6 -I 2407:c080:1200:1dd8:1473:49db:22d7:13c7 2407:c080:1200:1dd9:f5e1:94d1:2822:dede PING 2407:c080:1200:1dd9:f5e1:94d1:2822:dede(2407:c080:1200:1dd9:f5e1:94d1:2822:dede) from 2407:c080:1200:1dd8:1473:49db:22d7:13c7 : 56 data bytes 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=1 ttl=64 time=0.244 ms 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=2 ttl=64 time=0.212 ms 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=3 ttl=64 time=0.169 ms ^C --- 2407:c080:1200:1dd9:f5e1:94d1:2822:dede ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2033ms rtt min/avg/max/mdev = 0.169/0.208/0.244/0.030 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:1473:49db:22d7:13c7 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:691e:fffe:7e22:12c4 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-s:/etc/netplan# ip -6 rule 0: from all lookup local 32764: from 2407:c080:1200:1a9c:691e:fffe:7e22:12c4 lookup 20 32765: from 2407:c080:1200:1dd8:1473:49db:22d7:13c7 lookup 10 32766: from all lookup main root@ecs-s:/etc/netplan# 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-s:/etc/netplan# 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 源端云服务器扩展网卡地址 目的端云服务器地址
命令示例:
ping6 -I 2407:c080:1200:1dd8:1473:49db:22d7:13c7 2407:c080:1200:1dd9:f5e1:94d1:2822:dede
ping6 -I 2407:c080:1200:1a9c:691e:fffe:7e22:12c4 2407:c080:1200:1dd9:f5e1:94d1:2822:dede
回显类似如下信息,两个网卡均可以和目的端正常通信,表示策略路由配置成功。root@ecs-s:/etc/netplan# ping6 -I 2407:c080:1200:1dd8:1473:49db:22d7:13c7 2407:c080:1200:1dd9:f5e1:94d1:2822:dede PING 2407:c080:1200:1dd9:f5e1:94d1:2822:dede(2407:c080:1200:1dd9:f5e1:94d1:2822:dede) from 2407:c080:1200:1dd8:1473:49db:22d7:13c7 : 56 data bytes 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=1 ttl=64 time=0.260 ms 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=2 ttl=64 time=0.248 ms 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=3 ttl=64 time=0.165 ms ^C --- 2407:c080:1200:1dd9:f5e1:94d1:2822:dede ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2043ms rtt min/avg/max/mdev = 0.165/0.224/0.260/0.042 ms root@ecs-s:/etc/netplan# ping6 -I 2407:c080:1200:1a9c:691e:fffe:7e22:12c4 2407:c080:1200:1dd9:f5e1:94d1:2822:dede PING 2407:c080:1200:1dd9:f5e1:94d1:2822:dede(2407:c080:1200:1dd9:f5e1:94d1:2822:dede) from 2407:c080:1200:1a9c:691e:fffe:7e22:12c4 : 56 data bytes 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=1 ttl=64 time=0.592 ms 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=2 ttl=64 time=0.208 ms 64 bytes from 2407:c080:1200:1dd9:f5e1:94d1:2822:dede: icmp_seq=3 ttl=64 time=0.162 ms ^C --- 2407:c080:1200:1dd9:f5e1:94d1:2822:dede ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2031ms rtt min/avg/max/mdev = 0.162/0.320/0.592/0.192 ms
- 依次执行以下命令,添加主网卡和扩展网卡的策略路由。
- 执行以下步骤,为云服务器配置永久路由。
- 执行以下命令,为systemd服务创建一个新的文件“network-routes6.service”。
- 按i进入编辑模式。
- 在文件末尾添加以下配置。
[Unit] Description=Network Routes Configuration After=network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/bash -c 'for((x=0; x<30; x++)); do [[ $(ping6 -I eth0 2407:c080:1200:1dd8::1 -c 1 -W 1 >/dev/null 2>&1 && echo 1) ]] && break; done; ip 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; for((x=0; x<30; x++)); do [[ $(ping6 -I eth1 2407:c080:1200:1a9c::1 -c 1 -W 1 >/dev/null 2>&1 && echo 1) ]] && break; done; ip 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' [Install] WantedBy=multi-user.target
其中,参数说明如下:
- 按ESC退出,并输入:wq!保存配置。
- 执行以下命令,重新加载systemd配置,并启动服务。
systemctl enable network-routes6.service
回显类似如下信息,表示启动成功。root@ecs-s:/etc/netplan# systemctl daemon-reload root@ecs-s:/etc/netplan# systemctl enable network-routes6.service Created symlink /etc/systemd/system/multi-user.target.wants/network-routes6.service → /etc/systemd/system/network-routes6.service.
- 执行以下命令,重启云服务器。
“network-routes6.service”文件添加中添加的策略路由,需要重启云服务器后才会生效,此处请确保不影响业务再重启云服务器操作。
- 参考5.b~5.c,检查策略路由添加情况,并验证源端和目的通信是否正常。