使用绑定的响应更新 nftables 中的可变命名集

使用绑定的响应更新 nftables 中的可变命名集

我需要nftables对源自特定主机的所有流量应用规则,但数据包不一定包含正确的 FQDN,因此我需要依赖 IP 地址。问题在于,为 FQDN 返回了多个冗余 IP,这些 IP 可能会不时更改顺序/优先级,甚至可能被完全替换。

因为返回了多个 IP,所以我必须使用可变的 name set,但我需要定期更新该集,以确保我们有最新的 IP 列表进行匹配。

named我们的服务器上有 BIND9 ( ),所以我的想法是我可以有一个 cron 作业脚本:

  1. 使用以下命令刷新 FQDN 的本地 dns 解析器rdnc flushname...
  2. 然后挖掘它来更新解析器缓存dig +short...
  3. nft add element...与新人一起奔跑,
  4. 刷新旧的命名集nft delete element...

这是解决这个问题的正确方法吗?或者我是否过度思考了已经以另一种方式解决的问题?

答案1

您应该在删除旧元素之前创建新元素。这样总有一组可以匹配,不会因为防火墙更新而丢失数据包。短暂的间隙可能不会造成任何问题,但没有理由不这样做。

答案2

实际上,您可以通过 nft -f 使用 nftables 原子加载行为。在该文件中,您将首先对集合发出刷新,然后仅添加当前 DNS 挖掘返回的元素。无需删除不再包含在集合中的内容,因为您是从头开始声明集合内容的。应该更容易实施...

相关内容