如果计算机没有配置为网关,它可以在两个 LAN 之间路由 IP 流量吗?

bok*_*kan -5 networking local-area-network router routing arp

有两个局域网,每个局域网都有自己的网关、DHCP和互联网连接

  • LAN 1 - IP:192.168。0 .0-255,掩码:255.255。254 .0,网关:192.168。0 .1
  • LAN 2 - IP:192.168。1 .1-255,掩码:255.255。254 .0,网关:192.168。1 .1

将它们与具有两个 NIC 的 linux 计算机连接,每个 LAN 一个。连接到 LAN 1 的 NIC 接受发送到 192.168.1/24(LAN2 的 ips)的所有数据包,并将它们与其他 NIC 一起发送,反之亦然。它被视为所有其他计算机。

这可能吗 ?我应该在 linux 框中键入哪些命令来设置此“路由”。目标是每个 LAN 保持其 DHCP、当前网关和 Internet 连接,但能够访问另一个 LAN 的计算机。

请不要告诉我这不是学术上的做法。问题是关于猜测这种设置是否可行,并指出什么会阻止它工作。我知道这不是通常的做法,它不漂亮,我应该在网关上设置路由......但我想要千兆位吞吐量,而路由器对于这个来说太弱了。

问题关闭后编辑:

尽管这个问题引起了非常敌对的反应,但我还是设法找到了答案。我所描述的称为伪桥。我使用双端口 NAS (Synology ds1812+) 管理连接子网。一个端口连接到每个网络并启用 ip_forwarding 和 proxy_arp。

echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
Run Code Online (Sandbox Code Playgroud)

以千兆位速度免费使用,效果极佳。感谢 mfinni 在评论中大喊答案(因为问题已关闭)。

更多信息http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tech_note09186a0080094adb.shtmlhttp: //en.wikipedia.org/wiki/Proxy_ARPhttp://www.sjdjweis。 com/linux/proxyarp/

MDM*_*rra 6

你这样做是错的。如果你有一个 /23 如你所描述的那样,那么你不需要在两者之间路由。如果它们在物理上分开的子网上并且您有两个 /23 具有相同的 IP 空间,那么您刚刚创建了 IP 地址空间重叠,这将是一场噩梦。在这里坚持 /24s(或其他非重叠子网)。

如果您真的想在两者之间使用 Linux 机器执行此操作,请启用 IP 转发并使用适当的接口在两个路由器之间创建路由。它可能看起来像这样

Subnet1 Router <-----> |eth0 (on subnet 1) LinuxRouter eth1(on subnet 2)| <-----> Subnet2 Router
Run Code Online (Sandbox Code Playgroud)

不要试图按照你的方式来做这件事。使用 /24s(或其他非重叠空间)并使路由器中其他子网的路由指向该子网的 Linux 路由器接口。


编辑:要真正回答你有点疯狂的问题,不,这不会像你问的那样工作。如果一台计算机是 192.168.0.2/23 并且它想与 192.168.1.2/23 通信,它会假设这是本地子网上的一台计算机(因为你已经告诉它它是)并且它不会发送那个到要路由的网关的流量,无论该网关是您的路由器还是进行路由的服务器。再次,不要这样做。

  • @bokan 听起来您真的应该考虑聘请网络顾问或参加该领域的一些课程。如果这是针对工作场所的,那么您听起来像是要把它弄得一团糟。请向您的主管询问更多培训。我不是想粗鲁,但你在这里显得太脱离你的元素了,结果只会很糟糕。 (4认同)
  • 在任何情况下都不会重新开放。这是完成此任务的最糟糕的方法,任何有线索的人都不会在生产环境中执行此操作。服务器故障适用于专业网络,而不是修补。打开这个他会告诉人们这是一个合理的解决方案。它不是。仅仅因为您可以使某些事情起作用并不意味着您应该这样做。 (4认同)
  • 代理 ARP 所有的东西。 (3认同)
  • 你似乎完全失去了理智。你要给这个 linux box 的每个接口分配 255 个 IP?抱歉。我再也帮不了你了,这太荒谬了。 (2认同)