Настройка DNS TTL для внешнего адреса
Начнем с того, что я не знаю, Джек о DNS-серверах. Я застрял с решением проблемы с DNS-сервером, потому что обнаружил проблему с одной из наших систем и решил, что она была вызвана разрешением DNS.
Мы используем внешний веб-сервис для некоторых важных операций. Наше программное обеспечение находится в постоянной связи с внешней службой. Внешний провайдер на самом деле имеет два хоста (каждый со своим IP-адресом), которые предоставляют эту услугу, и изменяет записи DNS таким образом, чтобы одно имя (назовите его critservice.example.com) всегда разрешало текущий активный хост.
Наше программное обеспечение периодически проверяет соединение с внешней системой. Пока имя соответствует правильному активному хосту, все хорошо. Однако провайдер иногда меняет активный хост (и соответствующую запись DNS). Наша система сохраняет старый IP-адрес для имени хоста в кэше, пока не истечет TTL. До истечения срока действия и получения правильного IP-адреса наша система сообщает об ошибке связи и не может быть использована. Как только IP-адрес перехватывает, наша система автоматически переподключается и возвращается к работе. Время, которое он проводит в автономном режиме, может быть любым до полного периода TTL - наш DNS-сервер использует 3600 секунд в качестве TTL по умолчанию.
Служба не критична, как в жизни и смерти, но критична в том смысле, что она не в состоянии уведомить людей, которые могут понадобиться, чтобы как можно быстрее справиться с ситуацией жизни и смерти. Учитывая это, мы действительно хотели бы сократить время, которое система тратит на ожидание DNS TTL.
DNS-сервер от интернет-провайдера имеет очень короткий TTL для critservice.example.com, и интернет-провайдер рекомендует либо использовать свой DNS напрямую, либо использовать очень короткий TTL на нашем внутреннем DNS-сервере.
Поскольку наш DNS-сервер также является сервером домена Active Directory, я не думаю, что изменение TTL для всего DNS-сервера является хорошей идеей.
Лучшая идея для меня - установить TTL только для critservice.example.com.
Как мне создать запись DNS для critservice.example.com на нашем Windows 2008 Server, которая бы ограничивала время кэширования до 1 минуты, но позволяла нашему DNS-серверу выбирать правильный IP-адрес с DNS-сервера ISP? Насколько я могу судить, я могу установить TTL, только если добавлю запись, которая сопоставляет имя с IP-адресом - и я не могу этого сделать, потому что IP-адрес меняется.
В качестве альтернативы, могу ли я что-то сделать с DNS-клиентом на нашей машине, который использует critservice.example.com, чтобы он обошел наш DNS-сервер, но только для critserservice.example.com?
Дополнительная информация: nslookup -qa= critservice.example.com local.dns.server возвращает TTL 3600 секунд. nslookup -qa= critservice.example.com isp.dns.com возвращает TTL за 15 секунд.
1 ответ
Я бы просто позволил вашему DNS-серверу делать то, для чего предназначен DNS. Не пытайтесь настроить домен на вашем DNS-сервере. Ваш DNS-сервер будет кэшировать записи DNS для TTL, указанного поставщиком. В худшем случае у вас будет устаревшая запись для TTL, указанного провайдером.
Если вы настраиваете запись в DNS, установите для TTL значение, не превышающее указанного поставщика. Вам все еще понадобится система для проверки DNS провайдера и обновления вашего DNS. Это увеличит сложность вашей настройки и повысит риск сбоя. Вы также будете генерировать как минимум столько трафика DNS, сколько указано выше.
Можно определить TTL для каждой записи, хотя у меня нет такого опыта в активной директории. Ваш поставщик, вероятно, делает это на своем сервере.