Tips

2017.09.21

ネットワーク用語/DNS64

DNS64

 
 DNS64は、ドメイン名からIPアドレスを調べるときに、その名前解決の結果として応答されてきたアドレスの変換を行うものです。
DNS64とNAT64を一緒に使用することでIPv6のホストからIPv4アドレスだけしか設定されていないサーバに対してドメイン名でアクセスすることが可能になります。

DNS64の動作

 IPv6を使用して構成されているネットワーク内のホストからIPv4ネットワーク内のホストと通信をするために、
ドメイン名を使用して宛先を指定した場合、まずそのドメイン名に対応するIPv6アドレスを調べる必要があります。
IPv6ホストは名前解決のために問い合わせますが、DNSサーバでは対象のドメイン名に対応するIPv4アドレスしか管理していない場合は名前解決に対する応答がIPv4アドレスとなります。
それをIPv6ホストが受け取っても宛先をIPv4アドレスで指定することができません。
 そこでDNS64の機器が名前解決の結果のIPv4アドレスをIPv6アドレスに変換してIPv6ホストに伝えます。
IPv6ホストはIPv6パケットを送信しNAT64トランスレータによりそれがIPv4パケットに変換され、IPv4ホストと通信が可能となります。
 以下の例で確認します。

図1 DNS64
IPv6ネットワーク内のホストからtest.example.co.jpに対して通信することを考えます。
test.example.co.jpはIPv4にしか対応しておらず、DNSサーバではドメイン名test.example.co.jpとIPアドレス200.0.0.10がマッピングされているとします。
通信する際、IPv6ホストはDNS64に対してtest.example.co.jpに対応するIPアドレスを問い合わせします。
DNSクエリを受け取ったDNS64が外部のDNSへ問い合わせを行います。
問い合わせることによってtest.example.co.jpに対応するIPv6アドレスが解決できれば、そのまま得られたIpv6アドレスをIPv6ホストに通知します。
 しかし今回test.example.co.jpはIPv4にしか対応していないため、DNSサーバからの応答はIPv4アドレスになります。結果としてDNS64はIPv4アドレス200.0.0.10しか取得できません。
 IPv6ホストに200.0.0.10を通知しても通信できないため、200.0.0.10をIPv6アドレスに変更します。
IPv4アドレスをIPv6アドレスに変更する際に使用するのが、IPv4-embedded IPv6 addressです。
Well-known prefixを使用して作成すると64:ff9b::/96のプレフィックスの後ろに200.0.0.10(16進 c800000a)
を付加して64:ff9b::c800:000aとしたIPv6アドレスにします。
DNS64はこのIPv6アドレスをIPv6ホストに通知します。
 IPv6ホストは自身のIPv6アドレスを送信元とし、宛先IPv6アドレスをDNS64から通知された64:ff9b::c800:000aとしたパケットを送信します。それを受け取ったNAT64のトランスレータがIPv4パケットに変換することでIPv4のホストと通信することができるようになります。

Recent News

Recent Tips

Tag Search