ITの教科書検索
入門・発展ページ読了 約9分

CDP・LLDPとは ― 違いと隣接機器を見つける仕組み

CDPとLLDPは、直接つながった隣の機器を自動で見つけるプロトコルです。Cisco独自と標準の違い、show cdp neighborsの出力の読み方、外部向けのポートで止める理由が分かります。

目次
  1. CDP・LLDPとは
  2. 隣の機器だけを知る仕組み
  3. CDPとLLDPの違い
  4. 送られる情報とTLV
  5. showコマンドの出力の読み方
  6. セキュリティ上の注意
  7. SNMPやコマンドとの違い
  8. 練習問題

CDP・LLDPとは、隣の機器を自動で見つけるプロトコル

CDPとLLDPは、直接つながった隣の機器を自動で見つけるプロトコルです。各機器が自分の名前やポートの情報を定期的に送り、受け取った機器が表にして覚えます。

CDP(Cisco Discovery Protocol)は、Cisco機器で動くプロトコルです。LLDP(Link Layer Discovery Protocol)は、IEEE 802.1ABで標準化されたプロトコルです。どちらも、データリンク層で動きます。

配線図が古くても、どのポートに何がつながっているかを機器から確かめられます。監視でよく使うSNMPは、管理サーバが機器に問い合わせる仕組みで、役割が違います。

隣の機器だけを知る仕組み

各機器は、つながっているポートから、自分の情報を入れたメッセージを一定の間隔で送ります。メッセージには保持時間が入っていて、受け取った機器は、その時間が過ぎるまで情報を表に残します。新しいメッセージが届かなければ、保持時間が過ぎたところで表から消えます。

Cisco スイッチ A隣の表:B だけCisco スイッチ B隣の表:A と C他社スイッチ C隣の表:B だけCDP または LLDPLLDP
各機器は、直接つながった隣に自分の情報を送ります。スイッチAの表に載るのはBだけで、Bの先にあるCは載りません。Ciscoのスイッチどうしは、CDPかLLDPで情報を交換します。他社のスイッチとの間は、標準規格のLLDPで交換します。

メッセージが届くのは、直接つながった機器だけです。スイッチAは、Bの先にあるCを知りません。ネットワーク全体の地図を作るには、各機器の表を順にたどります。

CDPとLLDPの違い

大きな違いは、Cisco独自か標準規格かです。Ciscoのドキュメントは、LLDPを、CDPに対応しない機器との相互接続のための規格と説明しています。異なるメーカーの機器が混ざるネットワークでは、LLDPで情報を交換します。

CDPLLDP
規格Cisco機器で動くプロトコルIEEE 802.1AB
他社機器との接続Cisco機器どうしで使うCDPに対応しない機器とも相互接続できる
送信間隔の既定値60秒30秒
保持時間の既定値180秒120秒
Ciscoスイッチでの既定の状態Catalyst 2960-Xでは有効機種で違う。Catalyst 2960では有効、ME 3400Eでは無効
止めるコマンド(全体)no cdp runno lldp run

表の既定値は、Ciscoの設定ガイドに載っている値です。どちらも設定で変えられます。

0秒60秒120秒180秒240秒300秒CDP60秒ごとに送信保持 180秒表から消えるLLDP30秒ごとに送信保持 120秒表から消える相手が止まるは、情報を送った時点
どちらも120秒の送信を最後に、相手の機器が止まったとします。受け取った側は、最後の送信から保持時間が過ぎるまで、その機器を表に残します。既定値では、CDPは300秒で、LLDPは240秒で表から消えます。

送信間隔が短いほど、機器の変化が早く表に反映されます。保持時間が長いほど、メッセージが何回か届かなくても、情報は表に残ります。

送られる情報とTLV

Ciscoの設定ガイドによると、CDPを使うと隣の機器の種類と、SNMPで問い合わせられるアドレスが分かります。詳細表示では、機器のIPアドレス、機種、ソフトウェアのバージョンまで見えます。

LLDPは、送る情報をTLVという単位に分けます。TLVは、Type、Length、Valueの3つで1組の情報です。Typeが情報の種類、Lengthが長さ、Valueが中身を表します。

Ciscoのスイッチの資料は、LLDPで扱うTLVの例として、次を挙げています。

  • ポートの説明
  • システム名
  • システムの説明
  • システムの能力
  • 管理アドレス

IP電話の接続向けにTLVを足した拡張が、LLDP-MEDです。この記事では扱いません。

showコマンドの出力の読み方

隣の機器の表は、スイッチやルータの画面で show cdp neighbors を打つと見られます。次の出力は、Ciscoのコマンドリファレンスの形に合わせた例です。列の意味は、表のとおりです。

show cdp neighbors隣の機器の表を見る(Cisco機器)
Switch-A# show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater

Device ID          Local Intrfce  Holdtme  Capability  Platform  Port ID
sw-b.example.com   Gig 1/0/1      179      S           WS-C2900  Gig 1/0/24
rt-1.example.com   Gig 1/0/2      155      R           4500      Gig 0/0
列意味
Device ID隣の機器の名前
Local Intrfce自分のどのポートで受け取ったか
Holdtme受け取った側が、この情報を捨てるまでの時間(秒)。隣が既定の保持時間180秒のままなら、180以下の値が並ぶ
Capability隣の機器の種類。Rはルータ、Sはスイッチ。凡例は出力の先頭に出る
Platform隣の機器の機種
Port ID隣のどのポートにつながっているか

1行目は、自分のGig 1/0/1につながる隣がsw-b.example.comというスイッチで、隣のGig 1/0/24と向き合っていることを示します。

show cdp neighbors detail を打つと、隣のIPアドレスやソフトウェアのバージョンまで出ます。Versionの行から先が、隣の機器のソフトウェアの情報です。次の出力では、長いので省略しています。

show cdp neighbors detail隣の詳しい情報を見る(Cisco機器)
Switch-A# show cdp neighbors detail
-------------------------
Device ID: sw-b.example.com
Entry address(es):
  IP address: 192.0.2.11
Platform: cisco WS-C2900,  Capabilities: Switch
Interface: GigabitEthernet1/0/1,  Port ID (outgoing port): GigabitEthernet1/0/24
Holdtime : 156 sec
Version :
(ソフトウェアのバージョンが続く)
show lldp neighborsLLDPで見つけた隣を見る(出力の形はIOS XRの例)
Router# show lldp neighbors
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other
Device ID      Local Intf      Hold-time   Capability   Port ID
sw-b           Gi0/0/0/1       117         B            Gi1/0/23
Total entries displayed: 1

LLDPの表は、show lldp neighbors で見ます。列の並びは、機種によって少し変わります。Hold-timeは、CDPのHoldtmeと同じ、情報を捨てるまでの時間です。隣がLLDPの既定の保持時間120秒のままなら、120以下の値が並びます。

セキュリティ上の注意

CDPとLLDPが運ぶ機器名・機種・ソフトウェアのバージョン・IPアドレスは、攻撃者にとって内部の構成を調べる手がかりになります。Ciscoのセキュリティのガイドも、どちらも偵察やネットワークの地図作りに使われるおそれがあると注意しています。信頼できないネットワークにつながるインターフェースでは、無効にするよう求めています。

no cdp enableインターフェースでCDPを止める
Switch-A(config-if)# no cdp enable
no lldp transmit・no lldp receiveインターフェースでLLDPの送信と受信を止める
Switch-A(config-if)# no lldp transmit
Switch-A(config-if)# no lldp receive

機器全体で止めるときは、no cdp run と no lldp run を使います。IP電話なども、CDPのメッセージをやり取りしています。止めると接続に影響する場合があるので、どのポートで止めるかは、何がつながっているかで決めます。

SNMPやコマンドとの違い

CDPとLLDPが伝えるのは、隣の機器の情報だけです。SNMPは、管理サーバが機器に問い合わせて、状態を集める仕組みです。CDPで隣のSNMPエージェントのアドレスを知り、そこにSNMPで問い合わせる使い方もできます。

show cdp neighbors や show lldp neighbors は、スイッチやルータの画面で打つコマンドです。PCのnetstat・ss・digのコマンドとは、打つ場所が違います。スイッチやルータの働きは、ハブ・スイッチ・ルータの違いで説明しています。

練習問題(全6問)

Q1CDPとLLDPの共通点として正しいものは?
Q2LLDPを標準化している規格として正しいものは?
Q3Ciscoのドキュメントに載る既定値の組み合わせとして正しいものは?
Q4Ciscoのスイッチと他社のスイッチを直接つないだとき、双方の情報を交換するために使うプロトコルは?
Q5スイッチAの隣にスイッチB、Bの隣にスイッチCがつながっています。Aの隣接機器の表に載るのは?
Q6外部のネットワークにつながるインターフェースで、CDPを止めるコマンドは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

ネットワークを初めて学ぶ人向けの入門書です。

目的別の本の選び方を見る

ネットワークの記事を探す