CDP・LLDPとは ― 違いと隣接機器を見つける仕組み
CDPと
CDP・LLDPとは、隣の機器を自動で見つけるプロトコル
CDPとLLDPは、直接つながった隣の機器を自動で見つけるプロトコルです。各機器が自分の名前やポートの情報を定期的に送り、受け取った機器が表にして覚えます。
CDP(Cisco Discovery Protocol)は、Cisco機器で動くプロトコルです。LLDP(Link Layer Discovery Protocol)は、IEEE 802.1ABで標準化されたプロトコルです。どちらも、データリンク層で動きます。
配線図が古くても、どのポートに何がつながっているかを機器から確かめられます。監視でよく使うSNMPは、管理サーバが機器に問い合わせる仕組みで、役割が違います。
隣の機器だけを知る仕組み
各機器は、つながっているポートから、自分の情報を入れたメッセージを一定の間隔で送ります。メッセージには保持時間が入っていて、受け取った機器は、その時間が過ぎるまで情報を表に残します。新しいメッセージが届かなければ、保持時間が過ぎたところで表から消えます。
メッセージが届くのは、直接つながった機器だけです。スイッチAは、Bの先にあるCを知りません。ネットワーク全体の地図を作るには、各機器の表を順にたどります。
CDPとLLDPの違い
大きな違いは、Cisco独自か標準規格かです。Ciscoのドキュメントは、LLDPを、CDPに対応しない機器との相互接続のための規格と説明しています。異なるメーカーの機器が混ざるネットワークでは、LLDPで情報を交換します。
| CDP | LLDP | |
|---|---|---|
| 規格 | Cisco機器で | IEEE 802.1AB |
| 他社機器との | Cisco機器 | CDPに |
| 送信間隔の | 60秒 | 30秒 |
| 保持時間の | 180秒 | 120秒 |
| Ciscoスイッチ | Catalyst 2960-X | 機種で |
| 止める | no cdp run | no lldp run |
表の既定値は、Ciscoの設定ガイドに載っている値です。どちらも設定で変えられます。
送信間隔が短いほど、機器の変化が早く表に反映されます。保持時間が長いほど、メッセージが何回か届かなくても、情報は表に残ります。
送られる情報と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のコマンドリファレンスの形に合わせた例です。列の意味は、表のとおりです。
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 | 受け取った |
| Capability | 隣の |
| Platform | 隣の |
| Port ID | 隣の |
1行目は、自分のGig 1/0/1につながる隣がsw-b.example.comというスイッチで、隣のGig 1/0/24と向き合っていることを示します。
show cdp neighbors detail を打つと、隣のIPアドレスやソフトウェアのバージョンまで出ます。Versionの行から先が、隣の機器のソフトウェアの情報です。次の出力では、長いので省略しています。
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 : (ソフトウェアのバージョンが続く)
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: 1LLDPの表は、show lldp neighbors で見ます。列の並びは、機種によって少し変わります。Hold-timeは、CDPのHoldtmeと同じ、情報を捨てるまでの時間です。隣がLLDPの既定の保持時間120秒のままなら、120以下の値が並びます。
セキュリティ上の注意
CDPとLLDPが運ぶ機器名・機種・ソフトウェアのバージョン・IPアドレスは、攻撃者にとって内部の構成を調べる手がかりになります。Ciscoのセキュリティのガイドも、どちらも偵察やネットワークの地図作りに使われるおそれがあると注意しています。信頼できないネットワークにつながるインターフェースでは、無効にするよう求めています。
Switch-A(config-if)# no cdp enable
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問)
正解:直接つながった
CDPも
正解:IEEE 802.1AB
LLDPは IEEE 802.1AB で
正解:CDPは
CDPは
正解:LLDP
他社の
正解:Bだけ
CDPと
正解:no cdp enable
インターフェースで
選んでから「採点する」を押すと、解説つきで答え合わせができます。
関連記事
おすすめの本 PR
ネットワークを初めて学ぶ人向けの入門書です。
![『[改訂新版]3分間ネットワーク基礎講座』の表紙](https://m.media-amazon.com/images/P/4774143731.09.MZZZZZZZ.jpg)
