Wie löst mein Router eine URL wie http://router.asus.com/ in seine IP-Adresse auf?

38

Normalerweise verbinde ich mich mit meinem Router über die IP-Adresse von 192.168.1.1. Ich kann mich jedoch auch über die URL damit verbinden router.asus.com. Mein Computer hat keine Verbindung zum Internet. Wie funktioniert das?

Ryan R
quelle
6
Das Auflösen eines öffentlichen Domainnamens in eine private IP scheint eine schlechte Idee zu sein, übrigens.
Dmitry Grigoryev
@DmitryGrigoryev router.asus.comleitet direkt zu 192.168.1.1Asus weiter und wurde von diesem mit aufgenommen. Die IP-Adresse meines Routers wird nicht von außerhalb meines lokalen Netzwerks aufgelöst.
Ryan R

Antworten:

63

Ihr Router hat einen eigenen DNS-Server. Wenn Sie es online verwenden, wird es an den DNS Ihres Internetdienstanbieters weitergeleitet, es wird jedoch auch ein eigener Eintrag hinzugefügt router.asus.com, um auf sich selbst zu verweisen.

Da Sie wahrscheinlich DHCP verwenden, weist es Ihren Computern automatisch die Verwendung eines eigenen DNS zu. Sie können dies testen, indem Sie zu einem manuell zugewiesenen DNS-Server wechseln (z. B. 8.8.8.8), Ihren DNS leeren und dann dieselbe URL versuchen.

Beachten Sie, dass der Besuch router.asus.commit meiner Verbindung mich zu einer von Amazon gehosteten Site führt, die offenbar versucht, in meinem Netzwerk nach einem kompatiblen Router zu suchen.

Screenshot der Website unter router.asus.com

Anscheinend wird die folgende JQuery verwendet, um zu versuchen, eine bestimmte JSON-Datei von einem Computernamen im Netzwerk abzurufen:

$.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();
            }
        });

Die Namen, auf die zugegriffen werden soll, sind im Screenshot zu sehen. Im wahrsten Sinne des Wortes nur durchschleift und wenn es einen Treffer bekommt, wird es zu dem umleiten, was es gefunden hat.

Jonno
quelle
1
Interessant. Können Sie die Notiz, die Sie gemacht haben, erweitern? Wie kann die auf Amazon gehostete Site auf Ihr lokales Netzwerk hinter Ihrer Firewall zugreifen, um nach einem Router zu suchen? (Dies ist für diejenigen, die keinen kompatiblen Asus-Router haben oder deren DNS auf ihrem Asus-Router geändert haben, nehme ich an)
Ryan R
@RyanR Added :)
Jonno
13
Der Server scannt Ihr Netzwerk nicht. Es dient eine Webseite mit Javascript. Ihr Browser führt das Javascript aus. Es ist also Ihr Browser, der das "Scannen" übernimmt. Sie haben keinen speziellen Zugriff auf Ihr Netzwerk, sondern nur auf Ihren Browser.
Aner
6
Das Festlegen Ihres eigenen DNS funktioniert nicht immer, um den DNS-Server des Routers zu umgehen. Ich besitze mindestens einen Router, der ausgehende DNS-Anfragen an andere DNS-Server abfängt und diese selbst beantwortet.
Interfect
.localwird für Bonjour / Zeroconf verwendet.
Thorbjørn Ravn Andersen
7

Ich persönlich besitze keinen Asus-Router, und Jonnos Antwort ist sehr gut, aber es gibt eine andere Möglichkeit für Router, dies zu erreichen (auch wenn es nicht von Ihrem speziellen verwendet wird).

Da diese Seite nicht über HTTPS bereitgestellt wird, kann der Router die HTTP-Anforderung einfach abfangen und beantworten, ohne einen externen Server anzusprechen. Asus - Router sind dafür bekannt , Seiten unter Umständen zu umleiten. Beachten Sie, dass die Umleitung auch ohne Internetverbindung (dh ohne externen DNS) durch den DNS Ihres Routers verursacht werden muss. Es gibt jedoch keinen Grund, warum beides nicht möglich sein könnte.

Mein Netgear-Heimrouter kann beispielsweise Domänen und Schlüsselwörter blockieren (auf der Seite "Von Netgear-Firewall blockiert"), auch wenn ich nicht den DNS verwende. Ich habe dafür gesorgt, dass die DNS-Anfragen nicht abgefangen werden. Der Name wird korrekt aufgelöst. Wenn Sie jedoch in einem Webbrowser zur Seite wechseln, wird die Seite "gesperrt".

Sie können diese Theorie testen, indem Sie auf Ihren DNS-Servern beispielsweise Googles ( 8.8.8.8) festlegen und den umgeleiteten Domainnamen pingen.

Ben N
quelle
Sehr guter Punkt. Bedeutet dies, dass Sie HTTPS-Domänen nicht mit der Netgear-Firewall blockieren können, oder kann sie die Verwendung von DNS blockieren, wenn Sie sie verwenden und die Anforderung als Fallback abgefangen wird?
Jonno
2
@Jonno Das Problem ist, dass Sie HTTPS-Domänen nicht per se blockieren können. Sie können eine IP-Adresse oder einen Bereich von IP-Adressen blockieren und vom DNS-Server mitteilen lassen, dass sich die IP-Adresse unterscheidet (und sie daher "blockieren", da sie niemals das richtige Ziel findet), aber da der Router die IP-Adresse nicht lesen kann HTTPS-Pakete Ihre einzige Option wäre, 1. ein falsches Zertifikat zu servieren, das für jede Website eine Fehlerseite "Verbindung nicht vertrauenswürdig" ausgibt, oder 2. Port 443 (https) insgesamt zu blockieren. Entweder sind beschissene Optionen und haben ihre eigenen Probleme.
h2ooooooo
1
@ h2ooooooo Ich glaube, es ist genauer zu sagen, dass etwas / jemand in einer privilegierten Position in Ihrem Netzwerk eine HTTPS-Seite nicht blockieren kann. Während ohne eine CA vertraut, kann ein MITM nicht von den HTTPS - Verkehrsinformationen noch genauer als auf dem Server / IP - Adresse unterscheidet, wird die Anforderung wahrscheinlich durch Klartext DNS - Anfrage voraus zu sein, hat die Domäne angeben. Eine geänderte oder negative DNS-Antwort kann den Datenverkehr zu einer bestimmten Domain definitiv verhindern. Wenn eine Domain wirklich anstößig ist, erstellen Sie eine leere autorisierende Zone in Ihrem DNS.
Dienstag,
@tjd Sie können ganz einfach eine falsche DNS-Antwort erstellen, solange Sie nicht autorisierte DNS-Server auf den Host-Computern blockiert haben (oder noch besser: Lassen Sie nicht zu, dass andere Benutzer sie auf den Computern des Unternehmens ändern).
h2ooooooo
1

Ich wollte nur zu Jonnos Antwort hinzufügen

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

So macht mein (und höchstwahrscheinlich) Router das. Ihr Router läuft wahrscheinlich asuswrt mit dnsmasq. Sie können Shell-Zugriff haben (zumindest über Telnet) und selbst nachsehen.

ElDiabolo
quelle