过滤 IP 别名之间的流量

过滤 IP 别名之间的流量

我在过滤两台主机之间的流量时遇到了问题,两台主机之间有防火墙。这三台主机每台都只有一个 NIC,它们可以在网络上通信,例如 10.10.0.0/16。我想添加另一个网络,但我有一个限制,不允许我添加另一个 NIC。

我的想法是使用 IP 别名。因此,为了实现这一点,我将每个主机的每个 NIC 设置为具有多个地址,如下所示:

host0 : eth0 = 10.10.0.1/16
               192.168.0.1/24

router : eth0 = 10.10.0.2/16
               192.168.0.254/24
               192.168.1.254/24

host1 : eth0 = 10.10.0.3/16
               192.168.1.1/24

由于图片往往比文字更有说服力,我有这个:

HOST0                 ROUTER                   HOST1
   |                    |                         |
   ------------------------------------------------
10.10.0.1           10.10.0.2                  10.10.0.3

我想模拟这个(仅使用一个NIC):

HOST0--------------------ROUTER------------------HOST1
192.168.0.1            0.254  1.254              1.1

我使用命令配置了每个主机ip

ip add dev eth0 192.168.0.*

然后使用 ip route 添加路由。

我的问题是,即使我丢弃了每个数据包,从 host0 到 host1 的 ping 仍然顺利,routeriptables表明 ping 可能不会通过路由器,而是更喜欢直接进行。我进行了 tcpdump 跟踪,显示 host0 的 ping 直接到达 host1。

我感觉它不应该那样工作,但我无法弄清楚。

这里是 tcpdump 跟踪:

52:54:00:00:00:00 > 52:54:00:00:00:02, IPv4, length 98: 192.168.0.1 >     192.168.1.1: ICMP echo request, id 4309, seq 3, length 64
52:54:00:00:00:02 > 52:54:00:00:00:00, IPv4, length 98: 192.168.1.1 > 192.168.0.1: ICMP echo reply, id 4309, seq 3, length 64
52:54:00:00:00:00 > 52:54:00:00:00:02, IPv4, length 98: 192.168.0.1 > 192.168.1.1: ICMP echo request, id 4309, seq 4, length 64
52:54:00:00:00:02 > 52:54:00:00:00:00, IPv4, length 98: 192.168.1.1 > 192.168.0.1: ICMP echo reply, id 4309, seq 4, length 64
52:54:00:00:00:00 > 52:54:00:00:00:02, IPv4, length 98: 192.168.0.1 > 192.168.1.1: ICMP echo request, id 4309, seq 5, length 64
52:54:00:00:00:02 > 52:54:00:00:00:00, IPv4, length 98: 192.168.1.1 > 192.168.0.1: ICMP echo reply, id 4309, seq 5, length 64

相关内容