web-dev-qa-db-ja.com

プロキシサーバーを介してIPv6のみのサーバーをIPv4のみのクライアントで使用できるようにする

ホームサーバー(Home Assistantを実行している)と他のソフトウェアのカスタムスタックがCGNATの背後にあり、技術的な理由で、キャリアが建物専用のIPv4をアクティブ化できないという特殊な状況にあります(私は新しい開発と、明らかに建物全体に供給するローカルファイバーエンドポイント/スイッチにはこの制限があります)。

ただし、各フラットにIPv6セグメントが割り当てられており、SLAACを使用すると、サーバーは静的IPv6を取得します。まあ、やや静的です-明らかに私が実行している構成ではSLAACプライバシー拡張機能が有効になっています。つまり、ルーターまたはサーバーが再起動するたびに新しいIPv6を取得します。このため、IPv6ダイナミックDNSアップデーターも実行しています。

私が達成したいのは、Azureに小さなVM(私は毎月130ユーロのクレジットを与える祖父のMSDNサブスクリプションを持っています)を持っていることです。これは、私のホームサーバーへの外部ネットワークは、一種の逆トンネルを効果的に作成します。

また、IPv6対応デバイスをサーバーに直接接続したままにしておきたいので、次の考えを念頭に置いていました。

IPv4では、AレコードはAzureVMを指します。このVMへのすべてのリクエストは、ドメインの現在のAAAAレコードに転送されます(これにより、この「さまよう」サーバーがサポートされます)。IPv6では、AAAAレコードが直接使用され、サーバ。

私はさまざまな解決策を検討してきましたが、言及されている2つのオプションは、socatまたはhaproxyのいずれかです。どちらも、転送するポートごとに特定の構成が必要なようですが、サーバーに完全にアクセスできるようにすべてのポートを包括したいと思います(ファイアウォールも処理します)。また、ドメイン名のターゲティングをサポートしていないようで、リダイレクト先として静的IPv6が必要になります。

これに対する私の最善の選択肢は何でしょうか?

1
fonix232

必要なのはSIIT-DCの実装です。これは、Facebookのような企業がIPv6のみのサーバーをIPv4から到達可能にするために使用するものです。そのための優れたLinuxカーネルモジュールがあります: https://jool.mx

IPv6サーバーアドレスごとに、(サーバー自体のアドレスに加えて)個別のIPv4アドレスが必要になります。すべてのパケットを変換する場合、トランスレータはそのIPv4をそれ自体に使用することはできません。

1
Sander Steffann