Введение
Есть такая удобная штука как CDP ( Cisco Discovery Protocol ) — проприетарный протокол второго уровня модели OSI, разработанный компанией Сisco Systems, позволяющий обнаруживать подключенное (напрямую или через устройства первого уровня) сетевое оборудование Сisco, его название, версию IOS и IP-адреса.
Устройство посылает мультикаст анонс на MAC адрес 0100.0ccc.cccc. В конфигурации по-умолчанию анонсы рассылаются каждые 60 секунд на порты Ethernet, Frame Relay и ATM. Каждое устройство, понимающее протокол, сохраняет полученную информацию в таблице и позволяет посмотреть её по команде show cdp neighbours
. Если устройство трижды не прислало анонс (при значениях по-умолчанию — 3 минуты), оно удаляется из таблицы. Возникло желание на оборудовании Cisco видеть, какие сервера FreeBSD и через какие сетевые карты подключены.
Практическая реализация
В ответ на желаемое google.ru выдал ссылку на net/ladvd в дереве портов FreeBSD. Этот порт занимается тем, что рассылает анонсы по протоколам CDP и LLDP. Нам как раз подходит первый из них.
Устанавливаем, как обычно:
cd /usr/ports/net/ladvd
make install clean
Добавляем строки в /etc/rc.conf для автозапуска демона при старте системы:
ladvd_enable=»YES»
ladvd_flags=»-c»
флаг -c означает, что сервер будет рассылать анонсы по протоколу CDP.
запускаем демона вручную
/usr/local/etc/rc.d/ladvd start
смотрим на Cisco результат:
Switch> show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID Local Intrfce Holdtme Capability Platform Port ID
server01.mydomain.ru Gig 0/19 165 R FreeBSD bge0
Switch-14 Gig 0/9 125 R S I WS-C3560G Gig 0/8
Смотрим внимательнее:
Switch>sh cdp neighbors detail
Device ID: server01.mydomain.ru
Entry address(es):
IP address: 192.168.32.23
Platform: FreeBSD, Capabilities: Router
Interface: GigabitEthernet0/19, Port ID (outgoing port): bge0
Holdtime : 156 sec
Version :
FreeBSD 7.0-RELEASE FreeBSD 7.0-RELEASE #2: Wed Sep 24 19:33:17 MSD 2008 root@server01.mydomain.ru :/usr/src/sys/i386/compile/SERVER01 i386
advertisement version: 2
Duplex: full
Management address(es):
В случае возникновения проблем запускаем демона ladvd в «недемоническом» 🙂 режиме, запустите его с ключами:
ladvd -f -c -vvv
Вывод будет, примерно, таким:
found ethernet interface bge0
adding interface bge0
found ethernet interface bge1
skipping interface bge1 (down)
skipping interface pflog0
skipping interface pfsync0
skipping interface lo0
fetching addresses for all interfaces
ladvd 0.6.1 running
fetching all interfaces
found ethernet interface bge0
adding interface bge0
found ethernet interface bge1
skipping interface bge1 (down)
skipping interface pflog0
skipping interface pfsync0
skipping interface lo0
fetching addresses for all interfaces
starting loop with interface bge0
fetching bge0 media details
autoneg supported on bge0
autoneg enabled on bge0
full-duplex enabled on interface bge0
building cdp packet for bge0
sending cdp packet (262 bytes) on bge0
sleeping for 30 seconds
или будет выведено сообщение об ошибке, которую вам и необходимо исправить для того, чтобы он заработал 🙂
P.S. И два слова о безопасности:
необходимо отключать протокол cdp на интерфейсах, выходящих за защищённый периметр, так как передаваемая информация (например, версия IOS) может использоваться для подготовки атаки через уязвимость конкретной версии IOS.
Глобально, на всем девайсе, выключение CDP производится командой:
Switch(config)# no cdp run
или для конкретного интерфейса:
Switch(config-if)# no cdp enable
P.P.S. О настройке CDP на оборудовании Cisco Systems будет рассказано дополнительно в отдельной статье.
P.P.P.S. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
Автор: Панфилов Алексей (lehis (at) subnets.ru)
Похожие статьи:
- Не найдено

lehisnoe сказал:
net-mgmt/cdpr — для просмотра устройств, анонсируюших себя.
24.02.2011, 16:40