Ubuntu 上的基本转发功能不起作用

Ubuntu 上的基本转发功能不起作用

我有以下设置,最小化来解释问题:

                                 _________      
                                 |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 时禁用它们只是为了访问它。

答案1

192.168.2.0/24您需要在防火墙中添加网络路由。路由应类似以下内容:

route add -net 192.168.2.0/24 gw 192.168.1.121

当数据包来自 192.168.2.0/24 网络时,防火墙不知道该将数据包发送到哪里。服务器可以 ping 通防火墙,因为它直接通过 192.168.1.121 连接。

实际上,当您尝试从桌面访问防火墙时,数据包会到达防火墙(假设服务器的默认网关也设置为防火墙 IP 192.168.1.11),但防火墙无法将其发送回桌面,因为此网络没有可用的路由。它只能将数据包转发到 ISP 的默认网关,最终将被丢弃。

相关内容