我正在尝试在ebtables 中创建IP-MAC配对规则。可用的教程和相关问题 [1] 很少,但我有一些特定的设置。
环境: 我有很多物理主机。每个主机都有很少的以太网卡,以绑定方式加入并用作桥接器的从属设备。每个主机上有很多虚拟机(kvm、qemu、libvirt)。每个虚拟机都通过名为 vnet[0-9]+ 的新端口连接到其物理主机的网桥。没有 NAT。网络工作正常,所有物理主机都可以 ping 通,所有虚拟机也可以。每个虚拟机都有自己的 IP 地址和 MAC 地址。
问题:在虚拟机内部,IP 地址可以更改为另一个。
找到的解决方案:在 ebtables 站点 [2] 上有已知的解决方案,但是当仅使用一台主机时,此解决方案适用。它允许所有流量,如果来自 IP 的数据包的 MAC 不是允许的,则数据包将被丢弃。如果有多个主机,则需要在所有主机上注册所有现有的 IP-MAC 对。需要逆向策略解决方案。
精心设计的解决方案:我试图以相反的方式使用 ebtables。这是我尝试过的示例。
例 1
Bridge table: filter
Bridge chain: INPUT, entries: 2, policy: DROP
-i bond0 -j ACCEPT
-p IPv4 -s 54:52:0:98:d7:b6 --ip-src 192.168.11.122 -j ACCEPT
Bridge chain: FORWARD, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
Run Code Online (Sandbox Code Playgroud)
例2
Bridge table: …Run Code Online (Sandbox Code Playgroud)