前回は、トランスレータをサーバー・サイドに設置する場合を解説しました。今回は、トランスレータをクライアント・サイドに設置した場合について見ていきます。

特定のクライアントから不特定多数のサーバーへの到達性を提供する

 IPv4在庫アドレスの枯渇が迫っていることから、今後はIPv6オンリーのネットワークが登場してくる可能性があります。現在リリースされているほとんどのクライアントOSは、IPv6に対応しています。しかしながら、世の中のサーバーにはIPv4しかサポートしていないものが多くあります。このような場合、IPv6オンリーのネットワークに接続されたクライアントは、IPv4サーバーにアクセスすることができません。また、古くから使用しているIPv4のみに対応しているクライアントは、今後増加すると思われるIPv6サーバーへアクセスすることができません。これらのようなケースでは、クライアント・サイドにトランスレータを置くことが有効です。

 クライアント・サイドに設置するトランスレータは、サーバー・サイドの場合と同様に、IPv4ネットワークとIPv6ネットワークの境界に置きます(図1)。IPv6クライアントが開始した通信は、トランスレータを経由してパケットが変換され、IPv4サーバーに到達します。同様にIPv4クライアントから開始された通信は、トランスレータを経由してIPv6サーバーへ到達します。

図1●クライアント・サイドにおけるトランスレータの設置場所
図1●クライアント・サイドにおけるトランスレータの設置場所

 クライアント・サイドにトランスレータを設置する際には、DNSプロキシとの連携が必須です。また多くの場合、パケットを変換するためにアドレスのマッピングが必要となります。トランスレータをサーバー・サイドに設置するのであれば、パケット変換後のあて先はサーバーのアドレスと決まっているため動的なアドレスマッピングは必要ありません。一方クライアント・サイドに設置する場合は、パケット変換後のあて先アドレスはクライアントの通信先に依存します。そのため、DNSプロキシを用いた動的なアドレスマッピングを行う必要があるのです。

 クライアントにDNSプロキシを使用してもらうためには、クライアントが送信するDNSクエリーがDNSプロキシに到達する必要があります。これを実現する手法としては、クランアントが参照しているDNSサーバーをDNSプロキシに変更することが一般的です。クライアントに対する変更はこの設定のみで、特別なアプリケーションなどは必要ありません。クライアントが送信するDNSクエリーがDNSプロキシに到達するようになれば、クライアントは通信先のサーバーがIPv4であるのかIPv6であるのかを意識することなく(つまり、その通信がトランスレータを経由していることを意識する必要なく)様々なサーバーと通信できるようになります。なおDNSプロキシを用いたアドレスのマッピングについては、本連載の第4回で説明しています。