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 :
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 :
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 :
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 🙂
bel effort pour un ping !!!
mouarf, il a osé 😀
J’adore votre « architecture normale de particulier » 🙂
Article sympa comme d’hab !
merci -:p
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é..
hum rien à voir avec ton article (dur de se croiser sur irc) mais que penses tu de cela :
http://synjunkie.blogspot.com/2009/10/abusing-vlans-with-backtrack.html
un avis, une parade ?
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.
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.
Pingback: GuiguiAbloc, un blog qui merite d'être connu, technique, reseau, linux, système - linux - geek