配置路由以使用 2 个不同的接口来传输出站流量

配置路由以使用 2 个不同的接口来传输出站流量

我已经关注了 serverfault 上的许多文章,但我无法在 ubuntu 16.04 中通过第二个 nics 管理出站流量。

除了 serverfault 之外,我还关注了 -https://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/

https://aws.amazon.com/premiumsupport/knowledge-center/ec2-ubuntu-secondary-network-interface/

https://msazure.club/configure-ubuntu-to-support-multiple-nics-in-azure/

我的配置 - 在 AWS 和 Azure 上尝试过

两个 IP

1st Nic - 172.31.29.87, 
2nd nic - 172.31.17.222

创建路由表

bash -c "echo '1 eth1route' >> /etc/iproute2/rt_tables"

创建 eth1 nic 文件

/etc/network/interfaces.d/eth1.cfg

  auto eth1
  iface eth1 inet dhcp
     post-up ip route add 172.31.16.0/20 dev eth1 src 172.31.17.222 table eth1route 
     post-up ip route add default via  172.31.16.1  dev eth1 table eth1route
     post-up ip rule add from 172.31.17.222/32 table eth1-rt
     post-up ip rule add to 172.31.17.222/32 table eth1-rt

然后 ifdown eth1 和 ifup eth1

知识产权

default via 172.31.16.1 dev eth0
172.31.16.0/20 dev eth0  proto kernel  scope link  src 172.31.29.87
172.31.16.0/20 dev eth1  proto kernel  scope link  src 172.31.17.222

路线-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.31.16.1     0.0.0.0         UG    0      0        0 eth0
172.31.16.0     0.0.0.0         255.255.240.0   U     0      0        0 eth0
172.31.16.0     0.0.0.0         255.255.240.0   U  

0 0 0 eth1

ip 规则显示

0:      from all lookup local
32765:  from 72.31.17.222 lookup 1000
32766:  from all lookup main
32767:  from all lookup default

完成上述所有配置后,我可以连接到两个 IP(两个网卡上的传入流量),但只能从 eth0 传出流量。

您能帮我如何在两个 NIC 上启用出站流量吗?

答案1

您可以创建这样的路线,而不是使用两个链接的默认路线。(未经测试)

ip route add default scope global \
    nexthop via 172.31.16.1 dev eth0 weight 1 \
    nexthop via 172.31.16.1 dev eth1 weight 1

如果您需要合并两个链路的容量,最好使用某种绑定。但这需要您连接的系统支持。

相关内容