Назад | Перейти на главную страницу

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, если я хочу получить доступ к внешним службам основного сервера со вторичного сервера.

Заранее спасибо.

Решение, которое я придумал до сих пор:

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

те же правила применяются к другим услугам, если таковые имеются.

Пока я не встретил никаких подводных камней, и это работает, поэтому пока я отмечу это как правильный ответ.