# 手动为多网卡Linux云服务器配置IPv4和IPv6策略路由（HCE）
#### 操作场景
本文档以Huawei Cloud EulerOS 2.0 标准版 64位为例，指导用户为双网卡Linux云服务器配置策略路由。
- IPv4：若需实现多网卡云服务器间的IPv4通信，需要配置IPv4路由，请执行[Linux IPv4操作步骤 (HCE)]。
- IPv6：若需实现多网卡云服务器间的IPv6通信，需要配置IPv6路由，请执行[Linux IPv6操作步骤 (HCE)]。
- IPv4/IPv6双栈：若需实现多网卡间的IPv4和IPv6通信，需要同时配置IPv4和IPv6路由，请依次执行[Linux IPv4操作步骤 (HCE)]和[Linux IPv6操作步骤 (HCE)]。
关于云服务器双网卡的背景知识及组网说明，请参见[方案概述](https://support.huaweicloud.com/usermanual-vpc/vpc_nic_0014.html#vpc_nic_0014)。
 #### Linux IPv4操作步骤 (HCE)
1. 收集配置策略路由需要的云服务器网卡地址等信息。
   具体操作请参见[收集云服务器网络信息](https://support.huaweicloud.com/usermanual-vpc/vpc_nic_0015.html#vpc_nic_0015)。
   本示例中，云服务器的网络信息如[表1]所示。
    表1Linux IPv4信息说明（HCE） 
   | 类型   | 主网卡                                                                                                                                                                                                                                                                                                                                                                                                                                      | 扩展网卡                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|:---|
   | 源端  | - 网卡地址：10.0.0.125  - 子网网段：10.0.0.0/24  - 子网网关：10.0.0.1   | - 网卡地址：10.0.1.16  - 子网网段：10.0.1.0/24  - 子网网关：10.0.1.1   |
   | 目的端 | 网卡地址：10.0.2.180                                                                                                                                                                                                                                                                                                                                                                                                                          | 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                            |
      
   
2. 登录源端云服务器。 ECS有多种登录方法，具体请参见[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
   
3. 执行以下命令，检查源端云服务器主网卡和目的端云服务器通信情况。 **配置多网卡策略路由前，请务必确保源端主网卡和目的端通信正常。**
   **ping -I** *源端云服务器主网卡地址* *目的端云服务器地址*
   命令示例：
   **ping -I 10.0.0.125 10.0.2.180**
   回显类似如下信息，表示可以正常通信。
   ```
   [root@ecs-s ~]# ping -I 10.0.1.125 10.0.3.180
   PING 10.0.3.180 (10.0.3.180) from 10.0.1.125 : 56(84) bytes of data.
   64 bytes from 10.0.3.180: icmp_seq=1 ttl=64 time=1.11 ms
   64 bytes from 10.0.3.180: icmp_seq=2 ttl=64 time=0.542 ms
   64 bytes from 10.0.3.180: icmp_seq=3 ttl=64 time=0.262 ms
   64 bytes from 10.0.3.188: icmp_seq=4 ttl=64 time=0.225 ms
   ^C
   -- 10.0.3.180 ping statistics ---
   4 packets transmitted, 4 received, 0% packet loss, time 3049ms
   rtt min/avg/max/mdev = 0.225/0.533/1.106/0.352 ms
   ```
   
4. 执行以下命令，查看云服务器网卡名称。
   **ip addr**
   回显类似如下信息，通过网卡地址查找对应的网卡名称，本示例中：
   - 10.0.0.125为主网卡地址，对应的名称为eth0。
   
   - 10.0.1.16为扩展网卡地址，对应的名称为eth1。
   
   
   ```
   [root@ecs-s "l# ip addr
   ...
   2: eth0: <BROADCAST,MULTICAST,UP,LOWER UP> mtu 1500 qdisc mq state UP group default qlen 1000
       link/ether fa:16:3e:07:07:84 brd ff :ff :ff :ff :ff :ff
       altname enp0s3
       altname ens3
       inet 10.0.0.125/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0
          valid 1ft 315359965sec preferred_lft 315359965sec
       inet6 fe80::f816:3eff:fe07:784/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:07:08:17 brd ff :ff :ff :ff :ff :ff
      altname enp4s1
      inet 10.0.1.16/24 brd 10.0.1.255 scope global dynamic noprefixroute eth1
         valid_lft 315359965sec preferred_lft 315359965sec
      inet6 fe80::f816:3eff:fe07:817/64 scope link
         valid_lft forever preferred_lft forever
   ```
   
5. 执行以下步骤，为云服务器配置临时路由。
   ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/caution_3.0-zh-cn.png)
   临时路由配置完后立即生效，当云服务器重启后临时路由会丢失，请执行[5]配置完临时路由后，继续执行[6]配置永久路由，避免云服务器重启后网络中断。
   1. 依次执行以下命令，添加主网卡和扩展网卡的策略路由。
      - 主网卡 **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** *路由表名称*
        
      
      
      参数说明如下：
      - 网卡名称：填写[4]中所查名称。
      
      - 路由表名称：自定义路由表名称，此处请使用数字命名路由表。
      
      - 其他网络信息：填写[1]中收集的地址。
       
      命令示例：
      - 主网卡 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.125 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.16 table 20
        
      
      
      ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
      如果云服务器有多张网卡，请依次为所有网卡添加策略路由。
      
   
   2. 依次执行以下命令，确认策略路由是否添加成功。
      **ip rule**
      **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.16 lookup 20
      32765: from 10.0.0.125 lookup 10
      32766: from all lookup main
      32767: from all lookup default
      [rootlecs-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
      ```
      
   
   3. 执行以下命令，验证源端云服务器和目的端云服务器是否可以正常通信。
      **ping -I** *源端云服务器主网卡地址 目的端云服务器地址*
      **ping -I** *源端云服务器扩展网卡地址 目的端云服务器地址*
      命令示例：
      **ping -I 10.0.0.125 10.0.2.180**
      **ping -I 10.0.1.16 10.0.2.180**
      回显类似如下信息，两个网卡均可以和目的端正常通信，表示策略路由配置成功。
      ```
      [root@ecs-s ~1# ping -I 10.0.0.125 10.0.2.180
      PING 10.0.2.180 (10.0.2.180) from 10.0.0.125 : 56(84) bytes 0f data.
      64 bytes from 10.0.2.180: icmp_seq=1 ttl=64 time=1.12ms
      64 bytes from 10.0.2.180: icmp_seq=2 ttl=64 time=0.309ms
      64 bytes from 10.0.2.180: icmp_seq=3 ttl=64 time=0.342 ms
      ^C
      --10.0.2.180 ping statistics ---
      3 packets transmitted, 3 received, 0% packet loss, time 2039ms
      rtt min/avg/max/mdeu = 0.309/0.588/1.115/0.372ms
      [root@ecs-s ~]# ping -I 10.0.1.16 10.0.2.180
      PING 10.0.2.180 (10.0.2.180) from 10.0.1.16 : 56(84) bytes 0f data.
      64 bytes from 10.0.2.180: icmp_seq=1 ttl=64 time=1.50 ms
      64 bytes from 10.0.2.180: icmp_seq=2 ttl=64 time=0.384 ms
      64 bytes from 10.0.2.180: icmp_seq=3 ttl=64 time=0.369 ms
      ^C
      -- 10.0.2.180 ping statistics ---
      3 packets transmitted,3 received, 0% packet loss, time 2005ms
      rtt min/avg/max/mdeu = 0.369/0.749/1.495/0.522ms
      ```
      
    
6. 执行以下步骤，为云服务器配置永久路由。
   1. 执行以下命令，为systemd服务创建一个新的"network-routes.service"文件。 **vi /etc/systemd/system/network-routes.service**
      
   
   2. 按i进入编辑模式。
   
   3. 在文件末尾添加以下配置。
      ```
      [Unit]
      Description=Network Routes Configuration
      After=network.target
      [Service]
      Type=oneshot
      RemainAfterExit=yes
      ExecStart=/bin/bash -c 'for((x=0; x<10; x++)); do [[ $(ip addr show eth0 | grep -w 10.0.0.125 >/dev/null 2>&1 && echo 1) ]] && break; sleep 1; 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.125 table 10; for((x=0; x<10; x++)); do [[ $(ip addr show eth1 | grep -w 10.0.1.16 >/dev/null 2>&1 && echo 1) ]] && break; sleep 1; 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.16 table 20; ip rule add to 169.254.169.254 table main'
      [Install]
      WantedBy=multi-user.target
      ```
      其中，参数说明如下：
      - for循环：循环检查主网卡eth0或者扩展网卡eth1是否获取到IPv4地址（eth0网卡地址为10.0.0.125，eth1网卡地址为10.0.1.16），每秒检查一次，重试次数为10次。
      
      - ip route flush table 路由表名称：假如路由表有残留路由，使用该命令会清空指定路由表中残留的路由，避免影响本次配置新的路由。
      
      - 主网卡的策略路由，和[5.a]配置保持一致。
      
      - 扩展网卡的策略路由，和[5.a]配置保持一致。
      
      - ip rule add to 169.254.169.254 table main：配置cloud-init地址，请和本示例中的配置保持一致，不要修改。
       
   
   4. 按ESC退出，并输入:wq!保存配置。
   
   5. 执行以下命令，重新加载systemd配置，并启动服务。 **systemctl daemon-reload**
      **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.
      ```
      
   
   6. 执行以下命令，重启云服务器。 reboot
      ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/caution_3.0-zh-cn.png)
      "network-routes.service"文件中添加的策略路由，需要重启云服务器后才会生效，此处请确保不影响业务再重启云服务器操作。
      
   
   7. 参考[5.b]\~[5.c]，检查策略路由添加情况，并验证源端和目的通信是否正常。
    
 
 #### Linux IPv6操作步骤 (HCE)
1. 收集配置策略路由需要的云服务器网卡地址等信息。
   具体操作请参见[收集云服务器网络信息](https://support.huaweicloud.com/usermanual-vpc/vpc_nic_0015.html#vpc_nic_0015)。
   表2Linux IPv6信息说明(HCE) 
   | 类型 | 主网卡                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 扩展网卡                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|:---|
   | 源端   | - 网卡IPv4地址：10.0.0.125  - 网卡IPv6地址：2407:c080:802:221c:5e76:7761:8d54:4ebc  - 子网IPv6网段：2407:c080:802:221c::/64  - 子网IPv6网关：2407:c080:802:221c::1   | - 网卡IPv4地址：10.0.1.16  - 网卡IPv6地址：2407:c080:802:221d:3be1:c05a:345c:4802  - 子网IPv6网段：2407:c080:802:221d::/64  - 子网IPv6网关：2407:c080:802:221d::1   |
   | 目的端   | - 网卡IPv4地址：10.0.2.180  - 网卡IPv6地址：2407:c080:802:1744:5df4:f1d3:cb97:2eb3                                                                                                                                                                                                                                                                                                                                | 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
      
   
2. 登录源端云服务器。 ECS有多种登录方法，具体请参见[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
   
3. 执行以下步骤，确保云服务器已开启IPv6协议栈，并且正常获取到IPv6地址。
   ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/caution_3.0-zh-cn.png)
   对于源端和目的端的IPv6云服务器，均需要执行该操作，确保云服务器已获取到IPv6地址，否则云服务器无法通过IPv6地址进行通信。
   本章节云服务器使用的操作系统为CentOS 8.0 64bit公共镜像，以下针对该操作系统举例，更多操作系统配置指导，请参见[动态获取IPv6地址](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0508.html#ecs_03_0508__zh-cn_topic_0129883696_section7426172116710)的"Linux操作系统（手动配置启用IPv6）" 小节。
   1. 执行以下命令，检查云服务器是否可以获取到IPv6地址。
      ip addr
      回显类似如下信息，eth0和eth1为云服务器的网卡，只有一行inet6地址，为fe80开头，表示该云服务器已开启IPv6协议栈，但是未获取到IPv6地址，需要继续执行[3.b]\~[3.g]，获取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:c0:c0:3d brd ff:ff:ff:ff:ff:ff
          inet 10.0.0.125/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0
             valid_lft 315359743sec preferred_lft 315359743sec
          inet6 fe80::f816:3eff:fec0:c03d/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:c0:c1:d0 brd ff:ff:ff:ff:ff:ff
          inet 10.0.1.16/24 brd 10.0.1.255 scope global dynamic noprefixroute eth1
             valid_lft 315359743sec preferred_lft 315359743sec
          inet6 fe80::f816:3eff:fec0:c1d0/64 scope link 
             valid_lft forever preferred_lft forever
      ```
      
   
   2. 执行以下命令，查看云服务器网卡名称。
      ifconfig
      回显类似如下信息，通过网卡地址查找对应的网卡名称，本示例中：
      - 10.0.0.125为主网卡地址，对应的名称为eth0。
      
      - 10.0.1.16为扩展网卡地址，对应的名称为eth1。
      
      
      ```
      [root@ecs-s ~]# ifconfig
      eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 10.0.0.125  netmask 255.255.255.0  broadcast 10.0.0.255
              inet6 fe80::f816:3eff:fec0:c03d  prefixlen 64  scopeid 0x20<link>
              ether fa:16:3e:c0:c0:3d  txqueuelen 1000  (Ethernet)
              RX packets 94157  bytes 135947002 (129.6 MiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 9283  bytes 837900 (818.2 KiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 10.0.1.16  netmask 255.255.255.0  broadcast 10.0.1.255
              inet6 fe80::f816:3eff:fec0:c1d0  prefixlen 64  scopeid 0x20<link>
              ether fa:16:3e:c0:c1:d0  txqueuelen 1000  (Ethernet)
              RX packets 6  bytes 1176 (1.1 KiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 6  bytes 768 (768.0 B)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      ...
      ```
      
   
   3. 执行以下步骤，编辑主网卡的ifcfg文件。
      1. 执行以下命令，打开主网卡的ifcfg文件。 **vi /etc/sysconfig/network-scripts/ifcfg-** *主网卡名称*
         其中，主网卡名称为[3.b]中查询到的名称。
         命令示例：
         **vi /etc/sysconfig/network-scripts/ifcfg-eth0**
         
      
      2. 按i进入编辑模式。
      
      3. 在文件末尾添加以下配置。
         ```
         IPV6INIT="yes"
         DHCPV6C="yes"
         ```
         
      
      4. 按ESC退出，并输入:wq!保存配置。
       
   
   4. 执行以下步骤，编辑扩展网卡的ifcfg文件。
      1. 执行以下命令，打开扩展网卡的ifcfg文件。 **vi /etc/sysconfig/network-scripts/ifcfg-** *扩展网卡名称*
         其中，扩展网卡名称为[3.b]中查询到的名称。
         命令示例：
         **vi /etc/sysconfig/network-scripts/ifcfg-eth1**
         
      
      2. 按i进入编辑模式。
      
      3. 在文件末尾添加以下配置。
         ```
         IPV6INIT="yes"
         DHCPV6C="yes"
         ```
         
      
      4. 按ESC退出，并输入:wq!保存配置。
       
   
   5. 执行以下步骤，编辑"/etc/sysconfig/network"文件。
      1. 执行以下命令，打开"/etc/sysconfig/network"文件。 **vi /etc/sysconfig/network**
         
      
      2. 按i进入编辑模式。
      
      3. 在文件末尾添加以下配置。
         ```
         NETWORKING_IPV6="yes"
         ```
         
      
      4. 按ESC退出，并输入:wq!保存配置。
       
   
   6. 执行以下命令，重启网络服务使配置生效。 systemctl restart NetworkManager
      
   
   7. 执行以下命令，检查云服务器是否可以获取到IPv6地址。
      ip addr
      回显类似如下信息，eth0和eth1网卡有两行inet6地址，新增一行2407开头的地址，表示配置成功。
      ```
      [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:c0:c0:3d brd ff:ff:ff:ff:ff:ff
          inet 10.0.0.125/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0
             valid_lft 315359992sec preferred_lft 315359992sec
          inet6 2407:c080:802:221c:5e76:7761:8d54:4ebc/128 scope global dynamic noprefixroute 
             valid_lft 7192sec preferred_lft 7192sec
          inet6 fe80::f816:3eff:fec0:c03d/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:c0:c1:d0 brd ff:ff:ff:ff:ff:ff
          inet 10.0.1.16/24 brd 10.0.1.255 scope global dynamic noprefixroute eth1
             valid_lft 315359992sec preferred_lft 315359992sec
          inet6 2407:c080:802:221d:3be1:c05a:345c:4802/128 scope global dynamic noprefixroute 
             valid_lft 7192sec preferred_lft 7192sec
          inet6 fe80::f816:3eff:fec0:c1d0/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      ```
      
   
   8. 登录目的端云服务器，参考[3.a]\~[3.g]，配置目的云服务器获取IPv6地址。
    
4. 登录源端云服务器，执行以下命令，检查源端云服务器主网卡和目的端云服务器通信情况。 **配置多网卡策略路由前，请务必确保源端主网卡和目的端通信正常。**
   **ping6 -I** *源端云服务器主网卡地址* *目的端云服务器地址*
   命令示例：
   **ping6 -I 2407:c080:802:221c:5e76:7761:8d54:4ebc 2407:c080:802:1744:5df4:f1d3:cb97:2eb3**
   回显类似如下信息，表示可以正常通信。
   ```
   [root@ecs-s ~]# ping6 -I 2407:c080:802:221c:5e76:7761:8d54:4ebc 2407:c080:802:1744:5df4:f1d3:cb97:2eb3
   PING 2407:c080:802:1744:5df4:f1d3:cb97:2eb3(2407:c080:802:1744:5df4:f1d3:cb97:2eb3) from 2407:c080:802:221c:5e76:7761:8d54:4ebc : 56 data bytes
   64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=1 ttl=64 time=0.264 ms
   64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=2 ttl=64 time=0.180 ms
   64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=3 ttl=64 time=0.107 ms
   ^C
   --- 2407:c080:802:1744:5df4:f1d3:cb97:2eb3 ping statistics ---
   3 packets transmitted, 3 received, 0% packet loss, time 2038ms
   rtt min/avg/max/mdev = 0.107/0.183/0.264/0.064 ms
   ```
   
5. 登录源端云服务器，执行以下步骤，为云服务器配置临时路由。
   ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/caution_3.0-zh-cn.png)
   临时路由配置完后立即生效，当云服务器重启后临时路由会丢失，请执行[5]配置完临时路由后，继续执行[6]配置永久路由，避免云服务器重启后网络中断。
   1. 依次执行以下命令，添加主网卡和扩展网卡的策略路由。
      - 主网卡 **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** *路由表名称*
        
      
      
      参数说明如下：
      - 网卡名称：填写[3.b]中所查名称。
      
      - 路由表名称：自定义路由表名称，此处请使用数字命名路由表。
      
      - 其他网络信息：填写[1]中收集的地址。
       
      命令示例：
      - 主网卡 **ip -6 route add default via 2407:c080:802:221c::1 dev eth0 table 10**
        **ip -6 route add 2407:c080:802:221c::/64 dev eth0 table 10**
        **ip -6 rule add from 2407:c080:802:221c:5e76:7761:8d54:4ebc table 10**
        
      
      - 扩展网卡 **ip -6 route add default via 2407:c080:802:221d::1 dev eth1 table 20**
        **ip -6 route add 2407:c080:802:221d::/64 dev eth1 table 20**
        **ip -6 rule add from 2407:c080:802:221d:3be1:c05a:345c:4802 table 20**
        
      
      
      ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
      如果云服务器有多张网卡，请依次为所有网卡添加策略路由。
      
   
   2. 依次执行以下命令，确认策略路由是否添加成功。
      **ip -6 rule**
      **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 ~]# ip -6 rule
      0:      from all lookup local
      32764:  from 2407:c080:802:221d:3be1:c05a:345c:4802 lookup 20
      32765:  from 2407:c080:802:221c:5e76:7761:8d54:4ebc lookup 10
      32766:  from all lookup main
      [root@ecs-s ~]# ip -6 route show table 10
      2407:c080:802:221c::/64 dev eth0 metric 1024 pref medium
      default via 2407:c080:802:221c::1 dev eth0 metric 1024 pref medium
      [root@ecs-s ~]# ip -6 route show table 20
      2407:c080:802:221d::/64 dev eth1 metric 1024 pref medium
      default via 2407:c080:802:221d::1 dev eth1 metric 1024 pref medium
      ```
      
   
   3. 执行以下命令，验证源端云服务器和目的端云服务器是否可以正常通信。
      **ping6 -I** *源端云服务器主网卡地址 目的端云服务器地址*
      **ping6 -I** *源端云服务器扩展网卡地址 目的端云服务器地址*
      命令示例：
      **ping6 -I 2407:c080:802:221c:5e76:7761:8d54:4ebc 2407:c080:802:1744:5df4:f1d3:cb97:2eb3**
      **ping6 -I 2407:c080:802:221d:3be1:c05a:345c:4802 2407:c080:802:1744:5df4:f1d3:cb97:2eb3**
      回显类似如下信息，两个网卡均可以和目的端正常通信，表示策略路由配置成功。
      ```
      [root@ecs-s ~]# ping6 -I 2407:c080:802:221c:5e76:7761:8d54:4ebc 2407:c080:802:1744:5df4:f1d3:cb97:2eb3
      PING 2407:c080:802:1744:5df4:f1d3:cb97:2eb3(2407:c080:802:1744:5df4:f1d3:cb97:2eb3) from 2407:c080:802:221c:5e76:7761:8d54:4ebc : 56 data bytes
      64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=1 ttl=64 time=0.316 ms
      64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=2 ttl=64 time=0.190 ms
      64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=3 ttl=64 time=0.114 ms
      ^C
      --- 2407:c080:802:1744:5df4:f1d3:cb97:2eb3 ping statistics ---
      3 packets transmitted, 3 received, 0% packet loss, time 2082ms
      rtt min/avg/max/mdev = 0.114/0.206/0.316/0.083 ms
      [root@ecs-s ~]# ping6 -I 2407:c080:802:221d:3be1:c05a:345c:4802 2407:c080:802:1744:5df4:f1d3:cb97:2eb3
      PING 2407:c080:802:1744:5df4:f1d3:cb97:2eb3(2407:c080:802:1744:5df4:f1d3:cb97:2eb3) from 2407:c080:802:221d:3be1:c05a:345c:4802 : 56 data bytes
      64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=1 ttl=64 time=1.00 ms
      64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=2 ttl=64 time=0.161 ms
      64 bytes from 2407:c080:802:1744:5df4:f1d3:cb97:2eb3: icmp_seq=3 ttl=64 time=0.092 ms
      ^C
      --- 2407:c080:802:1744:5df4:f1d3:cb97:2eb3 ping statistics ---
      3 packets transmitted, 3 received, 0% packet loss, time 2032ms
      rtt min/avg/max/mdev = 0.092/0.417/1.000/0.412 ms
      ```
      
    
6. 执行以下步骤，为云服务器配置永久路由。
   1. 执行以下命令，为systemd服务创建一个新的文件"network-routes6.service"。 **vi /etc/systemd/system/network-routes6.service**
      
   
   2. 按i进入编辑模式。
   
   3. 在文件末尾添加以下配置。
      ```
      [Unit]
      Description=Network Routes Configuration
      After=network.target
      [Service]
      Type=oneshot
      RemainAfterExit=yes
      ExecStart=/bin/bash -c 'for((x=0; x<10; x++)); do [[ $(ip addr show eth0 | grep -w 2407:c080:802:221c:5e76:7761:8d54:4ebc >/dev/null 2>&1 && echo 1) ]] && break; sleep 1; done; ip route flush table 10; ip -6 route add default via 2407:c080:802:221c::1 dev eth0 table 10; ip -6 route add 2407:c080:802:221c::/64 dev eth0 table 10; ip -6 rule add from 2407:c080:802:221c:5e76:7761:8d54:4ebc table 10; for((x=0; x<10; x++)); do [[ $(ip addr show eth1 | grep -w 2407:c080:802:221d:3be1:c05a:345c:4802 >/dev/null 2>&1 && echo 1) ]] && break; sleep 1; done; ip route flush table 20; ip -6 route add default via 2407:c080:802:221d::1 dev eth1 table 20; ip -6 route add 2407:c080:802:221d::/64 dev eth1 table 20; ip -6 rule add from 2407:c080:802:221d:3be1:c05a:345c:4802 table 20'
      [Install]
      WantedBy=multi-user.target
      ```
      其中，参数说明如下：
      - for循环：检查主网卡eth0或者扩展网卡eth1是否获取到IPv6地址（eth0网卡IPv6地址为**2407:c080:802:221c:5e76:7761:8d54:4ebc** ，eth1网卡IPv6地址为**2407:c080:802:221d:3be1:c05a:345c:4802**），间隔时间为1s，重试次数为10次。
      
      - ip route flush table 路由表名称：假如路由表有残留路由，使用该命令会清空指定路由表中残留的路由，避免影响本次配置新的路由。
      
      - 主网卡的策略路由，和[5.a]配置保持一致。
      
      - 扩展网卡的策略路由，和[5.a]配置保持一致。
       
   
   4. 按ESC退出，并输入:wq!保存配置。
   
   5. 执行以下命令，重新加载systemd配置，并启动服务。 **systemctl daemon-reload**
      **systemctl enable network-routes6.service**
      回显类似如下信息，表示启动成功。
      ```
      [root@ecs-s ~]# systemctl daemon-reload
      [root@ecs-s ~]# systemctl enable network-routes6.service
      Created symlink /etc/systemd/system/multi-user.target.wants/network-routes6.service → /etc/systemd/system/network-routes6.service.
      ```
      
   
   6. 执行以下命令，重启云服务器。 reboot
      ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/caution_3.0-zh-cn.png)
      "network-routes6.service"文件中添加的策略路由，需要重启云服务器后才会生效，此处请确保不影响业务再重启云服务器操作。
      
   
   7. 参考[5.b]\~[5.c]，检查策略路由添加情况，并验证源端和目的通信是否正常。
    
 
