ad4

Libellés

ad7

Translate - traduction

mercredi 25 mars 2015

Résumé du modèle OSI

Dès le début de l'apprentissage du modèle OSI, il est très utile d'avoir une vision globale de l'ensemble des concepts qui s'intègrent dans chaque couche.

Le modèle OSI peut tenir en un tableau d'une page. En voici un exemple ...


No TCP/IP
Nom TCP/IP
No OSI
Nom
Résumé
Mots clés
PDU
Protocoles,etc.
Equipements et termes associés
4
Application
7
Application
processus réseau vers les applications
Processus réseau aux applications (services de fichiers, d'impression, de messagerie, de base de données et d'application, par exemple). Détermine la disponibilité des ressources entre deux noeuds. (FTP et Telnet, par exemple).
Données
DNS, TFTP, Rlogin, Telnet,FTP (File Transfert Protocol),TFTP (Trivial File Transfer Protocol) SMTP (Simple Mail Transfer Protocol), SNMP (Simple Network Management Protocol), HTTP (HyperText Transfer Protocol), BOOTP (Bootstrap Protocol), DHCP (Dynamic Host Configuration Protocol)
Données, logiciels, passerelles
4
Application
6
Présentation
représentation des données
Représentation des données, codage (EBCDIC, ASCII),  services de transfert de syntaxe, services de conversion, services de chiffrement, services de cryptage et services de compression.
Données
ASCII, EBCDIC, MIDI, MPEG, PICT, TIFF, JPEG
Codage des données, logiciels, cryptage, compression, logiciels de redirection
4
Application
5
Session
communication interhôte
Communications interhôtes. Etablit, gère et ferme les connexions entre les applications.
Données
Le système NFS (Network File System), Le langage d'interrogation structuré (SQL), L'appel de procédure distant (RPC), Le système X-Window, Le protocole ASP (AppleTalk Session Protocol),Le protocole de contrôle de session DNA (SCP)
Données, logiciels, client-serveur
3
Transport
4
Transport
connexions de bout en bout
Connexions de bout en bout. Segmentation et réassemblage des données dans l'ordre approprié. Etablissement et fermeture de " circuits virtuels " (orientés connexion). Peut assurer la livraison des segments avec la correction d'erreurs, la reprise sur
Segments
TCP ou UDP
Routeur, numéros de port, contrôle de flux, fenêtrage, orienté connexion, non orienté connexion
2
Interréseau
3
Réseau
Radresse et meilleur chemin
Adresses réseau/hôte et sélection du meilleur trajet sur un interréseau (routage). Encapsule les informations de la couche supérieure sous forme de "paquets".
Paquets, datagrammes
IP, IPX, ICMP, ARP, RARP, Ping, Traceroute
Routeur, Brouter, commutateur de couche 3, paquet, adressage IP de datagrammes, sous-réseaux, détermination du chemin, protocoles routés (IP, IPX) et protocoles de routage (RIP, IGRP)
1
Réseau
2
Liaison de données
accès au média
Accès au média. Ajoute un en-tête de trame aux informations de la couche supérieure. Cet en-tête contient l'adresse matérielle de l'unité de destination ou de l'unité suivante sur le chemin. La couche liaison de données se divise en deux sous-couches : 1) La sous-couche LLC (Logical Link Control) et 2) la sous-couche MAC (Media Access Control).
Trames
IEEE 802.2, 802.3, 802.5, PPP, HDLC
Ethernet, carte réseau (contrôle de lien logique et adresse MAC), pont, commutateur, trame, protocoles de liaison WAN (HDLC, etc.)
1
Réseau
1
Physique
transmission binaire
Signaux et codage de transmission binaire. Connexions électrique (fil de cuivre), par source de lumière (fibre) et physique, et médias (câblage) entre les unités réseau.
Bits
IEEE 802.3, 802.5
Ethernet, carte réseau (connecteurs physiques - BNC, AUI, RJ-45, etc.), médias (câble coaxial, câble à  paires torsadées non blindées, fibre optique), répéteur, concentrateur, ETCD et ETTD, bits, codage

EIGRP ( Enhanced Interior Gateway Routing Protocol ) – Les bases

EIGRP ( Enhanced Interior Gateway Routing Protocol ) – Les bases

EIGRP (Enhanced Interior Gateway Routing Protocol) est un protocole de routage développé par Cisco. Cet article reprend les bases de son fonctionnement et de sa configuration.

Introduction

EIGRP est un protocole de routage de type « distance vector » (vecteur de distance) avancé (ou hybride selon les points de vue). Bien que son fonctionnement global ressemble très fort à un protocole de type « distance vector » il dispose d’une série de caractéristiques que l’on retrouve par exemple dans OSPF qui est un « link state protocol » (protocole d’état des lien) comme l’établissement de relations d’adjacence.

Caractéristiques

  • Supporte le VLSM (Variable Length Subnet Mask), c’est donc un protocole de routage « classless ».
  • Fonctionne sur base de l’algorithme DUAL pour une sélection efficace des routes tout en évitant les boucles.
  • Relations d’adjacence avec les routeurs voisins.
  • Transmissions des messages en multicast (224.0.0.10) et unicast
  • Supporte plusieurs protocoles de la couche réseau: IPv4, IPv6, AppleTalk, IPX, …
  • Load-balancing et notamment sur routes ayant des métriques différentes.
  • « Summarization » à n’importe quel endroit du réseau.
  • « Auto-summarization », par défaut, entre réseaux majeurs (entre deux réseaux classfull).
  • Echange des messages entre routeurs assuré par RTP (Reliable Transfer Protocol).
  • Métrique tenant compte de la bande passante et du délai des interfaces. D’autres paramètres peuvent être configurés en plus ( fiabilité et charge de l’interface).
  • Distance administrative pour les routes internes: 90 (valeur par défaut)
  • Distance administrative pour les routes externes: 170 (valeur par défaut)

Fonctionnement

Tout d’abord, EIGRP fonctionne sur base d’un numéro de système autonome ( « Autonomous System Number » ou « ASN »). C’est-à-dire qu’il pourra uniquement communiquer avec les routers où EIGRP est configuré pour le même ASN.
Ensuite, une fois qu’on l’a activé sur une interface, que ce soit de manière dynamique ou statique, EIGRP tente de découvrir des voisins potentiels pour celà il y envoi des message « HELLO ».
Lorsque deux routeurs reçoivent des messages HELLO l’un de l’autre, ils vérifient alors les conditions d’adjacence afin de décider si oui ou non ils deviendront des voisins EIGRP (neighbors).
Pour que deux routeurs deviennent voisins EIGRP il doivent remplir les conditions suivantes:
  • Fonctionner dans le même AS (Autonomous System), donc être configuré avec le même ASN.
  • Les deux routeurs doivent pouvoir s’envoyer et recevoir des packets IP.
  • Les interfaces doivent être configurées avec une adresse IP dans le même subnet.
  • L’interface concernée ne doit pas être configurée comme passive.
  • Les valeurs K (valeurs qui définissent le calcul de la métrique) doivent correspondre.
  • L’authentification EIGRP (si configurée) doit être passée avec succès.
Si ces différentes conditions sont vérifiées, les deux routeurs se considèrent alors comme voisins EIGRP, ajoutent cette relation dans leur table de voisinage, et commencent à s’échanger des informations.
Lorsqu’une relation de voisins vient de s’établir, chaque routeur commence par envoyer la totalité de ses routes connues pour lesquelles il a une interface active ET configurée dans EIGRP. Par la suite, seules les modifications seront envoyées.
Afin de garantir une certain stabilité, les routeurs s’échangent en permanence des messages HELLO. Ces messages HELLO sont envoyés à intervalles réguliers et ont une durée de vie. Si un des deux routeurs n’a pas reçu de nouveau HELLO avant que la durée de vie du précédent soit écoulée, le routeur voisin est considéré comme défaillant, l’adjacence est rompue et les routes reçues par ce voisin sont retirées de la table de routage.
Chaque routeur garde en mémoire toutes les informations sur les routes reçues de ses voisins et il les stocke dans sa table de topologie. EIGRP utilise ensuite l’algorithme DUAL pour sélectionner la meilleure route vers chaque sous-réseau, calcule la métrique à y associer et place le résultat dans sa table de routage.

La métrique

Par défaut, EIGRP calcule la métrique d’un subnet en tenant compte de la bande passante et du délai des interfaces. D’autres éléments peuvent être configurés pour entrer dans le calcul: la fiabilité de l’interface et la charge de l’interface.
La métrique (avec les paramètre par défaut) se calcule comme suit:
Métrique = ( ( 10.000.000 / PPBP ) + S[délais] ) x 256
PPBP: Plus petite bande passante vers le subnet en kbits/s
S[délais]: Somme des délais des interfaces vers le subnet exprimée en 10µs (dizaine de µs)

« Feasible Distance » et « Reported Distance »

La « Feasible Distance » (FD) est la métrique pour un subnet du point de vue du routeur lui-même, utilisée pour choisir la meilleure route vers ce subnet.
La « Reported Distance » (RD) est la métrique pour un subnet du point de vue du routeur voisin. (La métrique annoncée par le routeur voisin).
Lorsque deux routeurs s’échangent leur topologie, ils envoient des messages de type « Update » contenant une série d’information ( subnet concerné, délai, bande passante, charge de l’interface, fiabilité de l’interface, MTU et nombre de sauts).
Le routeur qui reçoit l’information l’intègre dans sa table de topologie et ensuite calcule la RD du subnet avec ces informations et la FD pour ce subnet. Voici un exemple:
R1 est connecté au subnet 192.168.0.0 / 24 via son interface FastEthernet0/0
R1 et R2 sont connectés via leurs inerfaces Serial 0/0 respectives. (172.16.0.0 / 30)
Le schéma ci-dessous reprend l’update envoyé par R1 à R2 concernant son subnet 192.168.0.0

« Successor » et « Feasible Successor « 

Une des particularité d’EIGRP réside dans le fait qu’il garde dans sa table de topologie toutes les informations reçues de ses voisins, y compris les routes qui n’ont pas été intégrée dans la table de routage. C’est là qu’on rencontre les termes « Successor  » et « Feasible Successor ».
Quand plusieurs routes possibles existent, le « Successor » est la route qui a la plus petite métrique vers le subnet … donc qui a la plus petite « Feasible Distance ». Le routeur qui annonce cette route sera alors le « next-hop », le prochain saut vers ce subnet. C’est cette route qui sera placée dans la table de routage.
Dans certaines conditions, d’autres routes peuvent être considérés comme valides sans pour autant être les meilleures. Ce sont les « Feasible Successors ». Ces routes ne sont, dans une configuration par défaut, pasp lacée dans la table de routage. Toutefois, si le « Successor » actuel devait tomber, EIGRP irait alors directement chercher une alternative dans sa table de topologie parmi les « Feasible Successors ».
Pour qu’une route soit considérée comme « Feasible Successor » il faut que la RD de cette route soit strictement inférieur à la FD de la meilleure route. Exemple: (les valeurs FD et RD sont ici simplifiées et non réalistes afin de rendre la compréhension plus aisée).
Un routeur a, dans sa topolgie, trois routes vers le subnet 192.168.0.0 / 24:
Route n°1 : via 10.0.0.1, RD=1000, FD=2000
Route n°2 : via 10.0.1.1, RD=1500, FD=2750
Route n°3 : via 10.0.2.1, RD=2500, FD=3000
la Route n°1 sera le « Successor », puisque c’est la plus petite FD.
la Route n°2 sera un « Feasible Successor » car RD(route2) < FD(route1)
la Route n°3 ne sera pas un « Feasible Successor », RD(coute3) > FD(route1)

Que se passe-t-il lors d’un accident sur le réseau ?

Il arrive bien entendu qu’une routeur perde une liaison pour une raison x ou y. Que ce soit à cause d’une interface défaillante, d’un voisin qui ne répond plus, … EIGRP va tenter de trouver une solution…
  1. EIGRP analyse sa topologie. Si un ou plusieurs « Feasible Successor » existent, il remplace la route par celle parmi les FS ayant la plus petite FD.
  2. Si EIGRP n’a pas de FS dans sa topologie, il entre dans un processus de requêtes. Il envoi des requêtes à ses voisins à la recherche d’une nouvelle route vers le subnet perdu. Ces voisins, s’ils n’ont pas de solution immédiate à proposer envoient à leur tour des requêtes à leurs propre voisins … etc.
Autant dire que la présence d’un FS dans la topologie permet d’améliorer sensiblement la convergence du réseau.

Configuration de base

Passons maintenant à la configuration de base d’EIGRP, nous allons donc:
  1. Configurer EIGRP pour fonctionner dans un ASN. ( router eigrp <asn> )
  2. Activer EIGRP de manière dynamique sur les différentes interfaces du routeur ( network <subnet> [masque inverse] )
On reprend ici l’exemple illustré plus haut. R1 connecté à un subnet 192.168.0.0/24 via son interface Fa0/0 ( adresse ip 192.168.0.1 /24), également connecté à R2 via son interface S0/0 (adresse ip 172.16.0.1/30). R2 ayant son interface S0/0 configurée avec une adresse ip 172.16.0.2/30.
Sur R1:
R1>enable
R1#configure terminal
R1(config)#router eigrp 10
R1(config-router)#network 192.168.0.0
R1(config-router)#network 172.16.0.0 0.0.0.3
R1(config-router)#exit
R1(config)#exit
R1#
Sur R2:
R2>enable
R2#configure terminal
R2(config)#router eigrp 10
R2(config-router)#network 172.16.0.0
R2(config-router)#exit
R2(config)#exit
R2#
Quelques explications…
On a donc ici bien activé EIGRP sur les deux routeurs pour l’ASN 10.
Sur R1 on a bien activé l’interface Fa0/0 et S0/0 via les commandes network.
Sur R2, EIGRP est activé pour l’interface S0/0.
Notez la différence d’utilisation de la commande « network ». Lorsque l’on ne spécifie que le subnet (sans masque inverse) EIGRP sera activé pour toutes les interfaces correspondantes. Donc dans le cas de « network 172.16.0.0″ toutes les interfaces dont l’adresse IP commencerait par 172.16…. seraient englobées.
Par contre si on spécifie un masque inverse (wildcard mask) EIGRP compare chaque interface en appliquant le masque (à peu de chose près comme dans le cas des access-list). On peut aisément calculer les adresses IP qui correspondent à unsubnet/masque inverse par une simple addition. Par exemple dans le cas de « network 172.16.0.0 0.0.0.3″:
  172. 16.  0.  0
+   0.  0.  0.  3
=================
  172. 16.  0.  3
Donc toues les adresses comprises entre 172.16.0.0 et 172.16.0.3 seront prises en compte.
L’utilisation du masque inverse est optionnelle. Toutefois cela permet de bien cibler les interfaces que l’on désire activer sans risquer d’englober l’une ou l’autre pour lesquelles EIGRP ne devrait pas être active.
Vérification de fonctionnement d’EIGRP
La première chose à vérifier, c’est si EIGRP est bien fonctionnel avec la commande « show ip protocols »
R1#sh ip protocols
Routing Protocol is "eigrp 10"
 Outgoing update filter list for all interfaces is not set
 Incoming update filter list for all interfaces is not set
 Default networks flagged in outgoing updates
 Default networks accepted from incoming updates
 EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
 EIGRP maximum hopcount 100
 EIGRP maximum metric variance 1
 Redistributing: eigrp 10
 EIGRP NSF-aware route hold timer is 240s
 Automatic network summarization is in effect
 Automatic address summarization:
 192.168.0.0/24 for Serial0/0
 172.16.0.0/16 for FastEthernet0/0
 Summarizing with metric 2169856
 Maximum path: 4
 Routing for Networks:
 172.16.0.0/30
 192.168.0.0
 Routing Information Sources:
 Gateway         Distance      Last Update
 (this router)         90      00:30:36
 172.16.0.2            90      00:29:08
 Distance: internal 90 external 170
R1#
  • On a donc la confirmation ici qu’EIGRP est bien actif et qu’il est configuré pour l’ASN 10.
  • La deuxième ligne mise en évidence, ce sont les valeurs K qui définissent les paramètres de calcul de la métrique EIGRP. Toujours utile de les retrouver encas de problème d’établissement des adjacences (voir plus haut le paragraphe concernant les condition pour former une adjacence).
  • La troisième ligne en bleu indique que l’auto-summary est actif (par défaut). Ce qui fait qu’EIGRP annonce un summary de chaque réseau classefull (les quelques lignes juste en dessous) puisque R1 est à la frontière de deux réseaux majeurs.
  • La quatrième partie colorée indique pour quels subnets on a activé EIGRP via les commandes « network <subnet> [masque inverse] »
  • Enfin la dernière ligne donne les distances administratives utilisées. Ici ce sont les valeurs par défaut d’EIGRP.
Deuxième étape, vérifier sur quelles interfaces EIGRP est activé: « show ip eigrp interfaces »
R1#sh ip eigrp interfaces
IP-EIGRP interfaces for process 10
Xmit Queue   Mean   Pacing Time   Multicast    Pending
Interface        Peers  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
Fa0/0              0        0/0         0       0/10           0           0
Se0/0              1        0/0        83       0/15           0           0
R1#
Troisième étape, vérifier les adjacences via la commande « show ip eigrp neighbors »
R1#sh ip eigrp neighbors
IP-EIGRP neighbors for process 10
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
 (sec)         (ms)       Cnt Num
0   172.16.0.2              Se0/0             11 00:25:51   83   498  0  3
R1#
On a donc bien ici une adjacence avec R2 (172.16.0.2). On retrouve aussi l’interface via laquelle l’adjacence est formée.
La colonne « Hold » indique la durée de vie du dernier message Hello reçu. Si cette valeur tombe à zéro, la’adjacence est considérée comme défaillante et est annulée.
Enfin, analyser la table de routage et la table de topologie: « show ip route » et « show ip eigrp topology »
R2#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2
 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
 ia - IS-IS inter area, * - candidate default, U - per-user static route
 o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

 172.16.0.0/30 is subnetted, 1 subnets
C       172.16.0.0 is directly connected, Serial0/0
D    192.168.0.0/24 [90/2195456] via 172.16.0.1, 00:27:10, Serial0/0
R2#
R2 a bien appris une route pour le subnet 192.168.0.0/24. Le next-hop est 172.16.0.1. L’interface de sortie est Serial0/0. La valeur [90/2195456] indique la distance administrative (90) et la métrique pour la route (2195456) qui est aussi la FD de la route.
R2#sh ip eigrp topology
IP-EIGRP Topology Table for AS(10)/ID(172.16.0.2)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status

P 192.168.0.0/24, 1 successors, FD is 2195456
 via 172.16.0.1 (2195456/281600), Serial0/0
P 172.16.0.0/30, 1 successors, FD is 2169856
 via Connected, Serial0/0
R2#
On retrouve dans la table de topologie les routes présentes dans la table de routage. A noter que si il y avait des alternatives à ces routes, pour autant qu’elles soient considérées comme feasible successors, elle seraient apparues dans cette table-ci.
Les valeurs 2195456/281600 correspondent à la RD ( 281600) et la FD (2195456) de la route. Ce qui signifie donc que R1 a annoncé à R2 une route vers 192.168.0.0/24 et qu’il a une métrique de 281600 pour cette route.
Il suffit de vérifier sur R1…
R1#sh ip eigrp topology
IP-EIGRP Topology Table for AS(10)/ID(192.168.0.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status

P 192.168.0.0/24, 1 successors, FD is 281600
 via Connected, FastEthernet0/0
P 172.16.0.0/16, 1 successors, FD is 2169856
 via Summary (2169856/0), Null0
P 172.16.0.0/30, 1 successors, FD is 2169856
 via Connected, Serial0/0
R1#
En effet … R1 a bien une métrique de 281600 pour atteindre le subnet 192.168.0.0/24. Une chose intéressante à noter ici… la présence d’un summary (en vert). Vu que l’auto-summary est active par défaut et que R1 est à la frontière de deux réseaux majeurs (192.168.0.0 et 172.16.0.0) EIGRP crée un summary et l’annonce vers ses voisins.
On retrouve d’ailleurs ce summary dans la table de routage de R1…
R1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2
 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
 ia - IS-IS inter area, * - candidate default, U - per-user static route
 o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

 172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C       172.16.0.0/30 is directly connected, Serial0/0
D       172.16.0.0/16 is a summary, 00:27:45, Null0
C    192.168.0.0/24 is directly connected, FastEthernet0/0
R1#
Voilà qui conclut ce premier article concernant EIGRP.

Routage Inter-(V)LAN : Du physique au virtuel

Routage Inter-(V)LAN : Du physique au virtuel

Routage entre LANs ou routage Inter-VLAN … même combat! Pour qu’un routeur puisse router un paquet d’un domaine de diffusion à un autre il doit posséder une interface configurée dans chacun d’eux …

Je vais tenter par le biais de cet article de clarifier cette notion de « routage Inter-Vlan ». Pour cela, nous allons prendre comme base un routeur connecté à deux domaines de diffusions, le Subnet A (192.168.0.0/24) et le Subnet B (192.168.1.0/24).
ivr1
Ceci est ce qu’on peut appeler la topologie logique. Elle reprend les subnets (domaines de diffusions) et l’équipement qui les interconnecte, le routeur.
A partir de là il y a plusieurs façon de réaliser cette topologie…

La méthode « physique »

ivr2
Sans aucun doute la méthode la plus évidente. Il suffit de connecter chacune des interface du routeur à un switch par exemple et de lui configurer l’adresse adéquate.
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.0.1 255.255.255.0
Router(config-if)#no shutdown
Router(config)#interface fastEthernet 0/1
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown
Sans aucune suprise, on constate que deux routes connectées apparaissent dans la table de routage…
Router#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
 * - candidate default, U - per-user static route, o - ODR
 P - periodic downloaded static route

Gateway of last resort is not set

C 192.168.0.0/24 is directly connected, FastEthernet0/0
C 192.168.1.0/24 is directly connected, FastEthernet0/1
Router#
Avantages:
  • Simplicité de mise en place
  • Ne fait appel à aucune technologie avancée et donc peut être implémenté sur quasi n’importe quel équipement (une routeur Linux et deux switch non manageables par exemple).
Inconvénients:
  • S’adapte difficilement à un grand nombre de subnets (il faut une interface physique par subnet)
  • Coût élevé en matériel, chaque subnet requiert également un switch supplémentaire.

 Intégration des VLANs

ivr2.5
Les VLANs (Virtual LANs) permettent entre autre de diviser un même switch en plusieurs domaine de diffusions. Dans le cas présent, on recrée donc le principe précédent, à savoir deux domaines de diffusions distincts. Dans chacun de ses VLANs on place une partie des interfaces du switch, ensuite on connecte chaque interface du routeur à une interface placée dans le VLAN souhaité.

Configuration du switch:

Switch(config)#vlan 10
Switch(config-vlan)#name SUBNET-A
Switch(config-vlan)#exit
Switch(config)#vlan 20
Switch(config-vlan)#name SUBNET-B
Switch(config-vlan)#exit
Switch(config)#interface range fastEthernet 0/1 - 12
Switch(config-if-range)#switchport mode access 
Switch(config-if-range)#switchport access vlan 10
Switch(config-if-range)#exit
Switch(config)#interface range fastEthernet 0/13 - 24
Switch(config-if-range)#switchport mode access 
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit
Switch(config)#exit
Switch#

Configuration du routeur:

Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.0.1 255.255.255.0
Router(config-if)#no shutdown
Router(config)#interface fastEthernet 0/1
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown
Résultat:
Côté routeur rien ne change… (la configuration est identique)
Router#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
 * - candidate default, U - per-user static route, o - ODR
 P - periodic downloaded static route

Gateway of last resort is not set

C 192.168.0.0/24 is directly connected, FastEthernet0/0
C 192.168.1.0/24 is directly connected, FastEthernet0/1
Router#
Côté switch, les interfaces sont placées dans deux VLANs différents. Une machine connectée dans le VLAN10 ne pourra donc pas communiquer directement avec une machine du VLAN20. Elle doit passer par le routeur… comme dans la version 100% physique.
Avantages:
  • Simplicité de mise en place côté routeur.
  • Il n’est plus nécessaire d’avoir un switch par subnet.
Inconvénients:
  • S’adapte difficilement à un grand nombre de subnets (il faut une interface physique par subnet) côté routeur mais également côté switch!
  • Il faut utiliser un switch manageable qui supporte les VLANs

Méthode « Router on-a-stick »

ivr3
L’idée est la suivante: on veut limiter le nombre de connexions physiques et les partager entre plusieurs domaines de diffusions. Cependant côté switch, il est impossible de placer une interface dans deux VLANs … C’est là qu’intervient le concept de Trunk!
Un trunk est une liaison sur laquelle les trames Ethernet sont taguées (ou encapsulée suivant le protocole utilisé). Ce tag (ou entête supplémentaire) contient entre autre l’identifiant du VLAN d’où provient la trame de sorte que l’équipement qui la reçoit puisse la réattribuer au bon domaine de diffusion.
Un switch peut être configuré pour établir un trunk sur une interface … mais pas un routeur… De ce côté là, il faut respecter le principe de base … une interface par domaine de diffusion. Dés lors on fait appel à la notion de sub-interface. Pour faire simple, c’est un peu comme si on découpait l’interface physique en plusieurs morceaux. Chacun de ses morceau est ensuite configuré pour accepter les trames taguées avec un identifiant de VLAN défini.

Configuration du switch:

 Switch(config)#vlan 10
 Switch(config-vlan)#name SUBNET-A
 Switch(config-vlan)#exit
 Switch(config)#vlan 20
 Switch(config-vlan)#name SUBNET-B
 Switch(config-vlan)#exit
 Switch(config)#interface range fastEthernet 0/2 - 12
 Switch(config-if-range)#switchport mode access
 Switch(config-if-range)#switchport access vlan 10
 Switch(config-if-range)#exit
 Switch(config)#interface range fastEthernet 0/13 - 24
 Switch(config-if-range)#switchport mode access
 Switch(config-if-range)#switchport access vlan 20
 Switch(config-if-range)#exit
 Switch(config)#int fastEthernet 0/1
 Switch(config-if)#switchport mode trunk
 Switch(config-if)#^Z
 Switch#

Configuration du routeur:

Router(config)#interface fastEthernet 0/0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface fastEthernet 0/0.10
Router(config-subif)#encapsulation dot1Q 10
Router(config-subif)#ip address 192.168.0.1 255.255.255.0
Router(config-subif)#exit
Router(config)#interface fastEthernet 0/0.20
Router(config-subif)#encapsulation dot1Q 20
Router(config-subif)#ip address 192.168.1.1 255.255.255.0
Router(config-subif)#^Z
Router#

Résultat:

Sans la moindre surprise, le routeur dispose d’une interface dans chacun des domaines de diffusion. Toutefois, cette fois-ci il s’agit d’interface virtuelles, des subdivisions de l’interface physiques.
Remarque: le nom de la sub-interface (Fa0/0.10 par exemple) n’a aucun lien avec l’identifiant du VLAN associé, c’est la commande « encapsulation dot1q xxx » qui associe le VLAN xxx à la sub-interface en question.
Router#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
 * - candidate default, U - per-user static route, o - ODR
 P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.0.0/24 is directly connected, FastEthernet0/0.10
C 192.168.1.0/24 is directly connected, FastEthernet0/0.20
Router#
Avantages:
  • Une seule liaison physiques pour plusieurs domaines de diffusion
  • Facilement extensible, il suffit de créer une nouvelle sub-interface sur le routeur et un nouveau vlan sur le switch.
Inconvénients:
  • Tous les domaines de diffusions passent par la même liaison physique qui devient le goulot d’étranglement
  • Il faut faire appel à un switch manageable qui supporte les trunks dot1q et à un routeur capable de prendre en charge le protocole dot1q également.

Le switch multi-layer

ivr4
Certainement la méthode la plus utilisée pour le routage inter-vlan. Pour simplifier à la limite de la caricature, c’est un peu comme si on installait un routeur dans un switch et qu’on les reliait en interne. Bien sur c’est plus complexe que cela, mais l’idée générale est facilement compréhensible.
Un switch multi-layer est un switch (sérieux?) mais capable de faire bien plus que son job de niveau 2. Par configuration on peut y activer le routage IP ce qui le transforme en routeur potentiel.
Pour la configuration, le principe d’origine reste valable, il nous faut une interface par domaine de diffusion… mais ici, vu que tout est interne au MLS (multi layer switch), on ne fait plus appel aux interfaces physiques du tout. On utilise les SVIs (Switched Virtual Interface) qui sont ni plus ni moins que les « interface VLAN ». Les portes d’accès du switch pour émettre des trames dans les différents domaines de diffusion.
Il n’y pas grande chose à faire si ce n’est:
  • Créer les VLANs
  • Placer les interfaces du switch dans les VLANs
  • Activer le routage IP
  • Créer et configurer les SVIs
Switch(config)#vlan 10
Switch(config-vlan)#name SUBNET-A
Switch(config-vlan)#exit
Switch(config)#vlan 20
Switch(config-vlan)#name SUBNET-B
Switch(config-vlan)#exit
Switch(config)#interface range fastEthernet 0/1 - 12
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 10
Switch(config-if-range)#exit
Switch(config)#interface range fastEthernet 0/13 - 24
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit
Switch(config)#ip routing
Switch(config)#interface vlan 10
Switch(config-if)#ip address 192.168.0.1 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#interface vlan 20
Switch(config-if)#ip address 192.168.1.1 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#^Z
Switch#
Au final le MLS possède une interface dans chacun des domaines de diffusion et sa table e routage reprend les deux routes connectées.
Switch#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
 * - candidate default, U - per-user static route, o - ODR
 P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.0.0/24 is directly connected, Vlan10
C 192.168.1.0/24 is directly connected, Vlan20
Switch#
Remarque: Pour qu’une SVI soit UP/UP (et donc par conséquent que la route connectée associée apparaisse dans la table de routage, il faut qu’il y ait au moins une interface active dans le VLAN concerné (ou un Trunk qui laisse passer ce VLAN).
Avantages:
  • Le routage inter-vlan n’est plus dépendant de la bande passante d’une liaison physique.
  • Facilement extensible, il suffit de créer un nouveau VLAN et une nouvelle SVI associée.
Inconvénients:
  • Les MLS sont des équipements bien plus cher qu’un switch ou un routeur standard (voire même les deux rassemblés).

Conclusion:

Quelque soit la méthode utilisée, l’équipement en charge du routage DOIT avoir une interface connectée dans chacun des domaines de diffusion, qu’elle soit physique ou virtuelle!

Configuration simple de VLANS sur un switch

Configuration simple de VLANS sur un switch

Un VLAN est en quelque sorte un sous-réseau virtuel, généralement associé à une adresse sous-réseau propre. Cela implique donc que les vlans ne peuvent pas communiquer entre eux à moins que l’on utilise un routeur…


Que faut-il configurer ?
  1. Avoir une liaison fonctionelle entre le switch et le routeur.
  2. Définir la liason entre le switch et le routeur comme un « trunk »
  3. Créer les vlans sur le switch
  4. Attribuer les interfaces désirées dans les différents vlans (uniquement utiles pour l’administration du switch).
  5. Pour chaque VLAN sur le switch, créer une sous interface (sur celle utilisée par le trunk).
Remarque: Les switches d’ancienne génération n’acceptent pas plus d’une interface de type « vlan ».
Exemple concret
On dispose d’un Switch (24 ports FastEthernet, 2 ports Gigabits) et d’un routeur ( 1 port Gigabit, 1 port série). On souhaite diviser le switch en 4 VLANS diposant chacun de 6 Interfaces Fa.
  1. VLAN1:   192.168.1.0 / 255.255.255.0  Fa0/1-Fa0/6
  2. VLAN2:   192.168.2.0 / 255.255.255.0  Fa0/7-Fa0/12
  3. VLAN3:   192.168.3.0 / 255.255.255.0  Fa0/13-Fa0/18
  4. VLAN4:   192.168.4.0 / 255.255.255.0  Fa0/19-Fa0/24
On commence donc par se connecter au CLI du Switch et on crée les différents vlans. On leur attribue également une adresse IP de manière à pouvoir les gérer à distance par la suite. (Rmq: les commandes utilisées ici sont celles disponibles sur un switch Cisco 2960).
On entre en mode de configuration:
Switch>en
Switch#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
On configure l’ip du VLAN1 (qui existe par défaut) en 192.168.1.254 / 255.255.255.0
Switch(config)#interface vlan 1
Switch(config-if)#ip address 192.168.1.254 255.255.255.0
Switch(config-if)#no shut
%LINK-5-CHANGED: Interface Vlan1, changed state to up
Switch(config-if)#
Switch(config-if)#exit
On crée et on configure les VLAN2, 3 et 4 avec respectivement les adresses 192.168.2.254, 192.168.3.254 et 192.168.4.254 et un masque 255.255.255.0.
Switch(config)#vlan 2
Switch(config-vlan)#name VLAN2
Switch(config-vlan)#exit
Switch(config)#interface vlan 2
%LINK-5-CHANGED: Interface Vlan2, changed state to up
Switch(config-if)#ip address 192.168.2.254 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#exit
Switch(config)#vlan 3
Switch(config-vlan)#name VLAN3
Switch(config-vlan)#exit
Switch(config)#interface vlan 3
%LINK-5-CHANGED: Interface Vlan3, changed state to up
Switch(config-if)#ip address 192.168.3.254 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#exit
Switch(config)#vlan 4
Switch(config-vlan)#name VLAN4
Switch(config-vlan)#exit
Switch(config)#interface vlan 4
%LINK-5-CHANGED: Interface Vlan4, changed state to up
Switch(config-if)#ip address 192.168.4.254 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#exit
On place maintenant les interfaces dans les vlans.
Switch(config)#interface range fastEthernet 0/7-12
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 2
Switch(config-if-range)#no shut
Switch(config-if-range)#exit
Switch(config)#interface range fastEthernet 0/13-18
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 3
Switch(config-if-range)#no shut
Switch(config-if-range)#exit
Switch(config)#interface range fastEthernet 0/19-24
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 4
Switch(config-if-range)#no shut
Switch(config-if-range)#exit
On vérifie que tout est bien en place. (on utilise ici « do show vlan » puisque la commande « show vlan » n’est pas disponible en mode config).
Switch(config)#do show vlan
VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Gig1/1, Gig1/2
2    VLAN2                            active    Fa0/7, Fa0/8, Fa0/9, Fa0/10
                                                Fa0/11, Fa0/12
3    VLAN3                            active    Fa0/13, Fa0/14, Fa0/15, Fa0/16
                                                Fa0/17, Fa0/18
4    VLAN4                            active    Fa0/19, Fa0/20, Fa0/21, Fa0/22
                                                Fa0/23, Fa0/24
On passe maintenant à la configuration de la liaison avec le routeur qui doit être un trunk. On utilise ici l’interface Gigabit 1/1.
Switch(config-if)#switchport mode trunk
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/1, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/1, changed state to up
Switch(config-if)#exit
On va s’occuper maintenant de la configuration du routeur, sur lequel on créera des sous-interfaces pour chaque VLAN supplémentaires créés. Et de les configurer (IP, …). A noter qu’il faut configurer l’encapsulation de la sous interface pour pouvoir lui attribuer une adresse IP.
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#int gigabitEthernet 0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shut
Ceci correspond à l’adresse principale de l’interface, et également au VLAN1.
Créons maintenant la sous-interface pour le VLAN2.
Router(config)#int gigabitEthernet 0/0.2
%LINK-5-CHANGED: Interface GigabitEthernet0/0.2, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0.2, changed state to up
Router(config-subif)#encapsulation dot1Q 2
Router(config-subif)#ip address 192.168.2.1 255.255.255.0
Router(config-subif)#no shut
Router(config-subif)#exit
On fait de même pour les interfaces relatives aux VLAN 3 et 4.
Router(config)#interface gigabitEthernet 0/0.3
%LINK-5-CHANGED: Interface GigabitEthernet0/0.3, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0.3, changed state to up
Router(config-subif)#encapsulation dot1Q 3
Router(config-subif)#ip address 192.168.3.1 255.255.255.0
Router(config-subif)#no shut
Router(config-subif)#exit
Router(config)#interface gigabitEthernet 0/0.4
%LINK-5-CHANGED: Interface GigabitEthernet0/0.4, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0.4, changed state to up
Router(config-subif)#encapsulation dot1Q 4
Router(config-subif)#ip address 192.168.4.1 255.255.255.0
Router(config-subif)#no shut
Router(config-subif)#exit
Dans la commande « encapsulation dot1Q 4″, le chiffre en fin de ligne correspond au n° du VLAN
Si tout c’est bien déroulé, la configuration des vlans est maintenant terminée. Il ne suffit plus que de connecter les machines sur les différents VLANS et les configurer avec des adresses IP du même range que le VLAN où elles se trouvent.
Remarque: Lorsque les VLANS doivent être propagés sur plusieurs switch, la configuration est un peu plus complexe, puisqu’il faudra alors configurer l’utilisation du protocol VTP… mais ce sera pour un autre article

ACL - Access Control List




Ajouter une légende







mardi 24 mars 2015

Le protocole IPv4 : les bases

Le protocole IPv4 : les bases

Introduction

IPv4 est un protocole « routable », de la couche réseau du modèle OSI (couche 3), entendez par là qu’il défini principalement un système d’adressage permettant de router des paquets.
Ce protocole est décrit dans la RFC791 publiée en 1981. Son objectif initial était de permettre l’interconnexion de réseaux.
Le principe sur lequel il est bâtit est relativement simple: attribuer aux machines une (ou plusieurs) adresses(s) d’une taille donnée afin que celle-ci puissent s’échanger des paquets de données. Ces adresses permettent aux machines composant le réseau de choisir un itinéraire pour acheminer les données depuis une source vers une destination.

Analogie

Si je veux transmettre une lettre à un voisin qui habite la même rue que moi, je ne me préoccupe pas de l’adresse de la rue. Tout ce que j’ai besoin de savoir c’est ce qui distingue sa maison de la mienne. Une caractéristique physique de sa maison.
Par contre, si je souhaite envoyer une lettre à un correspondant à l’étranger, je vais généralement faire appel à un service qui acheminera ma lettre à son destinataire. Pour que ce service puisse faire son travail, je dois lui indiquer à qui j’envoie la lettre, mais surtout, où cette personne habite. Hors pour préciser cette information, je dois disposer d’un système d’adressage. Le service postal utilisera l’adresse du destinataire pour définir l’itinéraire que prendra la lettre.
En y réfléchissant de plus près, même moi j’ai besoin de cet adressage. Sans lui je ne pourrais raisonnablement pas définir si le destinataire est dans la même rue que moi. Donc au final, quand j’envoie la lettre, le compare l’adresse du destinataire à la mienne, si nous sommes dans la même rue, je lui apporte moi même (c’est plus simple non ?), si ce n’est pas le cas, je fais appel à un service qui l’acheminera vers sa destination.
Le système postal que nous connaissons fonctionne (Si si, il fonctionne… ou pas… ;-) ) parce que nous utilisons un protocole qui consiste à indiquer sur l’enveloppe l’adresse du destinataire à un endroit défini, au dos, nous marquons notre propre adresse, pour un retour éventuel, nous l’affranchissons, indiquons aussi d’éventuelles options (courrier prioritaire, colis fragile…) etc.
Du point de vue réseau, le concept est similaire…

L’en-tête IPv4

Lorsque des données doivent être véhiculées sur un réseau, les machines les encapsulent dans un paquet muni d’un en-tête qui comporte toutes les informations nécessaires au routage des données. Voici l’en-tête:
ipv4-header
Chacune des case représente un champs qui apporte une information précise pour le traitement du paquet IPv4:
  • Version: indique la version du protocole (toujours égal à 4 pour IPv4)
  • IHL: Longueur de l’en-tête IPv4 (nécessaire en raison de la présence possible d’options)
  • ToS: Marquage différentiel pour la qualité de service (permet de marquer un paquet comme étant plus important).
  • TPL: Longueur totale du paquet IPv4.
  • Fragment ID: Identification d’un fragment de paquet, permet de le reconstituer plus tard. Utilisé lorsqu’un paquet doit être fragmenté parce que sa taille dépasse la capacité du réseau sur lequel il doit être émis.
  • FLAG: Marqueurs permettant d’indiquer si un paquet peut/doit ou ne peut pas être fragmenté.
  • Fragment Offset: Indique la position du fragment au sein du paquet original.
  • TTL: Time To Live, représente le nombre d’intermédiaire (routeurs) par lesquels le paquet peut encore passer avant d’être détruit. Il s’agit d’un mécanisme permettant d’éviter qu’un paquet ne tourne indéfiniment dans un réseau suite à un problème de routage. On peut comparer cela à une date de péremption.
  • Protocol: Contient une valeur numérique qui identifie la nature du contenu du paquet.
  • Checksum: SOmme de contrôle calculée sur l’en-tête du paquet IPv4. Permet de contrôler l’intégrité de l’entête et donc de le détruire s’il avait été altéré.
  • Source IP: Adresse IPv4 de la machine qui a émis le paquet.
  • Destination IP: Adresse IPv4 de la machine à laquelle est destinée le paquet.
  • Options: Permet d’ajouter différentes informations optionnelles et rarement utilisées.
  • Data: Les données véhiculées dans le paquet.
Chaque machine travaillant au niveau de la couche réseau (couche 3) du modèle OSI analysera cette en-tête et agira en conséquence. Par exemple, les routeurs l’utiliseront pour acheminer les données vers la destination en fonction de l’adresse IPv4 de destination.

Types de communications IPv4

Il existe en IPv4, trois manières de communiquer…
  • Le paquet unicast: Un paquet émis par une machine, destiné à une et une seule autre machine. Une communication de un-à-un.
  • Le paquet broadcast (de diffusion): Un paquet émis par une machine et destiné à toutes les machines d’un réseau. Une communication de un-à-tous.
  • Le paquet multicast (de multi diffusion): Un paquet émis par une machine et destiné à un groupe de machine. Une communication de un-à-plusieurs.
La majorité des échanges de données sont des communications unicast. Par exemple, lorsque je surfe sur un site web, c’est ma machine (le client) qui dialogue avec le site distant (le serveur). On a donc bien une relation de un à un.
Chaque type de communication utilise un adressage différent bien que défini dans une structure unique.

L’adressage IPv4

Pierre angulaire du protocole IPv4, l’adresse IPv4 est donc une valeur numérique codée sur 32 bits (soit 2^32 adresses IPv4 au total) que l’on attribue principalement aux interfaces des machines afin que celles-ci puissent s’échanger des données. Malheureusement, toutes ces adresses ne sont pas utilisables pour adresser une machine, nous y reviendrons.
Ces adresses sont représentées généralement sous la forme de 4 octets exprimés en valeur décimale, séparés par un point. (Ex: 192.168.0.1, 80.200.14.58, etc.)
Un octet étant composé de 8 bits, sa valeur ne peut pas excéder 255. Toutes les adresses IPv4 sont donc comprises entre 0.0.0.0 et 255.255.255.255.
Pour comprendre la structure d’une adresse IPv4, le plus simple est de réfléchir à l’adresse d’une série de maisons dans une rue:
  • Toutes les maisons d’une même rue auront une partie de leur adresse commune (le nom de la rue, la commune, la ville, le pays, etc.)
  • Chaque maison aura dans son adresse un élément qui lui est propre: le numéro de la maison dans la rue.
L’adressage IPv4 fonctionne exactement sur le même principe. Toutes les interfaces de machines dans un même réseau auront une partie de leur adresse qui sera commune: l’identifiant réseau et une deuxième partie qui lui sera propre: l’identifiant hôte. Ces deux éléments ensembles formant l’adresse complète de la machine dans son réseau. Voici ce que ça donne d’un point de vue conceptuel:
ipv4-addr
L’identifiant réseau est formé par un certain nombre de bits (à gauche, les bits de poids fort), et l’identifiant hôte (à droite, les bits de poids faible) représenté par ce qui reste de bits.
Normalement une question doit vous venir à l’esprit… « Combien de bits côté réseau ? et donc combien côté hôte ? »… Et c’est ici que les Romains s’empoignèrent!
Comment définir la limite entre l’identifiant réseau et l’identifiant hôte ?

Les classes

La première idée était de faire simple, enfin, humainement simple en tout cas: on définit 5 classes. A chaque classe correspond une définition en terme de limite d’identifiant réseau/hôte ou autre etc.
  • Classe A: Toutes les adresses dont le premier bit vaut 0 (donc de 0.0.0.0 à 127.255.255.255). Ces adresses ont 8 bits pour la partie réseau, et donc 24 pour la partie hôte.
  • Classe B: Toutes les adresses dont les deux premiers valent 10 (donc de 128.0.0.0 à 191.255.255.255). Ces adresses ont 16 bits pour la partie réseau, et donc 16 pour la partie hôte.
  • Classe C: Toutes les adresses dont les trois premiers valent 110 (donc de 192.0.0.0 à 223.255.255.255). Ces adresses ont 24 bits pour la partie réseau, et donc 8 pour la partie hôte.
  • Classe D: Toutes les adresses dont les quattre premiers valent 1110 (donc de 224.0.0.0 à 239.255.255.255). Ce sont les adresses multicast. Elles représentent une groupe de machine et n’entrent donc pas dans la logique d’adresse d’une machine unique.
  • Classe E: Toutes les adresses restantes (donc de 240.0.0.0 à 255.255.255.254). Adresses réservées pour utilisation futures… ou pas… donc non utilisables pour adresser une machine.
Nous nous retrouvons donc avec 3 classes utilisables. La première qui défini des réseaux pouvant comporter 2^24 machines ( 16,7 millions de machines !!! ), la seconde qui permet d’adresser des réseaux de 2^16 machines (65536), et enfin la plus petite, qui permet elle d’adresser des réseaux de 2^8 machines (256).
Faites une pause de quelques secondes, et demandez-vous combien de sociétés que vous connaissez disposent de plus de 16 millions de machines ? Et environ 65000 machines ? …
Il faut remettre tout ça dans son contexte. IPv4 est apparu alors qu’Internet n’existait pas encore. A l’époque, ce qui est maintenant le réseau des réseaux n’était qu’une interconnexion d’établissements militaires, universitaires etc, nommé ARPAnet. Ce n’est qu’une bonne dizaine d’années plus tard que les particuliers ont commencé tout doucement à disposer d’un accès à Internet.
L’idée de base avait du sens: une société forme un réseau de machines, donc, on attribuait une plage d’adresses plus ou moins grande en fonction de la taille de la société. Donc si je suis un géant de l’informatique de l’époque, je reçois une classe A, par exemple toutes les adresses de 23.0.0.0 à 23.255.255.255. Dés lors lorsqu’un paquet doit être transmis à une machine, en fonctionne de l’adresse de destination je peux déterminer la classe de celle-ci, et donc savoir combien de bits représentent le réseau. Dans l’exemple précédent, cela signifie que toutes les adresses dont le premier octet vaut 23 sont dans le même réseau.
C’est donc un principe qui suivait la logique de l’époque mais qui manquait cruellement de vision. Quand l’accès à Internet a commencé à se démocratiser, d’abord pour les entreprises, et ensuite pour les particuliers, un problème est apparu: il était impossible de fournir suffisamment de plages d’adresses et ce parce que les classes ont découpé l’espace global d’adresses IPv4 en des ensembles trop grossiers qui ne correspondent plus aux besoins.
Autre problème, mais celui-là inhérent à IPv4, le nombre d’adresse IPv4 disponible au total est insuffisant. 2^32 adresses au total, soit un peu moins de 4,3 milliards d’adresses, pour à l’heure actuelle quelques 7 milliards d’êtres humains. Si en plus on attribue les adresses par classe, gaspillant ainsi une quantité énorme d’adresses, on comprend vite que ça ne peut mener qu’à une impasse.
Si j’attribue toutes les adresses de 23.0.0.0 à 23.255.255.255 à une société mais que celle-ci n’en utilise que 10%, cela représente approximativement 15 millions d’adresses « perdues » puisqu’on ne peut pas donner une adresse de cette classe à une machine qui n’est pas dans ce réseau. Cela reviendrait à mettre le même nom de rue à des maison qui ne sont pas physiquement dans la même rue.

Le CIDR (Classless Inter-Domain Routing)

La seule chose à faire était donc d’abandonner les classes de définir des réseaux dont la taille peut être ajustée en fonction des besoins réels afin d’éviter tant que faire se peut le gaspillage de ces adresses.
Si on abandonne les classes, on abandonne donc aussi la définition de leur taille en terme d’identifiant réseau et identifiant hôte. Il faut donc un nouvel élément qui servira de délimitation: le masque de réseau.

Masque de (sous-)réseau

Le masque est une valeur numérique qui comme l’adresse IPv4 est codé sur 32bits et représenté en décimal sous forme de 4 octets séparés par des points. (Ex: 255.255.255.0, 255.255.224.0). Son rôle est d’indiquer quels sont les bits de l’adresse qui identifient la partie réseau et donc aussi ceux qui identifient la partie hôte.
Les bits de poids fort (à gauche) représentent la partie réseau et ont leur valeur à 1. Les bits de poids faible (à droite) ont leur valeur à 0 et identifient la partie hôte de l’adresse.
masque-reseau
C’est donc le masque du réseau qui détermine sa taille, et donc le nombre d’adresses qui font partie de ce réseau. Plus le masque est grand (plus il y a de bits à 1) plus le réseau est petit (il y a moins de bits côté hôte). Plus le masque est petit, plus le réseau est grand.
Prenons par exemple le masque suivant:
255.255.255.192
En binaire cela donne:
11111111.11111111.11111111.11000000
Il y a 26 bits à 1, donc 26 bits qui identifient la partie réseau. Il en reste donc 32-26=6 bits pour les adresses hôtes, soit 2^6=64.
Par contre avec le masque…
255.255.224.0
Qui s’écrit en binaire…
11111111.11111111.11100000.00000000
Il y a 19 bits côté réseau et donc 32-19=13 bits côtés hôte. Ce qui donne 2^13=8192 adresses dans un même réseau.
Une autre notation du masque est également souvent utilisée, en suivant le format suivant: adresse_ip / bits_réseaux
Exemple: 21.58.63.250/26, cette notation revient à écrire 21.56.63.250 / 255.255.255.192
Au lieu d’écrire l’expression décile du masque, on indique uniquement
Avec le CIDR, une adresse seule n’a plus de sens. Elle doit toujours être accompagnée d’un masque. Sans quoi il est impossible de déterminer à quel réseau elle appartient.

L’adresse de (sous-)réseau

A chaque réseau correspond une adresse qui l’identifie. Il s’agit de la première adresse du réseau lui même. Celle pour laquelle tous les bits hôtes vallent 0.
Une opération simple (un ET logique) entre une adresse quelconque et le masque qui lui est joint permet de retrouver l’adresse du réseau auquel elle appartient.
Prenons par exemple l’exemple d’une machine qui aurait la configuration suivante:
  • Adresse IPv4: 158.98.45.33
  • Masque réseau: 255.255.255.0
L’application d’un ET logique (une opération binaire) entre ces deux valeurs donnent l’adresse du réseau:
        10011110.01100010.00101101.00100001 (158.98.45.33)
ET      11111111.11111111.11111111.00000000 (255.255.255.0)
=======================================
        10011110.01100010.00101101.00000000 (158.98.45.0)
L’adresse du réseau dans lequel se trouve la machine est donc 158.98.45.0. Notez que si on tenait compte des classes. Les adresses 158… commencent par 10… en binaire et donc auraient fait partie de la classe B 158.98.0.0.
Autre exemple:
  • Adresse IPv4: 89.27.250.45
  • Masque réseau: 255.255.255.248
On retrouve donc l’adresse réseau de cette machine par l’opération suivante:
        01011001.00011011.11111010.00101101 (89.27.250.45)
ET      11111111.11111111.11111111.11111000 (255.255.255.248)
=======================================
        01011001.00011011.11111010.00101000 (89.27.250.40)
L’adresse réseau de cette machine est donc 89.27.250.40
Il est important de noter que l’adresse du réseau ne peut pas être attribuée à une machine. Une machine est un élément du réseau et non le réseau lui-même.

L’adresse de diffusion (broadcast) du (sous-)réseau

Pour chaque réseau, il existe une adresse dite de diffusion (de broadcast). Cette adresse a pour but d’émettre un paquet et de l’adresser à l’ensemble des machines du réseau en question (Communication de un à tous). Il s’agit de la dernière adresse du réseau. Celle pour laquelle tous les bits hôtes vallent 1.
Exemple:
  • Adresse: 121.43.98.205
  • Masque: 255.255.255.128
On obtient donc l’adresse réseau par l’opération logique ET (comme plus haut):
     01111001.00101011.01100010.11001101 (121.43.98.205)
ET   11111111.11111111.11111111.10000000 (255.255.255.128)
========================================
     01111001.00101011.01100010.10000000 (121.43.98.128)
L’adresse du réseau est donc 121.43.98.128.
A partir de là il suffit de mettre tous les bits hôtes, c’est à dire les 7 bits à droite à 1:
     01111001.00101011.01100010.11111111 (121.43.98.255)
L’adresse broadcast de ce réseau est donc 121.43.89.255.

Plage d’adresses utilisables

Puisque l’adresse du réseau est la première adresse dans ce réseau et que l’adresse broadcast est la dernière. Tout ce qui se trouve entre les deux forme la plage d’adresses utilisables.
On obtient le nombre d’adresses utilisable dans un réseau par la formule suivante: nb adresses = 2^n-2, où n est le nombre de bits hôtes. On soustrait deux unités pour l’adresse du réseau et l’adresse broadcast.

Exemple récapitulatif

Les données de bases étant les suivantes:
  • Adresse: 188.56.58.39
  • Masque: 255.255.248.0
On optient l’adresse réseau en appliquant le masque à l’adresse…
     10111100.00111000.00111010.00100111 (188.56.58.39)
ET   11111111.11111111.11111000.00000000 (255.255.248.0)
========================================
     10111100.00111000.00111000.00000000 (188.56.56.0)
L’adresse réseau est donc 188.56.56.0
Pour obtenir l’adresse broadcast, il faut remplacer mettre les bits hôtes à 1…
     10111100.00111000.00111111.11111111  (188.56.63.255)
L’adresse broadcast est donc 188.56.63.255
Les adresses comprises entre 188.56.56.0 et 188.56.63.255 forment donc la plage d’adresses utilisables.
Leur nombre est de 2^11-2 = 2046 adresses.

Routage IPv4

Router un paquet consiste à l’acheminer vers la destination en fonction de sa table de routage. Cette table contient la liste des réseaux vers lesquels elle est apte à acheminer les données ainsi que les informations nécessaires au traitement du paquet.

Table de routage

La table de routage est une liste de routes, c’est-à-dire, une liste de réseaux auxquels sont attachés les informations nécessaires au routage du paquet: un next-hop (la prochaine machine à qui le paquet doit être transmis), une interface (celle par laquelle le paquet devra être émis), une métrique (une valeur permettant de comparer deux routes), etc.

exemple de table de routage sous Windows 7

IPv4 Table de routage
===========================================================================
Itinéraires actifs :
Destination réseau    Masque réseau  Adr. passerelle   Adr. interface Métrique
          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.9     10
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.1.0    255.255.255.0         On-link       192.168.1.9    266
      192.168.1.9  255.255.255.255         On-link       192.168.1.9    266
    192.168.1.255  255.255.255.255         On-link       192.168.1.9    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link       192.168.1.9    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link       192.168.1.9    266
===========================================================================
  • Destination réseau: L’adresse du réseau de destination.
  • Masque réseau: Détermine la taille du réseau en question.
  • Adresse passerelle: L4adresse IPv4 de la machine à qui le paquet doit être transmis pour l’acheminer vers le réseau en question.
  • Adresse Interface: L’adresse de l’interface par laquelle le paquet devra être émis/routé.
  • Métrique: permet de choisir en plusieurs routes qui indiquerait la même destination.

Exemple de table de routage sur un routeur Cisco

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
 * - candidate default, U - per-user static route, o - ODR
 P - periodic downloaded static route

Gateway of last resort is 10.0.0.1 to network 0.0.0.0

 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       10.0.0.0/30 is directly connected, Serial0/0
O       10.0.10.0/24 [110/782] via 10.0.0.1, 00:53:35, Serial0/0
 192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, FastEthernet0/0
 192.168.1.0/24 is variably subnetted, 3 subnets, 2 masks
C       192.168.1.0/28 is directly connected, FastEthernet0/0.10
C       192.168.1.16/28 is directly connected, FastEthernet0/0.20
C       192.168.1.32/29 is directly connected, FastEthernet0/0.30
O*E2 0.0.0.0/0 [110/1] via 10.0.0.1, 00:50:51, Serial0/0
Lorsqu’on y est pas habitué, cet affichage put perturber. Ceci dit, chaque route est précédée d’un symbole. Dans le cas présent, les routes commençant par un « C » indiquent une route directement connectée. Donc un réseau directement attaché au routeur (dans Windows 7, on le voit avec la mention « On-link »).
Les routes commençant par « O » sont des routes apprises à l’aide d’un protocole de routage, OSPF. Ce sont des routes vers des réseaux qui se trouvent au-delà d’une autre machine.
Pour chacun de ces routes on a donc un format du genre:
ORIGINE     Réseau/Masque [AD/Métrique]     next-hop     Interface
Le terme « AD » représente la distance administrative. Il s’agit d’une notion que l’on retrouve surtout sur les routeurs Cisco. Cette élément permet lui aussi de différencier des routes. Chaque source d’information aura sa distance administrative. Par exemple une route connectée a une AD=0, une route statique AD=1, une route OSPF AD=110, etc. (valeurs par défaut).

HSRP : Hot Standby Router Protocol

HSRP : Hot Standby Router Protocol

Sur un PC on configure généralement une seule passerelle par défaut… Mais que se passe-t-il si celle-ci est hors service ? … La réponse est simple … plus moyen de communiquer en dehors de son domaine de diffusion.
Pour remédier à cela, il existe plusieurs méthodes pour gérer la redondance de passerelle dont les protocoles HSRP, VRRP et GLBP.

Voici un exemple simple de mise en place de redondance de passerelle à l’aide de HSRP. Il est toutefois important de noter qu’il s’agit d’un protocole propriétaire Cisco.

La topologie

hsrp
Afin d’aller directement à l’essentiel, la configuration de base de la topologie est considérée comme terminée. Pour ma part j’ai simplement activé EIGRP entre R1, R2 et R3.
R3 dispose d’une interface Loopback (1.1.1.1/32) que j’utiliserai pour tester la communication depuis le PC.
Le PC (C1) est configuré avec l’adresse 192.168.0.10/24 avec une passerelle par défaut 192.168.0.254. Notez qu’il ne s’agit pas de l’adresse configurée sur R1 ou R2 … Mais ce sera celle dont le rôle sera assumé soit par R1 soit par R2 en fonction de l’état du réseau.

Principe général

HSRP est un protocole qui fourni une solution de continuité de service principalement pour la redondance de passerelles par défaut.
Pour chaque réseau, on associe les interfaces des routeurs à un groupe HSRP (le même n° de groupe pour toutes les interfaces qui doivent assurer le même rôle). A ce groupe on associe une adresse IP virtuelle (dans le cas présent ce sera 192.168.0.254).
La redondance est mise en place par le biais du protocole ARP. Lorsque le PC doit envoyer une trame à sa passerelle, il émet une requête ARP et celle-ci répond en fournissant son adresse MAC.
Avec HSRP, les routeurs vont associer une adresse MAC particulière à l’adresse IP virtuelle sous la forme 00:00:0c:07:ac:XX (où XX est le n° du groupe HSRP).
Dés lors, pour le PC, quoi qu’il arrive, ce sera cette adresse MAC qui identifiera sa passerelle.   De leur côté les routeurs dialoguent par multicast afin de négocier et de savoir qui devra se charger de traiter la trame destinée à l’adresse MAC HSRP.

Configuration de R1

R1(config)# interface FastEthernet0/0
R1(config-if)# standby 1 ip 192.168.0.254
R1(config-if)# standby 1 priority 200
R1(config-if)# standby 1 preempt
 
On a donc configuré ici l’interface Fa0/0 de R1 pour fonctionner dans le groupe HSRP n°1 auquel on a associé l’adresse IP virtuelle 192.168.0.254. En plus on a défini une priorité de 200 (la plus grande priorité sera la passerelle effective) et on active le droit de préemption (si R1 tombe en panne, R2 prend le relai… mais is R1 revient, il reprendra sa place, sans préemption, R2 resterait la passerelle).

Configuration de R2

R2(config)# interface FastEthernet0/0
R2(config-if)# standby 1 ip 192.168.0.254
R2(config-if)# standby 1 priority 100
 
La configuration de R2 est similaire à celle de R1, étant donné que R2 est configuré avec une priorité plus faible, il n’est pas nécessaire d’activer la préemption.

Vérification

Sur le PC, un test de communication démontre le bon fonctionnement de la configuration…
La configuration de C1:
NAME  IP/MASK         GATEWAY       MAC
VPCS1 192.168.0.10/24 192.168.0.254 00:50:79:66:68:00
Test de communication vers 1.1.1.1

VPCS[1]> ping 1.1.1.1
1.1.1.1 icmp_seq=1 timeout
1.1.1.1 icmp_seq=2 ttl=254 time=50.000 ms
1.1.1.1 icmp_seq=3 ttl=254 time=50.000 ms
1.1.1.1 icmp_seq=4 ttl=254 time=39.000 ms
1.1.1.1 icmp_seq=5 ttl=254 time=48.000 ms
Il est intéressant d’analyser la table ARP de C1…
VPCS[1]> arp
00:00:0c:07:ac:01 192.168.0.254 expires in 114 seconds
On constate donc bien que 192.168.0.254 est la passerelle de C1 et que l’adresse MAC associée est bien celle d’un groupe HSRP (ici le groupe 1, indiqué par le dernier octet de l’adresse MAC … 01). Un traceroute prouvera que R1 est bien le routeur faisant office de passerelle…
VPCS[1]> trace 1.1.1.1
trace to 1.1.1.1, 8 hops max, press Ctrl+C to stop
 1 192.168.0.1  20.000 ms 10.000 ms 10.000 ms
 2 172.30.0.1   30.000 ms 10.000 ms 10.000 ms
 3 1.1.1.1      30.000 ms 10.000 ms 10.000 ms

Vérification de la configuration

Sur R1 et R2 il est possible de vérifier le fonctionnement de HSRP d’une simple commande:
R1#show standby
FastEthernet0/0 - Group 1
 State is Active
 2 state changes, last state change 00:14:40
 Virtual IP address is 192.168.0.254
 Active virtual MAC address is 0000.0c07.ac01
 Local virtual MAC address is 0000.0c07.ac01 (v1 default)
 Hello time 3 sec, hold time 10 sec
 Next hello sent in 1.064 secs
 Preemption enabled
 Active router is local
 Standby router is 192.168.0.2, priority 100 (expires in 8.320 sec)
 Priority 200 (configured 200)
 Group name is "hsrp-Fa0/0-1" (default)
R1#
On y voit que « State is Active » qui signifie que R1 est la passerelle active (et donc R2 est en standby). Le reste des informations sont explicites.

Que se passe-t-il si R1 tombe en panne …

Pour simuler une panne, je mets simplement l’interface Fa0/0 de R1 en shutdown…
R1(config-if)# shutdown
*Mar 1 00:44:02.331: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Active -> Init
*Mar 1 00:44:04.343: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar 1 00:44:05.343: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthern et0/0, changed state to down
Réaction immédiate de R2 …
R2#
*Mar 1 00:44:11.071: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Standby -> Active
R2 est bien devenu la passerelle active, vérifions sur C1…
VPCS[1]> ping 1.1.1.1
1.1.1.1 icmp_seq=1 ttl=254 time=32.000 ms
1.1.1.1 icmp_seq=2 ttl=254 time=41.000 ms
1.1.1.1 icmp_seq=3 ttl=254 time=31.000 ms
1.1.1.1 icmp_seq=4 ttl=254 time=31.000 ms
1.1.1.1 icmp_seq=5 ttl=254 time=40.000 ms
VPCS[1]> arp
00:00:0c:07:ac:01 192.168.0.254 expires in 15 seconds
Rien n’a changé de son côté, normal … puisque R1 et R2 utilisent la même adresse IP virtuelle associée à la même adresse MAC pour HSRP. Par contre le paquet ICMP passe bien par R2…
VPCS[1]> trace 1.1.1.1
trace to 1.1.1.1, 8 hops max, press Ctrl+C to stop
 1 192.168.0.2  21.000 ms 11.000 ms 11.000 ms
 2 172.30.0.5   31.000 ms 12.000 ms 12.000 ms
 3 1.1.1.1      32.000 ms 12.000 ms 12.000 ms
Voilà de quoi gérer très simplement la redondance de passerelle par défaut (à condition de disposer de matériel Cisco).

IOS: " enable password " vs "enable secret "

IOS: « enable password » vs « enable secret »

Petite piqûre de rappel, cela ne fait jamais de tort ;-) … Au cours des formations dont je m’occupe, je m’aperçois souvent que l’utilité et l’existence de ces deux commandes reste assez floues malgré leur apparente simplicité. Voici donc en quelques lignes ce dont il s’agit…

Tout d’abord, rappelons que ces eux commandes, à savoir « enable password » et « enable secret », ont toute deux la même fonction: définir le mot de passe pour accéder au mode privilégié du CLI.

R1>enable
Password:
R1#
 
La question qui en découle est donc la suivante: « Pourquoi deux commandes pour faire la même chose ? ». La réponse est simple et réside dans la manière ou l’IOS encode le mot de passe dans la config de l’équipement.
Avec « enable password » le mot de passe défini est encodé en clair dans la config.
R1(config)#enable password cisco
R1#show running-config
Building configuration...
Current configuration : 470 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname R1
!
!
!
enable password cisco
!
!

Tandis qu’avec la commande « enable secret » le mot de passe est stocké sous forme de hashage MD5, ce qui rend cette version beaucoup plus sécurisée…

R1(config)#enable secret cisco
R1#sh running-config
Building configuration...
Current configuration : 517 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname R1
!
!
!
enable secret 5 $1$mERr$hx5rVt7rPNoS4wqbXKX7m0
!
 
 
Notez que dans la config le chiffre « 5 » précède la version « cryptée » du mot de passe. Le but ici est de permettre de copier la commande telle qu’elle apparaît dans la config sur un autre équipement. Ainsi l’autre équipement saura que le mot passe donné dans la commande est en fait une version cryptée et qu’il ne doit pas la repasser par le hashage MD5.
Reste maintenant à savoir pourquoi ces deux commandes existent … He bien rien de plus banal, c’est tout simplement pour assurer une rétro-compatibilité des config. De sorte que si vous copiez la config d’un équipement qui ne supporte pas la version « enable secret » vers un nouvel équipement, ce dernier puisse quand même accepter l’ancienne version.