Я пытаюсь настроить свой Fios G1100 на принудительный DNS-запрос на мой внутренний DNS-сервер 192.168.1.131
. На этом устройстве работает Pi-hole, который настроен на отправку DNS-запросов на 1.1.1.3
и 1.0.0.3
. Это отлично сработало!
Но теперь я пытаюсь ограничить устройства в сети от обхода DNS-сервера DHCP путем ручной настройки DNS. Первоначально я наткнулся на эту статью, которая дает способ избежать этого обхода: Как запретить пользователям обход OpenDNS с помощью правил брандмауэра.
Итак, я настроил свой Fios G1100 со следующим правилом контроля доступа:
Насколько я понимаю, это правило позволит только 192.168.1.0
, 192.168.1.1
, 192.168.1.131
сделать DNS-запрос вне LAN.
Я перезагрузил G1100 и убедился, что запрошенный DNS все еще работает и маршрутизация через 192.168.1.131
. Они есть.
Затем на моем Mac я вошел в System Preferences -> Network -> Wi-Fi:Advanced -> DNS
и добавил 8.8.8.8
DNS-сервер. Конечно, DNS заблокирован на устройстве.
Однако, когда я делаю то же самое на своем Pixel 2 XL, запросы DNS разрешаются и 192.168.1.131
обойден. У меня отключены мобильные данные, а конфигурация Wi-Fi следующая:
Proxy: None
IP settings: Static
Privacy: Use device MAC
IP address: 192.168.1.120
Gateway: 192.168.1.1
Network prefix length: 24
DNS 1: 1.1.1.1
Что позволяет Android обходить правило контроля доступа?
Как оказалось, в Android есть возможность DNS через TLS, иначе называемая Частный DNS. Настройка частного DNS будет использовать порт 853, а не порт 53.
DNS через TLS имеет свой собственный порт, порт 853. DNS через HTTPS использует порт 443, который является стандартным портом для трафика HTTPS.
Похоже, что порт 853 посвящен службам DNS, поэтому блокировка этого порта (так же, как и порт 53) не должна вызывать никаких проблем. Однако DNS через HTTPS использует порт 443, который не предназначен для служб DNS и поэтому не должен блокироваться.