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

Обойти зону GCP DNS

У меня есть сервер в GCP, который использует частный DNS-сервер в частной зоне DNS (они используют консул).

Для разрешения DNS я использую systemd-resolved, и мой resolv.conf это мягкая ссылка на /run/systemd/resolve/stub-resolv.conf и его содержание:

nameserver 127.0.0.53
options edns0
search c.guardicore-guardicore-mgmt.internal google.internal

Это означает, что все запросы DNS пересылаются демону, разрешенному системой. Конфигурация этого демона выглядит следующим образом (вывод systemd-resolve --status)

Global
     DNS Servers: 127.0.0.1 # (consul)
                  169.254.169.254  # (google's DNS)

Что происходит, когда мои службы пытаются разрешить запись DNS, они запрашивают systemd-resolved, который получает ответ от DNS-сервера Google, а затем этот ответ кэшируется в systemd-resolve. DNS Google не знает этот частный DNS, поэтому он возвращается NXDOMAIN ответ.

Есть способ просто обойти DNS Google? Я хочу, чтобы запросы проходили через консула.

Я пытался изменить содержание resolv.conf файл, но его продолжал перебирать агент GCP.

Для того, чтобы сначала протестировать. Вы пытались исключить кэширующий DNS, то есть закомментировать DNS-серверы Google, таким образом, если локальная служба DNS не знает об IP / имени, она не будет пытаться искать его за пределами этой области; также вы можете проверить свой /etc/resolv.conf, чтобы показать

user@machine ~#: cat /etc/resolv.conf
order hosts bind

А затем вы можете добавить что-то в свой файл hosts, чтобы он сначала был проверен (согласно настройкам resolv.conf) и полностью обошел DNS Google.

user@machine ~#: cat /etc/hosts
127.0.0.1 localhost.localdomain localhost consul consul.local
::1 localhost6.localdomain6 localhost6
192.168.1.100 node0 node0.local
192.168.1.101 node1 node1.local
192.168.1.102 node2 node2.local

Наконец, если это полностью необходимо, вы можете установить BIND и создать обе зоны (consul.local и reverse.local), чтобы иметь полноценные авторитетные службы DNS и отвечать AUTH на каждый из ваших запросов). Можно найти хороший пример: Вот

Пожалуйста, дайте мне знать, если это полезно для вас или если чего-то не хватает, просто дайте мне знать, и я постараюсь копнуть глубже, чтобы дать вам лучший ответ :) :)

С уважением

-JP