IPv6の「挨拶」を理解しよう!ping6で紐解くネットワークの郵便配達
こんにちは!NOCで日々、ネットワークの荒波と格闘しているシニアエンジニアです。
皆さんは、インフラの世界に飛び込んだばかりの頃、「IPv6ってなんだか難しそう…」と身構えてしまった経験はありませんか?IPv4までは住所が数字の羅列で分かりやすかったのに、IPv6になった途端、突然のアルファベット混じりの長い住所。これを見ただけで「うわっ」となってしまう気持ち、痛いほど分かります。
でも、安心してください。ネットワークの本質は、いつの時代も「郵便配達」と一緒です。今回は、IPv6の世界で最も基本となる疎通確認コマンド ping6 を通じて、パケットたちがどのように相手を見つけ、挨拶を交わしているのか、その舞台裏を覗いていきましょう!
—
1. そもそも ping6 は何をしているのか?
ping6 は、相手先に「生きてますかー?」と声をかける、いわばネットワーク版の「呼び鈴」です。
IPv4の世界では ping を打てば事足りていたものが、IPv6になると ping6(OSによっては単に ping でIPv6も扱えますが)を使う必要があります。なぜなら、IPv6はIPv4とは「配達ルール」そのものが異なるからです。
郵便配達に例えるなら、IPv4は「番地を書けば届く」シンプルな仕組みですが、IPv6は「番地だけでなく、どのルートで届けるか、途中の関所はどう通るか」を非常に厳格に決めています。そのため、呼び鈴を押すためのプロトコルも、IPv4用の ICMP から、IPv6用の ICMPv6 へと「アップグレード」されているのです。
—
2. IPv6の「ご近所付き合い」:ICMPv6の魔法
ここが一番面白いポイントです。IPv4では、相手のMACアドレス(端末の固有ID)を知るために ARP というプロトコルを使って、「このIPアドレスの人は誰ですかー!」とネットワーク全体に叫んで探していました。
しかし、IPv6ではもっとスマートです。ICMPv6 というプロトコルがその役割を担い、「近所の端末同士で仲良くやろうぜ」というルール(Neighbor Discovery)が組み込まれています。
ping6 を打つということは、単にパケットを送るだけではなく、実は裏側でこんな会話が行われているんです。
1. 「おーい、相手の端末よ、君のMACアドレスを教えてくれないか?」(近隣探索)
2. 「はい、私のMACアドレスはこれですよ」(応答)
3. 「よし、繋がった!では『生きてますか?』を送信します」(Echo Request)
4. 「はい、生きてますよ!」(Echo Reply)
この一連の動作が、私たちが ping6 と打った瞬間に、コンマ数秒の世界で行われているわけです。
—
3. 実践!コマンドで確かめる疎通の様子
では、実際に現場で使うコマンドを見てみましょう。ここではLinux環境を想定します。
# 基本的な疎通確認
# 宛先IPv6アドレスを指定して実行します
ping6 2001:db8::1
# 回数を指定して実行(現場ではこれが基本!)
# 5回だけ送って、結果を確認します
ping6 -c 5 2001:db8::1
# インターフェースを指定する場合
# リンクローカルアドレス(fe80::...)に打つときは必須です
ping6 -I eth0 fe80::1234:5678:abcd:ef01
現場で役立つTips
-c 5: ずっと打ち続けるとログが流れてしまうので、回数制限をかけるのがマナーです。-I eth0: リンクローカルアドレス(自分のPCのネットワークカードから直接繋がっている先)に送る場合、どのケーブル(インターフェース)から出すのかを指定しないと、OSは「どっちの出口から出せばいいの?」と迷子になってしまいます。
—
4. もし疎通が取れなかったら?(トラブルシューティングの極意)
ping6 が失敗したとき、初心者は焦ってしまいます。でも、百戦錬磨のエンジニアはこう考えます。
「まずは、どこまで行けているかを確認しよう」
1. 自分自身に届くか? (ping6 ::1)
- 自分自身のドアを叩いて反応がなければ、OSのネットワーク設定自体が壊れています。
2. 同じネットワーク内のルーターに届くか?
- 近所まで行けていないなら、LANケーブルの物理的な断線や、スイッチの設定ミスを疑います。
3. ファイアウォール(iptables/nftables)は?
- 意外と多いのがこれ。
ICMPv6の通信をセキュリティ設定でブロックしてしまっているケースです。「呼び鈴は鳴らしているのに、家主が居留守を使っている」状態ですね。
—
最後に:ネットワークは「体験」です
教科書で ICMPv6 のパケット構造を暗記するよりも、実際に ping6 を打って、返ってくる time=XXms の数字を眺めるほうが、よっぽどネットワークの本質を掴めます。
最初は怖がらずに、自分のPCからルーターへ、あるいは検証環境同士でパケットを投げまくってみてください。パケットが光の速さで世界を駆け巡り、無事に帰ってくる。その一瞬のやり取りに、インターネットの深淵が詰まっています。
皆さんのネットワークライフが、より豊かでトラブル知らずなものになりますように!また現場でお会いしましょう。
コメント