При попытке получить доступ к внутренним серверам через имена хостов с помощью NSLookup (как Windows, так и Linux / Arch / Debian) я получаю правильный адрес DNS-сервера, полное доменное имя и IP-адрес назначения.
Когда я пытаюсь получить доступ к тому же серверу с помощью браузера или PING, я попадаю на наш общедоступный универсальный IP-адрес. Он должен поразить наши внутренние серверы. Почему он выходит за пределы нашей сети?
Разница между nslookup и вашим браузером / тестом ping заключается в том, что nslookup принудительно выполняет поиск DNS, тогда как другие тесты будут использовать обычный порядок поиска разрешения имен для разрешения имен.
Это включает просмотр кеша DNS, а также статических записей в файле hosts. Возможно, на ваших компьютерах есть статические записи для вашего веб-сервера в файле hosts (Windows: C: \ windows \ system32 \ drivers \ etc \ hosts, Linux: / etc / hosts /). Если в этом файле есть запись, будет использоваться эта запись, и поиск в DNS выполняться не будет.
Как предположил Zoredache, это также может быть прокси-сервер, поскольку прокси-сервер будет выполнять поиск DNS от вашего имени (что, скорее всего, разрешит общедоступный адрес). При этом ICMP обычно не проксируется, особенно в Windows, но, тем не менее, это определенно стоит изучить.
Если вы хотите устранить неполадки - я предлагаю проверить файл хостов, проверить настройки прокси-сервера, и, если вы все еще рисуете пустой, очистите кеш DNS (Windows: ipconfig / flushdns Linux: /etc/rc.d/init .d / nscd restart), а затем запустите такую программу, как wirehark или tcpdump, чтобы определить, действительно ли ваш компьютер отправляет DNS-запрос, когда вы выполняете тест ping / браузера.