多网卡路由配置策略

如果云主机拥有多张虚拟网卡,一般情况下默认网卡可以和外部正常通信,扩展网卡默认情况下无法和外部正常通信。此时则需根据业务情况进行多网卡路由策略的配置,使得扩展网卡可以和外部正常通信。

注意

多网卡路由配置策略需要在系统网络服务正常状态下进行配置。

本文以CentOS7.9操作系统、拥有三张网卡(一张默认网卡和两张扩展网卡)的云主机为例,进行路由策略配置:

  1. 云主机绑定网卡信息如下图所示,在云主机详情页面点击弹性网卡栏查看。其中port111381为默认网卡。port_test_1和port_test_2为扩展网卡。

  2. 云主机内网卡配置信息如下图所示,使用ifconfig命令查看。其中eth0为默认网卡,对应于port111381。eth1和eth2为扩展网卡,分别对应于port_test_2和port_test_1。

  3. 执行如下命令,修改/etc/iproute2/rt_tables配置文件,新增路由表。
    vim /etc/iproute2/rt_tables

    以eth1和eth2为例增加如下内容,如下图红框所示。

    251    eth1
    252    eth2

  4. 添加指定路由。以eth1和eth2为例,执行如下命令。其中192.168.0.1表示默认网关,192.168.0.20为eth1的ip地址,192.168.0.179为eth2的ip地址。客户需要根据实际情况进行修改。
    ip route add default via 192.168.0.1 dev eth1 src 192.168.0.20 table eth1
    ip rule add from 192.168.0.20 table eth1
    ip route add default via 192.168.0.1 dev eth2 src 192.168.0.179 table eth2
    ip rule add from 192.168.0.179 table eth2
    执行完后执行如下命令,可检测路由是否添加成功,以eth1和eth2为例。
    ip route show table eth1
    ip rule show table eth1
    ip route show table eth2
    ip rule show table eth2
    如下图所示,指定路由均成功添加。

  5. 将路由信息永久写入/etc/rc.local文件,保证云主机重启后扩展网卡的路由仍然生效。
    vim /etc/rc.local

    以eth1和eth2为例,添加以下内容,如下图红框所示。其中ip route flush table命令用于清空路由表。

    ip route flush table eth1   
    ip route add default via 192.168.0.1 dev eth1 src 192.168.0.20 table eth1
    ip rule add from 192.168.0.20 table eth1
    
    ip route flush table eth2
    ip route add default via 192.168.0.1 dev eth2 src 192.168.0.179 table eth2
    ip rule add from 192.168.0.179 table eth2
  6. 为保证每次开启启动执行/etc/rc.local文件,执行如下命令,赋予执行权限。
    chmod +x /etc/rc.local

  7. 执行如下命令,进行重启。
    reboot

  8. 测试。下面以本机作为客户端,同一子网下ip为192.168.0.153的机器作为服务端,使用ping命令进行测试。测试命令如下所示。其中-I用于指定网卡,不指定时使用默认网卡,-c用于指定次数。
    # 使用默认网卡eth0 测试
    ping 192.168.0.153 -c 4
    # 使用扩展网卡eth1测试
    ping -I eth1 192.168.0.153 -c 4
    # 使用扩展网卡eth2测试
    ping -I eth2 192.168.0.153 -c 4
    如下图所示,可以看到默认网卡eth0、扩展网卡eth1和eth2均可以和外部机器正常通信。
本文档内容整理自移动云官方帮助中心(查看原文),仅供参考。