我是一名网络高级人员,在过去 5 年里不断深入研究 Linux 内部结构,掌握了很多网络上限,但最近 3-4 天才进入 Netfilter 领域并学习 nftables,以实现我在实验室中需要的东西。我在这个门户网站和 ServerFault 门户网站上诚实地搜索了“MAC 地址转换/NAT”以登陆此处。
在进行 VM Linux 桥接时,我需要解决一些 ESXI vSwitch lame VLAN 管理功能想要转换 ARP-hw_addr 和真实数据包的 MAC 地址以匹配分配给 Linux VM 端口的 VNIC 的 MAC@,作为主题。
完整故事分享于https://docs.google.com/document/d/1TBFYlO-n8G-inYO6cdnMnSEeYUP2Ch9vWNO_TwIxK9M/edit?usp=sharing
参考一下,什么我能做的就是静态翻译通过匹配例如 Y 端主机 IP@ 并将 ARP 和真实 Eth 标头中的 MAC@ 转换为 MAC A 的 MAC@(在 X 端),反之亦然:
table netdev mpls {
chain input {
type filter hook ingress device "mpls" priority filter; policy accept;
arp daddr ip 172.16.100.189 arp daddr ether set 00:50:56:01:00:61 counter
ether daddr 00:50:56:01:02:03 ether daddr set 00:50:56:01:00:61 counter accept
}
chain output {
type filter hook egress device "mpls" priority filter; policy accept;
arp saddr ip 172.16.100.189 arp saddr ether set 00:50:56:01:02:03 counter
ether saddr 00:50:56:01:00:61 ether saddr set 00:50:56:01:02:03 counter accept
}
}
但我需要按比例动态地执行此操作,匹配选定的 IP 地址并让 NF 即时执行 2 路工作。我希望其他网络/虚拟化研究员可能会发现这对于解决某些 vSwitch 的不足很有用(主观角度)。
问题:如何使用在 netdev 域之后工作的大量 Netfilter 上限动态地执行此操作?如果不能,只有带有自定义应用程序的桥接系列中的 nf-queue 调用可以做到这一点?
彼得先生