如何路由到两个具有相同子网的局域网?

我有一个服务器有2个以太网NIC,eth0和eth1。 为了这个问题的目的,我将使用物理连接的接口来引用每个networking。 我想configuration服务器,使其服务在两个局域网上都可用。

ifconfig结果:

eth0 Link encap:Ethernet HWaddr x:x:x:x:x:01 inet addr:192.168.1.67 Bcast:192.168.1.255 Mask:255.255.255.01 inet6 addr: fe80::2e0:52ff:fee0:eb9e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:516139 errors:0 dropped:0 overruns:0 frame:0 TX packets:511230 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:128341461 (128.3 MB) TX bytes:266227842 (266.2 MB) Interrupt:20 Base address:0x6000 

eth1 Link encap:Ethernet HWaddr x:x:x:x:x:02 inet addr:192.168.1.109 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr:fe80 :: 213:d3ff:fe52:c568 / 64范围:链路UP BROADCAST运行多播MTU:1500度量:1 RX包:5430错误:0丢弃:0超出:0帧:0 TX包:2466错误:0丢弃:0超载:0载波:0冲突:0 txqueuelen:1000 RX字节:784989(784.9 KB)TX字节:503071(503.0 KB)中断:20基地址:0xdc00

路线-n结果:

 Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1 

目前在eth0我可以访问我的服务器在192.168.1.109和192.168.1.67,尽pipe路由器只列出了一个设备在192.168.1.67。 在eth1上,除非eth0处于closures状态,否则在从其他LAN计算机ping时出现“目标networking不可达”错误,在这种情况下,我可以通过192.168.1.109访问服务器。 eth1的网关是192.168.1.1。 我所知道的关于路由的几乎所有东西都学会了解决这个问题,所以这对我来说是令人难以置信的。

所以这里的问题是:根据https://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/我需要build立eth1的第二个路由表。 但是,由于两个networking在同一个子网上,所以ip规则方法将不起作用。 有没有办法改变基于接口的路由表? 我是否强迫更改我的一个局域网上的子网,从而丧失了在两个networking上为我的服务器设置相同的IP的能力? 有没有完全不同的解决scheme,我错过了?

使用多数企业级边缘防火墙/路由器提供的多WAN负载平衡/故障切换function,可以更好地为两个DSL连接提供服务。

一个LAN,两个WAN,一个LAN(路由器)的默认网关。 让路由器根据预定义的条件(加权,策略路由,故障转移等)确定采取哪种路由(互联网连接)。

这可以处理,但不是开箱即用。 我已经多次浏览了Shorewall和Multiple Internet Connections文档,但是并不需要实现它。 正如该文件中所指出的,这不是一个简单的设置。

但是,您实现多ISPconfiguration,您可能会想要阅读文档。 有一个风险,你将路由stream量出一个不同的接口,比它到达。 这可以创造一些连接起作用的有趣的情况,但其他连接则不起作用。 标记stream量,使其返回到相同的接口是很重要的。