Bug na implementação do CDP

1

Estamos desenvolvendo um switch ethernet baseado em Linux que possui 6 portas. Nós terminamos com o protocolo CDP. Eu conectei um dispositivo Cisco à porta 2. Quando faço o quiery para o dispositivo Cisco, recebo a resposta e, em vez de obter lan1 (porta 1 - lan0 ... porta 6 = lan5), sempre obtenho o nome da interface como eth0. O mesmo é o caso de todas as portas. Quais alterações são necessárias para obter o nome correto da interface? Ficarei muito agradecido pela informação. O pacote instantâneo é recebido na rotina snap_rcv () no arquivo "linux._2.6.XX / net / 802 / psnap.c";

Atenciosamente, Suraj ..

    
por Suraj 16.10.2012 / 06:17

1 resposta

0

Aqui está um exemplo de show cdp neigh :

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
akira2           Eth 0/0            142                   [redacted Eth 0/1

Neste exemplo, o roteador que se chama akira2 está conectado ao roteador local; a porta à qual está conectada no roteador local é en0/0 e a porta à qual está conectada no roteador remoto é en0/1 . Nesse caso, o pacote CDP forneceu a ID da porta (do campo marcado como 0x3) e a interface local foi inferida ao receber o pacote.

Funciona desta forma por padrão, então se você obtiver dados que estão obviamente errados, você deve atualizar seu firmware e / ou chamar o suporte cisco.

Os nomes das portas nos dispositivos cisco geralmente não são denominados lanN; normalmente, se forem, digamos, portas 100baseT, elas serão prefixadas fe e as portas gigabit ethernet serão prefixadas ge. Se você está descobrindo que o dispositivo sempre reporta en0 (ou Ethernet 0 ou Eth 0), é provável que o dispositivo seja implementado como um roteador com um hub na frente dele (não gerenciado) dividindo as portas.

    
por 16.10.2012 / 06:59