Проект LLDP (http://trac.luffy.cx/lldpd/) позволяет задействовать на
Linux-серверах протокол CDP (Cisco Discovery Protocol), позволяющий на Cisco
посмотреть соседей с включенной CDP-командой "sh cdp nei". Команда выведет
оборудование которое подключено, на каком порту и т.д., более подробно для
заданного устройства параметры можно посмотреть командой "sh cdp ent Device_ID".
Ниже приведен процесс настройки CDP для CentOS 5.4. Для Debian-подобных
дистрибутивов принцип примерно тот же, за исключением особенностей сборки и
расположения файлов.
Загружаем пакет src.rpm:
wget http://www.luffy.cx/lldpd/lldpd-0.4.0-1.fc10.src.rpm
Установим его:
rpm -Uhv lldpd-0.4.0-1.fc10.src.rpm
Появится файл спецификаций /usr/src/redhat/SPECS/lldpd.spec, на основе которого
выполним сборку пакета:
rpmbuild -bb /usr/src/redhat/SPECS/lldpd.spec
Устанавливаем вновь собранный пакет:
rpm -Uhv /usr/src/redhat/RPMS/i386/lldpd-0.4.0-1.i386.rpm
Настраиваем опции запуска демона, отредактировав файл /etc/sysconfig/lldpd. Правим:
OPTIONS="-v -c";
где,
"-v" - включаем поддержку vlan если они у Вас есть на машине с Linux
"-c" - включаем протокол CDP
более подробную информацию можно посмотреть в "man lldpd"
Запускаем демон:
/etc/init.d/lldpd start
После запуска, в файле /var/log/messages мы увидим приблизительно такие строки:
lldpd[30206]: lldpd_decode: switching to CDPv2 on port eth1
lldpd[30206]: lldpd_decode: switching to CDPv2 on port eth0
всё в порядке, демон запустился.
Чтоб все работало, на оборудовании с другой стороны, на порту, должен быть
включен CDP, то есть не должно стоять "no cdp enable" на интерфейсе.
Собственно, осталось только проверить как все работает и получить информацию.
lldpctl
получаем:
LLDP neighbors
Interface: eth0
ChassisID: sw-b-48 (local)
SysName: sw-b-48
SysDescr:
cisco WS-C2960-48TT-L running on
Cisco IOS Software, C2960 Software (C2960-LANBASE-M)
Copyright (c) 1986-2007 by Cisco Systems, Inc.
Compiled Thu 19-Jul-07 20:06 by nachen
MgmtIP: 172.16.25.48
Caps: Bridge(E)
PortID: FastEthernet0/4 (ifName)
PortDescr: FastEthernet0/4
Видим , что на другой стороне у нас коммутатор C2960, версию IOS, порт
коммутатора, к которому подключена машина с Linux.
Для остроты ощущений, посмотрим вывод на cisco, у нас там появилось:
my.linux.machine
Fas 0/4 92 R Linux eth0
То есть, видим, что у нас на порту fa0/4 подключена машина с Linux, сетевое имя
машины, и её сетевая карта eth0.
Стоит отметить еще утилиту cdpr, но с её помощью можно только получать
информацию по CDP, а не обмениваться ей, для Red Hat-подобных дистрибутивов она
есть в репозитории rpmforge.
|