クラウドの「住所」をどう使い分ける?デュアルスタック時代の出口戦略を紐解く
こんにちは!クラウドアーキテクトとして、日々AWSやGCPのネットワーク迷宮を駆け巡っているSREです。
最近、クラウドインフラを構築していると「デュアルスタック」という言葉を耳にしませんか?「IPv4とIPv6、両方使えるようにしておこう!」という流れですが、いざネットワーク設定の画面を開くと、「NATゲートウェイって何?Egress-Only IGWってまた新しい用語?」と頭を抱えてしまう方も多いはず。
今回は、この「外の世界への出口」について、郵便配達に例えながら、パケットたちが迷子にならないためのルーティングの基本を優しく紐解いていきましょう!
—
1. 郵便配達でイメージする「出口」の役割
まず、私たちのサーバーが「プライベートサブネット」という、外から直接見えない「セキュリティの高いマンション」の中にいると想像してください。
このマンションから外部(インターネット)へ手紙を出したいとき、どうすればいいでしょう?
- IPv4という住所の場合:
昔ながらの「郵便局(NATゲートウェイ)」へ持っていきます。郵便局員さんが、あなたの部屋番号の代わりに「郵便局のハンコ」を押して外へ送り出してくれます。これがNAT(ネットワークアドレス変換)です。
- IPv6という住所の場合:
こちらは比較的新しい仕組み。「エグレス専用インターネットゲートウェイ(Egress-Only IGW)」を使います。これは、外から入ってくることは一切許さないけれど、外へ出すことだけは許可する「一方通行の門番」のような存在です。
どちらも「外へ出す」という目的は同じですが、「IPv4という古い住所形式」と「IPv6という新しい住所形式」で、使う窓口が別々であるという点がポイントです。
—
2. なぜ「優先順位」が重要になるのか?
ここで疑問が浮かびます。「もし両方の出口があったら、パケットはどっちを使うの?」という話です。
結論から言うと、ネットワークの世界では「より具体的な住所(宛先)が書かれている道」が優先されます。
例えば、あなたが宛先に「192.0.2.1」というIPv4アドレスを指定した場合、パケットは自然とIPv4用の窓口(NATゲートウェイ)を探しに行きます。逆に「2001:db8::1」といったIPv6アドレスなら、迷わずIPv6用の門番(Egress-Only IGW)へ向かいます。
基本的には、宛先のアドレス形式に合ったゲートウェイを自動的に選んでくれるので、私たちが「どっちを優先するか」と深く悩む必要は実はあまりありません。ですが、「ルーティングテーブル」という道路地図を正しく書いておくことが、ネットワーク構築の肝になります。
—
3. 実践!AWSでのルーティング設定例
では、実際にAWSのルートテーブルを例に、どのように設定を記述するか見てみましょう。
IPv4とIPv6の共存設定(ルーティングテーブル)
AWSのコンソールやCLIでルーティングを設定する際は、以下のように「宛先(Destination)」と「ターゲット(Target)」をペアで登録します。
# 宛先が「0.0.0.0/0」(IPv4のインターネット全部)の場合
# ターゲット:NATゲートウェイ (nat-xxxxxxxxxxxx) を指定
# 意味:「IPv4の通信は、郵便局のNATゲートウェイを通ってね」
# 宛先が「::/0」(IPv6のインターネット全部)の場合
# ターゲット:Egress-Only IGW (eigw-xxxxxxxxxxxx) を指定
# 意味:「IPv6の通信は、専用の門番(Egress-Only IGW)を通ってね」
このように、「IPv4の世界」と「IPv6の世界」を別々の行として定義するのが、デュアルスタック環境の鉄則です。
—
4. 初学者がつまずきやすい「落とし穴」
現場でよくあるトラブルは、「IPv6を有効にしたのに、IPv6で外部通信ができない!」というケースです。原因のほとんどは以下の2つです。
1. ルートテーブルの書き忘れ:
IPv4の設定はしたけれど、IPv6の出口(::/0)をルートテーブルに追加し忘れている。
2. サブネットの範囲設定:
そもそもそのサブネットにIPv6アドレス(CIDRブロック)が割り当てられていない。
「パケットがどこへ行けばいいか分からない」という状態は、住所の書いていない手紙をポストに投函するようなもの。まずは、ルートテーブルに上記の設定が正しく反映されているかを確認してみましょう。
—
まとめ:ネットワークは「道筋」を整理することから始まる
今回学んだことをまとめると、以下の3点です。
- IPv4はNATゲートウェイ、IPv6はEgress-Only IGWという「専用の出口」を使い分ける。
- ルーティングの優先順位は、宛先のアドレス形式に合わせて自動で判断されるので、「それぞれの道筋」をしっかりルートテーブルに書いてあげることが大切。
- 外部との通信がうまくいかないときは、まずルートテーブルの設定ミスを疑ってみる。
ネットワークは一見難しそうに見えますが、こうして「郵便配達」や「道路」に例えると、パケットたちの気持ちが少しだけ見えてきませんか?
最初は誰でも迷子になります。少しずつパケットの通り道を整理して、皆さんのクラウド環境をより強固で美しいものにしていってくださいね。また次回の記事でお会いしましょう!
コメント