A CDP és a nem Cisco switch esete

Sokszor fordul elő olyan helyzet mikor fel kell deríteni egy ügyfél hálózatát, mert nincs naprakész dokumentáció, esetleg az előző brigád összecsomagolt és lelépett. Helyszíni jelenlét nélkül általában az alábbiak hagyatkozunk ilyenkor:

  • CDP
  • LLDP
  • ARP
  • MAC tábla
  • Routing táblák
  • stb.

 

A CDP-vel kapcsolatban van egy csapda amibe könnyen bele lehet sétálni: hiába látod te közvetlenül az adott porton a másik Cisco eszközt, közel sem biztos hogy az tényleg fizikailag arra a portra van kötve; könnyen lehet hogy van köztük egy (vagy több) “buta” eszköz.

 

Nézzük az alábbi végtelenül egyszerű topológiát:

 

 

Ha megnézzük SW1 CDP tábláját akkor XYZ-t látjuk benne, SW2-nél szintén. Ez így a topológia ismeretében nyilvánvaló.

SW1#sh cdp ne
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
XYZ              Eth 0/0           147             R S I  Linux Uni Eth 0/0
SW1#

 

SW2#
SW2#sh cdp ne
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
XYZ              Eth 0/0           164             R S I  Linux Uni Eth 0/1
SW2#

 

A probléma megértéséhez csináljunk egy packet capture-t SW1 Eth0/0 interface-n.

 

 

Ahogy a képen látszik a CDP (és a VTP/STP/DTP/PaGP/UDLD) cél MAC címe a “01:00:0c:cc:cc:cc”. Ez azt jelenti (mivel az IG [Individual/Group] bit = 1) hogy multicast/broadcast frame-ről beszélünk.

Cisco switch esetén az eszköz “tagja” ennek a multicast csoportnak, azaz feldolgozza a frame-t. Ezért működik point-to-point kapcsolatok esetében jól a protokoll.

De mi van akkor ha van egy olyan switch a két Cisco eszköz között amelyik nem tudja a CDP-t, azaz számára ez egy ugyanolyan multicast üzenet mint a többi?

Sajnos EVE-NG-ben csak Cisco image-k vannak nálam betöltve (azok nem tudnak QinQ-t és L2PT-t), nincs nálam igazi vas, de pl. QinQ-val meg lehet csinálni ezt a “trükköt” (írtam róla itt).

Ilyen esetben az eszköz nem dolgozza fel a frame-t, számára ez csak egy sima multicast üzenet, ezért továbbítja a portjain.

Ezért van az hogy bizony CDP-vel nem lehet 100%-osan távolról feltérképezni egy hálózatot.

Mivel az STP/DTP/PaGP/UDLD is ugyanígy működik (hiszen mindegyik point-to-point protokoll!) ezért a leírtak azokra is érvényesek. Ezért erősen ajánlott pl. minden user portra BPDUGuard-ot tenni, hogy a kalóz buta switchek ne okozhassanak STP problémákat.