作为一个还没有深入研究过 OSI 各层的人,我对 nftables 中桥接过滤的文档感到非常沮丧:https://wiki.nftables.org/wiki-nftables/index.php/Bridge_filtering
是我理解错了吗?还是 IP 地址、端口、ICMP 匹配等在 nftables 的桥接表中不可能实现?不过,在使用检查规则时它并没有抱怨,nft
而且我所包含的页面文档甚至给出了 IP 端口作为桥接过滤的示例。文档是否有误?我是否误解了什么?
作为一个还没有深入研究过 OSI 各层的人,我对 nftables 中桥接过滤的文档感到非常沮丧:https://wiki.nftables.org/wiki-nftables/index.php/Bridge_filtering
是我理解错了吗?还是 IP 地址、端口、ICMP 匹配等在 nftables 的桥接表中不可能实现?不过,在使用检查规则时它并没有抱怨,nft
而且我所包含的页面文档甚至给出了 IP 端口作为桥接过滤的示例。文档是否有误?我是否误解了什么?
数据包过滤器存在于层模型之外。L2 桥本身应仅根据 L1/L2 信息而不是其上方的任何层做出转发决策(至少在理想状态下如此,但在实践中可能并非总是如此),L3 网络协议应根据 L2/L3 而不是任何更高层做出决策(有一些例外...),等等;但数据包过滤器不会做出任何对协议来说至关重要的决策 - 它是一个独立的外部事物。
而且由于所有层实际上都拥有包括上层信息在内的整个数据包,仅将其视为不透明的有效负载并承诺不查看内部,这意味着可以在 L2 桥接决策之前实现过滤器,并且仍然能够窥视 L3 或 L4 协议数据。常规 iptables 或 nftables 过滤器可以被视为卡在 L3 IP 处理路径上,但它们当然可以匹配 TCP 标头。类似地,连接到 L2 桥的防火墙过滤器确实可以看到整个数据包并可能匹配其任何字段。