Как стать автором
Поиск
Написать публикацию
Обновить

CDP(Cisco Discovery Protocol) на Linux

Время на прочтение2 мин
Количество просмотров3.6K
Всем известно про замечательный протокол CDP (Cisco Discovery Protocol) для Cisco. Оказывается что и для Linux тоже есть возможность использовать его прелести. Есть проект LLDP, который нам в этом и поможет.

Для тех, кто не в кусре: на cisco можно посмотреть соседей с включенным CDP коммандой sh cdp nei. Комманда выведет оборудование которое подключено, на каком порту и т.д., более подробно sh cdp ent Device_ID, уже по конкретному девайсу.

Так вот, мы сейчас попробуем включить это и в Linux, в данном, конкретном случае, настраивать будем на CentOS 5.4, на Debian-подобных дистрах почти тож самое, за исключением процесса сборки и расположения файлов.


Для начала скачаем 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
настраиваем опции запуска демона, открываем файл:

# vim /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.

Добавлю: можно установить демон из сорсов самому, но в моем случае это не true-way, все должно быть упорядочено. В Debian-подобных дистрах, файл настройки демона расположен в /etc/default/

стоит отметить еще утилиту cdpr, но с её помощью можно только получать информацию по CDP, а не обмениваться ей, для RH-дистров она есть в репозитарии rpmforge.

Вот и все. Удачи в настройках.

UPD: получил за статью инвайт, очень рад.

UPD2: написали — такое уже было habrahabr.ru/blogs/sysadm/83356 — помоему различия очевидны
Теги:
Хабы:
Всего голосов 5: ↑3 и ↓2+1
Комментарии2

Публикации

Ближайшие события