如何将iptables --physdev语句转换为nftables

问题描述 投票:-1回答:1

我正在尝试将我的条目转换为本地。我遇到的问题是physdev语句-我正在使用一些链条对通过网桥的流量进行分类:

iptables -A FORWARD -m physdev --physdev-is-bridged -j bridgechain
iptables -A bridgechain -m physdev --physdev-in vnet0 --physdev-is-bridged -j vnet0-o
iptables -A brigdechain -m physdev --physdev-out vnet0 --physdev-is-bridged -j vnet0-i

如何使用本机nft正确实施此规则? iptables-translate仅提供以下内容:

nft # -A FORWARD -m physdev --physdev-is-bridged -j brigdechain
nft # -A bridgechain -m physdev --physdev-in vnet0 --physdev-is-bridged -j vnet0-o
nft # -A bridgechain -m physdev --physdev-out vnet0 --physdev-is-bridged -j vnet0-i

谢谢您的帮助!

linux iptables nftables
1个回答
0
投票

据我所知(我不是nftables开发人员,该知识仅来自研究netfilter Wiki和广泛的Web搜索),没有替代physdev-is-bridged的替代品。 netfilter Wiki甚至认为physdev匹配已弃用(请参阅https://wiki.nftables.org/wiki-nftables/index.php/Supported_features_compared_to_xtables

在我的设置中,我能够通过将iifname和oifname与相同的字符串进行比较来解决此问题。

table inet filter {
  chain forward {
    iifname "br0" oifname "br0" accept
  }
}

这将替代

iptables -A FORWARD -m physdev --physdev-is-bridged -j ACCEPT

除了它仅适用于网桥“ br0”,与iptables规则不同,后者适用于系统中的任何网桥。但是,如果您的网桥是静态的,则此变通办法可能就足够了。

((在旁注中,将physdev-is-bridged桥接在上游nft中-我相信上面列出的解决方法可以在不进行任何内核更改的情况下实现-对于按需创建桥接接口的机器来说确实不错。处理此类网桥的防火墙规则是我尝试切换到nftable的重大障碍)

© www.soinside.com 2019 - 2024. All rights reserved.