ND インスペクション/スヌーピング

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の主要な役割

  1. アドレス解決:
    • IPv6アドレスを対応するMACアドレス(リンク層アドレス)に解決するために使用されます。これにより、同じリンク上のデバイス間で直接通信が可能になります。
  2. ルーター検出:
    • ホストがネットワーク内のルーターを自動的に検出するのに使用されます。これにより、ホストはネットワークへの接続設定(デフォルトゲートウェイなど)を自動的に取得できます。
  3. アドレス自動設定:
    • IPv6では、ホストがネットワークに接続したときに自動的にIPv6アドレスを設定する**SLAAC(Stateless Address Autoconfiguration)**機能をサポートしています。NDPはこの自動アドレス設定をサポートします。
  4. 近隣キャッシュ管理:
    • 各デバイスは「Neighbor Cache」を持ち、リンク上の他のデバイス(隣接ノード)に関する情報(IPv6アドレスとMACアドレスのペア)を保持します。このキャッシュを使うことで、効率的な通信が実現されます。
  5. 到達可能性の確認:
    • デバイスが他の隣接ノードと通信可能であることを確認します。これにより、デバイス間で障害が発生している場合に、代替ルートを使うなどの動作が可能になります。

Neighbor Discovery Protocolのメッセージ

NDPは、以下の5つの主要なICMPv6メッセージを使用して、IPv6ネットワーク内の隣接デバイスの情報を取得します。

  1. Neighbor Solicitation(NS):
    • IPv6アドレスから対応するMACアドレスを取得するためのメッセージです。ARPに相当する機能で、ホストやルーターがリンク上の他のデバイスを見つけるために送信します。
    • 送信されると、指定されたIPv6アドレスを持つデバイスが応答します。
  2. Neighbor Advertisement(NA):
    • Neighbor Solicitation(NS)メッセージへの応答として送信されるメッセージです。また、デバイスが自身のリンク層アドレスをアドバタイズする際にも使われます。
    • NAメッセージはIPv6アドレスとそれに対応するMACアドレスを他のデバイスに通知します。
  3. Router Solicitation(RS):
    • 新しくネットワークに参加したホストが、接続しているネットワークのルーターを発見するために送信するメッセージです。
    • ホストはデフォルトゲートウェイとして使用できるルーターを探すためにRSメッセージを送ります。
  4. Router Advertisement(RA):
    • ルーターが定期的に、またはRouter Solicitation(RS)メッセージに応答して送信するメッセージです。
    • RAメッセージには、ルーターの情報、ネットワークプレフィックス、デフォルトゲートウェイ、DNSサーバなどの設定情報が含まれています。これにより、ホストはIPv6アドレスを自動的に設定することができます。
  5. 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 SpoofingNeighbor 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 valueIPv6アドレスの数を制限
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 allvlan [VLAN-ID ]]

コマンド内容
vlan対象のVLANを指定します。
add検査するVLANを追加します。
except指定したVLAN以外を検査します。
noneVLANを検査しません。
remove指定したVLANを検査しません。
allすべてのVLANを検査します。