Cisco Etherchannel, VTP, OSPF et HSRP

Outch, la, on cumule ūüėÄ

Dans les pr√©c√©dentes aventures du Blog, je vous avais fait part de mon ¬ę¬†acquisition¬†¬Ľ de 2 routeurs Cisco 3620.

Apr√®s avoir fait un peu ¬ę¬†mumuse¬†¬Ľ avec (ah la la, les geeks et leurs joujoux…) il √©tait temps de les racker dans ma baie et surtout de repenser un peu l’architecture de mon LAN.

Je vous propose donc aujourd’hui un billet un peu ¬ę¬†rigolo¬†¬Ľ sur les technos Cisco mais surtout, comment appliquer en quelques minutes des configurations que vous avez de tr√®s fortes chances de rencontrer dans un r√©seau d’entreprise.

Je ne d√©taillerais pas en nombreuses lignes le principe de fonctionnement des technologies mises en oeuvre (je vous laisse surfer sur le Nain Ternet pour plus de d√©tails, ou, si vous le souhaitez, je pourrais m’attarder sur l’une d’entre elles sur un autre billet), mais je vous expliquerais l’essentiel (je pense) pour les utiliser.

D’ailleurs, je vous invite √† farfouiller cet excellent site qui regorge de d√©tails sur les technologies Cisco :

http://cisco.goffinet.org/

Bon, une tasse de café/guronsan/doliprane prête ? Les onglets sur YouPorn YouTube, P0rno.org AFP.com fermés ? On se concentre, et on y va.

(<privatejoke> Fred me susurre de se d√©tendre avant l’effort, donc, oui, Fred, un peu de Karen Cheryl avant tout </privatejoke>)

  • Etats des lieux

Le rackage est achevé et la baie réseau de la maison ressemble à cela actuellement :

Baie Guiguiabloc

Baie Guiguiabloc

Donc une architecture normale de particulier…

Mon switch Cisco Catalyst commencant a être saturé, il est temps de mettre en fonction le catalyst 2950 qui me servait de Spare en cas de panne.

Pour sch√©matiser ce que nous allons mettre en place, voici a quoi ressemble les branchements dans la baie (provisoirement il s’entend ūüėÄ )

La liaison entre les deux switchs se fait par c√Ębles r√©seaux crois√©s (dans mon cas, j’en utilise deux), que je vais agr√©ger dans un etherchannel.

  • ETHERCHANNEL

L’etherchannel est une technique d’interconnexion LAN entre switches (ou routeurs bien s√Ľr) pour offrir sur un seul lien logique, plusieurs ports Fast ou Gigabit Ethernert.

Non seulement cela vous permet de cr√©er une redondance en cas de panne d’une interface mais √©galement d’agr√©ger le d√©bit disponible et/ou de faire de l’√©quilibrage de charge.

Sous Linux, vous trouverez cette technique sous le nom de ¬ę¬†Channel Bonding¬†¬Ľ ou ¬ę¬†Teaming¬†¬Ľ sous l’OS SALE.

La syntaxe entre le 2924 et le 2950 est différente, donc adaptons nous :

sw-2924 :

interface FastEthernet0/21
description --- portchannel sw-2950 fa 0/21 ---
duplex full
speed 100
port group 1 distribution destination
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface FastEthernet0/22
description --- portchannel sw-2950 fa 0/22 ---
duplex full
speed 100
port group 1 distribution destination
switchport trunk encapsulation dot1q
switchport mode trunk
 
sw-2924#sh port group 1
Group  Interface              Transmit Distribution
-----  ---------------------  ---------------------
1  FastEthernet0/21       destination address
1  FastEthernet0/22       destination address

sw-2950 :

interface Port-channel1
switchport mode trunk
speed 100
duplex full
flowcontrol send off
 
interface FastEthernet0/21
description --- port-channel sw-2924 fa 0/21 ---
switchport mode trunk
speed 100
duplex full
no cdp enable
channel-group 1 mode on
!
interface FastEthernet0/22
description --- portchannel sw-2924 fa 0/22 ---
switchport mode trunk
speed 100
duplex full
no cdp enable
channel-group 1 mode on
 
sw-2950#sh interfaces port-channel 1 status
 
Port      Name               Status       Vlan       Duplex  Speed Type
Po1                          connected    trunk        full    100
 
sw-2950#sh interfaces port-channel 1 etherchannel
Age of the Port-channel   = 0d:00h:21m:02s
Logical slot/port   = 1/0          Number of ports = 2
GC                  = 0x00000000      HotStandBy port = null
Port state          = Port-channel Ag-Inuse
Protocol            =    -
 
Ports in the Port-channel:
 
Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
0     00     Fa0/21   On/FEC             0
0     00     Fa0/22   On/FEC             0

Voila pour la partie liaison redondante des deux switches.

NB: Pour les puristes, je suis en mode ¬ę¬†on¬†¬Ľ (etherchannel) car c’est le seul mode que comprend le 2924, bien √©videmment, sur des gammes sup√©rieures, essayez le mode active/passive/auto ou desirable suivant le protocole que vous souhaitez utiliser (LACP ou PAgP).

  • VTP

Comme je l’avais expliqu√© dans un pr√©c√©dent billet , j’utilise les Vlans dans mon r√©seau. Afin d’√©viter de devoir renseigner les vlans dans chaque switches, nous allons utiliser VTP (Vlan Trunking Procotol), toujours en niveau 2, qui permet de centraliser la base de donn√©es des Vlans sur un switch et de le diffuser aux autres du m√™me domaine.

Tr√®s pratique mais aussi tr√®s dangereux si vous y aller a la l√©g√®re ūüôā .

Sur le 2924, je le d√©finis comme ¬ę¬†Server¬†¬Ľ :

sw-2924# vlan database
 
sw-2924# vtp server
 
sw-2924# vtp domain GUIGUIABLOCVTP
 
sw-2924# vtp password weshjesuislepatron
 
sw-2924# sh vtp status
VTP Version                     : 2
Configuration Revision          : 2
Maximum VLANs supported locally : 68
Number of existing VLANs        : 19
VTP Operating Mode              : Server
VTP Domain Name                 : GUIGUIABLOCVTP

Sur le 2950, il va falloir définir VTP en mode client (il existe 3 modes, serveur, client et transparent (ou autonome)).

ATTENTION : le champ ¬ę¬†Configuration Revision¬†¬Ľ du futur client est tr√®s important, il faut absolument que sa valeur soit inf√©rieure au ¬ę¬†Server¬†¬Ľ sinon vous risquez de perdre vos vlans ! (exp√©rience connue….).

Donc, première chose à faire, sauvegarder votre vlan.dat :

sw-2924#copy flash:vlan.dat tftp://10.154.12.1
Address or name of remote host [10.154.12.1]?
Destination filename [vlan.dat]?
!!
1396 bytes copied in 0.57 secs

Le plus simple √©tant de passer le client en mode ¬ę¬†Transparent¬†¬Ľ d’abord, puis ¬ę¬†Client¬†¬Ľ apr√®s, ce qui remettra a z√©ro le num√©ro de r√©vision.

sw-2950(config)#vtp mode transparent
 
sw-2950#sh vtp status
VTP Version                     : 2
Configuration Revision          : 0
 
sw-2950(config)#vtp mode client
 
sw-2950(config)# vtp domain GUIGUIABLOCVTP
 
sw-2950(config)# vtp password weshjesuislepatron

Après quelques secondes, vous devriez voir les VLANs appris par le client :

sw-2950#sh vtp status
VTP Version                     : 2
Configuration Revision          : 2
Maximum VLANs supported locally : 128
Number of existing VLANs        : 19
VTP Operating Mode              : Client
VTP Domain Name                 : GUIGUIABLOCVTP

Désormais, les ajouts, suppressions, modifications de VLANs ne se feront que sur le 2924, qui les répercuteras sur le 2950.

  • OSPF

Ah, ah, ah. Alors l√† il faudrait quelques heures pour en faire le tour c’est pourquoi je ne vais pas m’attarder en d√©tails. Surtout qu’il existe un excellent article de ¬ę¬†Monsieur¬†¬Ľ hr du GCU-SQUAD dans le Jardin qui vous expliquera tout en d√©tails :

http://www.unixgarden.com/index.php/administration-systeme/routage-dynamique-et-haute-disponibilite-partie-2

Pour r√©sumer tr√®s basiquement, OSPF est un protocole de routage IP interne. Chaque routeur communique a ses voisins les r√©seaux auxquels il est directement connect√©. Cette base connue de tous permet ensuite a chaque routeur de d√©terminer la route la plus courte vers chacun des r√©seaux. Ce protocole √©tant dynamique, un changement de route, une perte de lien est apprise en quelques secondes par les autres routeurs qui se chargeront ou de l’assimiler ou de trouver un autre chemin pour se rendre dans le r√©seau impact√©.

Sur mon routeur principal, le 2611, on pr√©pare la conf (les chiffres entre parenth√®ses vous am√®nent a l’explication) :

router ospf 1
log-adjacency-changes
area 0 authentication message-digest
redistribute connected metric-type 1 subnets (1)
redistribute static subnets (1)
passive-interface default (2)
no passive-interface FastEthernet0/0.100 (3)
network 10.154.100.0 0.0.0.255 area 0 (4)

(1) J’annonce tous les r√©seaux sur lesquels je suis directement connect√© (√©galement les subnets)

(2) Je désactive OSPF sur toutes les interfaces sauf celles explicitement nommées

(3) Je parle OSPF sur la sub-interface fa 0/0.100

(4) J’annonce le r√©seau 10.154.100.0/24 en tant qu’area0, r√©seau qui correspond a mon backbone.

On prépare les deux routeurs 3620 :

rt-3620-a

interface Loopback1
ip address 10.154.13.8 255.255.255.255
 
router ospf 1
log-adjacency-changes
area 0 authentication message-digest
redistribute connected subnets
passive-interface default
no passive-interface FastEthernet0/0.100
network 10.154.100.248 0.0.0.0 area 0

rt-3620-b

interface Loopback1
ip address 10.154.13.9 255.255.255.255
 
router ospf 1
log-adjacency-changes
area 0 authentication message-digest
redistribute connected subnets
passive-interface default
no passive-interface FastEthernet0/0.100
network 10.154.100.249 0.0.0.0 area 0

Roulez jeunesse, le temps que ca converge (quelques secondes) et les routes sont apprises de partout :

rt-2611#sh ip ospf neighbor
 
Neighbor ID     Pri   State           Dead Time   Address         Interface
10.154.13.8       1   FULL/DROTHER    00:00:33    10.154.100.248  FastEthernet0/0.100
10.154.13.9       1   FULL/BDR        00:00:33    10.154.100.249  FastEthernet0/0.100

FULL = nous sommes voisins et échangeons les routes

DROTHER = nous ne sommes ni DR (designated router) ni BDR (backup designated router)

BDR = nous sommes le ¬ę¬†backup designated router¬†¬Ľ de ce r√©seau

rt-2611# sh ip route
 
...
 
O E2    10.154.13.9/32
[110/20] via 10.154.100.249, 00:00:05, FastEthernet0/0.100
O E2    10.154.13.8/32
[110/20] via 10.154.100.248, 00:00:05, FastEthernet0/0.100
...
 
rt-3620-b#sh ip route
...
 
C       10.154.13.9/32 is directly connected, Loopback1
O E2    10.154.13.8/32
[110/20] via 10.154.100.248, 00:00:40, FastEthernet0/0.100
O E1    10.154.13.1/32
[110/21] via 10.154.100.253, 00:00:40, FastEthernet0/0.100
...

Mouahhh c’est beau ūüėÄ

  • HSRP

Derni√®re √©tape et non la moindre, mise en place d’HSRP.

Le Hot Standby Router Protocol est un protocole propri√©taire de Cisco que vous connaissez s√Ľrement sous d’autres noms dans d’autres environnements comme VRRP ou (et surtout), CARP sous *BSD dont je vous ai souvent parler. (ICI ou LA)

Ce protocole permet de ¬ę¬†partager¬†¬Ľ une IP Virtuelle qui sera affect√©e au routeur ¬ę¬†Maitre¬†¬Ľ. En cas de panne de ce routeur, le routeur ¬ę¬†Esclave¬†¬Ľ s’approprie cette adresse IP et reprend donc la continuit√© de service.

Pour une solution de continuit√© de service, c’est quand m√™me ce qu’il se fait de mieux (qui a dit VSS au fond ? ūüôā ūüôā )

Nous allons configur√© une interface de routage pour le Vlan 600, en 10.154.60.254 que se partageront le rt-3620-a, le Ma√ģtre en 10.154.60.248 et le rt-3620-b, l’Esclave en 10.154.60.249 dans le groupe 10 (ce n’est qu’un identifiant pour HSRP et ses membres)

rt-3620-a(config)#int fa 0/0.600
rt-3620-a(config-subif)#encapsulation dot1Q 600
rt-3620-a(config-subif)#ip address 10.154.60.248 255.255.255.0
rt-3620-a(config-subif)#standby 10 priority 100
rt-3620-a(config-subif)#standby 10 ip 10.154.60.254
rt-3620-b(config)#int fa 0/0.600
rt-3620-b(config-subif)#encapsulation dot1Q 600
rt-3620-b(config-subif)#ip address 10.154.60.249 255.255.255.0
rt-3620-b(config-subif)#standby 10 priority 80
rt-3620-b(config-subif)#standby ip 10.154.60.254

On vérifie que ca ping :

Guiguiabloc-a:~# ping 10.154.60.254
PING 10.154.60.254 (10.154.60.254) 56(84) bytes of data.
64 bytes from 10.154.60.254: icmp_seq=1 ttl=255 time=1.44 ms
64 bytes from 10.154.60.254: icmp_seq=2 ttl=255 time=1.69 ms

Le traceroute me confirme le routeur Ma√ģtre :

Guiguiabloc-a:~# traceroute 10.154.60.254
traceroute to 10.154.60.254 (10.154.60.254), 30 hops max, 40 byte packets
1  *
2  10.154.100.248 (10.154.100.248)  7.797 ms * *

Sur le rt-3620-b, on voit que l’interface est en attente :

FastEthernet0/0.600 is up, line protocol is up
Internet protocol processing disabled

Ne reste qu’a couper l’interface pour avoir une bascule transparente ūüėÄ

rt-3620-a(config)#int fa 0/0.600
rt-3620-a(config-subif)#shut
Guiguiabloc-a:~# traceroute 10.154.60.254
traceroute to 10.154.60.254 (10.154.60.254), 30 hops max, 40 byte packets
1  *
2  10.154.100.249 (10.154.100.249)  7.705 ms

Magique ūüėÄ

Voila donc en ¬ę¬†quelques¬†¬Ľ lignes une approche de diverses techonologies que vous croiserez s√Ľrement dans un LAN d’entreprise.

Il est √©vident qu’a petite √©chelle c’est un r√©gal a mettre en place, sur une grosse infra, on est beaucoup plus enclin a r√©fl√©chir avant d’appuyer sur la touche ¬ę¬†entr√©e¬†¬Ľ…

Esp√©rant avoir titiller votre fibre r√©seau, amusez vous bien ūüôā

Ce billet a été posté dans architecture, cisco, geekerie et taggé , , , , . Bookmark ce permalink.

9 commentaires sur “Cisco Etherchannel, VTP, OSPF et HSRP

  1. J’adore votre ¬ę¬†architecture normale de particulier¬†¬Ľ ūüôā

    Article sympa comme d’hab !

  2. itou : ¬ę¬†Donc une architecture normale de particulier‚Ķ¬†¬Ľ
    hahaha excellent !!
    enfin , tout √ßa pour Youporn, et pas a l’abri d’un ecrasement de ligne par un technicien FT pas reveill√©..

  3. iop foO ūüôā

    déjà il est rare de laisser cdp activé quand on est sérieux et cette technique ne marche que sur des interfaces en mode trunk.
    La parade est simple et normalement appliquée par les sysadmins consciencieux : switchport nonegotiate :-p

    En m√™me temps, c’est un peu capilotract√© cette d√©mo, si tu branches un ¬ę¬†pc¬†¬Ľ sur un port trunk, fatalement tu consid√®res qu’il peut rejoindre les vlans du trunk (du moins ceux allowed) donc, d√®s le d√©part, tu es conscient de ce risque.

  4. as tu la config du etherchannel entre ton 2611 et ton 2924 ?
    Car par default, etherchannel ne passe pas sur 2611, as tu un module special pour ca ?
    merci pour ta reponse, j ai + – le meme setup a la maison, mais avec 2 3745.

  5. Pingback: GuiguiAbloc, un blog qui merite d'être connu, technique, reseau, linux, système - linux - geek