Мы разрабатываем коммутатор Ethernet на базе Linux с 6 портами. Мы закончили с протоколом CDP. Я подключил устройство Cisco к порту 2. Когда я запрашиваю устройство Cisco, я получаю ответ, и вместо того, чтобы получить lan1 (порт 1 - lan0 .. порт 6 = lan5), я всегда получаю имя интерфейса как eth0. То же самое для всех портов. Какие изменения необходимы, чтобы получить правильное имя интерфейса? Буду очень благодарен за информацию. Пакет snap принимается в подпрограмме snap_rcv () в файле "linux._2.6.XX / net / 802 / psnap.c";
С уважением, Сурадж ..
Вот пример show cdp neigh
:
Device ID Local Intrfce Holdtme Capability Platform Port ID
akira2 Eth 0/0 142 [redacted Eth 0/1
В этом примере маршрутизатор, называющий себя akira2, подключен к локальному маршрутизатору; порт, к которому он подключен на локальном маршрутизаторе, en0/0
, а порт, к которому он подключен на удаленном маршрутизаторе, - en0/1
. В таком случае пакет CDP предоставил идентификатор порта (из поля, помеченного как тип 0x3), и локальный интерфейс был выведен при получении пакета.
Это работает по умолчанию, поэтому, если вы получаете явно неправильные данные, вам следует обновить прошивку и / или позвонить в службу поддержки cisco.
Имена портов на устройствах cisco обычно не называются lanN; обычно, если это, скажем, порты 100baseT, они будут иметь префикс fe, а гигабитные порты Ethernet будут иметь префикс ge. Если вы обнаружите, что устройство всегда сообщает en0 (или Ethernet 0, или Eth 0), вполне вероятно, что устройство реализовано как маршрутизатор с концентратором перед ним (неуправляемым), разделяющим порты.