2台のマシンが同じLAN(PCとWebサーバー)に存在する場合、PCがルーターのパブリックIP(ポート転送)を使用してWebサーバーでホストされているWebサイトにアクセスするために、ルーターで「NATループバック」を有効にする必要があるのはなぜですか。 Webサーバーへのポート80で)?ダイナミックDNSに関するこの記事は、セットアップを完全に説明しています http://www.dyndns.com/support/kb/loopback_connections.html
(この例では、URL www.example.comを使用してWebサーバーにアクセスしようとしていますが、関連性のない質問のために、パブリックIPを介してWebサーバーにアクセスすることに関心があります。URLは関係ありません)
上記の記事の最後の文は次のとおりです。「ホスト名www.example.comを介してコンピューターにアクセスしようとすると、NATルーターはこれをWANインターフェイスからルーティングしてから、元に戻します。ほとんどの場合、ルーターはユーザーが何をしようとしているのかを理解していないため、失敗するか、ルーター自体のWebインターフェイスを返します。 。」
ルーターが混乱する理由について、誰かが技術的な説明を提供できますか?この状況でパケットがルーターに到達すると、パケットは実際にどうなりますか?
2番目の質問、ルーターが「NATループバック」をサポートしている場合、パブリックIPを使用できるようにするために、この機能がルーティングで変更されるのは何ですか。
これが例です。 Neufbox4(フランスのISPが提供するルーター)などの一部のルーターはLinuxを実行しています。これらのルーターでは、プログラム「iptables」を使用してNATの動作を構成します(iptablesはLinuxネットワーク用の一種のスイスアーミーナイフです)。
ルーターの背後にLANアドレス192.168.0.2をリッスンしているウェブサーバー(ポートTCP 80)があり、そのポートマッピング(リダイレクト)を追加するとします。これは、iptablesの用語では次のようになります。 :
iptables -t nat -A PREROUTING -i wan -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
これは、「WANインターフェイスからTCPポート80に向けられた)を介して着信するすべてのパケットについて、192.168.0.2に送信する」ことを意味します。これはまさにあなたが行うことです。欲しい。すべて大丈夫...今のところ。
ルーターのWANインターフェース)に関連付けられているIPアドレスがパブリックインターネットアドレスであることを理解する必要があります。たとえば、インターネットIPが1.2.3.4の場合、「wan」インターフェースはルーターのIPアドレスは1.2.3.4です。
ここで、LANから、たとえばアドレス192.168.0.3のパーソナルコンピューターから、自分のインターネットアドレスを使用してWebサーバーにアクセスしようとしているとします。したがって、たとえば、ブラウザに「 http://1.2.3.4/ "」と入力します。
何が起こるかというと、コンピュータはLAN上の1.2.3.4、TCPポート80)に向けられたパケットを送信します。ルーターはこのパケットを受信しますが、192.168.0.2にリダイレクトしません。 。なぜですか?上記のiptablesルールは、LANからではなく、WANインターフェイスから着信するパケットのみを処理するためです!
では、どうなるのでしょうか。まあ、それはルーターの他のネットワークルールに依存します。一般的に言えば、次の2つのいずれかが発生します。
どちらのルーターも、それ自体に向けられたパケットを認識します(1.2.3.4はルーターのIPアドレスの1つであるため、これは完全に正常です)。ほとんどのルーターには、管理インターフェイスをポート80でリッスンするWebサーバーがあります。したがって、このWebサーバーはLAN上のWebサーバーではなくパケットを処理し、Webサイトの代わりに管理インターフェイスを取得します。
または、ルーターは、LANポート上のWANアドレスに向けられたパケットを処理する方法がわからないという理由だけで、何らかの理由でパケットをドロップします。
技術的には、ソリューションは非常に単純で、次の形式のiptablesルールで構成されています。
iptables -t nat -A PREROUTING -i lan -d 1.2.3.4 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
これは、「TCPポート80、および宛先アドレス1.2.3.4のLANインターフェイスを介して着信するすべてのパケットについて、192.168.0.2に送信する」ことを意味します。これがあなたの目的です。 「NATループバック」を呼び出します。
ただし、ほとんどのルーターメーカーは明らかにこの問題を認識しておらず、このルール(またはルーター独自のシステムの同等のルール)を自社の製品に組み込んでいません...