Conceito
O Cisco Discovery
Protocol (CDP) trabalha na layer 2 da camada OSI TCP/IP que funciona
independente do meio físico (Ethernet, Frame Relay, …). Além de
ser um protocolo como outro qualquer. Utilizado para descobrir
informações sobre diversos equipamentos Cisco diretamente
conectados. O mesmo está presente em roteadores, switches, APs,
firewalls, telefones etc.
Um equipamento com
CDP ativado envia mensagens periódicas via multicast, e também
recebe as informações dos outros equipamentos. Desta forma é
possível descobrir o nome, IP, modelo e a versão do software de um
equipamento próximo.
Podemos habilitar o
CDP globalmente, e assim os anúncios passarão a ser enviados por
todas as interfaces suportadas, ou podemos configurar apenas nas
interfaces desejadas. Por padrão o CDP vem habilitado (globalmente),
e já faz os anúncios na versão 2. A versão 2 do CDP
traz a VLAN nativa, domínio VTP e o modo da porta (duplex/speed) do
equipamento diretamente conectado.
Habilitando o
CDP globalmente
CiscoGW#
conf t
CiscoGW#
cdp run
CiscoGW(config)#
Desabilitando
o CDP globalmente
CiscoGW# conf t
CiscoGW# no cdp run
CiscoGW(config)#
Habilitando
anúncios versão 2
CiscoGW(config)#cdp
advertise-v2
Desabilitando
anúncios versão 2
CiscoGW(config)#no
cdp advertise-v2
Habilitando o
CDP em uma interface específica
CiscoGW(config)#interface
f0/1
CiscoGW(config-if)#cdp
enable
Desabilitando
o CDP em uma interface específica
CiscoGW(config)#interface
f0/1
CiscoGW(config-if)#no
cdp enable
Os comandos “shows”
são os mais importantes/utilizados do CDP, já que a configuração
normalmente não sofre alteração.
Verificando o
CDP (status padrão)
CiscoGW#show
cdp
Global
CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Sending CDPv2 advertisements is enabled
CiscoGW#
Verificando o CDP
em uma interface específica ( timers padrão)
CiscoGW#show
cdp interface gigabitEthernet 1/0/1
GigabitEthernet1/0/1
is up, line protocol is up
Encapsulation ARPA
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
CiscoRT01#
Verificando
os equipamentos diretamente conectados (sumário)
CiscoGW#show
cdp neighbors
Capability
Codes: R – Router, T – Trans Bridge, B – Source Route Bridge
S – Switch, H – Host, I – IGMP, r – Repeater, P – Phone,
D – Remote, C – CVTA, M – Two-port Mac Relay
Device
ID Local Intrfce
Holdtme Capability
Platform
Port ID
CiscoSW1
Gig 1/0/48 152
S I
WS-C2960- Gig
0/2
CiscoSW8
Gig 1/0/45 121
S I
WS-C2960- Gig
0/1
CiscoGW02
Gig 1/0/26 179
R S I
2821
Gig 0/1
CiscoGW#
Verificando
os equipamentos próximos (detalhado)
CiscoGW#show
cdp neighbors detail
————————-
Device
ID: CiscoSW1
Entry
address(es):
IP address: 10.40.20.19
Platform:
cisco WS-C2960-24PC-L, Capabilities: Switch IGMP
Interface:
GigabitEthernet1/0/48, Port ID (outgoing port):
GigabitEthernet0/2
Holdtime
: 158 sec
Version
:
Cisco
IOS Software, C2960 Software (C2960-LANBASEK9-M), Version
12.2(50)SE4, RELEASE SOFTWARE (fc1)
Technical
Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco
Systems, Inc.
Compiled
Fri 26-Mar-10 09:14 by prod_rel_team
advertisement
version: 2
Protocol
Hello: OUI=0x00000C, Protocol ID=0×0112; payload len=27,
value=00000000FFFFFFFF01022501000000000000ECC88212D480FF0000
VTP
Management Domain: ‘bv.com.br’
Native
VLAN: 100
Duplex:
Half
Management
address(es):
IP address: 10.40.20.19
Além dessa opção, também temos a opção de recolher essas informações a partir do servidor, ou seja, o client do Cisco. Como fazer isso? Analisando o tráfego CDP que vem e vai da porta do CDP.
No Linux:
# tcpdump -nn -v -i eth1 -s 1500 -c 1 'ether[20:2] == 0x2000'
Se por o acaso, não
tenha o tcpdump instalado na sua máquina rode:
# apt-get install
tcpdump –y ou aptitude install tcpdump –y --> Caso seja um Debian ou derivados
# yum install
tcpdump –y --> Caso seja um
Red hat ou derivado
Bibliografia-base: