Le protocole RIP

Chapitre 1

Introduction au protocole RIP

Le protocole RIP est l’un des plus vieux protocoles de routage et n’est que très rarement utilisé. Cependant, il est intéressant d’en parler afin de bien comprendre le principe du routage dynamique. Que peut-on dire du protocole de routage dynamique RIP :

RIP = Routing Information Protocol :

  • Existe en trois versions :
    • RIPv1 (Classful)
    • RIPv2 (Classless)
    • RIPng (IPv6)
  • Protocole normalisé
  • Protocole IGP
  • Utilise le “Distance Vector(Metric) (Maximum 15 sauts)
  • Envoi à ses “neighboors” sa table de routage ENTIÈRE en utilisant le :
    • Split-horizon
    • Route-poisoning
  • Envoie sa table de routage à ses neighboors périodiquement (toutes les 30secondes).
Chapitre 2

Principe de fonctionnement

RIPv1 vs RIPv2 vs RIPng

RIPv1

  • Classful.
  • Envoie sa table de routage en unicast.
  • Pas d’authentification.
  • Pas de mise à jour automatique.

RIPv2

  • Classless.
  • Envoie sa table de routage en multicast.
  • Authentification en Plain-text ou MD5 (Non sécurisée).
  • Mise à jour automatique en cas de modification de topologie.

RIPng

  • IPv6.
  • Authentification en Plain-text ou MD5.

Le protocole de routage RIP est à utiliser uniquement si vous n’avez pas d’autres choix.
Privilégiez les protocoles de routage EIGRP (Cisco) et OSPF (protocole normalisé).
Si vous n’avez pas d’autres choix, utilisez le protocole RIP dans sa version 2 !!

RIPv1 vs RIPv2 vs RIPng

RIPv1 vs RIPv2 vs RIPng

 

RIPv1 vs RIPv2 en pratique

La commande router rip permet d’activer le protocole.

Par défaut, ce dernier est dans la version 1. Pour activer le RIPv2 , il suffit de lui dire avec la commande version 2.

La commande network permet :

  • de chercher de nouveaux neighboors sur ce réseau
  • de déclarer ce réseau à nos neighboors

Exemple 1 :

Tous nos réseaux utilisent des réseaux de Classe C.

RIP - Exemple 01
RIP – Exemple 01

Il faut donc spécifier tous nos réseaux en /24

 

Exemple 2 :

Tous nos réseaux sont sur une adresse de Classe A.

RIP - Exemple 02
RIP – Exemple 02

R2 est connecté à 3 réseaux :

  • 10.0.2.0 /24
  • 10.0.10.0 /24
  • 10.0.20.0 /24

Ces 3 réseaux sont donc des réseaux Classless du réseau 10.0.0.0 /8

Avec RIPv1

R2(config)# router rip
R2(config-router)# network 10.0.0.0

La commande network permet à R2 d’annoncer aux autres routeur RIP le réseau classe A 10.0.0.0 /8.

R2 va dire à tous ses voisins qu’il possède le réseau 10.0.0.0 /8

R1 et R3 ont la même configuration, il vont aussi dire à tous leurs voisins qu’ils possèdent le réseau 10.0.0.0 /8

Notre routage RIP va donc être inutilisable vu que tout le monde annonce le même réseau.

Avec RIPv2

R2(config)# router rip
R2(config-router)# version 2
R2(config-router)# network 10.0.0.0

La commande network permet à R2 d’annoncer aux autres routeurs RIP tous les réseaux compris dans le réseau de classe A 10.0.0.0 /8.

R2 possède 3 réseaux Classless dans le réseau 10.0.0.0 /8.

R2 va dire à tous ses voisins qu’il possède uniquement les réseaux 10.0.2.0/2410.0.10.0/24 et 10.0.20.0/24

Architecture de base

RIP - Architecture de base

RIP – Architecture de base

RIP - Table de routage
RIP – Table de routage

C = Connected
R = Appris par RIP
[120/1] = [Distance Administrative / Metric]

Mise à jour

RIP Update

RIP Update

Nos routeurs vont donc s’attendre à recevoir toutes les 30 secondes des nouvelles de leurs voisins. S’ils ne reçoivent rien, plusieurs timers vont s’activer :

Timers RIP

Timers RIP

Update :

  • fréquence d’envoi des mises à jour
  • 30 secondes par défaut

Invalid:

  • considère l’itinéraire invalide au bout de X seconds et le place en mode Hold Down
  • 180 secondes par défaut

Hold Down:

  • ignore les mises à jour de routage concernant ce réseau (sauf si cette mise à jour a un Metric plus faible)
  • 180 secondes par défaut

Flush :

  • supprime la route de la table de routage
  • 240 secondes par défaut
R1(config-router)# timers basic [update] [Invalid] [Hold Down] [Flush]

! Ce qui nous donne :

R1(config)# router rip
R1(config-router)# timers basic 30 180 180 240
Chapitre 3

Réaction du protocole RIP en cas de panne

Exemple de panne RIP

RIP - Le réseau 192.168.3.0 est injoignable

RIP – Le réseau 192.168.3.0 est injoignable

Réaction du protocole RIP en cas de panne

RIP - R3 supprime le réseau 192.168.3.0 de sa table de routage

RIP – R3 supprime le réseau 192.168.3.0 de sa table de routage

RIP - R2 envoi une mise a jour et R3 remet le réseau 192.168.3.0 dans sa table de routage
RIP – R2 envoie une mise à jour et R3 remet le réseau 192.168.3.0 dans sa table de routage avec un Metric de 2
RIP - Notre bulle RIP est pollué
Le routeur R3 va informer R2 que maintenant, pour joindre le réseau 192.168.3.0, il a un Metric de 2.
R2 va donc mettre à jour son Metric pour le mettre à 3…

En gros, nous avons notre bulle RIP poluée !
Comment pallier à ça ?

Problématique : Pourquoi R2 annonce à R3 un réseau qu’il lui est directement connecté ? Cela ne sert à rien et cela fou la m**** !
Solution : Voir le chapitre sur le Split horizon.

Problématique : R3 aurait pu annoncer aux autres qu’il avait perdu un réseau qui lui était directement connecté !
Solution : Voir le chapitre sur la Route Poisoning.

Chapitre 4

Le split-horizon

Dans un monde sans Split Horizon

Par défaut, un routeur utilisant un protocole de routage de type “Distance Vector” va envoyer sa table de routage complète à ses voisins.
L’exemple du dessous concerne le protocole RIP.

Sans Split Horizon
Sans Split Horizon

Nous pouvons voir que le Routeur R1 envoi (via un message RIP Update) l’intégralité de sa table de routage à ses voisins. Sauf que le Routeur R2 ne va pas prendre en considération les informations concernant les réseaux qui lui sont directement connecté.

Dans un monde avec Split Horizon

Split – Horizon ( horizon divisé ) fait en sorte de ne pas transmettre des informations inutiles à ses voisins. Ce qui permet de diminuer la bande passante utilisé pour tenir à jour dynamiquement nos tables de routages.

Avec Split Horizon
Avec Split Horizon

Les Réseau_20, Réseau_21 et Réseau_22 nous on était appris par le routeur R2
Le Réseau_1 est notre lien d’interconnexion.

Nous allons donc lui apprendre uniquement les réseaux qui ne lui sont pas directement raccordé !

Le Split Horizon est activé par défaut.
Il peut poser problème si nous utilisons du Frame Relay.

Configuration du split-horizon

EIGRP


Router(config)# interface FastEthernet 0/1
Router(config-if)# no ip split-horizon eigrp X

RIP


Router(config)# interface FastEthernet 0/1
Router(config-if)# no ip split-horizon
CHAPITRE 5

Le route poisoning

Présentation

Le Route Poisoning est un mécanisme actif par défaut.

Reprenons notre architecture vue dans l’article Split-Horizon :

Route Poisoning - Schéma
Route Poisoning – Schéma

La question à se poser est :

Que se passe-t-il en cas de panne réseau sur un de nos réseaux ?

Mise en situation

Imaginons que les Réseau_10 et Réseau_11 ne sont plus en état de fonctionner.

Le routeur R1 va :

1 / Enlever de sa table de routage les Réseau_10 et Réseau_11 précédemment “Connected”
2 / Envoyer un message à ses voisins en leurs signalant que ces deux réseaux ont un metric infini
3 / Le routeur R2 va donc supprimer ses deux réseau de sa table de routage

Route poisoning
Route poisoning

Pour le protocole RIP , un metric infini à une valeur de 16
Pour le protocole EIGRP , un metric infini à une valeur de4 294 967 295 (2^32 -1).

Configuration

Le Route Poisoning est un mécanisme actif par défaut et ne peut être désactivé

Conclusion

Le “Route poisoning” permet donc de supprimer les réseaux indisponible de nos tables de routage. S’ils ne possèdent pas de route par défaut, il vont pouvoir dropper directement les paquets en destination d’un réseau non disponible.

Chapitre 6

Configuration du protocole RIP

Configuration du RIPv2

R1(config)# router rip 
R1(config-router)# version 2
R1(config-router)# network 10.0.0.0

Configuration du RIPng (IPv6)

Architecture de base
Architecture de base
R1(config)# ipv6 unicast-routing

R1(config)# ipv6 router rip FINGER_RIP_NG
R1(config-router)# exit

R1(config)# interface FastEthernet 0/0
R1(config-if)# ipv6 address 2001:DB8:0:1::1/64
R1(config-if)# ipv6 rip FINGER_RIP_NG enable
R1(config-if)# exit
R2(config)# ipv6 unicast-routing

R2(config)# ipv6 router rip FINGER_RIP_NG
R2(config-router)# exit
R2(config)# interface FastEthernet 0/0 R2(config-if)# ipv6 address 2001:DB8:0:1::2/64 R2(config-if)# ipv6 rip FINGER_RIP_NG enable R2(config-if)# exit

ipv6 unicast-routing = Active le routage pour le protocole ipv6.
ipv6 router rip FINGER_RIP_NG = Active le protocole RIPng en globalitée.
ipv6 rip FINGER_RIP_NG enable = Active le protocole RIPng sur l’interface, il cherchera donc des Neighbor sur ce réseau et diffusera ce réseau au travers de la bulle RIPng.
[/membership]

Troubleshooting

! Voir l'intégralité de la table de routage

   RIPv2 = R1# show ip route
   RIPng = R1# show ipv6 route

! Voir uniquement les routes RIP de la table de routage
 
   RIPv2 = R1# show ip route rip
   RIPng = R1# show ipv6 route rip

! Voir une route précise
 
   RIPv2 = R1# show ip route [subnet] [mask]
   RIPng = R1# show ipv6 route [prefix] [length]

! Afficher les interfaces qui participent au RIP
 
   RIPv2 = R1# show ip protocols
   RIPng = R1# show ipv6 rip

! Afficher les timers RIP
 
   RIPv2 = R1# show ip protocols
   RIPng = R1# show ipv6 rip next-hops

! Afficher la liste des sources d'information RIP
 
   RIPv2 = R1# show ip protocols
   RIPng = R1# show ipv6 route rip

! Debug
 
   RIPv2 = R1# debug ip rip
   RIPng = R1# debug ipv6 rip

Les liens Trunk : Présentation et configuration

Les objectifs pédagogiques de cette leçon sont :

  • Différencier le protocole ISL et 802.1q.
  • Pourquoi les liens TRUNK ont été inventés.
  • Configurer un lien trunk sur un Switch CISCO.
Les liens trunk

Introduction

Trunk = Tronc en anglais

  • lien physique qui permet de faire transiter desVLANs
  • conserve l’identification VLAN faite sur une trame

Pour faire simple, un port trunk :

  • fait partie de tous les VLANs du switch donc tout le monde peut communiquer avec lui
  • indique dans chaque trame envoyée le numéro deVLAN
  • regarde dans toutes les trames reçues s’il n’y avait pas un numéro de VLAN
Chapitre 1

Les liens trunk en théorie

dans un monde sans trunk

Nous voulons que :

  • le VLAN 10 du SWITCH_01 puisse discuter avec le VLAN 10 du SWITCH_02.
  • le VLAN 20 du SWITCH_01 puisse discuter avec le VLAN 20 du SWITCH_02.
  • le VLAN 30 du SWITCH_01 puisse discuter avec le VLAN 30 du SWITCH_02.

Bon bah essayons plusieurs méthodes :

Test 01 : Je ne configure pas le port FastEthernet 0/8 du SWITCH_01 et du SWITCH_02.
Résultat : Ces derniers seront dans le VLAN 1. Les VLANs 10,20 et 30 ne pourront pas utiliser ce port.

Test 02 : Je mets le port FastEthernet 0/8 du SWITCH_01 et du SWITCH_02 dans le VLAN 10,
Résultat : les VLANs 20 et 30 ne pourront pas utiliser ce port.

Test 03 : Je mets le port FastEthernet 0/8 du SWITCH_01 et du SWITCH_02 dans le VLAN 20,
Résultat : les VLANs 10 et 30 ne pourront pas utiliser ce port.

Test 04 : Je mets le port FastEthernet 0/8 du SWITCH_01 et du SWITCH_02 dans le VLAN 30,
Résultat : les VLANs 10 et 20 ne pourront pas utiliser ce port.

Nous pouvons voir qu’il nous faut quelque chose de supplémentaire pour faire fonctionner tout ça !

Ce qu’il faut c’est un lien trunk !

dans un monde avec trunk

LES PROTOCOLES ISL et 802.1q

Pour mettre en place un lien trunk, il existe deux protocoles :

ISL (Inter-Switch Link)

  • protocole CISCO
  • encapsule la trame
  • ajoute 30 octets

IEEE 802.1Q

  • protocole normalisé
  • tague la trame
  • ajoute 4 octets
Chapitre 2

Le protocole ISL

Le protocole ISL (Inter-Switch Link) est une technique de trunking utilisée pour transporter les VLAN à travers le réseau. Ce protocole a été développé par Cisco pour permettre aux commutateurs  de reconnaître les différents VLAN transportés sur la liaison trunk.

Le protocole ISL fonctionne en encapsulant chaque trame Ethernet d’un VLAN dans une autre trame Ethernet plus grande qui contient des informations supplémentaires sur le VLAN. Cette trame Ethernet plus grande est ensuite transportée sur la connexion trunk entre les switchs. À chaque extrémité de la connexion trunk, la trame Ethernet plus grande est déencapsulée et la trame Ethernet d’origine est envoyée au commutateur approprié en fonction du VLAN ID contenu dans les informations supplémentaires.

Le protocole ISL présente également quelques inconvénients. :

  • Tout d’abord, il est incompatible avec les commutateurs d’autres fabricants que Cisco, limitant ainsi la flexibilité et l’interopérabilité du réseau.
  • De plus, le protocole ISL peut avoir un impact sur les performances du réseau, car chaque trame Ethernet doit être encapsulée dans une trame plus grande, ce qui peut entraîner une augmentation de la charge de travail pour les commutateurs réseau.

Fonctionnement d'ISL

ISL encapsule chaque trame entre un header (en-tête) de 26 octets et un trailer (en-queue) de 4 octets.

Encapsulation ISL en détail
Encapsulation ISL en détail

L’institut IEEE a sorti une norme afin que tous les équipements réseau de marques différentes puissent échanger leurs informations VLAN. Cisco privilégie la norme IEEE 802.1Q et abandonne son protocole ISL. Ce protocole n’est plus implémenté dans les nouveaux équipements réseau Cisco. Toutes trames qui transitent par un lien trunk ISL vont être encapsulées (il n’y a pas de notions de VLAN natif).

Pour résumé

  • ISL = Inter-Switch Link
  • propriétaire Cisco
  • développé bien avant le protocole IEEE 802.1Q
  • ajoute 30 octets à chaque trame
Chapitre 3

Le protocole 802.1q

Présentation

Le protocole 802.1Q :

  • protocole normalisé IEEE
  • créé afin d’uniformiser les liaisons trunk
  • couramment appelé Dot1q (802.1q = .1q = dot1q / traduction : dot = point)

Ce protocole va ajouter un Tag 802.1Q juste après les adresses MAC destination et source de nos trames.

Tag Vlan
Tag VLAN
Tag Vlan en détail
Tag VLAN en détail

Vlan natif

Le protocole IEEE 802.1q ajoute un tag sur chaque trame sauf sur les trames appartenant au VLAN natif ! Si un port trunks utilisant ce protocole normalisé reçoit une trame non taguée, il en déduit que cette trame fait partie du VLAN natif.

Le VLAN natif par défaut est le VLAN 1.

Mais pourquoi l’IEEE a-t-il créé le VLAN natif ?

Il y a fort longtemps, l’utilisation d’un hub était courante. Ils pouvaient être placés sur une liaison trunk. Les utilisateurs finals connectés sur ces hubs recevaient des trames 802.1q et ne les comprenez pas… S’ils font partie du VLAN natif, la trame n’est pas taguée et devient compréhensible par les utilisateurs finals.

Depuis la sortie de Windows XP, les utilisateurs finals comprennent les trames 802.1q sans tenir compte du marquage VLAN. Le VLAN natif reste important vu que les trames non taguées reçues par un port trunk 802.1q vont être placé dans le VLAN natif.

Imaginez un cas de figure :

  • tous nos clients sont dans le VLAN 20
  • le VLAN natif est le VLAN 20

Toutes nos trames générées par nos switchs (CDP, LLDP, DTP) vont donc être placées dans notre VLAN client (pas cool niveau sécurité). Il est donc fortement conseillé de créer un VLAN réservé au VLAN natif.

Chapitre 4

CONFIGURATION D'UNE LIAISON TRUNK

configuration de base

Sw(config)# interface FastEthernet 0/24
Sw(config-if)# description VERS_SWITCH_001
Sw(config-if)# switchport mode trunk
Sw(config-if)# switchport trunk encapsulation dot1q

Si la ligne contenant “dot1q” ne passe pas, ce n’est pas grave. Cela veux dire que le protocole ISL n’existe plus pour le Switch

Cette configuration est à mettre sur tous les ports d’interconnexion SWITCH < > SWITCH.

Configuration d'un lien trunk en vidéo

configuration en détail

Pour configurer un port en mode trunk, il est important de voir comment un port est configuré par défaut. Si on allume un switch pour la première fois et qu’on fait un “show running-configuration“, nous pouvons voir ceci :

Interface FastEthernet 0/1
!
Interface FastEthernet 0/2
 !
 etc.

A priori, nos ports n’ont aucune configuration, sauf que nos équipements n’affichent pas les paramètres par défaut. S’ils les affichaient, nous verrions :

Interface FastEthernet 0/1
  switchport mode dynamic auto
  switchport trunk encapsulation negotiate
  switchport trunk native VLAN 1
  switchport trunk allowed VLAN all
  switchport access VLAN 1
 !
 Interface FastEthernet 0/2
 ect.

Une interface switch peut prendre 3 modes :

  • access
  • trunk
  • dynamic

Le mode access est détaillé dans l’article VLAN; Le mode trunk est détaillé dans le sous-chapitre “Manuel”; le mode dynamic est détaillé dans le sous-chapitre “Dynamic Trunking Protocol”

Le mode trunk

Mettre un port en mode trunk :

Switch(config-if)# switchport mode trunk

Il faut que les deux ports de la liaison trunk soient en mode trunk.

le mode dynamic

DTP = Dynamic Trunking Protocol

  • protocole propriétaire Cisco
  • permet de configurer dynamiquement les deux ports d’une liaison trunk (ISL ou 802.1q)

Mettre un port en mode dynamic :

Switch(config-if)# switchport mode dynamic [ auto | desirable ]

Si le port d’en face est configuré en mode manuel, il va se mettre dans le même mode.

Il existe deux modes dynamic :

  1. Auto : Le port va se mettre en mode trunk si l’autre port de la liaison lui demande.
    Si le port d’en face est en mode trunk ou dynamic desirable, les deux ports de cette liaison seront en mode trunk.
    Dans le cas contraire, les deux ports seront en mode access.
  2. Desirable : Le port va essayer activement de mettre cette liaison en mode trunk.
    Si le port d’en face est en mode trunk , dynamic auto ou dynamic desirable, les deux ports de cette liaison seront en mode trunk.
    Dans le cas contraire, les deux ports seront en mode access.

On peut donc en conclure le tableau suivant :

Pour le désactiver :

switch(config-if)# switchport nonegotiate
Chapitre 5

CONFIGURATION des options

Allowed vlan

Par défaut, tous les VLANs sont autorisés à transiter sur notre lien trunk.
Afin de sécuriser notre réseau, nous pouvons autoriser uniquement les VLANs que nous souhaitons.

Exemple : Nous voulons autoriser les VLANs de 10 à 20 et de 40 à 50.

Switch(config-if)# switchport trunk allowed vlan 10-20, 40-50

ou

Switch(config-if)# switchport trunk allowed VLAN 10-50
Switch(config-if)# switchport trunk allowed VLAN remove 21-39

Vlan natif

(Ne concerne que le protocole 802.1q)

Comme expliqué plus haut, il est conseillé de créer un VLAN spécialement pour le VLAN natif.

Nous allons voir comment faire :

Switch(config)# VLAN 3
Switch(config-VLAN)# name NATIVE
Switch(config-VLAN)# exit

Switch(config)# interface GigaBitEthernet 0/1
Switch(config-if)# switchport trunk native VLAN 3

Toutes les trames non taguées seront donc placées dans le VLAN 3 par le port trunk de réception.

Encapsulation

Nous avons vu qu’il est possible d’utiliser les protocoles ISL et 802.1q pour mettre en place un lien trunk.

Sw(config-if)# switchport trunk encap [ isl | dot1q | negotiate ]

Par défaut, tous nos ports sont en mode negotiate. Si les deux ports de notre liaison sont en mode negotiate et que nos deux équipements supportent les deux protocoles,  ISL sera choisi… Il est donc important de choisir, soi-même, sont protocole trunk.

Configuration de ISL

Switch(config-if)# switchport trunk encapsulation isl

Configuration de 802.1q

Switch(config-if)# switchport trunk encapsulation dot1q
Chapitre 6

Vérification de la configuration TRunk

Vérifier l’état de nos ports :

Switch# show interfaces FastEthernet 0/1 switchport

Sur l’image ci-dessus, nous pouvons voir que :

  • le port 0/1 du Switch_A est en mode dynamic auto (par défaut)
  • le port 0/1 du Switch_B est en mode trunk
Switch# show interfaces trunk

Port        Mode             Encapsulation  Status        Native vlan
Fa0/24      on               802.1q         trunking      1

Port        Vlans allowed on trunk
Fa0/24      1-4094

Port        Vlans allowed and active in management domain
Fa0/24      1,10,20,30

Port        Vlans in spanning tree forwarding state and not pruned
Fa0/24      1,10,20,30

La ligne “operational mode” s’est donc mis en mode trunk

Sur le même thème :

Le protocole OSPF

Vous ne savez pas lequel choisir entre RIP, EIGRP et OSPF ?

  • RIP = Trop vieux.
  • EIGRP = propriétaire CISCO.
  • OSPF = Protocole normalisé et tout le monde n’a que ce protocole en bouche.

Donc vous vous tournez vers le protocole OSPF … Parfait ! On va justement en parler maintenant !

Chapitre 1

Introduction

Le but d’un protocole de routage c’est que tous les routeurs annoncent les réseaux qu’ils connaissent !

OSPF = Open Shortest Path First

Shortest Path First = Algorithme qui permet de calculer le chemin le plus court vers toutes les destinations via le nombre de sauts et le coût des liaisons.

Présentation du protocole OSPF en vidéo

Chapitre 4

Configuration

Chapitre 5

Vérification

Se générer une adresse IPv6 avec EUI-64

EUI-64 =

Extended Unique Identifier
– prévu pour générer automatiquement une adresse IPv6

Petit rappel :

Un équipement possède deux adresses IPv6 :

– une adresse Link-Local pour la partie LAN
– une adresse Global Adress pour naviguer sur Internet

IPv6 = 2 adresses IP

 

 

Méthode EUI-64



Cette méthode utilise la règle EUI-64 ( Extended Unique Identifier ). afin de générer automatiquement la partie “Interface-ID” comme ceci :

Étape 1 : Coupe en deux l’adresse MAC de l’interface en question.

Couper l'adresse MAC en deux
Couper l’adresse MAC en deux

 

Étape 2 : Insère le code FF:FE entre les deux parties.

Ajouter FF:FE

 

Étape 3 : Inverse le 7e bit de “Interface-ID”.

Inverser le 7e bit de “Interface-ID”

 

La partie “Interface-ID” générée par la règle EUI-64 est donc : E23F:49FF:FE45:9D7B

 

 

EUI-64 pour l’adresse Link-Local



Activation


R1(config)# interface FastEthernet 0/0
R1(config-if)# ipv6 enable

Cette commande permet d’activer le protocole IPv6 sur une interface.
Grâce à elle, notre routeur va commencer à se générer une adresse IPv6 de type Link-local avec l’EUI-64.

 

Vérification


R1# show ipv6 interface FastEthernet 0/0
IPv6 is enabled, link-local address is FE80::E23F:49FF:FE45:9D7B
Adresse Link-local + EUI64

 

 

EUI-64 pour l’adresse Global address



Activation


Router(config-if)# ipv6 address 2001:DB8:0:1::/64 eui-64

Cette commande va permettre de dire à notre interface :
Voici le réseau dans le quel tu dois appartenir, après à toi de te choisir une adresse.

 

Vérification


R1# show ipv6 interface FastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::E23F:49FF:FE45:9D7B
  No Virtual link-local address(es):
  Global unicast address(es):
    2001:DB8:0:1::E23F:49FF:FE45:9D7B, subnet is 2001:DB8:0:1::/64 [EUI]
Global-Adress + EUI64

 

 

IPv6 – Introduction

Chapitre 1

Internet Protocol version 6

Pourquoi IPv6 ?

À l’époque des dinosaures :

Problématique = Tout le monde avait son propre langage de communication et c’était n’importe quoi !
Solution = IPv4 avec ses classes A, B et C !

À l’époque de nos grands-parents :

Problématique = Nous n’avons pas assez d’adresses IPv4 pour tout le monde…
Solution =  VLSM (Variable Length Subnet Mask)

À l’époque de nos parents :

Problématique =  Nous n’avons pas assez d’adresses IPv4 pour tout le monde…
Solution = IPv6 …Mais on a vraiment plus de place là !!! Faut trouver une solution palliative les gars !!!
Solution palliativeNAT / PAT

Notre génération :

Migration mondiale en IPv6 !!!

Si vous lisez cet article, c’est que vous êtes encore dans le game pour au minimum 3 ans ! Vous y aurez le droit !

Présentation d'IPv6

En bref : 

  • Adresse IPv4 = 32 bits
  • Adresse IPv6 = 128 bits
  • IPv4 = 4 milliards de possibilités !
  • IPv6 = 340 undecillion de possibilités !

En gros nous avons :

  • 8 adresses IPv4 par km2
  • 31 411 adresses IPv6 par cm2.

Exemple d’adresse IPv6 :

  • 2340:1111:AAAA:0001:1234:5678:9ABC:1234

Hexadecimal digit = 1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Quartet = 2340 ou 1111 ou AAAA ou ect …

Une adresse IPv6 a 8 Quartets

Abréviation d'adresse IPv6

2 Règles :

Si dans un quartet, il y a des “0” à gauche , ils peuvent être supprimés, exemple :

  • 0001 = 1
  • 0012 = 12
  • 0123 = 123
  • 1234 = 1234

Si une suite de quartets est égale à 0 , elle peut être remplacée par un “::”. Le “::” ne peut être utilisé qu’une seule fois. Par exemple :

  • FE00:0000:0000:0000:0000:0000:0000:0056 = FE00::56
  • FE00:0000:0000:0001:0000:0000:0000:0056 = FE00:0:0:1::56

Sachant qu’une adresse IPv6 à 8 quartets, on retrouve facilement l’adresse d’origine si ces deux règles ont été respectées scrupuleusement.

Subnetting

IPv4 = 32 bits

  • Les masques de sous réseaux vont de /0 à /32

IPv6 = 128 bits

  • Les masques de sous réseaux vont de /0 à /128

Comme pour l’IPv4 , il y a :

  • Une partie pour l’adresse réseau = PREFIX
  • Une partie pour les hôtes = HOST

Prenons l’exemple d’une adresse IPv6 avec son masque :

2001:0DB8:AAAA:0002:1234:5678:9ABC:EF01/64

  • Adresse réseau = PREFIX = 2001:DB8:AAAA:2::/64

 2001:0DB8:AAAA:0002:1234:5678:9ABC:EF01/48

  • Adresse réseau = PREFIX = 2001:DB8:AAAA::/48

 2001:0DB8:AAAA:0002:1234:5678:9ABC:EF01/32

  • Adresse réseau = PREFIX = 2001:DB8::/32

2001:0DB8:AAAA:0002:1234:5678:9ABC:EF01/18

  • Adresse réseau = PREFIX = 2001:D::/18
    ect …
Chapitre 2

Différents types d'adresses IPv6

Deux adresses IPv6 par poste client

Link-local

Link-Local (FE80) = cela équivaut aux adresses APIPA IPv4 (169.254.X.X)

  • non routable
  • prévu pour la partie LAN
  • découvre ses voisins avec le protocole Neighbor Discovery (ND)
  • assignation automatique d’adresse IP avec EUI-64

Exemple : FE80::

Global unicast

Global Unicast (2 ou 3) = adresse publique.

  • routable

Exemple : 2000::

Unique local

Unique Local (FD) = adresse privée (Masque uniquement en /48).

Exemple : FD00::

Multicast

Multicast = FF

Exemple : FF00::

LoopBack

LoopBack = ::1

Sur le même thème :

Le routage Statique vu par CISCO

Chapitre 1

Introduction au routage statique

Le routage statique permet de rajouter des informations dans la table de routage de façon manuel.

Route = Par où je passe pour joindre ce réseau ?
Table de routage = Endroit où notre routeur stocke toutes les informations concernant le routage.

Le cours en vidéo

Chapitre 2

Présentation des routeurs

C'est quoi un routeur ?

Objectif d’un routeur : Distribuer les paquets IP sur le réseau.

À quoi peut-on comparer un routeur : au facteur de votre quartier.

  • il connait les adresses de son secteur et peut donc directement livrer ses paquets
  • il sait que pour les autres quartiers, villes et pays, il faudra donner le paquet à son centre de tri
  • ce qui se passe après ? Cela ne le regarde pas, ce n’est pas son boulot !

Un routeur remonte jusqu’à quelle couche du modèle OSI ? Jusqu’à la couche 3 (IP).

Petites particularités concernant les routeurs : 

  • un routeur ne peut pas avoir deux interfaces dans le même réseau
  • toutes les interfaces d’un routeur sont shutdown par défaut

Comment fonctionne un routeur ?

BOB veut joindre ALICE

Que se passe-t-il lorsque BOB veut échanger des informations avec ALICE :

  1. BOB veut joindre ALICE
  2. ALICE n’est pas dans le même réseau IP que BOB
  3. BOB envoie donc ses paquets à sa gateway (passerelle par défaut)
  4. la gateway de BOB est l’adresse IP du routeur R1
  5. le travail du routeur R1 est de trouver une solution pour joindre ALICE
Que vas faire R1 ?
Que va faire R1 ?

Ce que va faire le routeur R1 :

  • R10 sait comment joindre ALICE
  • R20 sait comment joindre PIERRE et PAUL
  • R30 sait comment joindre JACQUES 

Comment se remplit une table de routage ? Pour ce faire, trois façons :

  1. Par déduction Si une de mes interfaces est dans le réseau 10.10.10.0/24, c’est que je sais comment le joindre
  2. Manuellement Via des lignes de commandes
  3. Dynamiquement Via des protocoles de routages dynamiques comme RIP, OSPF, EIGRP et BGP
Chapitre 3

Les routes statique

Créer une route statique

R1(config)# ip route 192.168.1.0 255.255.255.0 1.1.1.2 name Agence_1

ou

R1(config)# ip route 192.168.1.0 255.255.255.0 FastEthernet 1/0 name Agence_1

192.168.1.0 = Réseau de destination
255.255.255.0 = masque
1.1.1.2 = Adresse IP du routeur voisin
FastEthernet 1/0 = Interface Ethernet où est branché le routeur voisin.

Nous avons donc dit à notre routeur que le réseau 192.168.1.0 /24 est disponible via le routeur ayant comme adresse 1.1.1.2 cette adresse doit être directement connectée au routeur.

Name = Comme je l’ai dit dans mes articles précédents, les descriptions sont importantes !! Aujourd’hui vous savez qui correspond à quoi. Demain ce sera un autre administrateur qui va venir sur votre équipement actif, et si vous avez 30 routes statiques… il sera perdu !!!

Supprimer une route statique

Il suffit juste de rajouter un “no” devant notre route statique :

R1(config)# no ip route 192.168.1.0 255.255.255.0 1.1.1.2 name Agence_1

Créer une route par défaut

R1(config)# ip route 0.0.0.0 0.0.0.0 2.2.2.1 name DEFAULT_GATEWAY

Le réseau 0.0.0.0 /0 englobe toutes les adresses possibles en IPv4. Tout le monde va être redirigé vers l’adresse 2.2.2.1 s’il n’y a pas d’autres solutions.

Chapitre 4

La table de routage

Visualisation de la table de routage

Pour visualiser la table de routage , entrez la commande :

Router# show ip route 
Résultat :
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 2.2.2.1 to network 0.0.0.0

1.1.1.0/24 is subnetted, 1 subnets

C 1.1.1.0 is directly connected, FastEthernet1/0
S 192.168.1.0/24 [1/0] via 1.1.1.2
C 192.168.0.0/24 is directly connected, FastEthernet2/0
S* 0.0.0.0/0 [1/0] via 2.2.2.1

Étape 1 : Administrative Distance

Nous avons vu précédemment que nos routeurs interrogent leurs tables de routages pour savoir à quel routeur distribuer les paquets reçus. Dans cette table de routage, il y a une chose importante qui est prise en compte : la distance administrative.

Cette valeur comprise entre 0 et 255 permet de savoir quelle route choisir si notre table de routage nous indique plusieurs chemins possibles.

La distance administrative prioritaire est la 0.

La distance administrative qui sera choisie dans le pire des cas sera la 255.

Route SourceDistance Administrative 
Interface connecté0
Route Statique1
EIGRP summary route5
E-BGP20
Internal EIGRP90
IGRP100
OSPF110
IS-IS115
RIP120
EGP140
External EIGRP170
Internal BGP200
Unknown*255

Source : https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/15986-admin-distance.html

Étape 2 : Le masque le plus restrictif

Conditions :

  • administrative distance identique !

Imaginons que nous avons les deux routes statiques suivantes :

R1(config)# ip route 192.168.0.0 255.255.255.0 1.1.1.1 name VERS_R1
R1(config)# ip route 192.168.0.0 255.255.0.0 2.2.2.1 name VERS_R2

Notre routeur doit router un paquet vers l’adresse 192.168.0.1 -> Ce paquet va être envoyé vers R1 ou R2 ?

Il va être envoyé vers R1 vu que le masque /24 (255.255.255.0) est plus restrictif que le masque /16 (255.255.0.0).

Étape 3 : En cas d'égalité

Conditions :

  • administrative distance identique !
  • masque de sous réseau identique !

Résultat :

  • Load Balancing
Chapitre 5

L'apprentissage des "routes"

Apprentissage par déduction

Architecture de base : 

Apprentissage par déduction
Apprentissage par déduction

Configuration : 

R1(config)# interface FastEthernet 0/0
R1(config-if)# ip address 10.10.10.254 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit

R1(config)# interface FastEthernet 0/1
R1(config-if)# ip address 20.20.20.254 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit

R1(config)# interface FastEthernet 0/2
R1(config-if)# ip address 30.30.30.254 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit

Vérification :

R1# show ip route

Gateway of last resort is not set

C       10.10.10.0 is directly connected, FastEthernet0/1
C       20.20.20.0 is directly connected, FastEthernet0/2
C       30.30.30.0 is directly connected, FastEthernet0/3

Notre routeur sait comment joindre ces trois réseaux !

Apprentissage manuel

Architecture de base : 

Apprentissage des routes manuellement
Apprentissage des routes manuellement

Configuration des interfaces : 

R1(config)# interface FastEthernet 0/0
R1(config-if)# description LAN
R1(config-if)# ip address 10.10.10.254 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit

R1(config)# interface FastEthernet 0/1
R1(config-if)# description WAN
R1(config-if)# ip address 1.1.1.1 255.255.255.248
R1(config-if)# no shutdown
R1(config-if)# exit
R2(config)# interface FastEthernet 0/0
R2(config-if)# description LAN
R2(config-if)# ip address 20.20.20.254 255.255.255.0
R2(config-if)# no shutdown
R2(config-if)# exit

R2(config)# interface FastEthernet 0/1
R2(config-if)# description WAN
R2(config-if)# ip address 1.1.1.2 255.255.255.248
R2(config-if)# no shutdown
R2(config-if)# exit

Configuration du routage statique :

R1(config)# ip route 20.20.20.0 255.255.255.0 1.1.1.2 name LAN_R2
R2(config)# ip route 10.10.10.0 255.255.255.0 1.1.1.1 name LAN_R1

Vérification : 

R1# show ip route

Gateway of last resort is not set

C       10.10.10.0 is directly connected, FastEthernet0/0
S       20.20.20.0/24 [1/0] via 1.1.1.2 
C       1.1.1.0    is directly connected, FastEthernet0/1

R2# show ip route

Gateway of last resort is not set

S       10.10.10.0/24 [1/0] via 1.1.1.1 
C       20.20.20.0 is directly connected, FastEthernet0/0
C       1.1.1.0    is directly connected, FastEthernet0/1

R1 et R2 connaissent maintenant les réseaux 10.10.10.0/24 et 20.20.20.0/24

Apprentissage dynamique

La suite au prochain cours les amis 😉

Chapitre 6

Exercice routage statique

OpenVPN sous Pfsense

INTRODUCTION


Problématique de base :

Imaginons que nous ayons une entreprise avec plusieurs sites géographiques.

Chaque site géographique possède sa propre liaison Internet.

Au niveau de la législation française, nous sommes obligés d’authentifier et d’archiver l’activité de nos utilisateurs.

Pour ce faire, nous avons décidé d’installer sur chaque site un serveur PfSense.

Tous nos administrateurs sont au niveau du site principal. Il faut donc que nos administrateurs puissent accéder à distance à chaque serveur PfSense Distant.

Nous allons donc mettre en place une liaison VPN entre notre site principal et nos sites isolés. Cela nous permettra :

– de pouvoir administrer nos sites distants de manière sécurisés
– d’avoir un échange de donnée possible entre nos LAN Internet (enregistrement centralisé des Logs, intégration de nos ordinateurs distants dans un domaine unique, etc.)

 

Avec un serveur PfSense, nous pouvons mettre en place plusieurs types de VPN :

IPSec (nécessite 2 IP WAN fixes)
L2TP (nécessite 2 IP WAN fixes)
OpenVPN (nécessite un seul IP WAN fixe)
PPTP (nécessite 2 IP WAN fixes)

 

Dans notre cas, nous allons partir sur la mise en place d’un OpenVPN.

Pourquoi ? Car ce VPN à l’avantage de fonctionner en mode client/serveur et donc ne nécessite qu’une seul IP WAN Fixe sur un de nos sites.

 

Vu que nous allons raccorder plusieurs OpenVPN sur notre site principal, le plus judicieux est de mettre l’adresse IP publique de notre site principale en fixe.

Tout fournisseur d’accès proposent ce service (généralement payant).

 

 

 

Configuration de notre liaison OpenVPN



Pour ce faire, nous allons configurer ce dernier étape par étape.

Afin de mieux comprendre comment le mettre en place, nous allons commencer au niveau de notre poste d’administration (situé sur la partie serveur).

 

 

Configuration PfSense du site principale



 

Configuration de l’OpenVPN


Jusqu’ici, rien de compliqué. Nous avons un Lan qui va être NATé via l’IP Wan de notre box pour qu’il puisse naviguer sur internet.

La première chose à faire sur notre PfSense c’est de créer notre partie « Serveur ».

Pour ce faire, nous devons aller dans l’onglet « VPN > OpenVPN ».

Dans l’onglet « Serveur », nous allons cliquer sur le petit “+” afin de créer notre serveur OpenVPN.

 

 

Les paramètres à mettre en place sont les suivants :

 

Server Mode : Peer to Peer (Shared Key).

Pour monter notre VPN, nous allons utiliser un secret partagé (shared key).

Ce secret va être commun à tous nos clients ainsi qu’avec notre serveur. Il va falloir le copier-coller à chaque fois que nous allons paramétrer une connexion OpenVPN.

Ce secret est automatiquement généré par le serveur.

Interface : Interface WAN.

IPv4 Tunnel Network : Mettez une adresse réseau type 10.10.10.0 /24 (ce réseau est un réseau privé de classe A).

Le tunnel OpenVPN a besoin de cette information pour fonctionner, il faut juste faire attention à ce que le réseau choisi soit assez grand pour d’accueillir tous nos clients OpenVPN et qu’il ne soit pas utilisé autre part.

Une fois le paramétrage fini, cliquez sur « Save ».

Notre serveur OpenVPN est configuré !

Il ne reste plus qu’à intervenir sur notre firewall afin de laisser passer les flux dont nous avons besoin.

 

Configuration du Firewall


Pour ce faire, aller dans l’onglet « Firewall > Rules ».

On peut voir que chaque interface possède un firewall.

Par défaut, personne ne peut emprunter notre tunnel et toutes les demandes de connexion VPN venant de l’extérieur sont bloquées par le firewall WAN. Nous allons donc autoriser ces flux.

 

Au niveau du firewall OpenVPN :

 

Au niveau du firewall WAN :

 

 

Configuration de notre accès Internet


Par défaut, une box refuse toutes demandes de connexion venant de l’extérieur vu qu’elle ne sait pas à qui cette demande est destinée (vu que la box fait du NAT).

Nous allons donc indiquer à la box que si une demande de connexion VPN vient de l’extérieur, sur le port par défaut utilisé par OpenVPN (UDP 1194), elle devra la rediriger vers notre Pfsense.

Pour ce faire, nous allons mettre en place du port-forwarding (redirection de port).

Vu le nombre de box différentes présentes sur le marché, le mieux est de faire une recherche sur Google avec la référence de la box ainsi que le mot “port-forwarding”.

 

 

Configuration PfSense de nos sites isolés



 

Configuration de l’OpenVPN


La première chose à faire sur notre PfSense c’est de créer notre partie « Client » (vous trouverez la configuration sur l’image ci-dessous).

 

 

 

 

 

 

Server host or address 

Il va falloir mettre l’adresse IP du serveur OpenVPN telle qu’elle est vue sur Internet. Ce sera donc l’adresse IP de la patte WAN de la box « maison mère ».

Comment obtenir cette adresse ? Il faut aller sur le site www.mon-ip.com à partir d’un poste de la maison mère et le tour est joué !

Shared Key

Copier-coller le secret partagé du serveur ici.

IPv4 Tunnel Network

Mettre le même Network que le serveur.

Il ne reste plus qu’à intervenir sur notre firewall afin de laisser passer les flux dont nous avons besoin !

 

Configuration du Firewall


Pour ce faire, aller dans l’onglet « Firewall > Rules ».

Comme c’est le client qui doit faire la demande de connexion, il n’est pas nécessaire d’ajouter une règle au niveau du firewall WAN. Nous allons uniquement intervenir sur le firewall OpenVPN pour ajouter les mêmes règles que la partie serveur :

 

Configuration de notre accès INTERNET


Il n’y à pas d’action à mener sur les BOX Internet de nos sites isolés vu qu’ils sont en mode “Client”. Ce sont eux qui font faire la demande d’ouverture du tunnel OpenVPN.

 

 

Test de bon fonctionnement



Pour tester votre connexion VPN, essayerzd’accéder à la page d’administration du PfSense distant depuis un poste du site principal.

Si cela ne fonctionne pas, il va falloir vérifier les logs de nos firewalls ou si l’un de nos flux n’a pas été bloqué.

Ce schéma de principe peut vous aider dans votre recherche de panne :

 

 

En espérant que vous avez apprécié cet article !

N’hésitez pas à me la faire savoir !!

FingerInTheNet.com

Le protocole SCP : Archiver ces configurations CISCO

En cas de dysfonctionnement de nos équipements actifs, nous devons avoir la dernière version des configurations de ces derniers. Pour ce faire, nous allons automatiser cette tâche via le protocole SCP (Secure Copy Protocol).

 

Ce protocole s’appuie sur le protocole SSH , ce qui permet d’envoyer les sauvegardes de manière sécurisé.

Pour ce faire , nos équipements ouvre une connexion SSH sur notre serveur de sauvegarde.

Pour ouvrir cette connexion SSH il faut bien entendu un login et un mot de passe.

La configuration utilisée est la suivante :

Explications :

Archive => commande qui permet de rentrer dans le mode (config-archive)#

Path => Choix du protocole à utilisé (FTP , SCP , … ) les logins/mot de passe pour la connexion ainsi que l’endroit ou faire cette sauvegarde.(Chemin absolue)

write-memory => Enregistrement de la configuration à chaque sauvegarde initié par l’administrateur lors d’une modification.

Log config => permet de rentrer dans le mode (config-archive-log-cfg)#

logging enable =>permet d’enregistrer toutes les commandes passé par l’utilisateur

notify syslog contenttype plaintext => envoi un message syslog à chaque modification.

 

Sur un serveur linux, il est très facile de trouver des tutos sur internet afin de mettre en place cette connexion SSH.

Pour ce qui est du monde Windows, l’application la plus connue est “CopSSH”