「ARPはもう古い?」IPv6の近隣探索(NDP)を郵便配達に例えて徹底解説!
ネットワークエンジニアの皆さん、こんにちは!
日々、インフラ構築やトラブルシューティングの現場に立っていると、「IPv6って結局何が便利なの?」という疑問をぶつけられることがよくあります。
確かに、IPアドレスが128ビットになったことで桁数は増えましたが、それだけではありません。実はIPv6では、私たちのネットワークを長年支えてきた「ARP(Address Resolution Protocol)」という仕組みが根本から見直され、より賢く、より自動化された「NDP(Neighbor Discovery Protocol:近隣探索プロトコル)」という仕組みに生まれ変わりました。
今回は、このNDPがネットワークの世界で一体どんな「郵便配達」を行っているのか、専門用語を極力減らして紐解いていきましょう。一歩ずつ、一緒に見ていきましょうね!
—
1. 昔のネットワークは「大声で叫んでいた」?(ARPの限界)
IPv4の世界では、通信相手のMACアドレス(物理的な住所)を知るために、ネットワーク内の全員に対して「◯◯というIPアドレスを持っている人は誰ですか?」と大声で叫ぶ必要がありました。これがARPです。
しかし、全員に聞こえるように叫ぶ(ブロードキャスト)のは、セキュリティ的にも効率的にもあまりよろしくありません。そこでIPv6では、この無駄を省き、よりスマートに相手を探す仕組みとしてNDPが導入されました。
—
2. IPv6の郵便配達員:NDPの4つの主役
NDPの役割は、大きく分けて「相手探し(アドレス解決)」と「住所の配布(プレフィックス配布)」の2つです。これを現実の郵便配達に例えてみましょう。
① 近隣要請(NS:Neighbor Solicitation)
「誰か『〇〇さん』の住所(MACアドレス)を知りませんか?」
自分が送りたい相手のIPアドレスは知っているけれど、物理的な住所がわからないときに、近所のネットワーク機器に向けて投げる「問い合わせ」です。
② 近隣広告(NA:Neighbor Advertisement)
「はい、私がその『〇〇』です。私の住所はこれですよ」
NSを受け取った本人が、「自分ですよ!」と自分の住所を名乗り出る返信です。
③ ルーター要請(RS:Router Solicitation)
「この街のルール(ネットワーク設定)を教えてくれるルーターさんはどこですか?」
PCをネットワークに繋いだ直後、まずは設定を教えてくれるボス(ルーター)を探すために投げかける「挨拶」です。
④ ルーター広告(RA:Router Advertisement)
「ここがこの街のルールです。ゲートウェイは私で、ネットワークのプレフィックスはこれを使ってくださいね」
ルーターが定期的に、あるいはRSに応答して発信する「街のガイドブック」のような情報です。
—
3. 実践!LinuxでNDPの動きを覗いてみよう
理論だけではつまらないですよね。実際にLinuxサーバーを使って、このNDPがどのようにやり取りされているかを確認してみましょう。
まずは、自分の端末が把握している近隣の情報を確認するコマンドです。
# 現在の近隣キャッシュ(住所録)を表示するコマンド
ip -6 neigh show
# 実行結果のイメージ
# fe80::20c:29ff:fe12:3456 dev eth0 lladdr 00:0c:29:12:34:56 STALE
# ↑「このIPアドレスの機器は、このMACアドレスにいますよ」という情報
ここで STALE と出ているのは、「しばらく通信していないので、また今度確認しますね」という状態を指します。もし通信が発生すれば、NSとNAが飛び交い、状態が REACHABLE に変わります。
また、ネットワークに繋いだ瞬間のパケットをキャプチャしたい場合は、tcpdump を使うのが現場の鉄則です。
# ICMPv6の通信だけをフィルタリングして覗き見する
# -i eth0: インターフェース指定
# icmp6: ICMPv6プロトコルのみ
sudo tcpdump -i eth0 icmp6
このコマンドを叩いた状態で、PCを再起動したりケーブルを抜き差ししたりしてみてください。画面上に RS や RA が大量に流れてくるのがわかるはずです。これが、あなたのPCがネットワークに参加するための「挨拶」の瞬間です!
—
4. なぜこれが「ゼロトラスト」につながるのか
「ただの通信手順でしょ?」と思うかもしれませんが、ここがネットワークセキュリティの入り口です。
従来のIPv4(ARP)は、悪意のある攻撃者が「私がそのルーターです!」と嘘の広告(ARPスプーフィング)を出すのが非常に簡単でした。しかし、IPv6のNDPでは、SEND(SEcure Neighbor Discovery)といった暗号化技術を組み合わせることで、「本当にそのルーターが発信したものか?」を検証する仕組みを構築できます。
ゼロトラストアーキテクチャでは、「ネットワーク内だから安心」という考えを捨てます。NDPのような基礎的なプロトコルが、どのように認証されているかを知ることは、強固な防御を築くための第一歩になるのです。
—
まとめ:ネットワークは「対話」でできている
いかがでしたか?
ICMPv6によるNDPの仕組みは、決して小難しいビットの羅列ではなく、「相手を探し、ルールを確認し、正しく通信を始める」ための丁寧な会話なのです。
1. RS/RAで街のルールを知る
2. NS/NAで相手の顔(MACアドレス)を確認する
この流れを頭に入れておくだけで、ネットワークのトラブルシューティングの精度は劇的に上がります。「通信できない」という壁にぶつかったとき、まずは ip -6 neigh や tcpdump を使って、パケットたちの会話に耳を傾けてみてください。きっと、解決の糸口が見えてくるはずですよ!
それでは、次回の記事もお楽しみに!現場からは以上です。
コメント