![配置同一网络地址之间的路由](https://linux22.com/image/554153/%E9%85%8D%E7%BD%AE%E5%90%8C%E4%B8%80%E7%BD%91%E7%BB%9C%E5%9C%B0%E5%9D%80%E4%B9%8B%E9%97%B4%E7%9A%84%E8%B7%AF%E7%94%B1.png)
我正在尝试配置两个具有相同地址的网络之间的路由。它们通过带有 2 个 NIC 的路由器(Linux 计算机)连接。
考虑上图:我如何配置路由,以便从右侧的 192.168.1.10 发出到 192.168.1.100:4455 的请求发送到左侧的 192.168.1.10:80?
感谢大家迄今为止提供的宝贵意见。
也许我可以添加另一个路由器来创建如上图所示的中间网络。问题是,如果我可以在物理上做到这一点,那么是否可以在一个路由器上逻辑地做到这一点?
答案1
在第一个图中,你可以使用以下方式连接每个部分代理 arp或桥接。在第二个图中,你也许能够使用以下方法桥接各个部分研究生入学考试 (GRE)。
正如其他人强调的那样,如果可能的话,你应该避免这种事情。
答案2
不行。没有办法将数据包发送到具有相同地址(192.168.1.10)的另一台机器。流量将直接路由到环回地址,甚至不会离开系统。您的图表显示了寻址冲突。就我个人而言,我会将右侧的地址更改为其他地址。
您可以使用 DNAT 使左侧的 192.168.1.0 显示为不同的地址并路由到该地址。这在桥接来自不同组织的私有网络时完成。需要在本地 DNS 服务器上进行适当的 DNS 覆盖,以便可以通过名称访问服务器。
编辑:您需要一个可以通过接口单独配置 DNAT 的路由器。基于 Linux 的路由器应该可以工作,但我认为专用路由器不具备此功能。通常,NAT 由防火墙设备处理。Linux 路由器通常结合了路由和防火墙功能。
编辑 2:当您配置可能连接到其他内部网络的网络时,最好使用 192.168.0.0/16 块中不太常用的子网,或备用私有网络 10.0.0.0/8 或 172.16.0.0/12 中的一个块。为您的子网选择一个介于 4 和 255 之间的随机数(第二个八位字节用于 10.0.0.0/8,第三个八位字节用于其他)。如果您使用 172.16.0.0/12 范围,也请为第二个八位字节选择一个介于 17 和 31 之间的随机值。
如果您使用 DHCP 分配地址,则应该能够相对轻松地更改子网。您可能希望在地址切换时路由旧子网。
答案3
根据您对 BillThor 的回答的评论,我建议尽快重新编号其中一个网络。虽然您可能能够以某种方式使其工作,但这始终是一个完美的 PITA,会困扰您。这就是我从不在 192.168.1.0/24 上配置任何网络的确切原因。
如果其中一个网络完全通过 DHCP 配置,则重新编号是最容易实现的。更改 DHCP 配置,更改 DHCP 服务器的固定地址,然后重新启动网络上的每台计算机,就大功告成了。这非常值得付出努力。
答案4
双重 NAT 可能是答案,正如本 HOWTO 中所述:
http://www.netfilter.org/documentation/HOWTO//netfilter-double-nat-HOWTO.html#toc4