Skip to content

lldpd で CDP を送受信する

近隣ノードを発見するプロトコルは以下のように様々、ありますが、いずれも各ベンダー独自の規格でした。

メーカー プロトコル
Cisc CDP(Cisco Discovery Protocol)
Extreme Networks EDP(Extreme Discovery Protocol)
Foundry Networks FDP(Foundry Discovery Protocol)
Nortel NDP(Nortel Discovery Protocol)

しかし、現在ではこういった近隣ノード発見の手段が IEEE 802.1AB において "LLDP" として標準化されています。

LLDP に関しては ITpro に分かりやすい記事がまとめられていました。

Linux でも "lldpd" という LLDP 対応のアプリケーションが存在しており、今回はこのアプリケーションを試してみます。

32bit 環境へインストールする

CentOS 5.5(i386)へインストールしてみます。カーネルは以下の通りです。

1
2
$ uname -a
Linux centos-i386-01 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:53:09 EST 2011 i686 i686 i386 GNU/Linux

lldpd-0.4.2-1.el5.i386.rpm - CentOS 5 (RHEL 5) - CentALT から RPM パッケージをダウンロード&インストールします。

1
2
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
sudo rpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386.rpm

64bit 環境へインストールする

CentOS 5.5(x86_64)へインストールしてみます。カーネルは以下の通りです。

1
2
$ uname -a
Linux centos-01 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

lldpd-0.4.2-1.el5.x86_64.rpm - CentOS 5 (RHEL 5) - CentALT から RPM パッケージをダウンロード&インストールします。

1
2
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
sudo rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

インストールされたファイル一覧

RPM パッケージにより、以下のファイルがインストールされました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ rpm -ql lldpd
/etc/rc.d/init.d/lldpd
/etc/sysconfig/lldpd
/usr/sbin/lldpctl
/usr/sbin/lldpd
/usr/share/doc/lldpd-0.4.2
/usr/share/doc/lldpd-0.4.2/CHANGELOG
/usr/share/doc/lldpd-0.4.2/README
/usr/share/man/man8/lldpctl.8.gz
/usr/share/man/man8/lldpd.8.gz
/var/run/lldpd

設定ファイル

lldp の設定ファイルは "/etc/sysconfig/lldpd" になります。デフォルトでは以下のようになっていました。

1
2
# Uncomment to start SNMP subagent and enable CDP, SONMP and EDP protocol
#OPTIONS="-x -c -s -e"

デフォルトで lldpd は LLDP にのみ、対応しており、CDP を無視します。CDP を送受信する為には "-c" オプションを指定する必要があるので、上記の設定ファイルへ以下の一行を追記します。

1
OPTIONS="-c"

設定ファイルへの追記が完了したら、lldpd を再起動し、設定ファイルの変更を反映しておきます。

1
2
3
$ sudo /etc/init.d/lldpd restart
Stopping lldpd:                                            [  OK  ]
Starting lldpd:                                            [  OK  ]