デバイスの管理【CDP / LLDP】

CCNAの試験に向けて学習中。
復習に見返せるようにメモしていきます。
ほぼ自分の勉強メモです。
過度な期待はしないでください。

前回投稿記事
-
こちらの[デバイスの管理【システムログとNPT】](https://qiita.com/k-yasuhiro/items/7dac48bca221c9754e5a)投稿記事の続きです。
<br>

3.隣接機器の検出
-
隣接機器の検出するプロトコルとして、<font color="Red"><b>CDP</b></font>と<font color="Red"><b>LLDP</b></font>があります。

<img width="550" alt="ファイル名" src="https://i.gyazo.com/ff31126e21027e2843087999a24195b9.png">

#### 3-1.CDP
##### ■3-1-1. CDPとは？
CDP（Cisco Discovery Protocol）は、Cisco社独自のプロトコルであり、<font color="Red">データリンク層</font>で動作します。
データリンク層で動作するプロトコルの為、インターフェイスが有効になっている状態で有れば、
IPアドレスが設定されていなくてもやり取りが可能となっています。CDPにより、ケーブル接続
している隣接するCisco機器の情報が得られるので、Cisco機器のどこのポートにどのような
Cisco機器が接続しているのかを検出し、その機器の情報を収集出来ます。

CDPでは、デフォルトで<font color="Red"><b> 60秒ごと</b></font>に機器の情報を
マルチキャストアドレス（0100.CCCC.CCCC）宛に送信します。CDPのフレームは常に
<font color="Green"><b>VLAN１</b></font>から送信されます。また、<font color="DodgerBlue"><b>180秒</b></font>間更新がなければデータを削除します。

##### ■3-1-2. CDPにより収集できる情報
CDPにはバージョン1とバージョン2があり、IOS 12.0(3)T以降から、CDPバージョン2がサポート
しています。現在のCiscoの殆どでは基本的にバージョン2がデフォルトで有効になっています。

CDPで収集出来る詳細情報は以下の通りです。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/80e8f55b9b28c4e6d44b9b8441da7269.png">
>
VTP Domain Name（VTPのドメイン名）、Native VLAN（ネイティブVLAN情報）、
Full/Half Duplex（全二重・半二重の情報）は、CDPのバージョン２でなければ
確認する事が出来ません。

##### ■3-1-3.CDPの設定
Cisco機器では、デフォルトでCDPが有効になっている為、機器の情報を知られたくない等の
理由でCDPを無効にするには、<b>グローバルコンフィギュレーションモード</b>で
次の <font color="Red"><b>no cdp run コマンド</b></font>を実行します。「no」を指定すると全てのインターフェイスで無効化
されます。

```
(config）# no cdp run
```
>
CDPを有効にするには、noを付けずに <font color="Red">cdp run コマンド</font>を実行します。

CDPは、インターフェイス単位で有効・無効を設定する事が出来ます。
インターフェイス単位で有効・無効を設定をするには、
<b>インターフェイスコンフィギュレーションモード</b>で次の <font color="Red"><b>cdp enable コマンド</b></font>を実行します。

```
(config-if）# [no] cdp enable
```
>
「no」を付けると無効になります。

##### ■3-1-4.CDPの有効化の確認
CDPが有効化どうかを確認するには、<b>特権EXECモード</b>で次の <font color="Red"><b>show cdp コマンド</b></font>を実行します。

```
# show cdp
```
show cdp コマンドの実行結果を確認していきます。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/8233a599edf4b8309e2099c640203da1.png">
>
1行目は、CDPパケットの送信間隔（60秒）を表しています。
2行目は、オールド時間（キャッシュから情報をクリアする迄の時間）を表しています。
3行目は、有効化されているCDPのバージョン（２）を表しています。
※無効になっている場合は、「% CDP is vot enable」とメッセージが表示されます。

##### ■3-1-5.CDPが動作するインターフェイスの確認
CDPが動作するインターフェイスを確認するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>show cdp interface コマンド</b></font>を実行します。

```
# show cdp interface
```
>
show cdp interfaceコマンドは、show cdpコマンドと同様に、CDPの送信間隔、
ホールド時間などが確認出来ます。

##### ■3-1-6.隣接機器の要約情報の確認
CDPで隣接機器から受信した要約情報を確認するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>show cdp neighbors コマンド</b></font>を実行します。

```
# show cdp neighbors
```
show cdp neighbors コマンドの実行結果を確認していきます。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/edc830c3d69f6a3c86d537ea14a54b39.png">

|項目　|説明　　　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|:---|:---|
|Device ID|隣接機器のホスト名|
|Local Interface|自機器のインターフェイス|
|Holdtme|キャッシュのCDP情報をクリアする迄の時間|
|Capability|隣接機器がサポートしている機能|
|Platform|隣接機器のプラットフォーム|
|Port ID|隣接機器のインターフェイス|

##### ■3-1-7.隣接機器の詳細情報の確認
CDPで隣接機器から受信した詳細情報を確認するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>show cdp neighbors detail コマンド</b></font>を実行します。

```
# show cdp neighbors detail
```
>
隣接する機器が複数存在する場合、その全ての機器詳細情報が確認出来ます。

特定機器のみの詳細情報を確認するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>show cdp entry コマンド</b></font>を実行します。

```
# show cdp entry < * | 機器名 >
```
>
「*」を指定すると全ての機器の詳細情報が表示されます（show cdp neighbors detailと同様）
＜機器名＞には、隣接機器のホスト名を指定します。

show cdp neighbors detail コマンドの実行結果を確認していきます。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/5f8044fdc99ece4bc3325253e26de4c1.png">
要約情報では確認出来なかった項目は以下の通りです。

|項目　　　　|説明　　　　　　　　　　　　　　　　　　　　　　　　|
|:---|:---|
|Entry address|隣接機器に設定されているIPアドレス|
|Version|隣接機器のIOSのバージョン|
|advertisement version|隣接機器のCDPのバージョン|
|VTP Management Domain|VTPドメイン名|
|Duplex|通信モード|
上記以外にも、「Management address」（管理者IPアドレス）も詳細情報で確認出来る
項目になります。

#### 3-2.LLDP
##### ■ 3-2-1.LLDPとは？
LLDP（Link Layer Discovery Protocol）は、CDPと同様に隣接している機器を
検出することの出来る<font color="Red">データリンク層</font>で動作するプロトコルです。
CDPとは異なり <font color="GReen"><b>IEEE802.1AB</b></font>で標準化されている為、異なるベンダーでも使用する事が
可能です。
>
LLDPでは、Ciscos製の機器の場合、デフォルトで <font color="Red">30秒ごと</font>に情報をマルチキャスト
（0180.C200.000E）で送信します。<font color="DodgerBlue"><b>120秒</b></font>間更新がなければデータを削除します。

##### ■ 3-2-２.LLDPの有効化
LLDPは、デフォルトで有効になっていません。その為、LLDPを有効化する必要があります。
LLDPを有効化するには、<b>グローバルコンフィギュレーションモード</b>で次の <font color="Red"><b>lldp run コマンド</b></font>を
実行します。

```
(config）# lldp run
```

<br>
また、インターフェイス単位で有効・無効にする事も出来ます。
インターフェイス単位でLLDPを有効にするには、<b>インターフェイスコンフィギュレーションモード</b>
で次の <font color="Red"><b>lldp コマンド</b></font>を実行します。

```
(config-if）# lldp < transmit | receive >
```
>
＜transmit＞を指定する事で、LLDPパケットを<font color="Red"><b>送信</b></font>をインターフェース上で有効化します。
＜receive＞を指定すると、LLDPパケットを<font color="Red"><b>受信</b></font>をインターフェースでで有効化します。
[ no ]を指定すると、コマンドを実行すると無効化されます。


##### ■ 3-2-3.LLDPのパケットの送信間隔、ホールド時間の変更
LLDPでは 30秒ごとに情報を送信します。
送信時間を変更するには、<b>グローバルコンフィギュレーションモード</b>で
次の <font color="Red"><b>lldp timer コマンド</b></font>を実行します。

```
(config）# lldp timer < 秒数 >
```
>
＜秒数＞には、指定したい間隔の秒数を指定します。

<br>
また、デフォルトでホールド時間が、120秒間に設定されている為、120秒間情報の更新が
なければ取得した情報を破棄します。ホールド時間を変更するには、
<b>グローバルコンフィギュレーションモード</b>で次の <font color="Red"><b>lldp holdtime コマンド</b></font>を実行します。

```
(config）# lldp holdtime < 秒数 >
```
>
＜秒数＞には、指定したいホールドの値を指定します。

##### ■ 3-2-4.再初期化時の遅延時間変更
LLDPの有効化と無効化を繰り返すと、頻繁にLLDPの初期化処理が実行されてしまいます。
これを防ぐ為に、デフォルトでは再初期化の遅延時間を 2秒と設定されています。
再初期化までの遅延時間を変更するには、<b>グローバルコンフィギュレーションモード</b>で
次の <font color="Red"><b>lldp reinit コマンド</b></font>を実行します。

```
(config）# lldp reinit < 秒数 >
```
>
＜秒間＞に指定した値に再初期化の遅延時間を設定する事が出来ます。

##### ■ 3-2-5.送信する情報の変更
LLDPでは自身の情報を<font color="Green">TLV（Tpye、Lenght、Value）</font>形式で形式的に隣接機器の送信しています。
送信情報の変更をするに為には、<b>グローバルコンフィギュレーションモード</b>で
次の <font color="Red"><b>lldp tlv-select コマンド</b></font>を実行します。

```
(config）# lldp tlv-select < TLV名 >
```
>
＜TLV名＞には、VLAN情報を表す「port-vlan」や機械システム名（ホスト名）を表す
「system-name」などのTLVを指定する事が出来ます。他にも指定可能なものを下記に示します。
デフォルトでは全てのTLVがを送信する設定となっている為、「no」コマンドで削除する事で
不要なTLV情報の送信を停止する事が出来ます。
>
|TLV　　|内容　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|:---|:---|
|management-address|管理IPアドレス|
|port-description|ポートの説明|
|port-vlan|VLAN情報|
|system-capabilities|システム機能|
|system-description|システムの説明|
|system-name|システム名（ホスト名）|

##### ■ 3-2-6.LLDPの設定確認
CDPが有効化どうか動作を確認するには、<b>特権EXECモード</b>で次の <font color="Red"><b>show lldp コマンド</b></font>を実行します。

```
# show lldp
```

LLDPの設定を確認するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>show lldp neighbors コマンド</b></font>を実行します。

```
# show cdp neighbors
```
>
詳細に情報を確認するには、show cdp neighbors detail コマンドを実行します。

特定機器のみの詳細情報を確認するには、特権EXECモードで
次の show lldp entry コマンドを実行します。

```
# show lldp entry < * | 機器名 >
```
>
「*」を指定すると全ての機器の詳細情報が表示されます。
＜機器名＞には、隣接機器のホスト名を指定します。