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

Перенаправление DNS GCE

Я пытаюсь настроить локальный сервер пересылки DNS для сети VPC для использования контроллера LDAP, на котором запущен DNS-сервер. У меня есть несколько проектов GCP, которые должны иметь возможность общаться друг с другом через уже построенный VPN-туннель, используя DNS-имена. Я активировал Cloud DNS на GCP, создал политику DNS-сервера для пересылки запросов на внутренние DNS-серверы, назначил эту политику моей пользовательской настройке сети, но виртуальные машины GCE по-прежнему не могут разрешать хосты. Но если я отредактирую файл /etc/resolv.conf на виртуальной машине и поставлю параметр сервера имен перед сервером метаданных GCP (169.254.169.254) - все будет работать нормально. Такое решение нежелательно, так как в случае большого количества виртуальных машин мне нужно будет развернуть эти изменения для каждой виртуальной машины отдельно. Также попробовал развернуть правила переадресации для внутренних доменов - результат тот же. В соответствии с инструкциями GCP DNS, вы можете использовать следующую команду, чтобы проверить настройки преобразователя DNS для всей сети:

Список адресов вычислений gcloud \ --filter = "target = DNS_RESOLVER" \ --format = 'csv [no-heading] (адрес, подсеть)' .... 192.168.14.4, cloud-vpn-14 .... Это IP был зарезервирован «dns-forwarder -....», и я могу сделать запрос с помощью dig test.1.com, но он не пересылает запрос на DNS-сервер, который использовался политикой пересылки DNS.

Итак, у меня вопрос, как преодолеть ручное переопределение файла /etc/resolv.conf? Или как заставить работать переадресацию DNS?

Я его настроил, но без указания внутренних ip DNS серверов.

Поэкспериментировал и выяснил: для успешной работы в --forwarding-targets можно добавить ip только внешние DNS-серверы, но не внутренние. Следовательно, чтобы это правило работало, вам нужно сделать так, чтобы nat redirect 53 udp port с внешнего ip вашей корпоративной сети на внутренний ip вашего DNS-сервера. И чтобы разрешить это перенаправление для диапазона ip 35.199.192.0/19, который Google используется для проксирования DNS-запросов (документация https://cloud.google.com/dns/zones/#creating-forwarding-zones), но в ходе моего эксперимента также стало ясно, что необходимо добавить диапазон 172.217.0.0/16 в.

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

Пример:

gcloud beta dns managed-zones create example-forwarding-zone \
    --dns-name="cluster.example.com" \
    --description="A zone" \
    --networks="default,my-network" \
    --visibility=private \
    --forwarding-targets="ext_ip_of_your_corporate_network"

После этого разрешающий хост test.cluster.example.com начинает работу.