Как мой маршрутизатор разрешает URL-адрес, такой как http://router.asus.com/, на свой IP-адрес?


38

Обычно я подключаюсь к маршрутизатору по его IP-адресу 192.168.1.1. Тем не менее, я также могу подключиться к нему по URL router.asus.com. Мой компьютер не подключен к Интернету. Как это работает?


6
Кстати, преобразование публичного доменного имени в частный IP кажется плохой идеей.
Дмитрий Григорьев

@DmitryGrigoryev router.asus.comперенаправляет из коробки 192.168.1.1и был включен Asus. Это не разрешает мой маршрутизатор IP из-за пределов моей локальной сети.
Райан R

Ответы:


63

У вашего роутера есть собственный DNS-сервер. Когда вы используете его в Интернете, он будет перенаправлять на DNS вашего интернет-провайдера, но он также добавляет свою собственную запись в, router.asus.comчтобы указать на себя.

Поскольку вы, вероятно, используете DHCP, он автоматически назначит вашим компьютерам использование собственного DNS. Вы можете проверить это, перейдя на DNS-сервер, назначенный вручную (например, 8.8.8.8), очистить DNS и затем попробовать тот же URL-адрес.

Обратите внимание, что при посещении router.asus.comмоего соединения я перехожу на сайт, размещенный на Amazon, который пытается найти совместимый маршрутизатор в моей сети.

Снимок экрана сайта на router.asus.com

Похоже, что он использует следующий JQuery, чтобы попытаться получить конкретный файл JSON из имени машины в сети:

$.ajax({
            url: "http://" + target.domainName + "/findasus.json", 
            dataType: "jsonp",
            timeout: 20000,
            global: true,
            complete: function(jqXHR, textStatus){
                switch(jqXHR.status){
                    case 0:
                        target.status = 2;
                        break;
                    default:
                        target.status = 1;
                        iAmAlive({
                            modelName: target.domainName.replace("findasus.local", "ASUS"),
                            ssid: "",
                            ipAddr: target.domainName
                        });
                }

                sessionComplete();
            }
        });

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


1
Интересный. Можете ли вы расширить записку, которую вы сделали. Как сайт, размещенный на Amazon, имеет доступ к вашей локальной сети за брандмауэром для сканирования маршрутизатора? (Это для тех, у кого нет совместимого маршрутизатора Asus или я изменил свой DNS на своем маршрутизаторе Asus, я полагаю)
Ryan R

@RyanR Добавлено :)
Jonno

13
Сервер на самом деле не сканирует вашу сеть. Он обслуживает веб-страницу с Javascript. Ваш браузер запускает JavaScript. Так что ваш браузер выполняет "сканирование". Они не имеют специального доступа к вашей сети, это ваш браузер, который имеет специальный доступ.
Aner

6
Установка собственного DNS не всегда помогает обойти DNS-сервер маршрутизатора. У меня есть хотя бы один маршрутизатор, который перехватывает исходящие DNS-запросы на другие DNS-серверы и отвечает на них сам.
interfect

.localэто то, что используется для Bonjour / Zeroconf.
Турбьёрн Равн Андерсен

7

У меня лично нет маршрутизатора Asus, и ответ Джонно очень хороший, но есть еще один возможный способ сделать это (даже если он не используется вашим конкретным).

Поскольку эта страница не обслуживается по протоколу HTTPS, маршрутизатор может полностью перехватить HTTP-запрос и ответить на него, не обращаясь к нему на внешнем сервере. Известно, что маршрутизаторы Asus перенаправляют страницы при некоторых обстоятельствах. Обратите внимание, что если перенаправление происходит даже без подключения к Интернету (т. Е. Без внешнего DNS), оно должно быть вызвано DNS вашего маршрутизатора; нет никакой причины, что оба не могли бы продолжаться, все же.

Мой домашний маршрутизатор Netgear, например, может блокировать домены и ключевые слова (обслуживая страницу «заблокирован брандмауэром Netgear»), даже если я не использую его DNS. Я убедился, что он не перехватывает запросы DNS; имя разрешается правильно, но переход на страницу в веб-браузере приводит к «заблокированной» странице.

Вы можете проверить эту теорию, установив на своих DNS-серверах, скажем, Google ( 8.8.8.8) и пропингуя перенаправленное доменное имя.


Очень хороший момент. Означает ли это, что вы не можете блокировать домены HTTPS с помощью брандмауэра Netgear, или у него есть возможность блокировать использование DNS, когда вы используете его, и запрос перехватывается как запасной вариант?
Джонно

2
@Jonno Проблема в том, что вы не можете блокировать HTTPS-домены как таковые. Вы можете заблокировать IP или диапазон IP-адресов и заставить DNS-сервер сообщать вам, что IP-адрес отличается (и, следовательно, «блокировать» его, так как он никогда не найдет правильное назначение), но маршрутизатор не может прочитать HTTPS-пакеты - ваш единственный вариант: 1. серверировать неподходящий сертификат, выдавая страницу ошибки «недоверенное соединение» для каждого веб-сайта, или 2. блокировать порт 443 (https) вместе. Либо это дерьмовые варианты и есть свои проблемы.
h2ooooooo

1
@ h2ooooooo Я считаю более правильным сказать, что что-то / кто-то в привилегированном положении в вашей сети не может заблокировать страницу HTTPS. В то время как без доверенного ЦС MITM не может отличить информацию о трафике HTTPS, более детальную, чем адрес сервера / IP-адреса, этому запросу, скорее всего, будет предшествовать простой текстовый DNS-запрос, в котором указан домен. Измененный или отрицательный ответ DNS может определенно предотвратить трафик к определенному домену. Если домен действительно нарушает правила , создайте для него пустую доверенную зону в DNS.
августа

@tjd Вы можете абсолютно просто создать ложный ответ DNS, если вы заблокировали любые не авторизованные DNS-серверы с хост-компьютеров (или даже лучше; не позволяйте людям изменять их на компьютерах компании).
h2ooooooo

1

Просто хотел добавить к Йонносу ответ, что

admin@asus-rt-n18u:/tmp/home/root# grep asus.com /etc/*
/etc/hosts:192.168.201.5 router.asus.com

Вот как мой (и, скорее всего) ваш маршрутизатор делает это. Ваш маршрутизатор, вероятно, работает asuswrt с dnsmasq. Вы можете иметь доступ к оболочке (по крайней мере, через telnet) и искать сами.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.