Куда делись процессоры в DNS
Обновлено: 21.11.2024
Kubernetes создает записи DNS для служб и модулей. Вы можете связаться со службами, используя согласованные DNS-имена вместо IP-адресов.
Введение
Kubernetes DNS планирует создание модуля и службы DNS в кластере и настраивает кублеты, чтобы сообщать отдельным контейнерам об использовании IP-адреса службы DNS для разрешения DNS-имен.
Каждой службе, определенной в кластере (включая сам DNS-сервер), назначается DNS-имя. По умолчанию список поиска DNS клиентского модуля включает собственное пространство имен модуля и домен кластера по умолчанию.
Пространства имен сервисов
Запрос DNS может возвращать разные результаты в зависимости от пространства имен отправляющего его модуля. Запросы DNS, не указывающие пространство имен, ограничиваются пространством имен модуля. Получите доступ к службам в других пространствах имен, указав их в DNS-запросе.
Например, рассмотрим модуль в тестовом пространстве имен. Служба данных находится в пространстве имен prod.
Запрос данных не возвращает результатов, так как он использует тестовое пространство имен модуля.
Запрос для data.prod возвращает ожидаемый результат, поскольку он указывает пространство имен.
Запросы DNS можно расширить с помощью файла /etc/resolv.conf модуля. Kubelet устанавливает этот файл для каждого модуля. Например, запрос только данных может быть расширен до data.test.svc.cluster.local . Значения параметра поиска используются для расширения запросов. Дополнительные сведения о DNS-запросах см. на странице руководства resolv.conf.
Итак, модуль в пространстве имен test может успешно разрешить либо data.prod, либо data.prod.svc.cluster.local .
Записи DNS
Какие объекты получают записи DNS?
В следующих разделах подробно описаны поддерживаемые типы записей DNS и поддерживаемый макет. Любые другие макеты, имена или запросы, которые работают, считаются деталями реализации и могут быть изменены без предупреждения. Более актуальную спецификацию см. в разделе Kubernetes DNS-Based Service Discovery.
Услуги
Записи A/AAAA
"Обычным" (не безголовым) службам назначается запись DNS A или AAAA, в зависимости от IP-семейства службы, для имени вида my-svc.my-namespace.svc.cluster-domain.example. . Это разрешается в IP-адрес кластера Службы.
"Безголовые" (без IP-адреса кластера) службам также назначается запись DNS A или AAAA, в зависимости от семейства IP-адресов службы, для имени вида my-svc.my-namespace.svc.cluster- домен.пример . В отличие от обычных служб, это разрешается набором IP-адресов модулей, выбранных службой. Ожидается, что клиенты будут потреблять набор или использовать стандартный циклический выбор из набора.
Записи SRV
Записи SRV создаются для именованных портов, которые являются частью обычных или автономных служб. Для каждого именованного порта запись SRV будет иметь форму _my-port-name._my-port-protocol.my-svc.my-namespace.svc.cluster-domain.example . Для обычной службы это разрешается в номер порта и имя домена: my-svc.my-namespace.svc.cluster-domain.example . Для безголовой службы это разрешается несколькими ответами, по одному для каждого модуля, поддерживающего службу, и содержит номер порта и доменное имя модуля в формате auto-generated-name.my-svc.my-namespace. svc.cluster-domain.example .
Записи A/AAAA
Как правило, модуль имеет следующее разрешение DNS:
Например, если у модуля в пространстве имен по умолчанию IP-адрес 172.17.0.3, а доменное имя кластера — cluster.local , тогда у модуля есть DNS-имя:
Для любых модулей, предоставляемых Сервисом, доступно следующее разрешение DNS:
Поля имени хоста и поддомена
В настоящее время при создании модуля его именем хоста является значение metadata.name модуля.
В спецификации модуля есть необязательное поле имени хоста, которое можно использовать для указания имени хоста модуля. Когда указано, оно имеет приоритет над именем пода, чтобы быть именем хоста пода. Например, для модуля с именем хоста, установленным на «мой-хост», имя хоста модуля будет установлено на «мой-хост».
В спецификации модуля также есть необязательное поле субдомена, которое можно использовать для указания его субдомена. Например, Pod с именем хоста, установленным на «foo», и субдоменом, установленным на «bar», в пространстве имен «my-namespace» будет иметь полное доменное имя (FQDN) «foo.bar.my-namespace.svc. домен-кластера.пример ".
Если существует безголовая служба в том же пространстве имен, что и модуль, и с тем же именем, что и у субдомена, DNS-сервер кластера также возвращает запись A или AAAA для полного имени хоста модуля. Например, при наличии пода с именем хоста, установленным на «busybox-1», и субдоменом, установленным на «субдомен по умолчанию», и безголовой службы с именем «субдомен по умолчанию» в том же пространстве имен, модуль увидит свое собственное полное доменное имя как " busybox-1.default-subdomain.my-namespace.svc.cluster-domain.example ". DNS обслуживает запись A или AAAA для этого имени, указывающую на IP-адрес модуля.Оба модуля «busybox1» и «busybox2» могут иметь отдельные записи A или AAAA.
Объект Endpoints может указывать имя хоста для любого адреса конечной точки вместе с ее IP-адресом.
Примечание. Поскольку записи A или AAAA не создаются для имен подов, для создания записи A или AAAA пода требуется имя хоста. Pod без имени хоста, но с поддоменом создаст только запись A или AAAA для безголовой службы ( default-subdomain.my-namespace.svc.cluster-domain.example ), указывающую на IP-адрес Pod. Кроме того, Pod должен быть готов, чтобы иметь запись, если только в Службе не установлено publishNotReadyAddresses=True.
Поле setHostnameAsFQDN модуля
Если для модуля настроено полное доменное имя (FQDN), его имя хоста является коротким именем хоста. Например, если у вас есть под с полным доменным именем busybox-1.default-subdomain.my-namespace.svc.cluster-domain.example , то по умолчанию команда hostname внутри этого пода возвращает busybox-1 и имя хоста Команда --fqdn возвращает полное доменное имя.
Когда вы устанавливаете setHostnameAsFQDN: true в спецификации пода, kubelet записывает полное доменное имя пода в имя хоста для пространства имен этого пода. В этом случае и имя хоста, и имя хоста --fqdn возвращают полное доменное имя пода.
В Linux поле имени хоста ядра (поле имени узла в структуре utsname ) ограничено 64 символами.
Если модуль включает эту функцию и его полное доменное имя длиннее 64 символов, он не запустится. Pod останется в состоянии Pending ( ContainerCreating как видно из kubectl ), генерируя события ошибок, такие как Failed to build FQDN from pod hostname and cluster domain, FQDN long-FQDN is too long (64 символа — это максимум, 70 символов запрошено). Одним из способов улучшения взаимодействия с пользователем в этом сценарии является создание контроллера веб-перехватчика допуска для управления размером полного доменного имени, когда пользователи создают объекты верхнего уровня, например развертывание.
Политика DNS модуля
Политики DNS можно задавать для каждого модуля отдельно. В настоящее время Kubernetes поддерживает следующие политики DNS для конкретных модулей. Эти политики указаны в поле dnsPolicy спецификации пода.
- «По умолчанию»: модуль наследует конфигурацию разрешения имен от узла, на котором работают модули. Дополнительные сведения см. в соответствующем обсуждении.
- "ClusterFirst": любой DNS-запрос, не соответствующий настроенному суффиксу домена кластера, например "www.kubernetes.io", перенаправляется на вышестоящий сервер имен, унаследованный от узла. Администраторы кластера могут настроить дополнительные серверы-заглушки и вышестоящие DNS-серверы. Подробнее о том, как в таких случаях обрабатываются DNS-запросы, см. соответствующее обсуждение.
- "ClusterFirstWithHostNet": для модулей, работающих с hostNetwork, вы должны явно указать политику DNS "ClusterFirstWithHostNet".
- «Нет»: позволяет поду игнорировать настройки DNS из среды Kubernetes. Предполагается, что все настройки DNS должны быть предоставлены с использованием поля dnsConfig в спецификации пода. См. подраздел «Конфигурация DNS» ниже.
Примечание. "По умолчанию" не является политикой DNS по умолчанию. Если dnsPolicy не указан явно, используется "ClusterFirst".
В приведенном ниже примере показан модуль с политикой DNS, для которой задано значение " ClusterFirstWithHostNet ", поскольку для параметра hostNetwork задано значение true .
Конфигурация DNS модуля
Конфигурация DNS модуля позволяет пользователям больше контролировать настройки DNS для модуля.
Поле dnsConfig является необязательным и может работать с любыми настройками dnsPolicy. Однако, если для параметра dnsPolicy Pod установлено значение « None », необходимо указать поле dnsConfig.
Ниже приведены свойства, которые пользователь может указать в поле dnsConfig:
- nameservers: список IP-адресов, которые будут использоваться в качестве DNS-серверов для модуля. Может быть указано не более 3 IP-адресов. Если для параметра dnsPolicy пода задано значение «Нет», список должен содержать хотя бы один IP-адрес, в противном случае это свойство является необязательным. Перечисленные серверы будут объединены с базовыми серверами имен, созданными на основе указанной политики DNS, с удаленными повторяющимися адресами.
- searchs : список поисковых доменов DNS для поиска имен хостов в Pod. Это свойство является необязательным. При указании предоставленный список будет объединен с базовыми именами поисковых доменов, сгенерированными из выбранной политики DNS. Дублирующиеся доменные имена удаляются. Kubernetes поддерживает не более 6 поисковых доменов.
- options: необязательный список объектов, где каждый объект может иметь свойство имени (обязательное) и свойство значения (необязательное). Содержимое этого свойства будет объединено с параметрами, сгенерированными из указанной политики DNS. Повторяющиеся записи удаляются.
Ниже приведен пример модуля с пользовательскими настройками DNS:
Когда вышеприведенный модуль создан, тест контейнера получает следующее содержимое в своем файле /etc/resolv.conf:
Для настройки IPv6 путь поиска и сервер имен должны быть настроены следующим образом:
Выход примерно такой:
Расширенная конфигурация DNS
По умолчанию для конфигурации DNS Pod Kubernetes допускает не более 6 поисковых доменов и список поисковых доменов длиной до 256 символов.
Если функция ExpandedDNSConfig включена для kube-apiserver и kubelet, Kubernetes может иметь не более 32 доменов поиска и список доменов поиска длиной до 2048 символов.
Доступность функций
Доступность Pod DNS Config и DNS Policy « None » показана ниже.
версия k8s | Поддержка функций |
---|---|
1.14 | Стабильный |
1.10 | Бета (включено по умолчанию) |
1.9 | < td style=text-align:center>Альфа
Что дальше
Для получения рекомендаций по администрированию конфигураций DNS см. раздел Настройка службы DNS
Отзыв
Была ли эта страница полезной?
Спасибо за отзыв. Если у вас есть конкретный вопрос о том, как использовать Kubernetes, на который можно ответить, задайте его на Stack Overflow. Откройте задачу в репозитории GitHub, если хотите сообщить о проблеме или предложить улучшение.
Google Public DNS – это бесплатная глобальная служба разрешения системы доменных имен (DNS), которую вы можете использовать в качестве альтернативы вашему текущему провайдеру DNS.
Почему Google работает над службой DNS?
Мы считаем, что более быстрая и безопасная инфраструктура DNS может значительно улучшить работу в Интернете. Google Public DNS сделал много улучшений в области скорости, безопасности и достоверности результатов. Мы поделились этими улучшениями в нашей документации, чтобы способствовать продолжающемуся обсуждению в веб-сообществе.
Могу ли я использовать Google Public DNS для размещения своего доменного имени?
Google Public DNS не является официальной службой хостинга DNS и не может использоваться как таковая. Если вам нужен программируемый авторитетный сервер имен с большим объемом данных, использующий инфраструктуру Google, попробуйте Google Cloud DNS.
Предлагает ли общедоступный DNS Google возможность блокировать или отфильтровывать нежелательные сайты?
Общедоступный DNS Google — это исключительно сервер разрешения и кэширования DNS; он не выполняет никакой блокировки или фильтрации, за исключением того, что он может не разрешать определенные домены в исключительных случаях, если мы считаем, что это необходимо для защиты пользователей Google от угроз безопасности. Но мы считаем, что функции блокировки обычно лучше всего выполняет клиент. Если вы заинтересованы в включении такой функции, вам следует рассмотреть возможность установки для этой цели клиентского приложения или надстройки браузера.
Есть ли какие-либо общие зависимости от Google Public DNS?
Google Public DNS — это независимая служба.
Нужна ли мне учетная запись Google для использования Google Public DNS?
Для использования Google Public DNS не требуется никакой учетной записи.
Чем общедоступный DNS Google отличается от службы DNS моего интернет-провайдера или других открытых преобразователей DNS? Как узнать, лучше ли он?
Открытые резолверы и ваш интернет-провайдер предлагают услуги резолвера DNS. Мы приглашаем вас попробовать Google Public DNS в качестве основного или дополнительного преобразователя DNS вместе с любыми другими альтернативными службами DNS. При выборе распознавателя DNS, который работает для вас, необходимо учитывать множество факторов, таких как скорость, надежность, безопасность и достоверность ответов. В отличие от Google Public DNS, некоторые интернет-провайдеры и открытые преобразователи блокируют, фильтруют или перенаправляют ответы DNS в коммерческих целях.
Как Google Public DNS обрабатывает несуществующие домены?
Если вы отправляете запрос для несуществующего доменного имени, Google Public DNS всегда возвращает запись NXDOMAIN в соответствии со стандартами протокола DNS. Браузер должен показать этот ответ как ошибку DNS. Если вместо этого вы получаете какой-либо ответ, кроме сообщения об ошибке (например, вы перенаправлены на другую страницу), это может быть результатом следующего:
- Клиентское приложение, например подключаемый модуль браузера, отображает альтернативную страницу для несуществующего домена.
- Некоторые интернет-провайдеры могут перехватывать и заменять все ответы NXDOMAIN ответами, ведущими на их собственные серверы. Если вы обеспокоены тем, что ваш интернет-провайдер перехватывает запросы или ответы Google Public DNS, обратитесь к своему интернет-провайдеру.
Будет ли Google Public DNS использоваться для показа рекламы в будущем?
Мы стремимся сохранить целостность протокола DNS. Google Public DNS никогда не вернет адрес сервера объявлений для несуществующего домена.
Использование и поддержка
Сейчас я использую другую службу DNS. Могу ли я также использовать Google Public DNS?
Вы можете установить Google Public DNS в качестве основного или дополнительного преобразователя DNS вместе с вашим текущим преобразователем DNS.Помните, что операционные системы по-разному относятся к сопоставителям DNS: некоторые предпочитают ваш основной сопоставитель DNS и используют дополнительный только в том случае, если основной не отвечает, в то время как другие выполняют циклический перебор между каждым из сопоставителей.
Если есть различия в безопасности или фильтрации между настроенными преобразователями, вы получаете самый слабый уровень безопасности или фильтрации среди всех преобразователей. Иногда может работать фильтрация NXDOMAIN или перенаправление на заблокированные страницы, но SERVFAIL не блокирует домены, если только все преобразователи не возвращают SERVFAIL.
Примечание. Ошибки проверки DNSSEC являются ответами SERVFAIL; использование Google Public DNS вместе с резолверами, не проверяющими DNSSEC, отключает безопасность DNSSEC. Для защиты DNSSEC используйте только провайдеров, локальные или общедоступные преобразователи, которые проверяют DNSSEC.
Подходит ли Google Public DNS для всех типов устройств с выходом в Интернет?
Google Public DNS можно использовать на любом стандартном сетевом устройстве. Если вы обнаружите, что Google Public DNS не работает должным образом, сообщите нам об этом.
Могу ли я запустить Google Public DNS на своем рабочем компьютере?
В некоторых офисах есть частные сети, которые позволяют вам получать доступ к доменам, к которым вы не можете получить доступ вне работы. Использование Google Public DNS может ограничить ваш доступ к этим частным доменам. Прежде чем использовать Google Public DNS на своем рабочем компьютере, ознакомьтесь с политикой своего ИТ-отдела.
В каких странах доступен Google Public DNS?
Он доступен для пользователей Интернета по всему миру, хотя ваш опыт может сильно различаться в зависимости от вашего конкретного местоположения.
Работает ли Google Public DNS со всеми интернет-провайдерами?
Общедоступный DNS Google должен работать с большинством интернет-провайдеров, если у вас есть доступ для изменения настроек DNS вашей сети.
Нужно ли использовать оба IP-адреса Google Public DNS?
Вы можете использовать Google в качестве основного сервиса, просто указав один из IP-адресов. Однако не указывайте один и тот же адрес в качестве основного и дополнительного серверов.
Имеет ли значение, в каком порядке я указываю IP-адреса?
Порядок не имеет значения. Любой IP-адрес может быть вашим первичным или вторичным сервером имен.
Какое соглашение об уровне обслуживания для сервиса?
Для бесплатной службы Google Public DNS не существует соглашения об уровне обслуживания (SLA).
У меня интернет-провайдер. Могу ли я перенаправить своих пользователей на Google Public DNS?
Интернет-провайдеры, которые хотят использовать Google Public DNS, должны следовать инструкциям интернет-провайдера, чтобы узнать, нужно ли им что-то делать, прежде чем отправлять запросы в Google Public DNS.
Как я могу получить поддержку от команды Google Public DNS?
Мы рекомендуем вам присоединиться к нашим группам Google, чтобы получать полезные обновления от команды и задавать любые вопросы, которые у вас есть. Если вы столкнулись с проблемой и хотели бы сообщить о ней, см. Процедуры в разделе Сообщение о проблемах.
Технические
Как Google Public DNS узнает, куда отправлять мои запросы?
Маршрутизация Anycast направляет ваши запросы на ближайший общедоступный DNS-сервер Google. Дополнительные сведения о маршрутизации произвольной рассылки см. в статье Википедии.
Google Public DNS использует записи сервера имен (NS), опубликованные в корневой зоне DNS и зонах доменов верхнего уровня, для поиска имен и адресов DNS-серверов, которые являются полномочными для любого домена. Некоторые из этих серверов имен также используют произвольную маршрутизацию.
Где сейчас находятся ваши серверы?
Общедоступные DNS-серверы Google доступны по всему миру. На этот вопрос есть два ответа: один для клиентов, а другой для DNS-серверов, с которых Google Public DNS получает ответы, возвращаемые клиентам.
Когда клиенты отправляют запросы в Google Public DNS, они перенаправляются в ближайшее место, рекламирующее используемый произвольный адрес ( 8.8.8.8 , 8.8.4.4 или один из IPv6-адресов в 2001:4860:4860:: ). Конкретные местоположения, рекламирующие эти адреса произвольной рассылки, меняются в зависимости от состояния сети и нагрузки трафика и включают почти все основные центры обработки данных и пограничные точки присутствия (PoP) в сети Google Edge.
Google Public DNS отправляет запросы на авторитетные серверы из основных центров обработки данных и регионов Google Cloud. Google публикует список диапазонов IP-адресов, которые Google Public DNS может использовать для запросов к авторитетным DNS-серверам (используются не все диапазоны в списке). Вы можете использовать его для геолокации DNS-запросов, в которых отсутствуют данные клиентской подсети EDNS (ECS), а также для настройки списков управления доступом, чтобы разрешить более высокие частоты запросов из Google Public DNS.
В дополнение к этому часто задаваемым вопросам Google также публикует список в виде записи "TXT" DNS. Google еженедельно обновляет оба источника, добавляя, изменяя и удаляя их. Каждая запись диапазона IP-адресов включает код IATA ближайшего аэропорта. Автоматизация для данных GeoIP или ACL должна получать эти данные через DNS, а не путем очистки этой веб-страницы (см. пример ниже).
Расположение диапазонов IP-адресов, которые Google Public DNS использует для отправки запросов
Получение данных о местоположении из DNS
Диапазоны адресов можно получить в виде файла JSON:
Вы можете использовать следующий скрипт Python, чтобы создать список диапазонов IP-адресов, которые Google Public DNS будет использовать для выполнения запросов к полномочным DNS-серверам.
Эти данные также доступны на сайтеlocations.publicdns.goog. как TXT-запись. Однако размер данных означает, что записи DNS TXT больше не являются подходящим форматом. Мы заменяем запись TXT описанным выше файлом в формате JSON. Если вы используете запись TXT, переключитесь на использование файла JSON, поскольку мы планируем удалить запись TXT в будущем.
Командная строка
Вы можете использовать curl и инструмент jq для извлечения диапазонов IP-адресов Google Public DNS из командной строки.
Для этого требуется следующее:
Питон
Вы можете использовать следующий скрипт Python для создания списка диапазонов IP-адресов, которые используются Google Public DNS.
Для macOS для этого скрипта требуется среда выполнения Python 3, настроенная следующим образом:
Основан ли общедоступный DNS Google на программном обеспечении с открытым исходным кодом, таком как BIND?
Google Public DNS — это собственная реализация Google стандартов DNS.
Планируется ли выпуск кода Google Public DNS в качестве программного обеспечения с открытым исходным кодом?
В настоящее время мы не планируем открывать исходный код Google Public DNS. Но мы подробно описали все шаги, которые мы предприняли для повышения скорости, безопасности и соответствия стандартам.
Поддерживает ли Google Public DNS IPv6?
Google Public DNS имеет адреса IPv6 для входящих запросов от клиентов с подключением IPv6 и отвечает на все запросы адресов IPv6, возвращая записи AAAA, если они существуют. Мы полностью поддерживаем авторитетные серверы имен только для IPv6. Адреса преобразователя IPv6 приведены в инструкциях по началу работы с Google Public DNS.
Обратите внимание, что вы можете не увидеть результаты IPv6 для веб-сайтов Google. Чтобы оптимизировать взаимодействие с пользователем, Google предоставляет записи AAAA только клиентам с хорошим подключением IPv6. Эта политика полностью независима от Google Public DNS и применяется авторитетными серверами имен Google. Дополнительную информацию см. на странице Google через IPv6.
Для сетей и систем, использующих только IPv6, вы можете использовать Google Public DNS64 для получения синтезированных записей AAAA для доменных имен с записями A, но без записей AAAA. Эти синтезированные записи AAAA направляют клиентов, использующих только IPv6, к шлюзу NAT64 с использованием известного префикса IPv6, зарезервированного для службы NAT64. Просто настройте свои системы, следуя инструкциям по началу работы, заменив адреса преобразователя конфигурацией DNS64 IPv6.
Поддерживает ли Google Public DNS протокол DNSSEC?
Google Public DNS — это проверяющий и безопасный преобразователь. Все ответы из зон, подписанных DNSSEC, проверяются, если только клиенты явно не установили флаг CD в запросах DNS, чтобы отключить проверку.
Как узнать, использую ли я DNSSEC?
Как Google Public DNS обрабатывает запросы, не прошедшие проверку DNSSEC?
Если Google Public DNS не может проверить ответ (из-за неправильной настройки, отсутствия или неверных записей RRSIG и т. д.), вместо этого будет возвращен ответ об ошибке (SERVFAIL). Однако, если влияние серьезное (например, очень популярный домен не прошел проверку), мы можем временно отключить проверку в зоне, пока проблема не будет устранена.
Как узнать, почему данный домен не прошел проверку DNSSEC?
DNS Analyzer от Verisign Labs и DNSViz от Sandia National Laboratories – это два инструмента визуализации DNSSEC, которые показывают цепочку аутентификации DNSSEC для любого домена. Они показывают, где происходят сбои, и полезны для поиска источника сбоев DNSSEC.
Google Public DNS обслуживает старые данные. Могу ли я заставить его обновить свои данные?
Вы можете использовать инструмент Flush Cache для обновления кэша Google Public DNS для распространенных типов записей и большинства доменных имен. Вам не нужно подтверждать право собственности на домен, чтобы очистить его, но вы должны решить reCAPTCHA, которая ограничивает автоматическое злоупотребление службой.
Сброс любого типа записи для домена, который вы зарегистрировали или делегировали с помощью записей NS, не только сбрасывает кэшированные ответы для этого типа, но также сбрасывает информацию делегирования о серверах имен для этого домена. Когда вы недавно меняли серверы имен (путем смены регистраторов или провайдеров хостинга DNS), очень важно сделать это до очистки субдоменов, таких как www , чтобы они не обновлялись из устаревших данных на ваших старых DNS-серверах.< /p>
Если Google Public DNS возвращает ответы с устаревшими записями CNAME, вам необходимо очистить тип записи CNAME для каждого домена CNAME, начиная с последнего CNAME в цепочке и возвращаясь к запрошенному имени. После того, как вы сбросите все CNAME, сбросьте запрошенные имена со всеми типами записей, которые отвечают устаревшим CNAME.
Существуют некоторые ограничения на то, что можно сбросить:
Домены, использующие клиентскую подсеть EDNS (ECS) для геолокации, не могут быть очищены. Для любых доменов, использующих ECS, установите достаточно короткие TTL для записей с поддержкой ECS (15 минут или меньше), чтобы вам никогда не приходилось их очищать.
Единственный способ сбросить все субдомены или все типы записей для доменного имени — сбросить каждый тип записи для каждого доменного имени, которое вы хотите сбросить. Если это нецелесообразно, вы всегда можете дождаться истечения срока жизни записи (обычно он ограничен шестью часами, даже если фактический срок жизни больше).
Чтобы очистить интернационализированные доменные имена, такие как пример.example , используйте форму с punycoded ( xn‑‑e1afmkfd.example для приведенного выше примера). Домены с символами, отличными от букв ASCII, цифр, дефиса или подчеркивания, не могут быть очищены.
Защищает ли общедоступный DNS Google так называемый «последний переход» за счет шифрования связи с клиентами?
Есть ли инструменты, которые я могу использовать для проверки производительности Google Public DNS по сравнению с другими службами DNS?
Существует множество бесплатных инструментов, которые можно использовать для измерения времени отклика Google Public DNS. Мы рекомендуем Namebench. Независимо от того, какой инструмент вы используете, его следует запускать на большом количестве доменов — более 5000 — для получения статистически значимых результатов. Хотя выполнение тестов занимает больше времени, использование как минимум 5000 доменов гарантирует, что изменчивость из-за сетевой задержки (потеря пакетов и повторная передача) будет сведена к минимуму, а кэш больших имен Google Public DNS будет тщательно проверен.
Чтобы установить количество доменов в Namebench, используйте параметр графического интерфейса Количество тестов или флаг командной строки -t; дополнительную информацию см. в документации Namebench.
Когда я запускаю команду ping или traceroute для преобразователей общедоступных DNS Google, задержка ответа выше, чем у других служб. Означает ли это, что Google Public DNS всегда медленнее?
Помимо времени проверки связи, вам также необходимо учитывать среднее время разрешения имени. Например, если у вашего интернет-провайдера время проверки связи составляет 20 мс, а среднее время разрешения имени — 500 мс, общее среднее время ответа составляет 520 мс. Если Google Public DNS имеет время проверки связи 300 мс, но разрешает многие имена за 1 мс, общее среднее время ответа составляет 301 мс. Чтобы сравнение было более точным, мы рекомендуем протестировать разрешения имен на большом наборе доменов.
Как Google Public DNS работает с геолокацией CDN?
Многие сайты, которые предоставляют загружаемые или потоковые мультимедиа, размещают свой контент в сторонних сетях распространения контента (CDN) на основе DNS, таких как Akamai. Когда преобразователь DNS запрашивает у авторитетного сервера имен IP-адрес CDN, сервер имен возвращает ближайший (по сетевому расстоянию) адрес к преобразователю, а не к пользователю. В некоторых случаях для распознавателей на основе интернет-провайдера, а также общедоступных распознавателей, таких как Google Public DNS, распознаватель может находиться не в непосредственной близости от пользователей. В таких случаях работа в Интернете может несколько замедлиться. В этом отношении Google Public DNS ничем не отличается от других провайдеров DNS.
Чтобы сократить расстояние между DNS-серверами и пользователями, Google Public DNS развернула свои серверы по всему миру. В частности, пользователи в Европе должны быть направлены на серверы CDN в Европе, пользователи в Азии должны быть направлены на серверы CDN в Азии, а пользователи в восточной, центральной и западной частях США должны быть направлены на серверы CDN в соответствующих регионах. Мы также опубликовали эту информацию, чтобы помочь CDN обеспечить хорошие результаты DNS для пользователей мультимедиа.
Кроме того, Google Public DNS использует техническое решение, называемое клиентской подсетью EDNS, как описано в RFC. Это позволяет преобразователям передавать часть IP-адреса клиента (первые 24/56 бит или меньше для IPv4/IPv6 соответственно) в качестве исходного IP-адреса в сообщении DNS, чтобы серверы имен могли возвращать оптимизированные результаты на основе местоположения пользователя. чем у преобразователя.
Конфиденциальность
Какую информацию регистрирует Google, когда я использую общедоступную службу DNS Google?
На странице конфиденциальности Google Public DNS приведен полный список информации, которую мы собираем. Google Public DNS соответствует основной политике конфиденциальности Google, доступной в нашем Центре конфиденциальности.
IP-адрес вашего клиента регистрируется только временно (удаляется в течение дня или двух), но информация о интернет-провайдерах и местоположениях на уровне города/агломерации хранится дольше, чтобы сделать наш сервис быстрее, лучше и безопаснее.< /p>
Хранится ли какая-либо собранная информация в моей учетной записи Google?
Сохраненные данные не связаны ни с одним аккаунтом Google.
Передает ли Google информацию, которую он собирает из службы Google Public DNS, кому-либо за пределами Google?
Сопоставляет или объединяет ли Google информацию из временных или постоянных журналов с какой-либо личной информацией, которую я предоставил Google для других служб?
Как указано на странице конфиденциальности, мы не объединяем и не сопоставляем данные журналов таким образом.
Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.
DNS-серверы помогают нам избежать запоминания таких длинных чисел в IP-адресах (и даже более сложных буквенно-цифровых чисел в системе IPV6), поскольку они автоматически переводят имена веб-сайтов, которые мы вводим в адресную строку браузера, в эти числа, чтобы серверы могли загружать правильные веб-страницы.
Введение в систему доменных имен
Чтобы понять роль DNS-сервера, важно знать о системе доменных имен. Система доменных имен — это, по сути, телефонная книга Интернета. Точно так же, как телефонная книга сопоставляет людей с номером телефона, DNS сопоставляет имя веб-сайта с их соответствующим IP-адресом.
Что такое DNS?
Иногда веб-сайты могут иметь несколько IP-адресов, соответствующих одному доменному имени. Например, на таких крупных сайтах, как Google, пользователи будут запрашивать сервер из отдаленных уголков мира. Сервер, к которому пытается обратиться компьютер из Сингапура, скорее всего, будет отличаться от того, к которому попытается подключиться другой компьютер, скажем, из Торонто, даже если имя сайта, введенное в браузере, будет таким же. Вот где на помощь приходит кэширование DNS.
Кэширование DNS
Кэширование DNS — это процесс хранения данных DNS в записях DNS ближе к запрашивающему клиенту, чтобы иметь возможность разрешить запрос DNS раньше. Это позволяет избежать проблем с дополнительными запросами дальше по цепочке, сокращает время загрузки веб-страницы и снижает потребление полосы пропускания.
Время, в течение которого записи DNS хранятся в кэше DNS, называется временем жизни или TTL. Этот период времени важен, поскольку он определяет, насколько «свежи» записи DNS и соответствуют ли они последним обновлениям IP-адресов.
Кэширование DNS может выполняться на уровне браузера или операционной системы (на уровне ОС).
Поскольку веб-браузеры обычно хранят записи DNS в течение определенного периода времени, обычно это первое место, которое проверяется, когда пользователь создает запись DNS. В браузере меньше действий, связанных с проверкой кеша DNS и отправкой DNS-запроса на IP-адрес.
После того как DNS-запрос покидает компьютер конечного пользователя, следующая остановка, на которой выполняется поиск соответствия, находится на уровне операционной системы. Процесс внутри операционной системы, называемый «резольвером-заглушкой», проверяет свой собственный кеш DNS, чтобы узнать, есть ли у него запись. В противном случае запрос отправляется за пределы локальной сети поставщику услуг Интернета (ISP).
Как работает DNS?
DNS отвечает за преобразование имени хоста, которое мы обычно называем именем веб-сайта или веб-страницы, в IP-адрес. Действие по вводу доменного имени называется DNS-запросом, а процесс нахождения соответствующего IP-адреса — DNS-разрешением.
Запросы DNS могут быть трех типов: рекурсивный запрос, итеративный запрос или нерекурсивный запрос.
- Рекурсивный запрос. Это запросы, на которые DNS-сервер должен ответить запрошенной записью ресурса. Если запись не может быть найдена, клиенту DNS должно быть показано сообщение об ошибке.
- Итеративный запрос. Это запросы, для которых DNS-клиент будет продолжать запрашивать ответ от нескольких DNS-серверов до тех пор, пока не будет найден лучший ответ или не произойдет ошибка или тайм-аут. Если DNS-сервер не может найти соответствие для запроса, он будет ссылаться на полномочный DNS-сервер для более низкого уровня пространства имен домена. Затем DNS-клиент запрашивает этот реферальный адрес, и этот процесс продолжается с дополнительными DNS-серверами.
- Нерекурсивный запрос — это запросы, которые разрешаются преобразователем DNS, когда запрошенный ресурс доступен либо из-за того, что сервер является авторитетным, либо из-за того, что ресурс уже сохранен в кеше.
Различные типы DNS-серверов
После ввода DNS-запроса он проходит через несколько разных серверов до разрешения без какого-либо взаимодействия с конечным пользователем.
Это сервер, специально разработанный для приема запросов от клиентских машин. Он отслеживает запись DNS и делает дополнительные запросы для удовлетворения запросов DNS от клиента. Количество запросов можно уменьшить с помощью кэширования DNS, когда запрошенные ресурсы возвращаются рекурсору на ранней стадии процесса поиска.
Этот сервер выполняет работу по преобразованию понятных человеку имен хостов в удобные для компьютера IP-адреса. Корневой сервер принимает запрос рекурсора и отправляет его на серверы имен TLD на следующем этапе, в зависимости от доменного имени, указанного в запросе.
На последнем шаге полномочный сервер имен DNS вернет IP-адрес обратно рекурсору DNS, который сможет передать его клиенту. Этот авторитетный сервер имен DNS находится в нижней части процесса поиска, который содержит записи DNS. Думайте об этом как о последней остановке или последнем авторитетном источнике правды в процессе.
Поиск DNS и сопоставитель DNS
Процесс, посредством которого DNS-сервер возвращает запись DNS, называется поиском DNS. Он включает в себя запрос имени хоста из веб-браузера в процесс поиска DNS на DNS-сервере и обратно. Преобразователь DNS — это сервер, который выполняет первый шаг в процессе поиска DNS и запускает последовательность шагов, заканчивающихся преобразованием URL-адреса в IP-адрес для загрузки веб-страниц.
Во-первых, введенный пользователем запрос имени хоста передается из веб-браузера в Интернет и принимается рекурсивным преобразователем DNS. Затем рекурсивный DNS-сервер запрашивает корневой DNS-сервер, который отвечает адресом TLD-серверу, отвечающему за хранение доменов.
Эти шаги составляют стандартный процесс поиска DNS, но их можно сократить с помощью кэширования DNS. Кэширование DNS позволяет хранить информацию поиска DNS локально в браузере, операционной системе или удаленной инфраструктуре DNS, что позволяет пропустить некоторые шаги для более быстрой загрузки.
На этой странице объясняется, как настроить управляемую зону Cloud DNS и запись ресурса для вашего доменного имени. В нем рассматривается простой пример создания управляемой зоны, а затем настройки записей адреса ( A ) и канонического имени ( CNAME ) для домена.
Чтобы получить пошаговые инструкции по выполнению этой задачи непосредственно в Cloud Console, нажмите Руководство:
В следующих разделах описана та же процедура, что и при нажатии кнопки "Помощь".
Для получения дополнительной информации см. следующие ресурсы:
- Концепции Cloud DNS см. в обзоре Cloud DNS.
- Терминологию, связанную с Cloud DNS, см. в разделе Ключевые термины.
- Информацию о конфигурации сети Virtual Private Cloud (VPC) см. в обзоре VPC.
- Инструкции по настройке и информацию об API см. в разделе Дальнейшие действия.
Требования
В этом кратком руководстве предполагается, что у вас есть следующее:
- Доменное имя через регистратора доменных имен. Вы можете зарегистрировать доменное имя через Google Domains, Cloud Domains или другого регистратора доменов по вашему выбору. Облачные домены позволяют управлять доменами через API, в то время как Google Domains не разрешает доступ через API.
- Экземпляр виртуальной машины (ВМ) Windows Server или экземпляр ВМ Linux.
- IP-адрес, на который указывает запись A вашей зоны. Действительным IP-адресом может быть сервер, который у вас уже запущен с IP-адресом, на который вы можете указать. Например, с помощью этого руководства вы можете запустить веб-сервер на виртуальной машине Compute Engine.
Прежде чем начать
-
Войдите в свою учетную запись Google Cloud. Если вы новичок в Google Cloud, создайте учетную запись, чтобы оценить, как наши продукты работают в реальных сценариях. Новые клиенты также получают бесплатные кредиты в размере 300 долларов США для запуска, тестирования и развертывания рабочих нагрузок.
В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.
Убедитесь, что для вашего облачного проекта включено выставление счетов. Узнайте, как проверить, включена ли оплата для проекта.
В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.
Убедитесь, что для вашего облачного проекта включено выставление счетов. Узнайте, как проверить, включена ли оплата для проекта.
Создать управляемую общедоступную зону
В Google Cloud Console перейдите на страницу создания зоны DNS.
В качестве типа зоны выберите «Общедоступная».
В качестве названия зоны введите my-new-zone .
Для DNSSEC убедитесь, что выбран параметр «Выкл.».
Нажмите "Создать".
Отображается страница сведений о зоне. Для вас созданы записи NS и SOA по умолчанию.
Чтобы изменить запись, на странице сведений о зоне в конце строки записи, которую вы хотите изменить, нажмите редактироватьИзменить.
Создайте запись, чтобы указать домену внешний IP-адрес
В Cloud Console перейдите на страницу Cloud DNS.
Нажмите на зону, в которую вы хотите добавить набор записей.
Нажмите Добавить набор записей.
В качестве типа записи ресурса, чтобы создать запись A, выберите A . Чтобы создать запись AAAA, выберите AAAA .
В поле "Адрес IPv4" или "Адрес IPv6" введите IP-адрес, который вы хотите использовать с этим доменом.
Нажмите "Создать".
Создайте запись CNAME для субдомена www
В Cloud Console перейдите на страницу Cloud DNS.
Нажмите на зону, в которую вы хотите добавить набор записей.
Нажмите Добавить набор записей.
В качестве DNS-имени введите www .
В качестве типа записи ресурса выберите CNAME .
Нажмите "Создать".
Обновление записи занимает некоторое время для распространения в зависимости от значений срока жизни (TTL) записей. Вы можете убедиться, что записи DNS работают, посетив доменное имя и убедившись, что домен разрешается в ваш IP-адрес.
Обновите серверы доменных имен
Наконец, вы должны обновить серверы имен своего домена, чтобы использовать Cloud DNS для публикации новых записей в Интернете.
Даже если ваше доменное имя зарегистрировано в Google Domains, вам все равно необходимо обновить серверы имен. Хотя они выглядят одинаково, серверы имен, используемые Google Domains, отличаются от серверов имен, используемых Cloud DNS для вашей управляемой зоны.
Вы успешно использовали Cloud DNS для настройки записей DNS.
Очистить
Чтобы избежать взимания платы с вашей учетной записи Google Cloud за ресурсы, используемые на этой странице, выполните следующие действия.
В Cloud Console перейдите на страницу зон Cloud DNS.
Нажмите на название зоны ( my-new-zone ), чтобы перейти на страницу сведений о зоне.
Выберите созданные вами записи A и CNAME.
Нажмите Удалить наборы записей.
Перейдите на страницу зон Cloud DNS.
Чтобы удалить зону, установите флажок my-new-zone, а затем в конце строки нажмите удалитьУдалить зону.
Что дальше
- Чтобы добавить, удалить или обновить записи, см. раздел Управление записями.
- Информацию о создании, обновлении, отображении и удалении управляемых зон см. в разделе Управление зонами.
- Чтобы найти решения распространенных проблем, с которыми вы можете столкнуться при использовании Cloud DNS, см. раздел Устранение неполадок.
- Чтобы получить ссылку на API, см. API REST Cloud DNS.
- Чтобы определить стоимость, см. раздел Цены на Cloud DNS.
Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.
Читайте также: