TOTAL
Depuis Dec 2006
1'942'871 Visiteurs
4'218'042 Pages

Stats Nov 2010
82'909 Visiteurs
146'476 Pages
196 pays
Statistiques completes



Aidez-nous à traduire
nos tutoriaux!

REJOINGNEZ
l'équipe OpenManiak.
CDP - Le Tutorial Facile

Networking CDP
Dernière modif: Jun 30 2010



⚠️⚠️⚠️
Please check our website about
attractions in Western Switzerland !! (Please use english translation).

⚠️⚠️⚠️
Merci de consulter notre site sur les
activités à faire en Suisse romande !!


Le protocole CDP:

Le protocole CDP (Cisco Discovery Protocol) est un protocole propriétaire de la couche OSI 2 développé par Cisco Systems.
Il tourne sur les équipements Cisco et certains équipements HP.

Il est utile pour deux raisons:

-

-
 
Obtenir des informations sur les équipements CDP directement connectés comme le système d'exploitation et l'adresse IP.
Vérifier que la connectivité OSI de couche trois est fonctionnelle en cas de problèmes au niveau de la couche IP (couche OSI 3).
Les annonces CDP sont envoyées vers l'adresse multicast 01-00-0c-cc-cc-cc.



CDP sur Linux:

Linux ne supporte pas nativement le protocole CDP, nous devons donc utiliser un outil appelé "cdp-tools" pour l'activer.

Activer CDP sur des systèmes Linux peut être intéressant sur des routeurs comme Quagga et Vyatta dans un environnement Cisco.

Téléchargez CDP-tools dans le dossier /root directory .
Si vous voulez télécharger "cdp-tools" directement depuis l'interface ligne de commande (CLI) de Linux, procéder de la manière suivante:

#wget http://gpl.internetconnection.net/files/cdp-tools.tar.gz
Décompressez le fichier téléchargé:

tar -xvf cdp-tools.tar
Ceci va créer le dossier "cdp-tools".

Téléchargez et installez le metapackage "build-essential" contenant les outils pour compiler des programmes.

#apt-get install build-essential
Téléchargez et installez libnet0-dev:
Libnet0 est une interface de programmation générique réseau qui fournit un accès à plusieurs protocoles.

#apt-get install libnet0-dev
La librairie libpcap est installée en même temps. Dans notre cas, il s'agit de la version libpcap0.8-dev.

Compilez "cdp-tools":

#make
cc -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H -DLIBNET_LIL_ENDIAN -c -o cdp-listen.o cdp-listen.c
cc cdp-listen.o /usr/lib/libpcap.so -o cdp-listen
cc -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H -DLIBNET_LIL_ENDIAN -c -o cdp-send.o cdp-send.c
cdp-send.c:70: warning: 'packed’ attribute ignored for field of type ‘unsigned char[6]'
cdp-send.c:71: warning: 'packed' attribute ignored for field of type 'unsigned char[6]'
cdp-send.c:74: warning: 'packed' attribute ignored for field of type 'u_int8_t'
cdp-send.c:75: warning: 'packed' attribute ignored for field of type 'u_int8_t'
cdp-send.c:77: warning: 'packed' attribute ignored for field of type 'u_int8_t'
cdp-send.c:78: warning: 'packed' attribute ignored for field of type 'u_int8_t[3]'
cc cdp-send.o /usr/lib/libnet.so -o cdp-send


Si tout se passe bien, vous devriez avoir deux nouveaux fichiers appelés "cdp-send" et "cdp-listen" qui sont utilisés pour respectivement envoyer et recevoir du trafic.



                       1. cdp-send            2. cdp-listen



1. cdp-send

Démarrez cd-send

cdp-send est utilisé pour envoyer du trafic aux équipements directement connectés.

Démarrons cdp-send avec le paramétrage minimal:

Syntaxe: cdp-send [options] interfaces... &

/root/cdp-tools/cdp-send eth0
"eth0" est l'interface par laquelle nous envoyons le trafic CDP.
"/root/cdp-tools/cdp-send eth1 eth2" envoie le trafic CDP à travers les interfaces eth1 et eth2.

Vérifions comment un équipement Cisco directement connectés voit notre machine Linux.

Equipement_Cisco>show cdp neighbours
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
ubuntu Fas 1/0/5 176
H
i686 eth0
Le système Linux est vu en tant qu'hôte de niveau 3 "H", sur l'interface "eth0", avec un nom d'hôte de "ubuntu" et une plateforme "i386".

Equipement_Cisco>show cdp neighbours details
Device ID: ubuntu
Entry address(es):
    IP address: 10.1.1.1
Platform: i686, Capabilities: Host
Interface: FastEthernet1/0/5, Port ID (outgoing port): eth0
Holdtime : 120 sec

Version :
Linux 2.6.22-10-generic

advertisement version: 2
Management address(es):
Lancez "cdp-tools" automatiquement au démarrage:

#crontab -u root -e
@reboot /root/cdp-send eth0

Haut de la page



Paramétres avancés de cdp-send:

Pour voir les paramètres avancés:

#/root/cdp-send
Usage: cdp-send [options] interfaces... &
  -a addr utilise l'adresse spécifiée au lieur de celle de l'interface.
  -c caps active "capacités" (l'option "-c" seule affiche une liste d'options)
  -d enable sortie de dépannage.
  -D dom spécifie un domaine de management VTP.
  -L vlan spécifie un VLAN natif (vlanid)
  -V vlan spécifie un VLAN voix (voiceid)
  -m mach spécifie une machine/plate-forme à annoncer (par exemple: "i686")
  -n name spécifie un nom d'hôte.
  -p name remplace le nom du port (défaut: interface)
  -P duplex spécifie un mode duplex (full/half)
  -o enable mode en un coup.
  -s vers spécifie la version logiciel à annoncer (par exemple: "Linux 2.6.22-10-generic")
  -S subnet spécifie un sous-réseau IP
  -t secs spécifie le "wait-time" (défaut: 60 secondes)
Voyons un exemple où notre machine Ubuntu de test prétend être un routeur Cisco.

#/root/cdp-send eth0 -n "7206 Core" -m 7206VXR -p "Fas 0/0" -P half -c l3r -s 7206VXR -a 10.1.1.1 -V 123 -s "Cisco Internetwork Operating System Software S (tm) 7200 Software (C7200-IK9S-M), Version 12.2(23a), RELEASE SOFTWARE (fc2) Copyright (c) 1986-2004 by cisco Systems, Inc. Compiled Tue 30-Mar-04 12:26 by kellmill"
Regardons comment la machine Cisco directement connectée voit notre Linux:

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
7206 Core Fas 1/0/5 176
R
7206VXR Fas 0/0
Le système Linux est vu comme un routeur de niveau 3 "R", sur interface "Fas 0/0", avec un nom d'hôte "7206 Core" et une plate-forme "7206VXR".

Equipement_Cisco>show cdp neighbours details
Device ID: 7206 Core
Entry address(es):
    IP address: 10.1.1.1
Platform: 7206VXR, Capabilities: Router
Interface: FastEthernet1/0/5, Port ID (outgoing port): Fas 0/0
Holdtime : 164 sec

Version :
Cisco Internetwork Operating System Software S (tm) 7200 Software (C7200-IK9S-M), Version 12.2(23a), RELEASE SOFTWARE (fc2) Copyright (c) 1986-2004 by cisco Systems, Inc. Compiled Tue 30-Mar-04 12:26 by kellmill

advertisement version: 2
Management address(es):

Haut de la page



Analyse de packet cd-send:

L'option de dépannage (-d) montre les trames Ethernet CDP.

#/root/cdp-send eth0 -d -n "7206 Core" -m 7206VXR -p "Fas 0/0" -P half -c l3r -s 7206VXR -a 10.1.1.1 -V 123 -s "Cisco Internetwork Operating System Software S (tm) 7200 Software (C7200-IK9S-M), Version 12.2(23a), RELEASE SOFTWARE (fc2) Copyright (c) 1986-2004 by cisco Systems, Inc. Compiled Tue 30-Mar-04 12:26 by kellmill"
Sent over: eth0, total length: 306  
0000 01 00 0c cc cc cc 00 1c 23 11 22 33 01 24 aa aa ........#....$..
0001 03 00 00 0c 20 00 02 b4 d4 3d 00 01 00 0d 37 32 .... ....=....72
0002 30 36 20 43 6f 72 65 00 02 00 11 00 00 00 01 01 06 Core.........
0003 01 cc 00 04 0a 01 01 01 00 03 00 0b 46 61 73 20 ............Fas
0004 30 2f 30 00 04 00 08 00 00 00 01 00 05 00 d7 43 0/0............C
0005 69 73 63 6f 20 49 6e 74 65 72 6e 65 74 77 6f 72 isco Internetwor
0006 6b 20 4f 70 65 72 61 74 69 6e 67 20 53 79 73 74 k Operating Syst
0007 65 6d 20 53 6f 66 74 77 61 72 65 20 53 20 28 74 em Software S (t
0008 6d 29 20 37 32 30 30 20 53 6f 66 74 77 61 72 65 m) 7200 Software
0009 20 28 43 37 32 30 30 2d 49 4b 39 53 2d 4d 29 2c (C7200-IK9S-M),
000a 20 56 65 72 73 69 6f 6e 20 31 32 2e 32 28 32 33 Version 12.2(23
000b 61 29 2c 20 52 45 4c 45 41 53 45 20 53 4f 46 54 a), RELEASE SOFT
000c 57 41 52 45 20 28 66 63 32 29 20 43 6f 70 79 72 WARE (fc2) Copyr
000d 69 67 68 74 20 28 63 29 20 31 39 38 36 2d 32 30 ight (c) 1986-20
000e 30 34 20 62 79 20 63 69 73 63 6f 20 53 79 73 74 04 by cisco Syst
000f 65 6d 73 2c 20 49 6e 63 2e 20 43 6f 6d 70 69 6c ems, Inc. Compil
0010 65 64 20 54 75 65 20 33 30 2d 4d 61 72 2d 30 34 ed Tue 30-Mar-04
0011 20 31 32 3a 32 36 20 62 79 20 6b 65 6c 6c 6d 69 12:26 by kellmi
0012 6c 6c 00 06 00 0b 37 32 30 36 56 58 52 00 0b 00 ll....7206VXR...
0013 05 00 ...
La même trame Ethernet analysée avec tshark, la version ligne de commande de Wireshark.

Frame 4 (306 bytes on wire, 306 bytes captured)
  Arrival Time: Nov 11, 2007 14:37:11.128038000
  [Time delta from previous captured frame: 0.614262000 seconds]
  [Time delta from previous displayed frame: 0.614262000 seconds]
  [Time since reference or first frame: 1194615431.128038000 seconds]
  Frame Number: 4
  Frame Length: 306 bytes
  Capture Length: 306 bytes
  [Frame is marked: False]
  [Protocols in frame: eth:llc:cdp:data]
IEEE 802.3 Ethernet
  Destination: CDP/VTP/DTP/PAgP/UDLD (01:00:0c:cc:cc:cc)
    Address: CDP/VTP/DTP/PAgP/UDLD (01:00:0c:cc:cc:cc)
    .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
    .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
  Source: Dell_11:22:33 (00:1c:23:11:22:33)
    Address: Dell_11:22:33 (00:1c:23:11:22:33)
    .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
  Length: 292
Logical-Link Control
  DSAP: SNAP (0xaa)
  IG Bit: Individual
  SSAP: SNAP (0xaa)
  CR Bit: Command
  Control field: U, func=UI (0x03)
    000. 00.. = Command: Unnumbered Information (0x00)
    .... ..11 = Frame type: Unnumbered frame (0x03)
  Organization Code: Cisco (0x00000c)
  PID: CDP (0x2000)
Cisco Discovery Protocol
  Version: 2
  TTL: 180 seconds
  Checksum: 0xd43d [correct]
    [Good: True]
    [Bad : False]
  Device ID: 7206 Core
    Type: Device ID (0x0001)
    Length: 13
    Device ID: 7206 Core
  Addresses
    Type: Addresses (0x0002)
    Length: 17
    Number of addresses: 1
    IP address: 10.1.1.1
      Protocol type: NLPID
      Protocol length: 1
      Protocol: IP
      Address length: 4
      IP address: 10.1.1.1
  Port ID: Fas 0/0
    Type: Port ID (0x0003)
    Length: 11
    Sent through Interface: Fas 0/0
  Capabilities
    Type: Capabilities (0x0004)
    Length: 8
    Capabilities: 0x00000001
      .... .... .... .... .... .... .... ...1 = Is a Router
      .... .... .... .... .... .... .... ..0. = Not a Transparent Bridge
      .... .... .... .... .... .... .... .0.. = Not a Source Route Bridge
      .... .... .... .... .... .... .... 0... = Not a Switch
      .... .... .... .... .... .... ...0 .... = Not a Host
      .... .... .... .... .... .... ..0. .... = Not IGMP capable
      .... .... .... .... .... .... .0.. .... = Not a Repeater
  Software Version
    Type: Software version (0x0005)
    Length: 215
    Software Version: Cisco Internetwork Operating System Software S (tm) 7200 Software (C7200-IK9S-M), Version 12.2(23a), RELEASE SOFTWARE (fc2) Copyright (c) 1986-2004 by cisco Systems, Inc. Compiled Tue 30-Mar-04 12:26 by kellmill
  Platform: 7206VXR
    Type: Platform (0x0006)
    Length: 11
    Platform: 7206VXR
  Duplex: Half
    Type: Duplex (0x000b)
    Length: 5
    Duplex: Half



L'exemple ci-dessus où un équipement prétend être un autre en envoyant de fausses informations DP pourrait être utilisé par des gens malhonnêtes.
Si, en plus, un hacker copie votre bannière réseau préférée, vous pourriez penser que le système Linux est un de vos équipements Cisco et essayer de vous y connecter avec un nom d'utilisateur et un mot de passe qui seraient alors capturés par le hacker.

Haut de la page



2. cdp-listen

cdp-listen est utilisé pour recevoir les paquets CDP.
Voyons comment notre Linux de test voit un équipement Cisco qui lui est directement connecté sur son interface eth0.

#/root/cdp-listen eth0
# Interface: eth0
# Hostname: Cisco-hall4.openmaniak.com
# Address: 10.117.1.234
#  
# TimeToLive: 180
# Capabilities: L3R(router) L2SW(switch) IGRP
#  
# Networks:  
Lancez "cdp-tools" automatiquement au démarrage:

#crontab -u root -e
@reboot /root/cdp-listen eth0

Haut de la page