我有以下设置,最小化来解释问题:
_________ |Desktop | ---------- 192.168.2.6| | | ------------ |------------------ --------------| Switch | | Firewall server | ------------ |------------------ |192.168.2.110 | | ---------------- 192.168.1.11| |To ISP | Server |--------------- ------------| |------------ ---------------- 192.168.1.121 | | | ------------ | Switch | ------------
我已将桌面上的默认网关设置为192.168.2.110
我已将服务器上的默认网关设置为192.168.1.11
我在服务器和防火墙服务器上启用了转发
我可以从桌面到服务器,反之亦然
我可以从服务器ping到防火墙服务器,反之亦然。
我也可以从桌面ping到192.168.1.121。
我无法从桌面到防火墙服务器192.168.1.11。 我尝试在所有显示的机器上刷新所有的iptables规则。 我错过了什么?
编辑:提供更多的信息,按要求。 所有机器都运行Linux Ubuntu。 桌面是开发机器。 服务器运行开发服务器… Mysql,PhP,Apache等等。防火墙服务器有一套iptables规则,当我testingping的时候就禁用了。
您需要在防火墙中为192.168.2.0/24networking添加路由。 它应该是这样的:
route add -net 192.168.2.0/24 gw 192.168.1.121
来自192.168.2.0/24networking的防火墙不知道在哪里发送数据包。 服务器可以ping通防火墙,因为它直接通过192.168.1.121连接。
实际上,当你尝试从桌面到达防火墙时,数据包到达防火墙(假设服务器的默认gw设置为防火墙ip 192.168.1.11),但是防火墙不能将其发送回桌面,因为这个networking没有可用的路线。 只能将报文转发到ISP的默认网关,最终将被丢弃。