如何优化 iptables 以应对高 DNS 流量?

如何优化 iptables 以应对高 DNS 流量?

如何优化 iptables 以应对高 DNS 流量?我有一台专用的 Linux 服务器,使用 iptables 充当桥接防火墙。最近在防火墙后面部署了负载很高的 DNS 服务器,防火墙开始运行缓慢。有什么技巧,如何使防火墙更有效?

答案1

您不应记录允许的流量规则,以避免过多的日志(以及写入日志的时间)。dns 数据包很小,但数量惊人。您的防火墙可能无法处理每秒那么多的数据包。

ifconfig -a 是否报告丢失/错误/溢出/冲突?

您可以使用 iptraf 获取每个大小分布的数据包数量:

iptraf -i eth0 -z eth0

您可以为每个以太网卡添加 CPU 亲和性,以提高其可以处理的 PPS 数量

您可能正在耗尽连接表。您可以使用 NOTRACK 选项,这样 DNS 流量就不会保留在连接表中,从而提高性能。

答案2

如果您怀疑 iptables 的 DNS 流量消耗了大量 CPU,我建议您重新组织规则,以便您尽快退出防火墙表。

将 DNS 规则放在相应表格的最顶部。

答案3

由于连接数量较多,如果不需要 conntrack,可以禁用它:

iptables -t raw -I PREROUTING -j NOTRACK

相关内容