# 手动为多网卡Linux云服务器配置IPv4和IPv6策略路由（CentOS）
#### 操作场景
本文档以CentOS 8.0 64bit为例，指导用户为双网卡Linux云服务器配置策略路由。
- IPv4：若需实现多网卡云服务器间的IPv4通信，需要配置IPv4路由，请执行[Linux IPv4操作步骤 (CentOS)]。
- IPv6：若需实现多网卡云服务器间的IPv6通信，需要配置IPv6路由，请执行[Linux IPv6操作步骤 (CentOS)]。
- IPv4/IPv6双栈：若需实现多网卡间的IPv4和IPv6通信，需要同时配置IPv4和IPv6路由，请依次执行[Linux IPv4操作步骤 (CentOS)]和[Linux IPv6操作步骤 (CentOS)]。
关于云服务器双网卡的背景知识及组网说明，请参见[方案概述](https://support.huaweicloud.com/usermanual-vpc/vpc_nic_0014.html#vpc_nic_0014)。
 #### Linux IPv4操作步骤 (CentOS)
1. 收集配置策略路由需要的云服务器网卡地址等信息。
   具体操作请参见[收集云服务器网络信息](https://support.huaweicloud.com/usermanual-vpc/vpc_nic_0015.html#vpc_nic_0015)。
   本示例中，云服务器的网络信息如[表1]所示。
    表1Linux IPv4信息说明（CentOS） 
   | 类型   | 主网卡                                                                                                                                                                                                                                                                                                                                                                                                                                      | 扩展网卡                                                                                                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|:---|
   | 源端  | - 网卡地址：10.0.0.115  - 子网网段：10.0.0.0/24  - 子网网关：10.0.0.1   | - 网卡地址：10.0.1.183  - 子网网段：10.0.1.0/24  - 子网网关：10.0.1.1   |
   | 目的端 | 网卡地址：10.0.2.12                                                                                                                                                                                                                                                                                                                                                                                                                           | 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                             |
      
   
2. 登录源端云服务器。 ECS有多种登录方法，具体请参见[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
   
3. 执行以下命令，检查源端云服务器主网卡和目的端云服务器通信情况。 **配置多网卡策略路由前，请务必确保源端主网卡和目的端通信正常。**
   **ping -I** *源端云服务器主网卡地址* *目的端云服务器地址*
   命令示例：
   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 ---
   ```
   
4. 执行以下命令，查看云服务器网卡名称。
   ifconfig
   回显类似如下信息，通过网卡地址查找对应的网卡名称，本示例中：
   - 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
   ```
   
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.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
        
      
      
      ![](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-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
      ```
      
   
   3. 执行以下命令，验证源端云服务器和目的端云服务器是否可以正常通信。
      **ping -I** *源端云服务器主网卡地址 目的端云服务器地址*
      **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
      ```
      
    
6. 执行以下步骤，为云服务器配置永久路由。
   1. 执行以下命令，打开"/etc/rc.local"文件。 vi /etc/rc.local
      
   
   2. 按i进入编辑模式。
   
   3. 在文件末尾添加以下配置。
      ```
      # check eth0 
      for ((x=0; x<10; x++)); do
        if (ip addr show eth0 | grep -w 10.0.0.115 >/dev/null 2>&1); then
          break
        fi
        sleep 1
      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<10; x++)); do
        if (ip addr show eth1 | grep -w 10.0.1.183 >/dev/null 2>&1); then
          break
        fi
        sleep 1
      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：循环检查主网卡eth0是否获取到IPv4地址（eth0网卡地址为10.0.0.115），每秒检查一次，重试次数为10次。
      
      - Add v4 routes for eth0：主网卡的策略路由，和[5.a]配置保持一致。
      
      - check eth1：循环检查扩展网卡eth1是否获取到IPv4地址（eth1网卡地址为10.0.1.183），每秒检查一次，重试次数为10次。
      
      - Add v4 routes for eth1：扩展网卡的策略路由，和[5.a]配置保持一致。
      
      - Add v4 routes for cloud-init：配置cloud-init地址，请和本示例中的配置保持一致，不要修改。
       
   
   4. 按ESC退出，并输入:wq!保存配置。
   
   5. 执行以下命令，为"/etc/rc.local"文件添加执行权限。
      chmod +x /etc/rc.local
      ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
      如果您的操作系统为Redhat、EulerOS，执行完[6.e]后，还需要执行以下命令，权限才会添加成功。
      **chmod +x /etc/rc.d/rc.local**
      
   
   6. 执行以下命令，重启云服务器。 reboot
      ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/caution_3.0-zh-cn.png)
      "/etc/rc.local"文件中添加的策略路由，需要重启云服务器后才会生效，此处请确保不影响业务再重启云服务器操作。
      
   
   7. 参考[5.b]\~[5.c]，检查策略路由添加情况，并验证源端和目的通信是否正常。
    
 
 #### Linux IPv6操作步骤 (CentOS)
1. 收集配置策略路由需要的云服务器网卡地址等信息。
   具体操作请参见[收集云服务器网络信息](https://support.huaweicloud.com/usermanual-vpc/vpc_nic_0015.html#vpc_nic_0015)。
   表2Linux 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                                                                                                                                                                                                                                                                                                                       | 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
      
   
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-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
      ```
      
   
   2. 执行以下命令，查看云服务器网卡名称。
      ifconfig
      回显类似如下信息，通过网卡地址查找对应的网卡名称，本示例中：
      - 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
      ```
      
   
   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-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
      ```
      
   
   8. 登录目的端云服务器，参考[3.a]\~[3.g]，配置目的云服务器获取IPv6地址。
    
4. 登录源端云服务器，执行以下命令，检查源端云服务器主网卡和目的端云服务器通信情况。 **配置多网卡策略路由前，请务必确保源端主网卡和目的端通信正常。**
   **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
   ```
   
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: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
        
      
      
      ![](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-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
      ```
      
   
   3. 执行以下命令，验证源端云服务器和目的端云服务器是否可以正常通信。
      **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
      ```
      
    
6. 执行以下步骤，为云服务器配置永久路由。
   1. 执行以下命令，打开"/etc/rc.local"文件。 vi /etc/rc.local
      
   
   2. 按i进入编辑模式。
   
   3. 在文件末尾添加以下配置。
      ```
      # check eth0 
      for ((x=0; x<10; x++)); do
        if (ip addr show eth0 | grep -w 2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9 >/dev/null 2>&1); then
          break
        fi
        sleep 1
      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<10; x++)); do
        if (ip addr show eth1 | grep -w 2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8 >/dev/null 2>&1); then
          break
        fi
        sleep 1
      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：循环检查主网卡eth0是否获取到IPv6地址（eth0网卡地址为2407:c080:1200:1dd8:859c:e5d5:8b3d:a2d9），每秒检查一次，重试次数为10次。
      
      - Add v6 routes for eth0：主网卡的策略路由，和[5.a]配置保持一致。
      
      - check eth1：循环检查扩展网卡eth1是否获取到IPv6地址（eth1网卡地址为2407:c080:1200:1a9c:7cc0:63b5:8e65:4dd8），每秒检查一次，重试次数为10次。
      
      - Add v6 routes for eth1：扩展网卡的策略路由，和[5.a]配置保持一致。
       
   
   4. 按ESC退出，并输入:wq!保存配置。
   
   5. 执行以下命令，为"/etc/rc.local"文件添加执行权限。
      chmod +x /etc/rc.local
      ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
      如果您的操作系统为Redhat、EulerOS，执行完[6.e]后，还需要执行以下命令，权限才会添加成功。
      **chmod +x /etc/rc.d/rc.local**
      
   
   6. 执行以下命令，重启云服务器。 reboot
      ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/caution_3.0-zh-cn.png)
      "/etc/rc.local"文件中添加的策略路由，需要重启云服务器后才会生效，此处请确保不影响业务再重启云服务器操作。
      
   
   7. 参考[5.b]\~[5.c]，检查策略路由添加情况，并验证源端和目的通信是否正常。
    
 
