我有以下设置,最小化以解释问题:
_________
|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 到防火墙服务器,反之亦然。
我也可以从桌面 ping 到 192.168.1.121。
我无法从桌面 ping 到防火墙服务器 192.168.1.11。 我尝试在显示的所有机器上刷新所有 iptables 规则。我错过了什么?
编辑:根据要求提供更多信息。所有机器都运行 Linux Ubuntu。桌面是开发机器。服务器运行开发服务器... Mysql、PhP、Apache 等。防火墙服务器有一组 iptables 规则,我在测试 ping 时禁用这些规则只是为了访问它。
您需要
192.168.2.0/24
在防火墙中添加网络路由。它应该是这样的:当数据包来自 192.168.2.0/24 网络时,您的防火墙不知道将数据包发送到哪里。服务器可以 ping 通防火墙,因为它是通过 192.168.1.121 直接连接的。
实际上,当您尝试从桌面到达防火墙时,数据包正在到达防火墙(假设服务器也将默认 gw 设置为防火墙 ip 192.168.1.11)但防火墙无法将其发送回桌面,因为该网络没有可用的路由。并且它只能将数据包转发到ISP的默认网关,最终将被丢弃。