背景知识
当云服务器绑定多张网卡时,由于默认路由会优先从主网卡出,导致主网卡默认可以和外部正常通信,扩展网卡只能与本子网网段互通,无法与其他网段正常通信;在这种情况下需要在云服务器操作系统内部为这些网卡配置策略路由,以便多张网卡均可与外部正常通信。
应用场景
客户弹性云主机-1有两张网卡,主网卡需要访问弹性云主机-2,且弹性云主机-2的响应正常回到主网卡;同样辅助网也也需访问弹性云主机-2,且要求其响应报文正常回到辅助网卡。
操作指导
操作步骤(Linux IPv4)
收集配置策略路由需要的云服务器网卡地址等信息(主网卡IP、辅助网卡IP)
确保云服务器已正常获取到IPv4地址。
执行以下命令,查看云服务器网卡名称。
回显类似如下信息,通过网卡地址查找对应的网卡名称,本示例中
192.168.0.7为主网卡地址,对应的名称为eth0。
192.168.1.4为扩展网卡地址,对应的名称为eth1。
操作前检查和网关通信情况(其中一个网卡可以和网关通信另外一个网卡默认不通)
ping -I 192.168.0.7 192.168.2.3
ping -I 192.168.1.4 192.168.2.3
查看路由默认状态主网卡的默认路由优先级更高,策略路由为默认
ip route
ip rule
执行命令添加主备网卡的路由
主网卡
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 路由表名称
参数说明如下:网卡名称:填写ifconfig中所查名称。
路由表名称:自定义路由表名称,此处请使用数字命名路由表。
命令示例
主网卡
ip route add default via 192.168.0.1 dev eth0 table 10
ip route add 192.168.0.0/24 dev eth0 table 10
ip rule add from 192.168.0.7 table 10
扩展网卡
ip route add default via 192.168.1.1 dev eth1 table 20
ip route add 192.168.1.0/24 dev eth1 table 20
ip rule add from 192.168.1.4 table 20
ping验证,eth0 eth1与目的地址都可以互通
ping -I 192.168.0.7 192.168.2.3
ping -I 192.168.1.4 192.168.2.3
操作步骤(Linux IPv6)
收集配置策略路由需要的云服务器网卡地址等信息(主网卡IP、辅助网卡IP)
确保云服务器已开启IPv6协议栈,并且正常获取到IPv6地址。
执行以下命令,查看云服务器网卡名称。
回显类似如下信息,通过网卡地址查找对应的网卡名称,本示例中:192.168.0.7/240e:982:7544:b600:d048:8b81:dbd0:da34为主网卡地址,对应的名称为eth0。
192.168.1.4/240e:982:7544:b601:ea49:9511:8124:e5f7为扩展网卡地址,对应的名称为eth1。
操作前检查和网关通信情况(其中一个网卡可以和网关通信另外一个网卡默认不通)
ping6 -I 240e:982:7544:b600:d048:8b81:dbd0:da34 240e:982:7544:b602:f6b0:50a9:fb3a:d97d
ping6 -I 240e:982:7544:b601:ea49:9511:8124:e5f7 240e:982:7544:b602:f6b0:50a9:fb3a:d97d
查看路由默认状态只有一个网卡的默认路由,策略路由为默认
ip -6 route
ip -6 rule
执行命令添加主备网卡的路由
主网卡
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 路由表名称
参数说明如下:网卡名称:填写ifconfig中所查名称。
路由表名称:自定义路由表名称,此处请使用数字命名路由表。
命令示例
主网卡
ip -6 route add default via fe80::f816:3eff:fe64:2923 dev eth0 table 10
ip -6 route add 240e:982:7544:b600::/64 dev eth0 table 10
ip -6 rule add from 240e:982:7544:b600:d048:8b81:dbd0:da34 table 10
扩展网卡
ip -6 route add default via fe80::f816:3eff:fe12:3d1b dev eth1 table 20
ip -6 route add 240e:982:7544:b601::/64 dev eth1 table 20
ip -6 rule add from 240e:982:7544:b601:ea49:9511:8124:e5f7 table 20
ping验证,eth0 eth1与目的地址都可以互通
ping6 -I 240e:982:7544:b600:d048:8b81:dbd0:da34 240e:982:7544:b602:f6b0:50a9:fb3a:d97d
ping6 -I 240e:982:7544:b601:ea49:9511:8124:e5f7 240e:982:7544:b602:f6b0:50a9:fb3a:d97d