「IPv4とIPv6、二つの言葉で話すネットワーク」― 現場で困らないデュアルスタックの基礎知識
こんにちは!ネットワークの世界に足を踏み入れたばかりの皆さん、ようこそ。
今日は、インフラエンジニアの現場で必ずと言っていいほど直面する「IPv4とIPv6の同居」、いわゆるデュアルスタックについてお話しします。「IPv4は知ってるけど、IPv6って何だか難しそう……」そんなふうに思っていませんか?大丈夫、少しずつ紐解いていきましょう。
—
そもそも「デュアルスタック」って何?
簡単に言うと、一つの機器や回線の上で「IPv4とIPv6という、二つの言語を同時に喋れるようにすること」です。
現実世界に例えるなら、「日本語しか通じない郵便局」と「英語しか通じない郵便局」が合体して、一つの窓口で両方の手紙を受け付けられるようになった状態をイメージしてください。配達員(ルーター)は、宛先を見て「お、これは英語の手紙だね。じゃあIPv6のルートで運ぼう」「こっちは日本語か。IPv4のルートだ」と瞬時に判断し、仕分けを行う必要があります。
—
なぜ今、二つの言語が必要なのか
IPv4は歴史が長く、インターネットの「共通語」です。しかし、使える住所(IPアドレス)の数が足りなくなってしまいました。そこで登場したのが、ほぼ無限に住所を作れるIPv6です。
今のインターネットは「IPv4という古い住所」と「IPv6という新しい住所」が入り混じっています。だからこそ、私たちのネットワーク機器も、両方の住所を理解してあげる必要があるのです。
—
現場でぶつかる「3つの壁」
デュアルスタックを構築する際、現場では以下の3つのポイントでよくトラブルが起きます。
1. DNS解決の優先順位(どっちの住所を先に聞く?)
ブラウザがWebサイトを見に行くとき、まずは「そのサイトの住所(IPアドレス)を教えて!」とDNSサーバーに問い合わせます。ここでIPv4とIPv6の両方の住所が返ってきたとき、PCはどちらを優先するでしょうか?
実は、OSの設定(gai.confなど)によって決まりますが、最近は「IPv6が使えるならIPv6を優先する」設定が一般的です。もしIPv6の経路だけ設定が漏れていると、通信がタイムアウトして「サイトが表示されない!」というトラブルに繋がります。
2. ルーティング設定の複雑化
IPv4には0.0.0.0/0という「とりあえず困ったらここへ行け」というデフォルトルートがありますが、IPv6では::/0という書き方に変わります。
# ルーターのルーティングテーブル例(Cisco系イメージ)
# IPv4のデフォルトルート
ip route 0.0.0.0 0.0.0.0 192.168.1.1
# IPv6のデフォルトルート(:: は「すべて」を意味します)
ipv6 route ::/0 2001:db8::1
このように、設定ファイルの中で「IPv4用」と「IPv6用」の二つの経路を並行して管理する必要があります。
3. セキュリティポリシーの二重管理
ここが最も重要です。ファイアウォール(境界防御)を設定する際、IPv4のアドレスだけで制限をかけて安心していませんか?「IPv6側からスルーで入ってきていた」なんてミスは、新人エンジニアの登竜門といえるほどよくあります。
—
実践!セキュリティポリシーの考え方
境界防御を設計するときは、必ず「IPv4用」と「IPv6用」のルールセットをペアで作成する癖をつけましょう。
例えば、Linuxの iptables(IPv4用)と ip6tables(IPv6用)を併用する場合、以下のように考えます。
# IPv4の通信制限
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT
# IPv6の通信制限(同じ内容をIPv6用アドレスで書く)
ip6tables -A INPUT -p tcp --dport 80 -s 2001:db8:1::/64 -j ACCEPT
ポイント:
- IPv4で許可したことは、必ずIPv6でも同じセキュリティレベルで許可(あるいは遮断)すること。
- 「IPv6はまだ使っていないから無効でいいや」は危険です。最近のOSは勝手にIPv6を有効にするため、「使っていないなら明示的に遮断する(Deny All)」のが鉄則です。
—
最後に:ネットワークは「郵便配達」と同じ
ネットワークエンジニアの仕事は、パケットという名の「手紙」を、宛先の相手に正確に、安全に届けることです。
IPv4とIPv6が混在する世界は、少しだけ複雑に見えるかもしれません。でも、一つひとつ「宛先はどっちの形式かな?」「この手紙を通す許可はあるかな?」と丁寧に確認していけば、決して恐れることはありません。
まずは自分のパソコンで ping google.com を打ってみてください。IPv4アドレス(142.250…)が返ってくるか、IPv6アドレス(2404:6800…)が返ってくるか。そんな小さな観察から、ネットワークの理解は深まっていきますよ!
これからも一緒に、泥臭く、かつスマートなネットワーク作りを楽しんでいきましょう!
コメント