iptables:仅匹配具有 VLAN 的接口上的未标记流量

iptables:仅匹配具有 VLAN 的接口上的未标记流量

据我所知,没有办法区分iptables主接口(即使用 vconfig 或 ip link add link 添加虚拟 VLAN 接口的接口;我不知道这是否是正确的术语,我鼓励您纠正我)上的 VLAN 流量。

一般来说这没有问题,因为您可以使用虚拟 VLAN 接口而不是主接口进行匹配,例如

iptables -A INPUT -i eth0.1 -p tcp -m tcp --dport 22 -j ACCEPT

这将允许 TCP 端口 22 (SSH) 数据包到达eth0.1,这些数据包到达时eth0带有 VLAN-ID 1 标记。

当你想在主接口上仅匹配未标记的流量时,就会出现问题,例如

iptables -A INPUT -i eth0 -p tcp -m tcp --dport 53 -j ACCEPT

我们的目的是匹配到达 eth0 的没有 VLAN 标签的 TCP 端口 53(DNS)数据包,我们确实这样做了,但我们也会匹配到达的任何其他 VLAN 标签的数据包eth0

因此,一个可能的解决方法是将主接口的 IP 地址/子网包含在规则中。假设我们在eth0上使用 10.0.0.0/24 和 10.0.1.0/24 eth0.1

iptables -A INPUT -i eth0 -d 10.0.0.0/24 -p tcp -m tcp --dport 53 -j ACCEPT

不幸的是,这有两个缺点:

  1. 我们还将数据包与虚假 IP 地址进行匹配,没有什么可以阻止恶意或配置错误的客户端发送带有 10.0.0.0/24 和 VLAN-ID 1 的数据包。一般来说,这应该不是问题,因为对该数据包的回答将通过另一条路由返回,而不会到达原始
  2. 它不适用于广播流量,例如DHCP例如,不使用接口的 IP 地址。

尤其是后一个问题让我很困扰。例如,下面这个会产生不良的副作用:

iptables -A INPUT -i eth0 -p udp -m udp --dport 67 -j ACCEPT

此规则将匹配 eth0 上的任何传入 DHCP 流量,无论数据包带有哪个 VLAN 标签。如果我们想排除带有 VLAN-ID 1 的 DHCP 流量,我们就无计可施了。

有什么建议么?

答案1

我认为您的问题不是 iptables。我有几个盒子充当 VLAN 之间的路由器,我匹配未标记的流量,正如您所解释的那样,您正在尝试这样做,没有任何问题。

我刚刚测试过,我可以丢弃未标记接口上的所有流量,而不会影响标记接口的流量:

# iptables -A FORWARD -i eth0 -j DROP
# ping -nc3 192.168.100.129
PING 192.168.100.129 (192.168.100.129) 56(84) bytes of data.
64 bytes from 192.168.100.129: icmp_seq=1 ttl=64 time=0.180 ms
64 bytes from 192.168.100.129: icmp_seq=2 ttl=64 time=0.176 ms
64 bytes from 192.168.100.129: icmp_seq=3 ttl=64 time=0.153 ms

--- 192.168.100.129 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.153/0.169/0.180/0.019 ms

(192.168.100.129 存在于 VLAN 10/eth0.10 中)

我认为您的配置有错误,或者某个地方有缺陷。

答案2

iptables在网络堆栈中太高的层上工作以正确查看 VLAN,我实际上很惊讶它能-i eth0.1工作:)

看一下ebtables,它适用于以太网帧,可以自行进行过滤或设置供 iptables 使用的标记。

类似这个未经测试的代码片段应该可以帮助您入门:

ebtables -A INPUT --vlan-id ! 1 --jump mark --mark-set 0xff
iptables -A INPUT -i eth0 -p udp -m udp --dport 67 -m mark ! --mark 0xff -j ACCEPT

答案3

我认为您应该只将物理接口用作物理层。您不会为该接口分配任何 IP 地址,而是创建与之绑定的虚拟接口来eth0处理 IP 传输。

相关内容