こんにちは!技術メディアの主筆を務めております、ネットワークセキュリティスペシャリストの私です。
日夜、パケットの海に潜り、サイバー攻撃の荒波からエンタープライズの境界を守る仕事をしていると、避けて通れないのが「次世代のインターネット基盤」こと IPv6 です。
「IPv4ならなんとなくわかるけど、IPv6になった途端、あの長ったらしい英数字の羅列に拒絶反応が出てしまう……」
そんな声を、現場の若手エンジニアからよく耳にします。確かに、192.168.1.1 という見慣れた数字が、いきなり fe80::5054:ff:fe12:3456 なんて姿に変わったら、誰だって戸惑いますよね。
でも、安心してください。実はIPv6の仕組みは、私たちの生活にある「郵便配達」や「建物の住所」に例えると、驚くほどスッキリ理解できるんです。今日は、難解なビット計算は一旦横に置いて、パケットがどんな「想い」でネットワークを駆け巡るのか、その物語を紐解いていきましょう!
—
1. なぜIPv6が必要なの? ——「村」から「地球規模」への引越し
まず、なぜIPv4からIPv6へ乗り換える必要があるのか、その背景を優しくお話しします。
IPv4は、例えるなら「小さな村の住所録」でした。約43億個というアドレス数は、かつては十分すぎるほどでしたが、今や一人でスマホ、PC、スマートウォッチと複数のデバイスを持つ時代です。村の住所が足りなくなってしまったんですね。
そこで登場したのがIPv6です。IPv6が提供するアドレス数は、なんと 「340澗(かん)」個。……と言われてもピンときませんよね(笑)。地球上の砂粒ひとつひとつにアドレスを割り振っても、まだ余りがあるほどの膨大な数です。
この圧倒的な余裕があるからこそ、IPv6では「NAT(アドレス変換)」という複雑な小細工を使わずに、デバイス同士が直接、自由におしゃべりできる世界が実現したのです。
—
2. IPv6アドレスの「読み書き」のコツ —— 長い住所をスマートに省略!
IPv6のアドレスは128ビット。16進数で書くと非常に長いですが、実は「省略のルール」さえ覚えれば、一気に親しみやすくなります。
例えば、こんな長いアドレスがあったとします。
2001:0db8:0000:0000:0000:0000:0000:0001
これをそのまま書くのは大変ですよね。そこで、以下のルールを適用します。
1. 各ブロックの先頭の 0 は消していい
(例:0db8 → db8)
2. 0 が続くブロックは、一度だけ ::(ダブルコロン)でギュッと省略できる
すると、先ほどのアドレスはこうなります。
2001:db8::1
どうですか? ぐっと短くなって、「これなら読めるかも!」と思えてきませんか?
—
3. 3つの「スコープ」を知ろう —— 通信が届く範囲の物語
IPv6には、そのパケットが「どこまで届くべきか」を決める スコープ(範囲) という考え方があります。これがIPv6を理解する最大の鍵です。
① リンクローカルアドレス (fe80::/10) —— 「同じ部屋」の合言葉
パケットが同じLAN内(ルーターを越えない範囲)だけでやり取りされるアドレスです。
人間で言えば、「ねえ、隣に座っている君!」 と呼びかけるようなもの。
すべてのIPv6対応デバイスは、ネットワークに繋がった瞬間に、まずこの fe80:: で始まるアドレスを自分で勝手に作ります。誰に教わらなくても、まずは隣の人と話せる準備を整える。自立心の強いアドレスなんです。
② グローバルユニキャストアドレス (2000::/3) —— 「世界共通」のパスポート
これは、インターネットの海を越えて、世界中の誰とでも通信できるアドレスです。
まさに 「国名から始まるフルセットの住所」 ですね。
③ ユニークローカルアドレス (fc00::/7, fd00::/8) —— 「社内限定」の内線番号
組織内だけで使われる、インターネットには公開されないアドレスです。
「会社の内線番号」 のようなもので、外部からは直接見えないため、セキュリティを保ちたい社内サーバーなどに使われます。
—
4. 通信のスタイル —— 放送(Broadcast)から「招待制」へ
IPv4で馴染み深かった「ブロードキャスト(全員強制送信)」は、IPv6には存在しません。ネットワーク全体に大声で叫ぶのは、効率が悪いからです。代わりにIPv6では、以下の3つのスタイルを使い分けます。
- ユニキャスト (Unicast): 特定の1人へ。手紙を出すイメージ。
- マルチキャスト (Multicast): 興味があるグループ全員へ。サークルのメーリングリストのイメージ。
- エニーキャスト (Anycast): グループの中の「一番近い誰か」へ。110番通報をすると、一番近くの警察署に繋がるイメージ。
—
5. 実践! 自分のマシンのIPv6を確認してみよう
理屈がわかったところで、実際に自分のPCがどんなIPv6アドレスを持っているか見てみましょう。コマンドラインを開いて、以下のコマンドを打ち込んでみてください。
Linux / macOS の場合
ターミナルを開いて ip コマンド(または ifconfig)を使います。
# IPv6アドレスのみを表示するコマンド
ip -6 addr show
# 実行結果のイメージ
# 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
# inet6 2001:db8:a:b::123/64 scope global <-- これがグローバル(世界用)
# inet6 fe80::5054:ff:fe12:3456/64 scope link <-- これがリンクローカル(お隣さん用)
Windows (PowerShell) の場合
モダンなエンジニアなら、ipconfig よりもこちらのコマンドがおすすめです。
# IPv6アドレスの情報を取得
Get-NetIPAddress -AddressFamily IPv6 | Select-Object IPAddress, InterfaceAlias, AddressOrigin
# 解説:
# IPAddress: アドレス本体
# InterfaceAlias: Wi-Fiなのか有線LANなのか
# AddressOrigin: どうやってそのアドレスが決まったか(DHCPや自動設定など)
—
まとめ:一歩ずつ、パケットの気持ちに寄り添って
IPv6は決して怖いものではありません。
fe80::を見たら「あ、お隣さんと話すための内線だな」2000::や3000::を見たら「世界へ羽ばたく外線だな」::を見たら「あ、ここは0が詰まっているんだな」
そう思うだけで、ネットワークの景色はガラリと変わって見えてくるはずです。
OSI参照モデルのレイヤー3(ネットワーク層)で、パケットたちがこの複雑な住所を頼りに、最短ルートで目的地へ向かおうと健気に走っている姿を想像してみてください。私たちエンジニアの仕事は、そのパケットたちが迷子にならないよう、正しい道(ルート)を整えてあげることなんです。
「難しそう」という壁を、今日一歩乗り越えたあなたなら、きっと素晴らしいインフラエンジニアになれます。一歩ずつ、一緒に理解を深めていきましょう!
次回は、これらのアドレスを使って実際にどうやってルーティングが行われるのか、さらにディープな世界をご案内します。お楽しみに!
コメント