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

Проблема с разрешением DNS

Недавно я переместил веб-сайт на новый сервер, изменив его запись A на IP-адрес нового сервера.

В течение четырех часов все машины в нашей сети разрешались правильно, в течение 24 часов каждый сервер имен, который мог найти dig / cachecheck.opendns.com / и т.д., обслуживал правильный IP.

Однако клиентская машина кажется единственной машиной в мире, которая все еще разрешает использование старого IP.

Прошло 72 часа, он очистил свой DNS, и он не может изменить свой DNS-преобразователь, так как он сказал, что это вызывает другие проблемы.

В настоящее время я создал конфигурацию, которая перезаписывает IP как URL-адрес, а php header директива, которая перенаправляет старый сайт на новый через новый IP (и я держу пальцы скрещенными, это не вызывает цикла перенаправления)

Как, черт возьми, каждый сервер имен, который я могу найти, дает правильный IP-адрес для этого веб-сайта, в то время как машины клиента все еще переходят на старый?

У меня также есть:

nslookup [the-domain] [all-three.nameservers.com] но безрезультатно ; все они показывают правильный IP.

Могу ли я поставить на старый сервер какую-нибудь директиву, которая гласит: «Извините, приятель, неправильный IP-адрес»? Или что еще я могу сделать, если мы не можем повторить это ---?

Ответы DNS могут кэшироваться на время TTL. Каждый DNS-сервер и кэширующий клиент должны забыть все о вашем старом IP-адресе по прошествии нескольких секунд после того, как вы изменили запись A на последнем полномочном сервере.

Если TTL вашей старой записи еще не прошел, клиенты все равно могут видеть старый IP. И это с большей вероятностью произойдет с вашими клиентами, поскольку они часто используют вашу запись DNS и кэшируют ее.

Если ваш старый TTL уже прошел, значит, между вами и вашим клиентом что-то не так (это не обязательно на стороне клиента). К сожалению, нет никаких гарантированных способов исправить это с вашей стороны (за исключением использования необработанного IP-адреса или нового DNS-имени).

Я бы проверил это в следующей последовательности:

  • Проверьте список авторитетных серверов для вашего домена (введите NS для вашей зоны)
  • Убедитесь, что каждый полномочный сервер действительно возвращает новый адрес
  • Убедитесь, что TTL не изменился, или узнайте старый TTL (т.е. из резервной копии старой зоны).

Если все вышеперечисленное показывает, что ваши записи везде свежие и TTL прошел с момента последнего изменения, значит, ваша сторона в порядке.

  • Попросите вашего клиента разрешить ваше имя с dig или другой инструмент, который сообщает TTL записи (не уверен, можно ли это сделать с помощью nslookup) и проверяет, соответствует ли этот TTL. TTL, о котором сообщает cacher, (по крайней мере, должен быть) уменьшен за время, прошедшее с момента последнего обновления записи кеша, поэтому вы увидите, что он уменьшается между несколькими запросами. Если это не так - есть ошибка или неверно сконфигурированный DNS.

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

Попросите их проверить nslookup на их конце и убедитесь, что он разрешает СТАРЫЙ IP.

Тогда пусть они сделают то же самое nslookup тест, но с:

  1. nslookup
  2. server 8.8.8.8 (это временно изменит их DNS-преобразователь для тестирования во время выполнения команды)
  3. www.domain.com

В этот момент он ДОЛЖЕН отображать правильный IP-адрес. Если это все еще не так ... проблема на вашей стороне. Если он действительно показывает правильный IP-адрес, значит проблема на стороне вашего клиента, и вы можете указать им на их DNS-сервер и посмотреть, возможно, они настроили ручные записи для веб-сайта на своем DNS-сервере или все еще кэшируют старый IP-адрес.

Конечно, в каталоге нет данных о вашем домене. хозяева файл на клиентских машинах есть?

Некоторое время назад я застрял с кешем DNS, не соблюдающим TTL - если ваш клиент использует некоторые из них, может потребоваться их перезапуск.

Надеюсь, это поможет.

Вместо перенаправления напрямую из домена на IP-адрес вы можете перенаправить через новый поддомен. Это заставит DNS-сервер клиента разрешить этот поддомен. Размещая DNS для этого поддомена на контролируемом вами сервере, вы фактически можете найти IP-адрес DNS-сервера клиента.

На этом этапе вы можете отправлять DNS-запросы на DNS-сервер клиента, чтобы узнать, сколько осталось TTL для кэшированной записи.

Этот подход работает с некоторыми DNS-серверами, но не работает с другими. Вы узнаете, работает ли это, только после того, как попробуете.