小编ret*_*eax的帖子

如何复制传入的 DNS 数据包并使用 iptables 将它们发送到不同的名称服务器?

编辑:tldr:我想使用 TEE 和 NAT 来克隆 UDP 流量。我不担心处理响应。理想情况下,我不想安装新软件。我正在使用 TEE 成功发送到本地网段 (127.0.0.2),然后我想将该流量通过 NAT 传输到 WAN。

我有 bind9 在我的 Debian 服务器上侦听端口 53。我有一个外部客户端向所述服务器发出 DNS 请求。所有这些都运行良好。我想在端口 53 上复制传入的 DNS 请求并将它们发送到 8.8.8.8。注意复制这个词。

通过对 SU 的大量搜索和阅读,我发现最常用的方法是使用 iptables TEE 和 NAT。我的 TEE 工作得很好,这是我的命令:

iptables -t mangle -A POSTROUTING -p udp -d 127.0.0.1 --dport 53 -j TEE --gateway 127.0.0.2
Run Code Online (Sandbox Code Playgroud)

我确认我在 127.0.0.2:53 收到了一份带有 netcat 的 DNS 请求的副本。到现在为止还挺好。

现在,我需要更改目标 IP。我尝试通过以下方式完成此操作:

iptables -t nat -A PREROUTING -p udp -d 127.0.0.2 --dport 53 -j DNAT --to 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

我使用 tcpdump 来监控到 8.8.8.8 …

networking domain-name-system linux router iptables

5
推荐指数
1
解决办法
1627
查看次数

标签 统计

domain-name-system ×1

iptables ×1

linux ×1

networking ×1

router ×1