ルータは http://router.asus.com/ のような URL をどのようにして IP アドレスに解決するのでしょうか?

ルータは http://router.asus.com/ のような URL をどのようにして IP アドレスに解決するのでしょうか?

通常、私は の IP アドレスを使用してルーターに接続します192.168.1.1。ただし、URL で接続することもできますrouter.asus.com。私のコンピューターはインターネットに接続されていません。これはどのように機能するのでしょうか?

答え1

ルーターには独自の DNS サーバーがあります。オンラインで使用する場合、ルーターは ISP の DNS に転送しますが、ルーターrouter.asus.com自体を指す独自のエントリも追加されます。

おそらく DHCP を使用しているため、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();
            }
        });

アクセスしようとしている名前はスクリーンショットで確認できます。文字通りループし、ヒットした場合は見つかった場所にリダイレクトします。

答え2

私は個人的に Asus ルーターを所有していません。Jonno さんの回答は非常に良いのですが、ルーターでこれを実現する別の方法があります (特定のルーターで使用されていない場合でも)。

そのページはHTTPS経由で提供されていないため、ルーターがHTTPリクエストを傍受して外部サーバーと通信せずに応答することは完全に可能です。Asusルーター知られている状況によってはページをリダイレクトします。インターネットに接続していない状態でも (つまり外部 DNS がない状態で) リダイレクトが発生する場合は、ルーターの DNS が原因であることに留意してください。ただし、両方が発生しないという理由はありません。

たとえば、私の Netgear ホーム ルーターは、DNS を使用していない場合でも、ドメインとキーワードをブロックできます (「Netgear ファイアウォールによってブロックされました」というページが表示されます)。DNS 要求が傍受されていないことを確認しました。名前は正しく解決されますが、Web ブラウザーでそのページにアクセスすると、「ブロックされた」ページが表示されます。

この理論をテストするには、DNS サーバーを、たとえば Google の ( ) に設定し8.8.8.8、リダイレクトされたドメイン名を ping します。

答え3

ジョノスの回答に付け加えたいのは

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

これは私の (そしておそらくあなたの) ルーターがこれを行う方法です。あなたのルーターはおそらく dnsmasq で asuswrt を実行しています。シェル アクセス (少なくとも telnet 経由) を実行して、自分で確認することができます。

関連情報