ping 请求未按一个方向转发

ping 请求未按一个方向转发

编辑:我刚写完这篇超长的帖子就解决了我的问题。我只是没有在 Windows 防火墙中启用 ping 回复,这就是为什么我无法从网络 1 或 2 ping 网络 0 上的计算机(见下文)。当然,当我尝试 ping 网络 0 上的互联网路由器时,它没有工作,因为我忘记像设置我的 Windows 那样设置非默认网关。

因此,我向您提供“正确”的方法来设置 Linux 机器作为子网之间的简单网关。只需记住正确设置客户端上的所有网关(简单规则:默认网关应该是通向互联网的路由,然后为连接到子网中其他网关的每个子网设置 1 个网关。

我正在使用 Ubuntu Linux 机器创建一个连接 3 个子网的测试网络。这是我的拓扑:

               ***********************
               * Internet Router     *
               *    192.168.2.1      *
               ***********************
                         *                   ***************
                         *                   *  Client 0   *
                   ***************           *192.168.2.117*
                   * Switch      * * * * * * *  Windows    *
                   ***************           ***************
                         *                               
                         *  192.168.2.0/24 = Network 0
                         *
 Network 1         ***************        Network 2
192.168.1.0/24     *    eth0     *       10.25.0.0/16
       * * * * * * *             * * * * * * * 
      *            *eth1     eth2*           * 
      *            *             *           * 
      *            *             *           * 
*************      * Ubuntu Srvr *      *************
*192.168.1.5*      ***************      * 10.25.0.5 *
*           *                           *           *
* client 1  *                           * client 2  *
*           *                           *           *
*************                           *************

我的 ubuntu 服务器的 /etc/network/interfaces 文件是:

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address 192.168.2.192
    network 192.168.2.0
    netmask 255.255.255.0
    broadcast 192.168.2.255
    gateway 192.168.2.1

# Subnet 1
auto eth1
iface eth1 inet static
    address 192.168.1.1
    network 192.168.1.0
    netmask 255.255.255.0
    broadcast 192.168.1.255

auto eth2
iface eth2 inet static
    address 10.25.0.1
    network 10.25.0.0
    netmask 255.255.0.0
    broadcast 10.25.255.255

我已net.ipv4.ip_forward=1在 /etc/sysctl.conf 中取消注释

我还运行了命令echo 1 > /proc/sys/net/ipv4/ip_forward

客户端 1 的默认网关是 192.168.1.1

客户端 2 的默认网关是 10.25.0.1

网络 0 上的客户端 0 有 3 个网关:

  1. 默认值:192.168.2.1(互联网路由器)
  2. 192.168.1.0/24:192.168.2.192(ubuntu eth0)
  3. 10.25.0.0/16:192.168.2.192(ubuntu eth0)

我正在使用 ping 测试此设置。

  1. 我可以从网络 0 ping 任意网络上的任意计算机。
  2. 我可以从网络 1 或 2 ping 网络 1 或 2 上的任何计算机。
  3. 问题是我无法 ping网络 1 或 2 上的网络 0 上的任何计算机

使用 iptraf,我看到 ping 请求来自 eth1 上的 192.168.1.5 到 192.168.2.117

然而,我没有看到回复。

... 刚刚搞明白了(参见开头的编辑)。如果你读到这里,很抱歉让你失望了。

答案1

就在我完成这篇超长的帖子时,我解决了这个问题。我只是没有在 Windows 防火墙中启用 ping 回复,这就是为什么我无法从网络 1 或 2 ping 网络 0 上的计算机(见下文)。当然,当我尝试 ping 网络 0 上的互联网路由器时,它没有工作,因为我忘记像设置 Windows 那样设置非默认网关。

因此,我向您提供“正确”的方法来设置 Linux 机器作为子网之间的简单网关。只需记住正确设置客户端上的所有网关(简单规则:默认网关应该是通向互联网的路由,然后为连接到子网中其他网关的每个子网设置 1 个网关。

相关内容