Linux的Ubuntu – 两个网卡分开局域网

我有这个/ etc / network / interfaces(eth1上的IP是假的)

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 gateway 10.0.2.2 auto eth1 iface eth1 inet static address 123.123.123.45 netmask 255.255.255.0 broadcast 123.123.123.255 gateway 123.123.123.1 

我使用eth0连接到互联网,而在eth1我configuration一个公共的IP到networking服务器。

连接到互联网工作正常,如果我只跟上了eth0,而另一边的networking服务器工作正常,如果我只跟上eth1。 他们按预期完美工作。

问题是,我想要同时在两个networking,并使用独有的eth0上网冲浪/下载更新等,我想路由到123.123.123.45到所有networkingstream量。

我怎样才能做到这一点? 我search了很多教程,但找不到工作解决scheme,或者我做错了什么。 我不想将stream量从一个接口重新路由到另一个接口,我想将它们分开,并根据来自哪个IP重新路由stream量。

这可能吗?

我已经尝试过了

 route add -host 123.123.123.45 dev eth1 

先谢谢你。

您直接的问题是您声明两个条目上的默认网关。 我想这会导致最后一个出现“赢”,成为默认网关。

但是,如果删除eth1上的一个,则即使数据包到达eth1,也会出现该问题,即该框将在eth0上进行回复。 为了告诉方框在特定的接口上回复,你需要做通常所说的源路由。

我在一个盒子上有以下一组命令:

 /sbin/ip rule add from 1.2.3.4/24 tab 1 priority 500 /sbin/ip route add default via 1.2.3.1 dev eth2 tab 1 /sbin/ip route flush cache 

第一行告诉框在表1中查找从IP 1.2.3.4发出的数据包的信息。 第二行创build表“1”,表示该表中的默认网关是1.2.3.1。 最后一行确保立即生效。

有关更多信息,请参阅http://lartc.org/howto/lartc.rpdb.html

有两个具有相同度量的默认网关会导致使用一个抽奖。 这解释了你的问题。

您可以遵循Bittrance的build议或确保您的两个默认路由具有不同的指标。 在这种情况下,将使用具有较小度量标准的路由,除非路由断开。 但是,这只有在第二个默认网关实际上提供了到公共Internet的路由时才有效。

为了设置两个具有不同度量的缺省路由,请在ip route add命令中使用metric关键字。

我个人会从接口文件中删除网关指令,而是添加后续命令。

编辑基于你的额外评论,我有点困惑,你到底想要达到什么样的目标,以及如何build立这个networking。

很明显,与公共IP的接口必须直接连接到互联网(大概是通过ISP提供的设备)。 如果这个服务器也是你的默认网关,也就是说所有的公共IP地址的请求都必须通过这个服务器,那么服务器必须被configuration成一个路由器(即必须启用IP转发,并且networking上的所有其他设备必须拥有该服务器的私有IP作为其默认网关)。

如果您的networking有另一台提供默认Internet访问的计算机,则必须将该设备设置为所有其他networking设备上的默认网关,并且您的服务器在其内部接口(eth0)上应该没有默认路由,因为它直接连接到该networking。

你不能有两个默认的网关。 select一个。

如果你正在寻找使用两个ISP的同时,那么你需要BGP。

这个问题的答案是否也会导致你的答案?

在两个单独的LAN上设置两个NIC会导致错误