web-dev-qa-db-ja.com

IPv4アドレスのないIPv6Webサーバー

IPv4 IPは希少で高価になっているので、Webサーバーを完全にIPv6に切り替えることは可能かと思います。私はそれが IPv4とIPv6を使用することをお勧めします であることを知っていますが、それでも知りたいです:

1つのIPv4アドレスのみを使用して複数のIPv6Webサーバーに到達できるようにする方法はありますか?

たとえばHTTPSに関してどのような問題に直面しますか?

2
PiTheNumber

DNAT

最初の質問は簡単です:はい、それがまさにNATの目的ですが、単一のv4アドレスをv6サーバープールの前に置き、各プールメンバーにRFC1918v4アドレスを与える必要があります、および1つの実際のv4アドレス/ポートペアを、v4アドレス可能にしたい各RFC1918アドレス/ポートペアにパンチスルーします。各サーバーに外部ポートを手動で割り当てる必要があります。

  • ポート81 => server1:80
  • ポート82 => server2:80
  • .。

欠点:ファイアウォールのあるクライアントは、ポート81に接続できない場合があります。

プロキシ

それを望まない場合は、v4ボックスで何らかの仮想ホストプロキシを実行する必要があります。これにより、v6プールでサービスを提供するためにv4のみのホストからリクエストを受信し、リクエストをプロキシして、返信します。

プロキシ設定のハウツーはSFの回答の範囲をはるかに超えていますが、基本的にフロントエンドボックスは次のようなプロキシテーブルを維持する必要があります。

  • site1.example.com/*プロキシ-> [2001:ea48:abc1:3500 :: 1:1]:80/*
  • site2.example.com/*プロキシ-> [2001:ea48:abc1:3500 :: 2:1]:80/*
  • site3.example.com/*プロキシ-> [2001:ea48:abc1:3500 :: 6:1]:80/*

v4アドレスsite [123] .example.comに解決されるサイト上のクライアントからの着信要求に応答し、上記のv6アドレス上で同様の名前のサイトを実行しているサーバーにプロキシアウトします。プロキシは、応答をリクエスターに返す必要もあります。 v6対応のクライアントの場合、ルーティングとv6ファイアウォールも正しく取得されていれば、AAAAレコードでプロキシ自体をアドバタイズできます。

HTTPS

HTTPSに関しては、状況は単一のv4アドレスでネイティブに複数のHTTPSサーバーを実行したい場合と同じです。複数のv4ポートを実行するか(パンチスルー。上記を参照)、SNIに依存して(多くの場所を参照)無視できます。それをサポートしていないホスト。

あなたが本当に求めているのは、「v6を知らないエンドユーザーのためにv6接続を可能にする魔法のサーバー側のピクシーダストがあるか」ということだと思います。その答えは「いいえ」だと思います。あなたは彼らの要求を完全にv4で受け入れ、同じ方法で彼らに答えを返す必要があります。上記を参照。

8
MadHatter