IPv6 のみのネットワークから IPv4 アドレスにアクセスするにはどうすればよいですか?

IPv6 のみのネットワークから IPv4 アドレスにアクセスするにはどうすればよいですか?

IPv6 アドレス経由でこのアドレスにアクセスしたい:
http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/

Freifunk ルーターでは DNS が利用できないため、名前をdownloads.openwrt.org解決できません。インターネット内のすべてのサーバーは、IPv6 アドレス経由でのみアクセスできます。これでは、ルーター内部からこのパッケージ ミラーにアクセスして、 経由でパッケージをインストールすることはできませんopkg install

たとえば、これを構成に追加できれば、解決策になります。

http://[2001:db8::1]/attitude_adjustment/12.09/ar71xx/generic/packages/

/etc/hosts私たちのルーターはOpenWRTを実行しており、IPv6のみに対応しています。ドメイン名がdownloads.openwrt.org適切なIPv6アドレスに解決されるようにエントリを追加したいと思います。

IPv6 をドメインにリダイレクトすることは可能ですか?

答え1

IPv4 経由でのみ利用可能なホストに到達するために、IPv6 アドレスを単に「追加」することはできません。これらは 2 つの完全に異なる、互換性のないプロトコルです。

IPv6-のみネットワークが IPv4 アドレスに到達できるようにするには、IPv4 にアクセスできるゲートウェイが必要です。これは通常、NAT64/DNS64 ゲートウェイで行われます。NAT64/DNS64 ゲートウェイは IPv4 アドレスを「偽の」 IPv6 アドレスに変換し、それらの「偽の」 IPv6 アドレスへの接続を受け入れて、接続を IPv4 ネットワークに変換します。これらの IPv6 アドレスは範囲内になります64:ff9b::/96

OpenWrtでは、NAT64はTaygaで、DNS64はbindで行われます。設定方法の詳細については、OpenWrt wikiで入手可能Attitude Adjustment または Barrier Breaker が必要になります。以前のバージョンの OpenWrt では、IPv6 やその他のテクノロジが十分にサポートされていませんでした。

/etc/resolv.conf にパブリック DNS64/NAT64 リゾルバを追加できます。

nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6

クライアントサイトで翻訳を元に戻すこともできます。464xlat464xlat は同じツールを使用します。(上記で説明しましたが、方法が異なります)。464xlat を使用すると、リテラル IP を含む URL にアクセスすることもできます。

答え2

ドメインにはdownloads.openwrt.orgIPv4 アドレスがありますが、IPv6 アドレスはありません。そのため、変換メカニズムを使用しない限り、IPv6 経由でアクセスすることはできません。NAT64 を使用すると、IPv6 専用クライアントから IPv4 専用サーバーへの TCP 接続を作成できます。

しかし、なぜ IPv6 専用クライアントを使用するのでしょうか? デュアル スタックにするのは良い考えですが、現時点では IPv6 専用は、IPv4 専用ホストが多すぎる環境で IPv6 がもたらす制限を知っている人にとっては、テストにのみ役立ちます。

サーバーへの TCP 接続を確立できたとしても、別の課題に直面することになります。HTTP バージョン 1.1 では、クライアントは HTTP 接続を介して接続するサーバーの名前を送信する必要があります。また、多くのサイトでは、downloads.openwrt.orgこのヘッダーの送信が求められます。

HTTP クライアントは、送信するドメイン名を知っている場合にのみ、そのヘッダーを送信できます。したがって、クライアントに元の URL を知らせ、何らかの方法でその名前を IP アドレスに解決するためのアクセス権を付与する方がよいでしょう。IPv6 でなければならない場合は、やはり NAT64 が必要になります。ただし、ドメイン名から NAT64 IP アドレスへのマッピングを に挿入すれば/etc/hosts、問題なく動作するはずです。

これは、個々のドメイン名には適しているかもしれません。しかし、IPv6 のみのホストが、すべてのドメインに NAT64 アドレスを設定することなく複数のドメインにアクセスできるようにするには/etc/hosts、アドレスの動的な変換が必要です。これが DNS64 の目的です。

クライアントが IPv4 アクセスを持っていて、DNS だけが欠けている場合は、答えはずっと簡単になります。davidgo/etc/hostsが提案したように、IPv4 アドレスを入力するだけです。もちろん、サーバーの IP アドレスが変更されるたびにそのファイルを更新する必要がありますが、あまり頻繁に変更されることはないでしょう。

答え3

おそらく間違った質問をしていると思います。プロセスが逆方向に機能するため、つまりドメインが 1 つまたは複数のホストに解決されるため、IPv6 アドレスをドメインにリダイレクトすることはできません。

ルーターに関する情報は見つかりませんでしたが、OpenWRT を実行している場合は、ドメイン名が適切な IP アドレスに解決されるように、/etc/hosts にエントリを追加できるはずです。

関連情報