透明桥接是否可以通过 nftables 实现 nat ?

透明桥接是否可以通过 nftables 实现 nat ?

我在一张卡上配置了两个 10gb NIC(eth1、eth2),将其配置为桥接器(br0),PC(装有 ubuntu 22.04)自己的 nic(eth0)仅用于访问它。我正在使用 nftables 将其设置为透明桥接器,以过滤不需要的数据包,效果很好(我也刚学)。

我也需要进行端口转发。例如:

chain nat {
                type nat hook prerouting priority -199; policy accept;
                meta nftrace set 1
                iif eth1 ip daddr a.b.c.d tcp dport x counter dnat to e.f.g.h:y
        }

我知道它不是网桥内的网络标准,网桥 nat 是关于修改目标 mac 的。我读到 nft 目前没有网桥 l3 ip 功能。

无论如何,我想问的是,是否有任何解决方法,最好使用 nft 的两步操作。最后,如果使用 nft 不可行,我可以使用 xdp/bpf 或其他东西来做吗?我不喜欢这样,因为要为每个新/修改条目编译 c 代码,这会带来许多其他复杂情况。

预先感谢

相关内容