首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将iptables --physdev语句转换为nftables

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

Stack Overflow用户
提问于 2020-03-23 02:08:13
回答 1查看 1K关注 0票数 0

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

代码语言:javascript
运行
复制
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仅提供以下内容:

代码语言:javascript
运行
复制
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

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-03-29 22:06:46

据我所知(我不是nftables开发人员,这方面的知识只来自于学习netfilter wiki和广泛的web搜索),物理开发是桥接的,没有替代的。netfilter wiki甚至认为physdev已被弃用(参见https://wiki.nftables.org/wiki-nftables/index.php/Supported_features_compared_to_xtables)

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

代码语言:javascript
运行
复制
table inet filter {
  chain forward {
    iifname "br0" oifname "br0" accept
  }
}

这将是

代码语言:javascript
运行
复制
iptables -A FORWARD -m physdev --physdev-is-bridged -j ACCEPT

除了它只适用于网桥"br0",不同于iptables规则,它将适用于系统中的任何网桥。但是,如果您的网桥是静态的,则此解决方法可能足以满足您的需求。

(顺便说一句,在上游nft中使用physdev is- bridge --我相信上面列出的变通方法可以在没有任何内核更改的情况下实现--对于按需创建桥接接口的机器来说,这将是非常好的。需要处理此类网桥的防火墙规则是我尝试切换到nftables的重要障碍)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60803101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档