# COUCHE 3 Routage statique, RIPv2, OSPF, NAT > Fonctionnalités clés de la couche 3 sur les équipements Cisco. Publié le 2021-09-14 | Mis à jour le 2025-03-23 | Tags: cisco, routing https://xsec.fr/networking/layer-3/ --- import Callout from '@shared/components/Callout.astro' import { Collapsible } from '@shared/components/ui/collapsible' import { Steps, Step } from '@/components/ui/steps' ## Interface Loopback L'interface loopback est virtuelle et sert de connexion SSH de secours pour tous les ports de l'équipement réseau. Elle permet également d'identifier le prochain routeur dans un protocole de routage OSPF multi-zones. Dans un réseau interconnecté, l'interface loopback fournit une route de secours pour atteindre l'équipement souhaité. Cette interface agit comme un VLAN, formant un réseau distinct des autres réseaux connus sur le routeur. ```txt title="Router(config)#" interface loopback 0 ``` Une notification indique que l'interface loopback est maintenant UP : ```txt title="Terminal" %LINK-5-CHANGED: Interface Loopback0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up ``` ```txt title="Router(config-if)#" ip address 1.1.1.1 ip address 2.2.2.2 ``` Puisqu'il s'agit d'un réseau séparé, configurez le routage sur les deux équipements (statique dans cet exemple) : ```txt title="Router(config)#" Router1(config)# ip route 2.2.2.0 255.255.255.0 192.168.1.2 Router2(config)# ip route 1.1.1.0 255.255.255.0 192.168.1.1 ``` ```txt title="Router#" Router1# ping 2.2.2.2 ``` ## Routage statique ![Diagramme de route statique](/media/networking/route.png) Pour communiquer avec un autre réseau (c'est-à-dire avec un schéma d'adressage différent), établissez une route entre les routeurs : ```txt title="Router(config)#" ip route 10.10.10.0 255.255.255.0 172.16.1.1 ``` Réseau de destination avec masque de sous-réseau | Next-hop (nœud suivant) `192.168.1.0 255.255.255.0` | `172.16.1.1` `Next-hop` représente le chemin pour le transfert de paquets. De même, configurez une route pour le second routeur dans la direction opposée. ```txt title="Router(config)#" ip route 192.168.1.0 255.255.255.0 172.16.1.2 ``` Pour atteindre le réseau `192.168.1.0 255.255.255.0`, passez par `172.16.1.2`. La commande `Router#show ip route` affiche les routes connues, y compris tous les protocoles de routage actifs et les réseaux partagés. ```txt title="Router#" show ip route Codes: L - local, 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 C 192.168.1.0/24 is directly connected, FastEthernet0/0 S 10.10.10.0/24 [1/0] via 172.16.1.1 ``` `S` pour les routes statiques. Il existe également une **route statique par défaut** `0.0.0.0 0.0.0.0 IP_NEXT_HOPE` Tous les réseaux inconnus seront transmis à `Next-Hope`. ## Routage dynamique ### RIPv2 RIPv2 est un exemple de protocole de routage dynamique à vecteur de distance. Il permet à plusieurs routeurs de communiquer et **d'annoncer les réseaux** qu'ils connaissent. Les routeurs mettent à jour leurs tables de routage (toutes les 30 secondes) en fonction des requêtes RIP qu'ils reçoivent. RIPv2 prend en compte le **coût** comme métrique. "Combien de sauts me faudra-t-il pour atteindre ma cible ?" C'est la question que le routeur évalue. Il choisira la route avec le coût le plus bas. Lorsqu'on parle de **coût**, le même principe s'applique aux autres protocoles de routage. Définissez les interfaces ne pointant pas vers un autre routeur comme passives. **Cela limite le trafic RIP v2 aux réseaux entre routeurs, réduisant la charge réseau et la surface d'attaque.** ![Exemple de topologie réseau RIP](/media/networking/rip.png) ```txt title="R1(config)#" R1(config)#router rip ``` ```txt title="R1(config)#" R1(config)#version 2 ``` ```txt title="R1(config-router)#" R1(config-router)#network 10.10.10.0 R1(config-router)#network 172.16.0.0 ``` L'interface g0/0/0 du routeur 1 ne pointe pas vers un routeur. ```txt title="R1(config-router)#" R1(config-router)#passive-interface g0/0/0 ``` Suivez les mêmes étapes pour le routeur 2 (ajustez les réseaux que le routeur annonce en conséquence). #### Résumé des commandes RIPv2 Copiez et collez ces lignes (ajustez votre configuration) directement dans votre terminal : ```txt conf t router rip version 2 network 10.10.10.0 network 172.16.1.0 passive-interface g0/0/0 ``` ### OSPF OSPF est un exemple de protocole de routage **à état de liens**. Il organise les routeurs en "zones" pour sa configuration. Le protocole de routage **BGP** collecte les tables de routage de tous les protocoles de routage dynamiques. Il est utilisé par les fournisseurs d'accès Internet. Tous les routeurs au sein d'une zone OSPF doivent avoir le même ID de zone pour devenir voisins OSPF. Quatre éléments clés pour une configuration OSPF minimale : ```txt title="Router(config)#" router ospf 1 ``` ```txt title="Router(config-router)#" router-id 1.1.1.1 ``` ```txt title="Router(config-router)#" passive-interface g0/0/0 ``` 1 réseau par interface de routeur, y compris les sous-interfaces. Il est essentiel d'annoncer les réseaux en utilisant leur adresse réseau et leur masque wildcard (masque inverse). CIDR | Masque | Masque Wildcard --- | --- | --- /32 | 255.255.255.255 | 0.0.0.0 /31 | 255.255.255.254 | 0.0.0.1 /30 | 255.255.255.252 | 0.0.0.3 /29 | 255.255.255.248 | 0.0.0.7 /28 | 255.255.255.240 | 0.0.0.15 /27 | 255.255.255.224 | 0.0.0.31 /26 | 255.255.255.192 | 0.0.0.63 /25 | 255.255.255.128 | 0.0.0.127 /24 | 255.255.255.0 | 0.0.0.255 /23 | 255.255.254.0 | 0.0.1.255 /22 | 255.255.252.0 | 0.0.3.255 /21 | 255.255.248.0 | 0.0.7.255 /20 | 255.255.240.0 | 0.0.15.255 /19 | 255.255.224.0 | 0.0.31.255 /18 | 255.255.192.0 | 0.0.63.255 /17 | 255.255.128.0 | 0.0.127.255 /16 | 255.255.0.0 | 0.0.255.255 /15 | 255.254.0.0 | 0.1.255.255 /14 | 255.252.0.0 | 0.0.3.255 /13 | 255.248.0.0 | 0.7.255.255 /12 | 255.240.0.0 | 0.0.15.255 /11 | 255.224.0.0 | 0.0.31.255 /10 | 255.192.0.0 | 0.0.63.255 /9 | 255.128.0.0 | 0.0.127.255 /8 | 255.0.0.0 | 0.0.255.255 /7 | 254.0.0.0 | 1.255.255.255 /6 | 252.0.0.0 | 3.255.255.255 /5 | 248.0.0.0 | 7.255.255.255 /4 | 240.0.0.0 | 15.255.255.255 /3 | 224.0.0.0 | 31.255.255.255 /2 | 192.0.0.0 | 63.255.255.255 /1 | 128.0.0.0 | 127.255.255.255 /0 | 0.0.0.0 | 255.255.255.255 ```txt title="Router(config-router)#" network 192.168.1.0 0.0.0.255 area 0 network 10.20.30.40 0.0.0.3 area 0 ``` `192.168.1.0/24` est le réseau LAN. `10.20.30.40/30` est le réseau point-à-point entre les deux routeurs. Visualisez les voisins OSPF avec la commande : ```txt title="Router#" show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 192.168.1.0 1 2WAY/DROTHER 00:00:32 192.168.1.0 GigabitEthernet0/1 10.20.30.40 1 2WAY/DROTHER 00:00:32 10.20.30.40 GigabitEthernet0/2 ``` - Définir le coût de route manuellement (en unités de 1) : ```txt title="Router(config-router)#" auto-cost reference-bandwidth 1000 ``` #### Résumé des commandes OSPF Copiez et collez ces lignes (ajustez votre configuration) directement dans votre terminal : ```txt conf t router ospf router-id 1.1.1.1 network 192.168.1.0 0.0.0.255 area 0 network 10.20.30.40 0.0.0.3 area 0 ``` L'exemple ci-dessus montre la configuration d'un routeur avec une interface dans un LAN et une autre dans le réseau /30 pointant vers le routeur suivant. Pour limiter les échanges de table de routage aux interfaces nécessaires, il est recommandé (pour l'optimisation du réseau et la sécurité) de définir les interfaces LAN en mode **passif** afin qu'elles n'écoutent pas le trafic de routage. ```txt title="Router(config-router)#" passive-interface g0/0/0 ``` ### OSPF multi-zones **À venir...** ## NAT dynamique --- ```txt title="Router(config)#" int g0/0/0 ip nat inside ``` ```txt title="Router(config)#" int g0/0/1 ip nat outside ``` ```txt title="Router(config)#" access-list 1 permit 192.168.0.0 0.0.0.255 ``` `0.0.0.255` est le masque wildcard. ```txt title="Router(config)#" ip nat pool MY_POOL 10.10.10.1 10.10.10.1 netmask 255.255.255.0 ``` - `10.10.10.0` correspond au réseau WAN - `10.10.10.1` à `10.10.10.x` définit une plage d'adresses IP - S'il n'y a qu'une seule interface : `10.10.10.1` `10.10.10.1` ```txt title="Router(config)#" ip nat inside source list 1 pool MON_POOL overload ``` OU ```txt ip nat inside source list 1 interface g0/0/1 overload ```