我有一台运行 KVM 虚拟机管理程序的 Linux 服务器。我在此服务器上有多个网桥(位于不同的 VLAN 上)。
是否有一种“简单”的方法来确保不允许桥接希望(即桥接之间的路由),但仍然允许桥接内桥接?
我知道我可以通过不为网桥或 Linux 机器上的任何接口分配任何 IP 来解决这个问题,但我更希望有一个故障保护措施来确保这种情况不被允许。也许一些 iptables 规则可以将流量保持在网桥内?
谢谢
答案1
我不相信 IPTables 在这里会有太大帮助,因为它旨在操纵第 3 层流量。
通过使用网桥,您可以创建一个第 2 层广播域,该域由网桥父接口上的所有 VLAN 共享。
Open vSwitch可以配置为隔离 VLAN。请记住,如果您需要 KVM 客户机具有 1518 字节以太网帧,则 KVM 主机需要一张网卡,该网卡可以处理大于 1522 字节的以太网帧大小,以允许使用 VLAN 标记。
注意:我上面提到的层是开放系统互连模型。
答案2
每https://vincent.bernat.im/en/blog/2017-linux-bridge-isolation
从 Linux 3.9 开始,您可以在网桥上打开 VLAN 过滤。这是一种快速简便的方法,可以避免流量进入 IP 路由和网桥跳跃。
# echo 1 > /sys/class/net/br0/bridge/vlan_filtering
# bridge vlan del dev br0 vid 1 self
文章列出了一些其他选项,即使用 tc 过滤器、ebtables、命名空间,或为每种单独的协议类型(通常是 ARP、IP、IPv6)实现协议过滤器。