Различное имя хоста для результатов разрешения ip (nslookup)
Всем добрый день.
Допустим, у меня есть следующие настройки:
- Windows 7 в качестве хоста, DNS 192.168.0.100, 8.8.8.8, 8.8.4.4
- Ubuntu 16.04 в качестве гостевой машины на VirtualBox, DNS 192.168.0.100 (хост?)
Ubuntu подключен к сети Windows через NAT VirtualBox.
Когда я выступаю nslookup google.com
, результаты совершенно разные.
В Windows я вижу 6 x 172.xxx.xxx.xxx, а в Ubuntu вижу 6 x 62.xxx.xxx.xxx
Так что я думаю, даже если я разрешу google.com
локально на моем "маршрутизаторе" машины в моей сети, чтобы заблокировать его от пользователей, если у пользователя есть собственный DNS-сервер на его машине, они разрешат другие IP-адреса? Есть ли какое-то решение для этого, кроме как заставить их использовать мой DNS-сервер?
2 ответа
Многие провайдеры DNS используют anycast для ответа на "лучший" результат в зависимости от того, откуда в Интернете поступает запрос.
Таким образом, выполнение одного и того же запроса на нескольких DNS-серверах, расположенных в разных частях света, обычно приводит к разным результатам. Это нормально и помогает, помимо прочего, перенаправлять трафик на ближайший кеширующий сервер.
Я полагаю, что Google использует циклический подход для балансировки нагрузки. Таким образом, по разным DNS-запросам вы получите разные результаты для вашего запроса на google.com. С кэшированием ответа на локальной машине вы получите один и тот же IP-адрес при многократной попытке.
Если вы не хотите, чтобы пользователи имели доступ к хосту, вы должны заблокировать его на уровне IP. Даже если вы заставите их использовать ваш DNS по правилу брандмауэра, они все равно смогут ввести эти данные в свой локальный файл /etc/hosts, чтобы напрямую получить IP-адрес для google.com и подключиться к нему.