NDとは
IPv6のND(Neighbor Discovery Protocol, NDP)は、IPv6ネットワークにおいてホスト、ルーター、リンク層デバイスなどがネットワーク内でお互いを発見し、通信するために使用するプロトコルです。NDPはIPv6における重要なプロトコルであり、IPv4で使用されるARP(Address Resolution Protocol)、ICMPルーター検出、およびICMPリダイレクトの機能を統合し、より効率的かつセキュアに通信を実現します。
NDPはICMPv6(Internet Control Message Protocol for IPv6)の拡張として実装されており、以下の主要な機能を持っています。
IPv6のNeighbor Discovery Protocolの主要な役割
- アドレス解決:
- IPv6アドレスを対応するMACアドレス(リンク層アドレス)に解決するために使用されます。これにより、同じリンク上のデバイス間で直接通信が可能になります。
- ルーター検出:
- ホストがネットワーク内のルーターを自動的に検出するのに使用されます。これにより、ホストはネットワークへの接続設定(デフォルトゲートウェイなど)を自動的に取得できます。
- アドレス自動設定:
- IPv6では、ホストがネットワークに接続したときに自動的にIPv6アドレスを設定する**SLAAC(Stateless Address Autoconfiguration)**機能をサポートしています。NDPはこの自動アドレス設定をサポートします。
- 近隣キャッシュ管理:
- 各デバイスは「Neighbor Cache」を持ち、リンク上の他のデバイス(隣接ノード)に関する情報(IPv6アドレスとMACアドレスのペア)を保持します。このキャッシュを使うことで、効率的な通信が実現されます。
- 到達可能性の確認:
- デバイスが他の隣接ノードと通信可能であることを確認します。これにより、デバイス間で障害が発生している場合に、代替ルートを使うなどの動作が可能になります。
Neighbor Discovery Protocolのメッセージ
NDPは、以下の5つの主要なICMPv6メッセージを使用して、IPv6ネットワーク内の隣接デバイスの情報を取得します。
- Neighbor Solicitation(NS):
- IPv6アドレスから対応するMACアドレスを取得するためのメッセージです。ARPに相当する機能で、ホストやルーターがリンク上の他のデバイスを見つけるために送信します。
- 送信されると、指定されたIPv6アドレスを持つデバイスが応答します。
- Neighbor Advertisement(NA):
- Neighbor Solicitation(NS)メッセージへの応答として送信されるメッセージです。また、デバイスが自身のリンク層アドレスをアドバタイズする際にも使われます。
- NAメッセージはIPv6アドレスとそれに対応するMACアドレスを他のデバイスに通知します。
- Router Solicitation(RS):
- 新しくネットワークに参加したホストが、接続しているネットワークのルーターを発見するために送信するメッセージです。
- ホストはデフォルトゲートウェイとして使用できるルーターを探すためにRSメッセージを送ります。
- Router Advertisement(RA):
- ルーターが定期的に、またはRouter Solicitation(RS)メッセージに応答して送信するメッセージです。
- RAメッセージには、ルーターの情報、ネットワークプレフィックス、デフォルトゲートウェイ、DNSサーバなどの設定情報が含まれています。これにより、ホストはIPv6アドレスを自動的に設定することができます。
- Redirect:
- ルーターがホストに対して、より最適なルートが存在することを通知するためのメッセージです。これにより、ホストはより効率的な通信経路を使用できるようになります。
NDインスペクションとは
**NDインスペクション(NDI)**は、NDPメッセージの内容を検査し、不正なメッセージを検出・ブロックする積極的なセキュリティ機能です。NDインスペクションは、NDスヌーピングの監視に加え、具体的にどのメッセージが不正であるかを特定し、そのメッセージをネットワークに流さないようにします。
NDスヌーピングとは
IPv6のND(Neighbor Discovery)スヌーピングは、IPv6ネットワークにおけるNeighbor Discovery Protocol(NDP)メッセージを監視・解析し、不正なネットワークアクティビティを検出・防止するためのセキュリティ機能です。この機能は、IPv4ネットワークでのARPスヌーピングに相当し、IPv6環境における様々なセキュリティリスクを軽減します。
NDスヌーピングとNDインスペクションの違い
| 特徴 | NDスヌーピング(Neighbor Discovery Snooping) | NDインスペクション(Neighbor Discovery Inspection) |
|---|---|---|
| 主な機能 | NDPメッセージを監視する | NDPメッセージを検査し、不正なメッセージをブロック |
| 動作の特性 | パッシブにNDPメッセージを確認 | 積極的にNDPメッセージを検査・検証 |
| 攻撃の防止 | Neighbor Cache Poisoning、Neighbor Spoofing | Neighbor Spoofing、Rogue Router Advertisement |
| 主な使用目的 | ネットワーク上のデバイスのアドレス追跡 | 不正なNDPメッセージの送信を防ぐ |
| 統合機能 | デバイストラッキング、DHCPスヌーピング | DHCPスヌーピング、RAガードとの統合 |
IPv6 NDスヌーピングの設定方法
グローバルでの設定
ポリシーを選択してNDインスペクションを有効にします。
Switch(config)#ipv6 nd inspection policy [ポリシー名]
Switch(config-nd-inspection)#[コマンド]
NDインスペクションでの設定
| コマンド | 内容 |
|---|---|
| device-role {host | switch} | 役割をホストまたはスイッチとして設定 |
| limit address-count value | IPv6アドレスの数を制限 |
| tracking {enable [reachable-lifetime {value | infinite}] | disable [stale-lifetime {value | infinite}]} | トラッキング機能を管理します |
| trusted-port | 信頼できるポートに設定 |
| validate source-mac | ソースMACアドレスの正当性を検証 |
インターフェイスへの設定
インターフェイスを指定してNDPインスペクション機能を有効にします。
Switch(config)#intergace interface-id
Switch(config-nd-inspection)#ipv6 nd inspection [ attach-policy [ ポリシー名 ] | vlan { add | except | none | remove | all} vlan [VLAN-ID ]]
コマンド 内容 vlan 対象のVLANを指定します。 add 検査するVLANを追加します。 except 指定したVLAN以外を検査します。 none VLANを検査しません。 remove 指定したVLANを検査しません。 all すべてのVLANを検査します。