GNS3 – OSPF Lab – 1ère partie

Après EIGRP et le Policy based routing, voici un premier lab GNS3 consacré à OSPF. Il s’agit du début d’une série qui aura pour but final d’établir une configuration relativement avancée d’OSPF. Chaque article ajoutera une série de configurations au précédent.

Parmis les points traités, vous retrouverez:

  • Configuration de base d’OSPF en multi-area.
  • OSPF sur les liaisons point-à-point, ethernet et NBMA (frame-relay).
  • Configuration des priorités pour influencer l’élection des DR et BDR.
  • Redistribution de base d’un autre protocole.
  • Configuration d’un virtual-link.
  • Type d’area particulers (stub, totally stub et nssa).
  • « Summarisation ».
  • etc.

La topologie

Détails du lab

Les routeurs utilisés dans cette topologie sont tous des modèles 2691 (256Mo RAM).

L’IOS utilisé est: c2691-advipservicesk9-mz.124-15.T12.bin.unpacked (version décompressée).

Vous pouvez télécharger le topologie et les fichiers de configuration de base (adressages IP, config frame-relay etc) ICI.

Première étape

Dans un premier temps nous allons configurer l’area 0. La première chose à faire, c’est de définir la bande passante sur les interfaces de sorte que par la suite OSPF puisse correctement calculer sa métrique ( souvent dénommée « cost » ).

Voici la formule pour calculer la métrique d’OSPF:

COST = 100 / ( Bande Passante en Mbits/s)

Pour configurer la bande passante sur une interface, il suffit d’aller en configuration d’interface et d’entrer la commande suivante:

Router(config-if)# bandwidth 128

La valeur de bande passante est ici exprimée en kbits/s. On aura donc ici défini une bande passante de 128kbits/s. Il suffit donc de configurer les interfaces sérielles de BBR1, ABR1, ABR2 et ABR4 de cette façon.

Une petite vérification rapide de la bande passante. Par exemple l’interface Serial 0/0 sur BBR1:

BBR1#show interface s0/0 | inc BW
MTU 1500 bytes, BW 128 Kbit/sec, DLY 20000 usec,
BBR1#

La commande utilisée ici permet, un peu comme en linux, de filtrer l’affichage. Ici j’ai demandé que l’IOS ne ‘affiche que la ligne contenant le mot « BW » de l’affichage normal du « show interface ».

Deuxième étape

Configurons maintenant OSPF pour l’Area 0. Pour rappel dans le monde d’OSPF, l’area 0 est la colonne vertébrale du réseau. Toutes les autres area doivent s’y rattacher, au même titre qu’un bras ou une jambe est rattaché au au tronc.

Tout routeur doit avoir un router-id qui s’exprime sous la forme a.b.c.d (4x 8bits) comme une adresse IP. Par défaut OSPF utilise la plus grande adresse configurée sur une interface loopback. Si il n’y en a pas, ce sera la plus grande adresse configurée sur une interface physique. Il est également possible, et conseillé, de configurer le router-id de manière statique via la commande suivante (en configuration router ospf):

Router(config-router)# router-id a.b.c.d

Voici les router-id que nous allons configurer:

  • BBR1: 1.1.1.1
  • ABR1: 2.2.2.2
  • ABR2: 3.3.3.3
  • ABR3: 4.4.4.4
  • ABR4: 5.5.5.5
  • R1: 6.6.6.6
  • ASBR: 7.7.7.7
  • R2: 8.8.8.8
  • R3: 9.9.9.9

Une fois le router-id défini, on peut alors définir quelles interfaces feront partie de l’area 0 via la commande suivante:

Router(config-router)# network <subnet> <wildcard mask> area <area nr>

<subnet> correspond à l’adresse réseau de l’interface concernée, <wildcard mask> est le masque « inversé » du réseau et <area nr> le n° de l’area voulue.

Sur BBR1

BBR1(config)#router ospf 1
BBR1(config-router)#router-id 1.1.1.1
BBR1(config-router)#network 10.0.0.0 0.0.0.255 area 0
BBR1(config-router)#network 10.0.1.0 0.0.0.3 area 0
BBR1(config-router)#network 10.0.1.4 0.0.0.3 area 0
BBR1(config-router)#exit
BBR1(config)#

Interfaces FastEthernet 0/0, Serial 0/0 et Serial 0/1

Sur ABR1

ABR1(config)#router ospf 1
ABR1(config-router)#router-id 2.2.2.2
ABR1(config-router)#network 10.0.0.0 0.0.0.255 area 0
ABR1(config-router)#network 10.0.1.0 0.0.0.3 area 0
ABR1(config-router)#network 10.0.1.8 0.0.0.3 area 0
ABR1(config-router)#exit
ABR1(config)#

Sur ABR2

BBR1(config)#router ospf 1
BBR1(config-router)#router-id 3.3.3.3
BBR1(config-router)#network 10.0.0.0 0.0.0.255 area 0
BBR1(config-router)#network 10.0.1.4 0.0.0.3 area 0
BBR1(config-router)#network 10.0.1.12 0.0.0.3 area 0
BBR1(config-router)#exit
BBR1(config)#

Sur ABR4

BBR1(config)#router ospf 1
BBR1(config-router)#router-id 5.5.5.5
BBR1(config-router)#network 10.0.0.0 0.0.0.255 area 0
BBR1(config-router)#network 10.0.1.8 0.0.0.3 area 0
BBR1(config-router)#network 10.0.1.12 0.0.0.3 area 0
BBR1(config-router)#exit
BBR1(config)#

Troisième étape

Vérifions maintenant le bon fonctionnement d’OSPF au sein de l’area 0, par exemple sur BBR1.

show ip protocols

BBR1#sh ip protocols
Routing Protocol is "ospf 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 1.1.1.1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
10.0.0.0 0.0.0.255 area 0
10.0.1.0 0.0.0.3 area 0
10.0.1.4 0.0.0.3 area 0
Reference bandwidth unit is 100 mbps
Routing Information Sources:
Gateway         Distance      Last Update
5.5.5.5              110      00:08:40
3.3.3.3              110      00:09:37
2.2.2.2              110      00:11:52
Distance: (default is 110)
BBR1#

On voit donc ici que le router-id est bien 1.1.1.1, que OSPF est activé pour les 3 réseaux connectés à BBR1 et que BBR1 reçoit des informations de trois voisins.

show ip ospf neighbors

BBR1#sh ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
3.3.3.3           0   FULL/  -        00:00:36    10.0.1.6        Serial0/1
2.2.2.2           0   FULL/  -        00:00:37    10.0.1.2        Serial0/0
2.2.2.2           1   FULL/BDR        00:00:36    10.0.0.3        FastEthernet0/0
3.3.3.3           1   FULL/DROTHER    00:00:35    10.0.0.4        FastEthernet0/0
5.5.5.5           1   FULL/DROTHER    00:00:37    10.0.0.2        FastEthernet0/0
BBR1#

On constate ici que BBR1 a établi 5 relations d’adjacence. Une part liaison point-à-point et trois sur le réseau ethernet. Tout semble en ordre de ce point de vue. Je reviendrai plus en détail sur la colonne « State » dans un futur article quand nous influcencerons l’élection du DR et du BDR sur un réseau partagé.

show ip route

BBR1#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
O       10.0.1.8/30 [110/782] via 10.0.0.3, 00:20:23, FastEthernet0/0
                    [110/782] via 10.0.0.2, 00:17:10, FastEthernet0/0
O       10.0.1.12/30 [110/782] via 10.0.0.4, 00:18:07, FastEthernet0/0
                     [110/782] via 10.0.0.2, 00:17:10, FastEthernet0/0
C       10.0.0.0/24 is directly connected, FastEthernet0/0
C       10.0.1.0/30 is directly connected, Serial0/0
C       10.0.1.4/30 is directly connected, Serial0/1
BBR1#

BBR1 a donc bien appris de nouvelles routes vers les réseaux 10.0.1.8/30 et 10.0.1.12/30 avec un cost de 782. Notez que la distance administrative par défaut d’OSPF est de 110.

D’où vient le 782? … En se référant à la topologie, BBR1 peut accéder à 10.0.1.8/30 soit via ABR1, soit via ABR4. Dan sles deux cas la métrique est la même:

De BBR1 à ABR1, la meilleure route passe par l’interface Fa0/0, qui a une bande passante de 100 Mbits/s.

Attention … GNS3 semble parfois mal joueur le jeu du point de vue de la négociation de l’interface ethernet, il se peut que la fa0/0 soit en 10Mbit/s … A vérifier en cas d’incohérence. Si tel est le cas, forcez la bande passante via la commande « bandwidth 100000 ».

Ensuite ABR1 a une liaison en 128kbits/s vers le réseau 10.0.1.8/30. Ce qui permet de calculer la métrique globale de ce réseau pour BBR1:

( 100 / 100 ) + ( 100 / 0,128 ) = 1 + 781 = 782

show ip ospf interface fa0/0

BBR1#sh ip ospf interface fa0/0
FastEthernet0/0 is up, line protocol is up
  Internet Address 10.0.0.1/24, Area 0
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 1.1.1.1, Interface address 10.0.0.1
  Backup Designated router (ID) 2.2.2.2, Interface address 10.0.0.3
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:02
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 1/1, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 4 msec
  Neighbor Count is 3, Adjacent neighbor count is 3
    Adjacent with neighbor 2.2.2.2  (Backup Designated Router)
    Adjacent with neighbor 3.3.3.3
    Adjacent with neighbor 5.5.5.5
  Suppress hello for 0 neighbor(s)
BBR1#

On retrouve ici, mis en couleurs, de haut en bas, l’area configurée pour l’interface (via la commande network), le type de réseau (broadcast, non-broadcast, point-to-point), le cost (la métrique) de l’interface pour accéder au réseau connecté, les valeurs des différents timers (à noter que le Hello et le Dead timer font partie des points critiques pour l’établissement d’une adjacence, il faut que les routeurs aient les mêmes valeurs), et finallement, la liste des routeurs adjacents sur le réseau connecté à cette interface.

Voilà pour une première étape dans la configuration de la topologie. A ce stade-ci on a une configuration en single-area fonctionnelle. La prochaine étape sera de configurer les autres area directement (physiquement) connectées.

10 Comments on “GNS3 – OSPF Lab – 1ère partie

  1. Bonjour,

    Quand j’affiche la table de routage de BBR1, la métrique est de 791 pas comme vous l’avez trouvé et pourtant mes interfaces ont les mêmes BW.

    BBR1#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

    10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
    O 10.0.1.8/30 [110/791] via 10.0.0.3, 00:12:58, FastEthernet0/0
    [110/791] via 10.0.0.2, 00:12:58, FastEthernet0/0
    O 10.0.1.12/30 [110/791] via 10.0.0.4, 00:12:58, FastEthernet0/0
    [110/791] via 10.0.0.2, 00:12:58, FastEthernet0/0
    C 10.0.0.0/24 is directly connected, FastEthernet0/0
    C 10.0.1.0/30 is directly connected, Serial0/0
    C 10.0.1.4/30 is directly connected, Serial0/1

    ABR1#sh int s0/1
    Serial0/1 is up, line protocol is up
    Hardware is GT96K Serial
    Internet address is 10.0.1.10/30
    MTU 1500 bytes, BW 128 Kbit, DLY 20000 usec,
    reliability 255/255, txload 1/255, rxload 1/255

    BBR1#sh int f0/0
    FastEthernet0/0 is up, line protocol is up
    Hardware is Gt96k FE, address is c003.1784.0000 (bia c003.1784.0000)
    Internet address is 10.0.0.1/24
    MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,

    Merci d’avance et bonne continuation.

    • Je pense que c’est du à la bande passante des interfaces Ethernet dans GNS3. Je les avais corrigées en les mettant à 100Mbps. Du coup le cost de vient 100/100 + 100/0.128 = 782

  2. Bonjour Steve, devant réviser OSPF, je me suis lancé à suivre ton lab. Encore une fois merci, c’est toujours un plaisir de les lire.

    J’en suis à la première étape et je suis en face d’un problème que je n’arrive à résoudre.

    Pour info, j’ai suivi la même topo, mais j’utilise des IOU en version 15.

    Mon problème se situe entre BBR1 et ABR1. Il me manque une %OSPF-5-ADJCHG sur le lien ethernet.

    BBR1(config-if)#do sh ip ospf neighbor

    Neighbor ID Pri State Dead Time Address Interface
    3.3.3.3 0 FULL/ – 00:00:37 10.0.1.6 Serial1/1
    2.2.2.2 0 FULL/ – 00:00:33 10.0.1.2 Serial1/0
    2.2.2.2 1 2WAY/DROTHER 00:00:36 10.0.0.3 Ethernet0/0
    3.3.3.3 1 FULL/BDR 00:00:31 10.0.0.4 Ethernet0/0
    5.5.5.5 1 FULL/DR 00:00:37 10.0.0.2 Ethernet0/0

    BBR1(config-if)#do sh ip ospf int e0/0
    Ethernet0/0 is up, line protocol is up
    Internet Address 10.0.0.1/24, Area 0, Attached via Network Statement
    Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10
    Topology-MTID Cost Disabled Shutdown Topology Name
    0 10 no no Base
    Transmit Delay is 1 sec, State DROTHER, Priority 1
    Designated Router (ID) 5.5.5.5, Interface address 10.0.0.2
    Backup Designated router (ID) 3.3.3.3, Interface address 10.0.0.4
    Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:05
    Supports Link-local Signaling (LLS)
    Cisco NSF helper support enabled
    IETF NSF helper support enabled
    Index 1/1/1, flood queue length 0
    Next 0x0(0)/0x0(0)/0x0(0)
    Last flood scan length is 1, maximum is 1
    Last flood scan time is 0 msec, maximum is 0 msec
    Neighbor Count is 3, Adjacent neighbor count is 2
    Adjacent with neighbor 3.3.3.3 (Backup Designated Router)
    Adjacent with neighbor 5.5.5.5 (Designated Router)
    Suppress hello for 0 neighbor(s)

    ABR1(config-if)#do sh ip ospf int e0/0
    Ethernet0/0 is up, line protocol is up
    Internet Address 10.0.0.3/24, Area 0, Attached via Network Statement
    Process ID 1, Router ID 2.2.2.2, Network Type BROADCAST, Cost: 10
    Topology-MTID Cost Disabled Shutdown Topology Name
    0 10 no no Base
    Transmit Delay is 1 sec, State DROTHER, Priority 1
    Designated Router (ID) 5.5.5.5, Interface address 10.0.0.2
    Backup Designated router (ID) 3.3.3.3, Interface address 10.0.0.4
    Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:04
    Supports Link-local Signaling (LLS)
    Cisco NSF helper support enabled
    IETF NSF helper support enabled
    Index 1/1/1, flood queue length 0
    Next 0x0(0)/0x0(0)/0x0(0)
    Last flood scan length is 0, maximum is 1
    Last flood scan time is 0 msec, maximum is 0 msec
    Neighbor Count is 3, Adjacent neighbor count is 2
    Adjacent with neighbor 3.3.3.3 (Backup Designated Router)
    Adjacent with neighbor 5.5.5.5 (Designated Router)
    Suppress hello for 0 neighbor(s)

    ABR4(config)#do sh ip ospf int e0/0
    Ethernet0/0 is up, line protocol is up
    Internet Address 10.0.0.2/24, Area 0, Attached via Network Statement
    Process ID 1, Router ID 5.5.5.5, Network Type BROADCAST, Cost: 10
    Topology-MTID Cost Disabled Shutdown Topology Name
    0 10 no no Base
    Transmit Delay is 1 sec, State DR, Priority 1
    Designated Router (ID) 5.5.5.5, Interface address 10.0.0.2
    Backup Designated router (ID) 3.3.3.3, Interface address 10.0.0.4
    Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:06
    Supports Link-local Signaling (LLS)
    Cisco NSF helper support enabled
    IETF NSF helper support enabled
    Index 1/1, flood queue length 0
    Next 0x0(0)/0x0(0)
    Last flood scan length is 1, maximum is 2
    Last flood scan time is 0 msec, maximum is 0 msec
    Neighbor Count is 3, Adjacent neighbor count is 3
    Adjacent with neighbor 1.1.1.1
    Adjacent with neighbor 2.2.2.2
    Adjacent with neighbor 3.3.3.3 (Backup Designated Router)
    Suppress hello for 0 neighbor(s)

    J’ai fait un certain nombre de vérification, notamment les Hello 10, Dead 40. C’est par défaut.

    La couche 3 est bonne:

    ABR1(config-if)#do deb ip icmp
    ICMP packet debugging is on
    ABR1(config-if)#
    *Jun 2 17:01:42.924: ICMP: echo reply sent, src 10.0.0.3, dst 10.0.0.1, topology BASE, dscp 0 topoid 0

    Mais pas d’adjacente.

    Le point qui me travaille, c’est:
    Neighbor Count is 3, Adjacent neighbor count is 2 et 2WAY/DROTHER

    Il voit bien le voisin, mais ne monte pas l’adjacente.

    Une petite idée.

    Merci

    • Voilà ce que dit Cisco et en Français…

      Two-way : Il y a une communication bidirectionnelle avec un voisin. Le routeur s’est vu dans les paquets Hello provenant d’un voisin. À la fin de cette étape, l’élection de DR et de BDR aura été effectuée. À la fin de l’étape Two-way, les routeurs décideront s’ils passent ou non à la génération d’une contiguïté. La décision est basée sur le fait qu’un des routeurs est un DR ou BDR, ou que la liaison est une liaison point à point ou virtuelle.

    • C’est tout à fait normal… Le principe du DR/BDR est de centraliser la diffusion des mises à jour. Tous les routeurs auront une adjacence full avec le DR et le BDR (Le BDR ne sert que de backup dans l’hypothèse ou le DR viendrait à défaillir).
      Pour le fonctionnement, les routeurs envoient leur LSUs à desintation de l’adresse 224.0.0.6 (groupe multicast des DR/BDR). Ensuite uniquement le DR dispatchera l’information à tous les routeurs OSPF, donc à destination de l’adresse 224.0.0.5.

      Ce principe évite de générer une masse énorme de mises à jour qui se croisent dans tous les sens, surtout si lle nombre de routeurs dans le même réseau est important.

      L’élection d’un DR/BDR ets propre à un réseau de type « BROADCAST » ou « NON-BROADCAST » d’un point de vue OSPF. En gros, on en trouve sur les réseau Ethernet ou Frame-Relay Multipoint. Chaque réseau au son DR et son BDR.

  3. comment es que quant je ping le deux extremités du router ça ne mache pas seulement les router qui ont la même adresse réseau càd les deux interface du même réseaux