====== 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