LLA(Link-Local Address)とは?IPv6/IPv4の基礎、運用、セキュリティを徹底解説

はじめに — LLA(Link-Local Address)とは何か

LLA(Link-Local Address、リンクローカルアドレス)は、IPネットワークにおける「そのリンク(セグメント)内だけで意味を持つ」アドレスのことを指します。IPv6では一般的に「リンクローカル IPv6 アドレス」を意味し、プレフィックスは FE80::/10(慣例的には FE80::/64 を使用)です。IPv4にも同様の概念があり、APIPA(Automatic Private IP Addressing)と呼ばれる 169.254.0.0/16 が該当します。

なぜリンクローカルが必要か:役割とユースケース

  • 隣接ノードとの通信:Neighbor Discovery(ND)やアドレス自動設定(SLAAC)など、隣接ノードとの基本的なプロトコルはリンクローカルアドレスを用いて行われます。これらはルータを跨いで到達することを想定していません。

  • 初期設定と自動構成:インタフェースがIPv6を有効化すると、必ずリンクローカルアドレスが割り当てられます。これにより、同一セグメント内での通信や設定・管理が可能になります。

  • 制御プレーンの通信:ルータのネイバー発見、ルーティングプロトコルの一部(例:OSPFv3ではリンクローカルを使用する場合がある)など、管理目的の通信で利用されます。

IPv6 の LLA:技術的詳細

IPv6 のリンクローカルプレフィックスは RFC 4291 によって FE80::/10 と定義されています。実務上は各インタフェースに 64 ビットのネットワークプレフィックス(FE80::/64)が割り当てられ、下位 64 ビットがインタフェース識別子(IID)になります。

IID の生成方法は複数存在します:

  • EUI-64:古典的手法で、MAC アドレス(48 ビット)を 64 ビットの IID に変換して埋め込みます(FF:FE の挿入、ユニバーサル/ローカルビット反転)。

  • プライバシー拡張(RFC 4941):外向き通信のプライバシーを保つため、一時的なランダム IID を生成します。これによりトラッキング耐性が向上します。

  • セマンティックに不透明な安定 IID(RFC 7217):再起動後も安定でかつ追跡されにくい IID を生成するための方式。組織ポリシーに応じて採用されます。

スコープとゾーン ID(スコープ識別子)の注意点

リンクローカルアドレスはスコープが「link」でありルータによって経路が転送されないため、同一マシン上に複数のインタフェースがある場合はどのインタフェースを使うかを明示する必要があります。これをゾーン ID(スコープ ID)と呼びます。

表記例:

  • Linux/macOS: fe80::1%eth0(%の後にインタフェース名)

  • Windows: fe80::1%12(%の後にインタフェースの数値インデックス)

IPv4 の LLA(APIPA)との違い

IPv4 のリンクローカルは RFC 3927 が規定する 169.254.0.0/16(APIPA)です。これはDHCP サーバが見つからない場合にホストが自動的に自己割当てするアドレスで、同一セグメント内での限定的な通信に用いられます。IPv6 の LLA と概念は似ていますが、IPv6 では LLA がプロトコル動作の基盤として必須である点が異なります(全ての IPv6 対応インタフェースは LLA を持つ)。

LLA と主要プロトコルの関係

  • Neighbor Discovery(ND: RFC 4861):アドレス解決(IPv4 の ARP 相当)、近傍の到達性確認、重複アドレス検出(DAD)などにリンクローカルを使用します。

  • Stateless Address Autoconfiguration(SLAAC: RFC 4862):ルータからの RA(Router Advertisement)を受け取り、LLA を用いて自動的にグローバルアドレスを生成します。

  • DHCPv6:クライアントとリレー/サーバが同一リンクにいる場合、初期のやり取りでリンクローカルが使われることがありますが、DHCPv6 はリレーエージェントを介して別リンクのサーバとも連携します。

セキュリティリスクと対策

リンクローカルは便利な一方で、いくつか重要なセキュリティリスクを伴います:

  • RA スプーフィング(偽 Router Advertisement):攻撃者が偽の RA を流し、被害者を悪意あるルータに誘導したりトラフィックを変更する可能性。

  • Neighbor Advertisement/ Solicitation の改竄:ND を悪用した中間者攻撃や重複検出の妨害。

  • DAD の脆弱性:悪意あるノードが故意にアドレス衝突を報告して正当なノードを疎外することが可能。

対策:

  • RA-Guard やスイッチでのポートベースフィルタリング(管理者起点の RA のみ許可)を実施する。ただし仕様や実装上の迂回方法が知られているため完全ではありません。

  • SeND(Secure Neighbor Discovery, RFC 3971)の導入:暗号的に検証された ND を用いることで改竄耐性を高める。ただし管理の複雑さと鍵管理が障壁になります。

  • スイッチのポートセキュリティ、802.1X による認証、PSE(Port Security Enforcement)などの物理層/データリンク層の防御。

  • 監視と検出:RA の異常を検知する IDS/IPS、ndpmon のような ND 監視ツール、ログ監視による早期発見。

運用とトラブルシュートの実践例

よくある問い合わせ・事象と確認手順:

  • 「同一セグメントなのに疎通しない」—> 各ホストでリンクローカルアドレスが割り当てられているかを確認(Linux: ip -6 addr show; Windows: ipconfig /all)。

  • 「特定アドレスに ping が通らない」—> ping6 や ping の際にゾーン ID を忘れていないか確認(例: ping6 fe80::abcd%eth0、Windows では数値インデックスを使用)。

  • 「隣接解決ができない」—> ndp テーブル(Linux: ip -6 neigh show)を確認し、必要に応じて削除して再解決を促す。

  • 「重複アドレス検出でアドレスが取れない」—> DAD のログや ND のトラフィックをキャプチャして、偽の NA が送信されていないかを分析する。

実務上のベストプラクティス

  • 不要なインタフェースの IPv6 を無効化する(グローバル通信が不要な場合)ことで攻撃面を削減する。ただし IPv6 を完全に無視するのは推奨されないため、計画的な運用が必要。

  • スイッチ/ルータでの RA 制御とポートベースセキュリティを導入する。管理用 VLAN を分離し、RA を信頼できるポートのみに限定する。

  • エンドポイントでは安定かつプライバシー配慮された IID 生成(RFC 7217 等)を採用する。必要に応じてプライバシー拡張を有効化する。

  • 監視体制:RA の異常、ND の急増、不審なリンクローカルトラフィックをアラート化する。

  • 運用手順書にゾーン ID の取り扱い、リンクローカルアドレスを使ったテスト手順を記載しておく。

典型的な導入ケースと注意点

小規模ネットワークや検証環境では LLA を利用した管理が便利ですが、本番環境では以下の点に注意してください:

  • LLA はルータを越えないため、リモートからの管理やログ収集にはグローバル/ユニークローカルアドレス(ULA)を併用する必要があります。

  • スイッチのマネージメントアクセスやプロトコルが LLA ベースの場合、管理ホストも同一リンクに存在することが必須です。

  • デバイスの再起動やインタフェース再初期化で IID が変わると管理が煩雑になるため、安定したIID方式を採るかDNSなどで名前解決を併用すると良いです。

まとめ

LLA(リンクローカルアドレス)は、IP ネットワーク、特に IPv6 において極めて基本的かつ重要なコンポーネントです。隣接ノードとの通信、SLAAC、ND などの基盤を支える一方で、RA スプーフィングやND 攻撃といったリスクもあります。運用面ではゾーン ID の扱いやモニタリング、スイッチでの RA 制御といった対策を講じることが現実的かつ有効です。管理者は LLA の特性を正しく理解し、設計段階からのセキュリティ対策と運用ルール整備を行うことが重要です。

参考文献