我刚刚configuration了一个Ubuntu服务器作为NAT / PAT路由器,我正在尝试做以下事情:
我为一所将其networking划分成由路由器连接的小型networking的学校工作。 我需要在一个房间的内部networking上创build一个可以转发所有stream量到一个外部IP地址的IP地址。
解释一下,这是configuration:
NAT外部:eth1 – 192.168.1.254/24
NAT里面:br0 – 192.168.2.10,伪装启用
我需要创build一个像192.168.2.1这样的地址,对于br0也是如此,它将把所有的stream量转发到ip 192.168.1.1,并且看起来好像这个IP直接连接到networking上,但是不会在它上面启用伪装。
基本思路是将br0的路由器地址设置为192.168.2.10,另外br0有另一个不伪装的地址,并将所有stream量转发到192.168.1.1,即主路由器的地址。 原因是br0是物理networking和VPN之间的一个桥梁,可以通过与目的地NAT IP地址(192.168.1.1)相同的地址从路由器后面访问。 由于我不能保证客户端总是可以发出“路由添加”命令,所以我需要一种方法来规避这种情况。
我发现如何configurationbr0的辅助IP地址,并且我已经将br0:1configuration为192.168.2.1,但我似乎无法将所有通信转发到192.168.1.1。
我事先感谢您的帮助。
如果我正确地理解了你,你所要做的事情实际上是一种涉及到一些NAT的策略路由。 这听起来像你只是想要为该子网上的特定路由子网之外的某个主机创build一个别名。
您可以创buildDNAT规则而不需要相应的SNAT(或伪装)。 之所以没有这样做,仅仅是因为大多数NAT被devise用于解决连接问题,NAT中“内部”的地址将不能从“外部”路由。 如果实际上主机192.168.1.1有一个返回到192.168.2.0/24的路由或者任何东西,你可以确实设置一个DNAT规则,如果我记得:
iptables -t nat -A PREROUTING -s 192.168.2.0/24 -d 192.168.2.1 -j DNAT --to 192.168.1.1
现在,停下来,不要那样做。
当192.168.2.1是一个目标地址(并产生一个奇怪的怪癖,即回复stream量的地址与原来的目的地不同)时,这种方法就行了。 我不认为这就是你想要做的,从你的描述,虽然我真的不知道。 如果192.168.2.1主机应该充当路由器而不是目的地,那么做DNAT根本无济于事。 如果它应该起到路由器的作用,那么NAT(或PAT)根本就没有任何帮助。
这听起来像你有VPNstream量进来,如果我正确读取你并填写空白,它结束了桥接到这个子网192.168.2.0/24,它需要走出广泛的世界或一些子集它通过这个网关192.168.1.1。 在这种情况下,要做的就是简单地将192.168.2.1/24(我认为你已经设置为VPN客户端上的默认网关)分配给你的路由器 ,确保转发已经启用,你很好走 – VPN客户端不需要担心下一跳是192.168.1.1就像他们原来的默认非VPN网关(家庭网关? 他们完全不知道数据包过境。 互联网服务提供商使用这种RFC1918的scheme一直致力于避免浪费意外稀缺的可路由地址; path上的所有路由器都不具有唯一的地址(尽pipe它们确实具有,这使得故障排除更容易)。 这里的技巧是TCP连接的端点不需要知道下一跳的IP地址。
如果您已经这样做了,并且遇到了麻烦,请检查返回path。 机会是你的网关在192.168.1.1没有做这些地址的NAT在NAT之外发送它们的stream量(它将看作是192.168.2.0/24仍然),防火墙或没有适当的路由到192.168.2.0/24。
如果我误解了你的意图,还有第三件事可以帮助你。 在iptables中指定网关的唯一方法是使用TEE目标,该目标克隆数据包,并将克隆保持原样路由到某个任意主机。 但是,您需要以某种方式处理未克隆的数据包。 该目标可以添加到mangle PREROUTING链中:
iptables -t mangle -A PREROUTING -s 192.168.2.0/24 -j TEE --gateway 192.168.1.1
这是一件很奇怪的事情。 这是为loggingstream量而devise的,而不是路由它。 我可以在iptables的后期阶段处理原始数据包,尽pipe这只是一团糟,我真的不推荐使用它。
作为一个随机点,您可以使用ip addr add命令将其他IP地址添加到接口。 不要使用net-tools(ifconfig); 这是古老的,错过了许多function,只会给你长期的头痛。