为DNS请求编写linux conntrack模块

时间:2012-06-06 20:20:22

标签: dns kernel-module netfilter

我设置了一个netfilter规则,使用统计模块的随机模式和一些NAT规则来平衡DNS请求。该部分运行良好但是当DNS客户端从同一源端口发送其所有请求时,DNS请求全部平衡到同一后端服务器。

我假设发生这种情况是因为连接跟踪将所有UDP数据包识别为同一UDP连接的一部分。我找不到一个容易解决的问题,有吗?

如果没有,我将不得不编写一些代码来使事情按照我的意愿行事。这样做的正确方法是什么?

我的第一个想法是创建类似于ip_conntrack_ftp的东西,通过使用ip source / dest以及DNS序列号来识别DNS连接。

1 个答案:

答案 0 :(得分:0)

您不需要任何复杂的东西 - 您只需要找到一种方法来使负载均衡器“按包”而不是“按流”工作。