【入門編】 IPv4アドレス枯渇対策としてのNAT64/DNS64ゲートウェイのパケット変換仕様 – クラウド&コンテナネットワーク実践ガイド

IPv6だけの世界からIPv4のインターネットへ!NAT64/DNS64の魔法を紐解く

みなさん、こんにちは!クラウドとネットワークの最前線でSREをしている筆者です。

今日は、ネットワークエンジニアを目指す方や、「クラウドのネットワーク設定って、結局何をやっているの?」と悩んでいる初学者の方に向けて、少しだけ未来の話をしようと思います。

現代のインターネットは、長い間使われてきたIPv4という住所の仕組みが限界を迎え、新しいIPv6という仕組みへの移行期にあります。しかし、世界中のWebサイトが一斉に切り替わるわけではありません。そこで登場するのが、「IPv6しか話せない住人」が「IPv4しか話せないお店」で買い物をするための翻訳機、NAT64/DNS64です。

今日はこの仕組みを、郵便配達に例えて優しく解説していきますね。

—

1. なぜ「翻訳」が必要なのか?

まず、私たちが使っているIPアドレスは、インターネット上の「住所」です。IPv4は古い形式で、もう空き地がほとんどありません。一方、IPv6は宇宙規模の広大な住所を持っています。

ある日、あなたのサーバーが「IPv6の最新住宅街」に引っ越したとしましょう。そこには最新の郵便ポストしかありません。でも、どうしても「IPv4の旧市街」にある古いショップから荷物を取り寄せたい……。

ここで問題が起きます。「新しいポスト(IPv6)は、古い住所(IPv4)の書き方が分からない」のです。この手紙を届けるために、郵便局に「翻訳係」を置く。これがNAT64とDNS64の役割です。

2. 郵便局の役割:DNS64とNAT64の連携プレイ

この翻訳には、2つのステップが必要です。

ステップ1:DNS64(住所の書き換え)

あなたが「あのIPv4のショップに行きたい」とDNSサーバーに尋ねると、DNS64はこう答えます。「その古い住所(192.0.2.1)は、うちの郵便局が預かっている特殊な形式(64:ff9b::192.0.2.1)として読み替えてください」と。

この「偽のIPv6住所」を教えるのがDNS64の仕事です。あなたのサーバーは、それが偽物とは知らずに、そのIPv6住所宛に荷物(パケット)を送り出します。

ステップ2:NAT64(荷物の積み替え)

郵便局(NAT64ゲートウェイ)にその荷物が届くと、中身を確認します。「おや、これはIPv4のショップ宛てだな」と気づいた郵便局員は、荷物の宛先ラベルをIPv4形式に剥がし、自分のIPv4アドレスを使って相手に届けます。

帰ってきた返事も同様です。IPv4で届いた荷物を、あなたのサーバーが受け取れるIPv6形式に丁寧に包み直して届けてくれるのです。

3. 実践:クラウドで設定を覗いてみる

実際にAWSなどの環境で、この仕組みをイメージするための設定例を見てみましょう。例えば、AWSのVPC(仮想ネットワーク)内でIPv6からIPv4へアクセスする場合、ゲートウェイの設定はこんな風に行われます。

# これはNATゲートウェイを通るルートを定義するイメージです
# IPv6の広大な範囲(::/0)への通信を、翻訳ゲートウェイ(egress-only-igw)に送る
aws ec2 create-route \
    --route-table-id rtb-12345678 \
    --destination-ipv6-cidr-block ::/0 \
    --gateway-id eigw-0abc123def # IPv6専用の出口ゲートウェイ

実際には、マネージドサービス側で自動的に64:ff9b::/96という「翻訳用プレフィックス」が使われることが一般的です。

4. 現場のトラブルシューティング:パケットを追いかける

現場でこの仕組みがうまく動かない時、私たちはどうやって調査するのでしょうか?一番の近道は、パケットの「変換」がどこで止まっているかを確認することです。

例えば、ping6 を使って疎通確認をするとき、こんな風にログを見ています。

# 変換後のアドレスを確認する
dig AAAA google.com @<DNS64サーバーのIP>

# パケットが変換ゲートウェイを通っているか確認
tcpdump -i eth0 icmp6

もし通信が失敗している場合、多くのケースで「DNS64で名前解決されたアドレスが、NAT64の変換範囲外になっている」という設定ミスが疑われます。

「あれ、名前解決はできているのに、なぜかパケットが届かない?」という時は、パケットの宛先が64:ff9b::/96というマジックナンバーから始まっているか、ぜひ疑ってみてください。これが郵便局の受付番号のようなものだからです。

まとめ:ネットワークは「優しさ」でできている

NAT64/DNS64という言葉を聞くと難しく感じますが、要は「古いものと新しいものが共存できるように、誰かが間に入って一生懸命翻訳してくれている」という、とても心温まる(?)仕組みなんです。

インフラの世界は、こうした「見えない翻訳」の積み重ねで動いています。皆さんが今日使っているスマホも、クラウド上のサーバーも、こうしたゲートウェイがせっせとパケットを変換してくれているおかげで、世界中とつながることができています。

もし、皆さんの目の前のネットワークが繋がらない時は、パケットがどこで迷子になっているのか、郵便局(ゲートウェイ)の視点に立って考えてみてください。きっと、解決の糸口が見つかるはずですよ!

それでは、また次回の技術探訪でお会いしましょう!Happy Hacking!

コメント

タイトルとURLをコピーしました