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

Почему моя запись A в Google Cloud DNS не может быть разрешена сразу после создания?

Я создаю DNS-запись A через Google Cloud API, и в итоге получаю:

После подтверждения того, что запись создана и доступна для просмотра в API, я пытаюсь разрешить ее с помощью nslookup, но получаю:

$ nslookup some-subdomain.mysite.io
 Server:        192.168.178.1
 Address:   192.168.178.1#53

** server can't find some-subdomain.mysite.io: NXDOMAIN

Он остается таким в течение нескольких минут, пока в конечном итоге не исчезнет.

Поскольку первый поиск выполняется после того, как он был создан, я ожидаю, что он не пропустит (и, следовательно, не пропустит кеш). Могу ли я что-нибудь сделать, чтобы поиск завершился быстрее?

Если вы выполняете запрос непосредственно перед созданием записи, вы загрязняете кеш кодом возврата NXDOMAIN для записи для задержки, называемой отрицательным TTL, которая указана в записи SOA (последний элемент).

Также не следует использовать nslookup для диагностики DNS, но dig и вы всегда должны указывать сервер имен в своем запросе, чтобы гарантировать разделение результатов, поступающих с авторитетных серверов имен, от тех, которые кэшируются где-то на рекурсивном сервере имен.

Вы создаете запись через Google Cloud API и начинаете ее разрешать. Но вы не знаете, как часто Google обновляет свою конфигурацию DNS, может потребоваться несколько минут для обновления конфигурации зоны, поэтому она не разрешается в течение нескольких минут.

Если вы хотите узнать больше о работе DNS, вы можете прочитать Эта статья или проверить этот комикс, например.

Решение, которое мы придумали, заключалось в использовании записи DNS с подстановочными знаками. Итак, теперь у меня есть запись:

*.mysite.io -> 10.XX.XX.XX

Это означает, что любой субдомен, который мы создаем, может быть разрешен немедленно, поскольку DNS уже существует. Затем мы выполняем внутреннюю маршрутизацию на основе заголовка хоста.