![見出し画像](https://assets.st-note.com/production/uploads/images/137098059/rectangle_large_type_2_376414e0141e0f4f58471b5bcd637750.png?width=1200)
自動で近隣とコミュニケーションできるようになる!リンクローカルアドレス
「とりあえず自動的に割り振られたら便利なことって多いですよね…」
はい、こんにちは!松井真也です。シリーズ「着実に普及していくIPアドレスの進化版:IPv6」の第7回でございます。
前回は、ユニキャストアドレスのうち、ユニークローカルアドレス(ULA)を取り上げました。IPv4でいえば「プライベートIPアドレス」に当たるものです。膨大なアドレス空間を持つにも関わらず、ネットワーク内での利用可能なアドレスが設けられているのですね!
さて、今回は、ユニキャストアドレスのうち、最後にリンクローカルアドレスについて取り上げます。実は、両方とも同一組織内で使われるものですが、何が違うのでしょうか?ULAとの違いを意識しつつ、話を進めます!
早速見ていきましょう!
リンクローカルアドレスの基本
リンクローカルアドレスは、同じ物理ネットワーク(リンク)内のデバイス間での通信に使われる特殊なアドレスです。
ULAと同様に、外部ネットワークやインターネットとは直接通信できないことは共通しています。なぜユニークローカルアドレス(ULA)に加えて、このようなアドレスが存在するのでしょうか?
![](https://assets.st-note.com/img/1712954828827-LOkdIrrVBh.png)
実は、ULAとリンクローカルアドレスは、異なる目的と機能を持っています。
上図にご注目ください。ULAは組織内のネットワークで広範囲にわたる通信をサポートするために設計されています。
これに対し、リンクローカルアドレスはもっと限定された範囲、具体的には同一ネットワークセグメント内でのみ通信が可能です。
ULAを使えば、組織内でルーティングすることが可能で、複雑なネットワーク設計を実現できます。一方で、リンクローカルアドレスは、ルータを超えることができず、デバイスの直接的な接続と通信に最適化されています。
まずは、リンクローカルアドレスは、「物理的なリンクに限定されていて、ULAよりも狭い範囲でしか使えないんだな~」と考えましょう。
リンクローカルアドレスの特徴
IPv6でのリンクローカルアドレスは「fe80::/10」の範囲に属しています。この表記法、ちょっと分かりにくいですね。
ビットに戻すと、
f=1111
e=1110
8=1000
となり残りは0ですね。プレフィックス長は「10」ですから、「1111111010」で始まることが分かります。これがリンクローカルアドレスの目印になります。
では、リンクローカルアドレスの例を見てみましょうか。
fe80::12e2:d5ff:fe14:2500
fe80::213:72ff:fe37:7f6e
fe80::82ae:f9ff:fedd:ba98
ん?全部「fe80::」で始まってますな。10ビットまでが固定ではなかったのでしょうか?
実は、この10ビットの後、次の54ビット(つまり、11ビット目から64ビット目)は0で埋められます。これにより、リンクローカルアドレスは 「fe80:0:0:0::」略して 「fe80::」で始まることになります。
なんでこのようにプレフィックスをゼロでパッディングしてしまうのでしょうか?
実は、リンクローカルアドレスは、そもそもルータを超えて転送されないため、ネットワーク上の特定のセグメント内でのみ意味を持ちます。このため、グローバルユニキャストのように広範囲にわたるルーティングに関する情報をそもそも含む必要がありません。
また、ゼロが連続することで転送や設定のプロセスが簡素化されてエラーの可能性が減少します。
とにかく、IPv6はアドレスが長すぎて×2、こういった工夫が大事なのですね。
自動的な割り当て
さて、リンクローカルアドレスの重要な特徴は、自動的な割り当てです。
端末がネットワークに接続されると自動的に割り当てられます。
特に初期設定時や近隣探索など、ローカルな通信を行うために使われるようです。詳しいとは、すみません、勉強不足により割愛します…。
はい、本日はここまで!これでユニキャストアドレスは終了しました。なんか小難しいアドレスの法則などを説明してきましたが、アドレスが「2」で始まれば「GUA」、「fd」で始まれば「ULA」、「fe」で始まれば「リンクローカル」と考えても、当面、問題はないと思います。
次回は、マルチキャストの話をしていきましょう!