从本地服务器到另一台本地服务器的 DNS 请求

从本地服务器到另一台本地服务器的 DNS 请求

我在一个网络中运行两台服务器。

主服务器外部IP:1.2.3.4(domain.com)

辅助服务器的外部 IP:不应直接从外部获取

主服务器(dns、mx、www)内部地址 10.10.10.10 辅助服务器(www)-内部地址 10.10.10.20 10.10.10.10 也是 10.10.10.20 的默认路由

任务:

(10.10.10.20)# dig @1.2.3.4 domain.com mx
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

(10.10.10.20)# dig @10.10.10.10 domain.com

; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7_1.1 <<>> @10.10.10.10 domain.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36417
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;domain.com.                     IN      A

;; ANSWER SECTION:
domain.com.              256     IN      A       1.2.3.4

从 10.10.10.10 运行相同的查询就可以正常工作

这里发生的情况是,本地 IP 地址(10.10.10.20)的服务器正在尝试联系其外部 IP 地址(1.2.3.4 或 10.10.10.10)上的另一台服务器。

如果我想从辅助服务器访问主服务器的外部服务,我很困惑我应该如何使用 iptables 来处理这个问题。

提前致谢。

答案1

我目前想到的解决方案是:

iptables -t nat -A PREROUTING -p tcp -s 10.10.10.20 -d 1.2.3.4 --dport 53 -j DNAT --to-destination 10.10.10.10:53
iptables -t nat -A PREROUTING -p tcp -s 10.10.10.20 -d 1.2.3.4 --dport 53 -j DNAT --to-destination 10.10.10.10:53

如果有其他服务,则适用相同的规则。

到目前为止我还没有遇到任何陷阱并且它有效,所以我暂时将其标记为正确答案。

相关内容