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

IP-адрес, используемый nslookup и ping, отличается

У меня есть веб-сервер, размещенный в сети. У него зарегистрировано доменное имя. Однако я также размещаю DNS-сервер для локальной сети. Итак, когда кто-то хочет получить доступ к веб-серверу, он проверит DNS-сервер и использует внутренний адрес 192.168.x.x. Публичный адрес веб-сервера - 203.x.x.x.

Когда мой компьютер работает нормально, я буду пинговать или пробовать nslookup www.mydomain.com. Оба указывают на 192.168.x.x, который является внутренним адресом. Иногда я или кто-то не мог получить доступ к www.mydomain.com. Когда я проверяю, nslookup возвращает внутренний адрес. Но когда я пингую, он пытается подключиться, используя публичный адрес, подобный этому.

Pinging www.mydomain.com [203.x.x.x] with 32 bytes of data:

Если это произойдет, в основном поможет восстановление соединения. Иногда необходимо перезапустить рабочую станцию ​​(Win XP). В настройках DNS рабочих станций первичный DNS указывает на DNS-сервер, а вторичный DNS указывает на DNS-сервер поставщика услуг Интернета.

Что я хочу знать, это причина этой проблемы и способы ее предотвращения? Или лучшее исправление, чем мои нынешние. Спасибо

Вы настроили клиент для поиска по вашему внутреннему DNS для его первичного и внешнего DNS-сервера в качестве вторичного? У вас состояние гонки; если внутренний DNS слишком медленно реагирует, то клиент получает непригодный для использования ответ от общедоступного DNS-сервера. ping использует кэшированный ответ от поиска на внешнем DNS-сервере, а nslookup отправляет новый запрос, который получает действительный ответ от вашего внутреннего DNS-сервера.

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

Эта проблема вызвана тем, что вы используете частные адреса RFC1918 внутри вашей внутренней сети. В результате вы должны получить доступ к серверу, используя один адрес, находясь на одной стороне сети, и другой адрес - на другой.

Кратковременное решение этой проблемы - внедрить DNS с расщеплением горизонта. Это обеспечивает согласованные записи DNS в сети и за ее пределами.

Долгосрочным решением этой проблемы является внедрение IPv6, в котором у вас будет один и тот же адрес для сервера, независимо от того, внутренний вы или внешний.