带有防火墙的路由器会阻止来自子 LAN 网络转发的数据包吗?

带有防火墙的路由器会阻止来自子 LAN 网络转发的数据包吗?

我有一个看起来像这样的系统:

+----------+     +--------+     +--------+
|          |     |        |     |        |
| Internet |<--->| Modem  |<--->| Router |
|          |     |        |     |        |
+----------+     +--------+     +--------+
                                    ^
                                    |
                                    v
                                +--------+
                                |        |
                     +--------->| Switch |<--------+-------------+........ (other Cn computers)
                     |          |        |         |             |
                     |          +--------+         |             |
                     |              ^              |             |
                     |              |              |             |
                     v              v              v             v
                 +--------+     +--------+     +--------+     +--------+
                 |        |     |        |     |        |     |        |
                 |   A    |     |   B    |     |   C1   |     |   C2   |
                 |        |     |        |     |        |     |        |
                 +--------+     +--------+     +--------+     +--------+

路由器的 IP 地址为 192.168.xx。

计算机 A 和 B 位于同一本地网络(192.168.xy 和 192.268.xz)。

计算机 C1 至 Cn 位于具有不同 IP 地址 (10.xyz) 的子 LAN 上。

因此,我以这样的方式设置 B,使其可以与 C1 和 Cn 通信,它也有一个 10.xyz IP 地址。

我在所有计算机上都安装了防火墙,以确保阻止不需要的流量。我不希望外部人员连接到我的服务。

A 和 B 效果很好。我可以完全访问互联网并且 NTP 工作正常等。但是,C1 到 Cn 有问题。他们没有得到外界的任何答复。如果我尝试 ping 一个公共 IP 地址,我根本得不到任何回报。不过,我可以毫无问题地 ping B。

当我执行 ping、检查 DNS、尝试连接到 Internet 上的任何内容时,我看不到 B 或 C1 到 Cn 上的防火墙阻止的任何内容。所以我认为路由器是罪魁祸首。

路由器是Netgear,防火墙已启动。我不明白的是,由于数据包是由 B 转发的,如果 B 工作(看到互联网),我会认为 C1 转发到 Cn 的数据包会像 B 数据包一样工作。我在这里有点不知所措。

以下是代表转发规则的一些条目iptables

这是设置的一部分nat

Chain POSTROUTING (policy ACCEPT 141 packets, 9904 bytes)
    pkts    bytes target     prot opt in     out     source               destination
     857    54781 SNAT       all  --  *      eno1    10.0.5.21            0.0.0.0/0            to:10.5.10.2

这里我有FORWARD标准filter

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  pkts    bytes target     prot opt in     out     source               destination
    29     1884 bad_tcp_packets  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     0        0 ACCEPT     tcp  --  eno1   eno1   !10.0.5.1             10.0.5.16/28         state RELATED,ESTABLISHED tcp flags:!0x17/0x02
     0        0 ACCEPT     udp  --  eno1   eno1   !10.0.5.1             10.0.5.16/28         state RELATED,ESTABLISHED udp
     8      480 ACCEPT     tcp  --  eno1   eno1    10.0.5.16/28         0.0.0.0/0            tcp
    21     1404 ACCEPT     udp  --  eno1   eno1    10.0.5.16/28         0.0.0.0/0            udp

这些标志意味着-syn状态测试中哪些是多余的。我们从来都不会太谨慎...

最后,在INPUT链中我也有RELATED,ESTABLISHED返回的数据包不会被阻止:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
  pkts    bytes target     prot opt in     out     source               destination
    39     5428 ACCEPT     tcp  --  eno1   *       0.0.0.0/0            10.0.5.1             state RELATED,ESTABLISHED tcp flags:!0x17/0x02
     0        0 ACCEPT     tcp  --  eno1   *       0.0.0.0/0            10.5.10.2            state RELATED,ESTABLISHED tcp flags:!0x17/0x02

我在另一台计算机上有一个非常相似的设置,它工作得很好,所以我真的认为它是 Netgear 路由器。任何人都知道要使其正常工作需要什么?

答案1

好的!我让它工作了。

所以...在我的另一台计算机上,主计算机(如 A)实际上在 Internet 上获得了一个静态 IP 地址。这意味着它的工作原理就像路由器一样。换句话说,任何访问该计算机的东西都可以访问互联网。

但是,在其他新设置中,计算机 A 仅位于 LAN 上,而不是直接位于 Internet 上。因此to:<ip>需要使用该计算机的 A 地址,而不是另一个最终“丢失”在那里的本地地址。

Chain POSTROUTING (policy ACCEPT 141 packets, 9904 bytes)
    pkts    bytes target     prot opt in     out   source     destination
     857    54781 SNAT       all  --  *      eno1  10.0.5.21  0.0.0.0/0    to:10.5.10.2
                                                                              ^
                                    this had to be A's address 192.168.x.y ---+

就是这样。一旦我切换了那个 IP 地址,它就开始像魅力一样发挥作用。

相关内容