通过静态路由configuration两个网卡的网关

好的,我有两个网卡eth0eth1 。 每个通过他们自己的默认网关。 我只能在eth0上访问networking,因为这是第一个添加了默认路由的网卡。 我如何configuration我的静态路由,以允许他们访问他们单独的子网。

 eth0: 10.0.0.3 netmask 255.255.255.0 gw 10.0.0.254 eth1: 10.0.1.1 netmask 255.255.255.0 gw 10.0.1.26 

编辑:

问题2

如果Linux上的路由表中没有路由,默认使用eth0

你可以做策略路由 ,也就是说,有多个路由表,并根据你的源地址 (一般在其他字段,但在这里不相关)select路由表来使用。 请注意,下面显示的表格号是任意select的。

我不知道如何使用net-tools包中的路由进行策略路由。 无论如何,这是长期弃用。 使用iproute2软件包中的ip

您还需要在内核中启用策略路由。 如果我没有弄错的话,主要的分布是默认的。

从合适的状态开始:

 # Assumes that previous configuration properly set address and route scopes ip route flush all proto static scope global 

然后为每个接口添加表格。

 ip route add 10.0.0.3/24 dev eth0 table 5000 ip route add default via 10.0.0.254 dev eth0 table 5000 ip route add 10.0.1.1/24 dev eth1 table 5001 ip route add default via 10.0.1.26 dev eth1 table 5001 

然后build立路由规则

 ip rule add from 10.0.0.3 table 5000 ip rule add from 10.0.1.1 table 5001 

最后一步是configuration默认网关, 当你是发起者 ,可以这么说。

如果你只想使用eth0作为默认网关,那么只需要这样做:

 ip route add default via 10.0.0.254 dev eth0 

请注意, 没有指定表 ,所以它默认为主。 使用eth1作为练习留给读者。

如果要在两者之间进行负载平衡,可以使用nexthop来执行多path路由。

 ip route add default nexthop via 10.0.0.254 dev eth0 weight 1 nexthop via 10.0.1.26 dev eth1 weight 1 

至于问题二,Linux没有自动创build一个默认路由。 如果您的stream量没有本地路由,则会收到EHOSTUNREACH错误。

编辑:请注意,以上都不应该被认为是知识产权是有状态的,它与连接,甚至是一个固有的stream程概念有关。 它仅仅意味着我们假设一个stream程始终具有相同的端点,并且我们根据源地址将一个stream程绑定到网关。 这是非常必要的,因为许多网关(特别是在住宅ISP中)反向path过滤。

一般情况下,你只能有一个默认网关。 毕竟这是默认的。 所有不匹配更具体的静态路由的stream量都将在eth0上消失。

如果您希望10.0.1.0/24子网中的所有stream量都从eth1stream出,其他stream量将使用eth0 ,请执行@AlanCurry所说的操作,并执行类似route add -net 10.0.1.0 netmask 255.255.255.0 dev eth1

最简单的方法是:

 ip route flush all ip route add 10.0.0.0/24 dev eth0 ip route add 10.0.3.0/24 dev eth1 ip route add default via 10.0.0.254 

这将使您可以访问适当设备上的两个子网,并通过网关10.0.0.254上的eth0路由所有Internetstream量。

您可以在/etc/sysconfig/network-scripts/route-ethX中将这些设置保留为基于Red Hat的风格中的规则重新启动/重新启动。


/etc/sysconfig/network-scripts/route-eth0

  10.0.0.0/24 dev eth0 default via 10.0.0.254 

/etc/sysconfig/network-scripts/route-eth1

 10.0.3.0/24 dev eth1