为DNS请求编写linux ConTrack模块

为DNS请求编写linux ConTrack模块,dns,kernel-module,netfilter,Dns,Kernel Module,Netfilter,我设置了一个netfilter规则,该规则使用统计模块的随机模式和一些NAT规则来平衡DNS请求。但是,当DNS客户端从同一源端口发送其所有请求时,该部分工作正常。所有DNS请求都平衡到同一后端服务器 我假设发生这种情况是因为连接跟踪将所有UDP数据包标识为同一UDP连接的一部分。我找不到一个简单的解决办法,有吗 如果没有,我将不得不编写一些代码,使事情按照我所希望的方式进行。这样做的正确方法是什么 我的第一个想法是创建类似于ip_conntrack_ftp的东西,通过使用ip源/目的地以及DN

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

我假设发生这种情况是因为连接跟踪将所有UDP数据包标识为同一UDP连接的一部分。我找不到一个简单的解决办法,有吗

如果没有,我将不得不编写一些代码,使事情按照我所希望的方式进行。这样做的正确方法是什么


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

你不需要那么复杂的东西-你只需要找到一种方法使负载平衡器在每个数据包而不是每个流中工作。

请确定你正在使用的确切模块。只有目标为DNAT的统计模块。模块全名是什么,即mod_something.ko?是的,这将是一个简单的解决方法。我找不到。