Cisco Etherchannel, VTP, OSPF et HSRP

Outch, la, on cumule :-D

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 :-D )

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 :-D

  • 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 :-D

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 :-D

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