我正在尝试使用相同的地址在两个networking之间configuration路由。 他们通过路由器连接2个网卡(Linux机器)。
考虑上图:我如何configuration路由,使右侧的192.168.1.100:4455的192.168.1.10的请求到达左边的192.168.1.10:80?

谢谢大家的宝贵意见。
也许我可以添加另一个路由器来创build一个如上图所示的中间networking。 问题是,如果我能做到这一点,我可以在一台路由器上合理地做到这一点?

在第一个图中,您可以使用代理arp或桥接来连接每个段。 在第二个图中,您可以使用GRE桥接段。
正如其他人强调说,如果可能的话,你应该避免这种事情。
它不会工作。 没有办法将数据包发送到具有相同地址的另一台计算机(192.168.1.10)。stream量将直接路由到回送地址,甚至不会离开系统。 您的图表显示寻址冲突。 就个人而言,我会将右侧的地址更改为不同的地址。
您可以使用DNAT使左边的192.168.1.0显示为不同的地址并路由到它。 这是在桥接来自不同组织的专用networking时完成的。 需要在本地DNS服务器上进行适当的DNS覆盖,以便可以通过名称访问服务器。
编辑:你需要一个路由器,你可以单独configurationDNAT接口。 基于Linux的路由器应该可以工作,但我不认为专用路由器具有这种能力。 通常,NAT由防火墙设备处理。 Linux路由器通常结合了路由和防火墙function。
编辑2:当你configuration一个可能连接到其他内部networking的networking时,最好使用192.168.0.0/16块中不太受欢迎的子网,或者在其中一个备用专用networking10.0中使用一个块。 0.0 / 8或172.16.0.0/12。 为子网select4到255之间的随机数(第二个字节为10.0.0.0/8,其他字节为第三个八位字节)。 如果使用172.16.0.0/12范围,则也可以在第17个字节之间select一个随机值。
如果您使用DHCP分配地址,则应该可以相对容易地更改子网。 您可能想要在地址切换时路由旧的子网。
根据你对BillThor答案的评论,我build议尽快将其中一个networking重新编号。 虽然你可能能够以某种方式得到这个工作,但它总是会是一个完美的PITA,并会困扰你。 这是我从不在192.168.1.0/24上configuration任何networking的确切原因。
如果其中一个networking完全通过DHCP进行configuration,则重新编号是最容易实现的。 更改DHCPconfiguration,更改DHCP服务器的固定地址,然后重新启动networking中的每台计算机,完成。 这是非常值得的努力。
这可能与一些非常沉重的NAT和大量的工作,testing和(可能)的错误工作; 但从长远来看,设置和pipe理将会很困难。
我强烈build议避免它,如果可以的话。
双重NAT可能是答案,如本HOWTO所述:
http://www.netfilter.org/documentation/HOWTO//netfilter-double-nat-HOWTO.html#toc4
你的scheme和你的问题是绝对不正确的。 你在谈论两个具有相同地址192.168.0.0的子网。 而你想在一些子网之间进行路由。 请考虑一下你想要做什么,然后重新构build一个问题。
我发布这个作为一个新的答案,因为这是一个完全不同的方法,但它可以工作,节省你的一天。
如果所有的地址都在同一个子网上, 但是你可以确保没有冲突 (即你可以改变其中的一个192.168.1.10),那么桥接两个networking将是最简单的解决scheme。 您可以使用带有两个网卡的PC进行网桥configuration,或者使用简单的交换机连接两个networking(甚至只使用一根电缆)。
如果你只有几个相互冲突的地址,你应该能够把它们整理出来。 当然,如果两个networking都满了90%,这不是一个可行的解决scheme。
在第二种情况下,您可能会将整个第二个networkingNAT转换为10.0.0.0/24,IE 10.119.0.10会将您的内部路由器发送出去,然后发送到他们的内部路由器,然后将NAT发送到192.168.1.10。
如果它甚至可以工作,那么只需要在两端更改networking枚举就可以了。