これは、ホスト名認識とプロキシについての標準的な質問です。
一部のプロトコルはホスト名に対応しています。つまり、HTTPサーバーに接続すると、同じIPアドレス上にあっても、ではなくのHTTPサービスがwww.example.com
必要であることがわかります。プロトコルfooに対してこれを行うにはどうすればよいですか?www.example.com
www.example.net
(一時的なメモ:この質問は、このメタディスカッションに従って表示されます。)
これは、ホスト名認識とプロキシについての標準的な質問です。
一部のプロトコルはホスト名に対応しています。つまり、HTTPサーバーに接続すると、同じIPアドレス上にあっても、ではなくのHTTPサービスがwww.example.com
必要であることがわかります。プロトコルfooに対してこれを行うにはどうすればよいですか?www.example.com
www.example.net
(一時的なメモ:この質問は、このメタディスカッションに従って表示されます。)
回答:
何が起こっているのかを理解するには、DNSについて少し知っておく必要があります。
クライアントが特定のホストのサービスに接続する場合、クライアントはローカルDNSインフラストラクチャを介してホスト名を検索し、応答としてIPアドレスを受け取ります。次に、そのIPアドレスに接続し、実装するために構築されたプロトコルによって規定された方法でサービスを要求します。
場合によっては、そのプロトコルの一部に、最初に検索されたホスト名の2回目の送信が含まれます。この場合、ホスト名はDNSインフラストラクチャではなくサーバーに送信されます。HTTPの場合、これはRFC 2616でHTTP / 1.1の一部として追加されました。HTTPSの場合、これはRFC 4366でサーバー名表示(SNI)として実装されました。FTPの場合、これはコマンドによってRFC 7151に追加されました(ただし、後の警告を参照)。 このような2回目の送信が行われない場合、サーバーは、サーバーのIPアドレスを取得するためにクライアントがローカルDNSに入力したホスト名を知る方法がありません。HOST
すべてのケースで、この2回目の送信を行うためにプロトコルの変更が必要であり、クライアントとサーバーの相互作用をホスト名対応にすることに注意してください。プロトコルが変更された後、それを実装するためにサーバーコードを更新する必要がありました。そして最後に、新しいプロトコルをサーバーに伝えるためにクライアントを更新する必要がありました。その最後のステップは特に遅くなる可能性があります。SNIの場合、Windows XPのInternet Explorerはこれを実装しなかったため、かなりの数のIE-on-XPユーザーがいまだに存在している間はプロトコルに依存できず、十分な時間がかかるまでに約10年かかりました。 SNIが確実に展開可能なアップグレードを終了または取得します。
これが、ホスト名を認識しないプロトコルをホスト名を認識するようにするために必要なことです。これは単純なフラグ設定や構成変更ではありません。状況、および特にそのプロトコルについて考えられる緩和策に対処するプロトコル固有の回答がいくつかあります
。SSH(したがってSFTP)および
FTP(HOST
FTPのサポートは現在パッチ適用中であることを示しています) -サポートフェーズなので、まだ信頼できません)。
短い答えは、クライアントとサーバーの両方の間で十分なサポートがあり、プロトコルが現在ホスト名認識を実装していない場合、それを忘れるということです。それはあなたができることではありません。
baz
を所有者と唯一の実装者しか変更できない場合、ホスト名を認識させる唯一の方法は所有者にアピールすることです。それはSFの興味深い答えにはなりませんし、さらに(私の心には)話題にはなりません。「どのようにしてホスト名対応プロトコルを設計するのか」は、まったく別の質問であり、私が尋ねるのではありません。