====== lldpd ======
LLDPというL2近隣探査用プロトコルの実装
* インストール
* # pkg_replace -N `whereis lldpd | cut -d ":" -f 2` && rehash
* 設定
* そこまで大げさなものはないです。
* # echo 'lldpd_enable="YES"' >> /etc/rc.conf
* 起動
* # /usr/local/etc/rc.d/lldpd start
* 出力(対応装置が近くにあれば、LLDPネイバに登録される)
* # lldpneighbors
OpenLLDP Neighbor Info:
Interface 'eth0' has 1 LLDP Neighbors:
Neighbor 1:
Chassis ID: MAC Address - 00 25 61 01 35 80
Port ID: Locally Assigned - 33
Time To Live: 120 seconds
Port Description: Port #3
System Name: PROCURVE J9450A
System Description: HP ProCurve 1810G - 24 GE, P.1.17, eCos-2.0
System Capabiltiies:
Bridge/Switch (enabled)
Management Address: IPv4 - 192.168.1.4 (ifIndex - 419430400) (OID: Proprietary MIB)
End Of LLDPDU:
* メモ
* 動作するインタフェースはプロミスキャスモードになってしまう。
* Nov 17 00:13:22 nazuna kernel: <6>eth1: promiscuous mode enabled
* 動作するインタフェースを明示する場合は、lldpd_flags="-i eth0"のようにrc.confに書く
* ただし、この書式では複数のI/Fを指定できない。全てのI/Fまたは単一のI/Fになってしまう。
* 仮想インタフェース(ng0とかpfsyncとかplipとか)では動かないので、下記のようなエラーが出て鬱陶しい。
* Nov 17 00:12:45 nazuna kernel: <4>ng0: can't handle af1
* 別にそれ以外のI/Fは淡々と動き続けるから鬱陶しい止まりなんだけど。
* 再起動するとLLDP Neighbors情報は消える。
* フォアグラウンドで動かすと、エラーが出てるのが分かる。
* # lldpd -f
/var/run/lldpd.sock:19
[Error] Unable to bind to the unix domain socket for client registration!
[Error] Unable to listen to the unix domain socket for client registration!
ioctl[SIOC{ADD/DEL}MULTI]: Device not configured
Unable to set multicast mode, trying promiscuous... Success!
BIOCGBLEN: 4096
eth0 MAC: 00:0C:29:00:3F:CF
eth0 MTU: 4096
eth0 MAC: 00:0C:29:00:3F:CF
Would stuff interface #: 1
[ERROR] in config file: invalid location_data_format '0'
ioctl[SIOC{ADD/DEL}MULTI]: Device not configured
Unable to set multicast mode, trying promiscuous... Success!
BIOCGBLEN: 4096
eth1 MAC: 00:0C:29:00:3F:D9
eth1 IP: 192.168.122.3
eth1 MTU: 4096
eth1 MAC: 00:0C:29:00:3F:D9
eth1 IP: 192.168.122.3
Would stuff interface #: 2
[ERROR] in config file: invalid location_data_format '0'
[Error] (16) : Device busy (socketInitializeLLDP:167)
[ERROR] Problem initializing socket for plip0
[Error] (16) : Device busy (socketInitializeLLDP:167)
[ERROR] Problem initializing socket for pfsync0
[Error] (16) : Device busy (socketInitializeLLDP:167)
[ERROR] Problem initializing socket for ng0
[Error] (16) : Device busy (socketInitializeLLDP:167)
[ERROR] Problem initializing socket for ng1
[Error] (16) : Device busy (socketInitializeLLDP:167)
[ERROR] Problem initializing socket for ng2
sysinfo.machine: amd64
sysinfo.sysname: FreeBSD
sysinfo.release: 7.4-RELEASE-p4
lldp_systemdesc: amd64/FreeBSD 7.4-RELEASE-p4
lldp_systemname: nazuna.ainoniwa.net.
Running RX state machine for eth1
Decrementing RX Timers
Displaying RX Timers