IP address used by nslookup and ping is different
I have a web server hosted in the network. It has a domain name registered. However, I also host a DNS server for the LAN. So, when someone wants to access the web server, it would check the DNS server and use the internal address 192.168.xx The web server's public address is 203.xxx
When my computer is working fine, I would ping or try nslookup www.mydomain.com. Both points to 192.168.xx which is internal address. Sometimes, I or someone could not access www.mydomain.com. When I check, nslookup returns the internal address. But when I ping, it would try to connect using the public address like this.
Pinging www.mydomain.com [203.x.x.x] with 32 bytes of data:
Если это произойдет, ремонт соединения в основном поможет. Иногда, рабочая станция (Win XP) должна быть перезапущена. В настройках DNS рабочих станций первичный DNS указывает на DNS-сервер, а вторичный DNS указывает на DNS-сервер ISP.
Что я хочу знать, является причиной этой проблемы и предотвращения от нее? Или лучше исправить, чем мои нынешние. Спасибо
2 ответа
Вы настроили клиент для поиска в своем внутреннем DNS для его основного, а внешний DNS-сервер в качестве дополнительного? У вас есть состояние гонки; если внутренний DNS оказывается слишком медленным для ответа, тогда клиент получает непригодный ответ от общедоступного DNS-сервера. ping
использует кэшированный ответ от поиска на внешний DNS-сервер, в то время как nslookup
отправляет новый запрос, который получает действительный ответ от вашего внутреннего DNS-сервера.
Несогласованность представлений DNS между вашими первичным и вторичным серверами неизбежно вызовет подобные проблемы. Вместо этого либо установите второй внутренний DNS-сервер и используйте его в качестве вторичного, либо настройте клиент вообще без дополнительного DNS-сервера.
Эта проблема вызвана тем, что вы используете частные адреса RFC1918 внутри вашей внутренней сети. В результате вы должны получить доступ к серверу, используя один адрес на одной стороне сети и другой адрес на другой.
Краткосрочным решением этой проблемы является внедрение DNS с разделением горизонта. Это предоставляет вам согласованные записи DNS внутри сети и без нее.
Долгосрочным решением этой проблемы является внедрение IPv6, в котором у вас будет один и тот же адрес для сервера, независимо от того, являетесь ли вы внутренним или внешним.