过滤桥接端口中的广播流量

过滤桥接端口中的广播流量

我有一个带有三个接口的 Linux 桥接器,例如 tap0、tap1 和 tap2。我想要做的是以下列方式修改标准桥接器行为:

  • 如果 L2 广播源自 tap0,则应仅将其转发到 tap2(tap1 应该丢弃它)。

  • 如果 L2 广播源自 tap1,那么它应该只转发到 tap2(tap0 应该丢弃它)。

  • 如果 L2 广播源自 tap2,那么应该像普通网桥一样将其转发到 tap0 和 tap1。

在 Linux 中可以通过这种方式控制桥接行为吗?

干杯

丹尼尔

答案1

看着ebtables控制 Linux 桥接器的转发:

# forward tap0 broadcasts to tap2, do not forward to tap1
ebtables -A FORWARD -i tap0 -o tap2 -d ff:ff:ff:ff:ff:ff -j ACCEPT
ebtables -A FORWARD -i tap0 -o tap1 -d ff:ff:ff:ff:ff:ff -j DROP

# forward tap1 broadcasts to tap2, do not forward to tap0
ebtables -A FORWARD -i tap1 -o tap2 -d ff:ff:ff:ff:ff:ff -j ACCEPT
ebtables -A FORWARD -i tap1 -o tap0 -d ff:ff:ff:ff:ff:ff -j DROP

# forward tap2 broadcasts to tap0 and tap1
ebtables -A FORWARD -i tap2 -o tap0 -d ff:ff:ff:ff:ff:ff -j ACCEPT
ebtables -A FORWARD -i tap2 -o tap1 -d ff:ff:ff:ff:ff:ff -j ACCEPT

相关内容