6. Publier les routes par défaut via OSPF

Dans la topologie logique étudiée, le routeur R1 dispose d'un lien montant vers l'Internet. On peut donc considérer que ce lien est la route par défaut vers tous les réseaux non connus de l'aire OSPF contenant les trois routeurs.

Il est possible de publier une route par défaut via le protocole OSPF depuis le routeur R1 vers les routeurs R2 et R3.

Voici, pour mémoire, une copie des bases de données OSPFv2 et OSPFv3 avant la mise en place de la publication de route par défaut. On reconnaît les LSAs (Link State Advertisement)) de type 1 et 2 qui correspondent respectivement aux annonces de routeurs et de réseaux.

R1# sh ip ospf database

       OSPF Router with ID (0.0.1.4)

                Router Link States (Area 0.0.0.0)

Link ID         ADV Router      Age  Seq#       CkSum  Link count
0.0.1.4         0.0.1.4          546 0x80000035 0xff9f 2
0.0.2.4         0.0.2.4          745 0x8000008d 0x1d13 2
0.0.3.4         0.0.3.4         1157 0x80000061 0xaba9 2

                Net Link States (Area 0.0.0.0)

Link ID         ADV Router      Age  Seq#       CkSum
10.1.12.2       0.0.2.4          565 0x80000032 0xd964
10.1.13.3       0.0.3.4          867 0x80000031 0xcc6e
10.1.23.2       0.0.2.4          505 0x8000005a 0x26e2
R1# show ipv6 ospf6 database

        Area Scoped Link State Database (Area 0.0.0.0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Rtr  0.0.0.0        0.0.1.6         540 80000032                0.0.2.6/0.0.0.2
Rtr  0.0.0.0        0.0.1.6         540 80000032                0.0.3.6/0.0.0.2
Rtr  0.0.0.0        0.0.2.6         551 80000086                0.0.2.6/0.0.0.2
Rtr  0.0.0.0        0.0.2.6         551 80000086                0.0.2.6/0.0.0.3
Rtr  0.0.0.0        0.0.3.6         541 8000005d                0.0.3.6/0.0.0.2
Rtr  0.0.0.0        0.0.3.6         541 8000005d                0.0.2.6/0.0.0.3
Net  0.0.0.2        0.0.2.6         551 80000030                        0.0.2.6
Net  0.0.0.2        0.0.2.6         551 80000030                        0.0.1.6
Net  0.0.0.3        0.0.2.6        1485 8000005a                        0.0.2.6
Net  0.0.0.3        0.0.2.6        1485 8000005a                        0.0.3.6
Net  0.0.0.2        0.0.3.6         541 80000030                        0.0.3.6
Net  0.0.0.2        0.0.3.6         541 80000030                        0.0.1.6
INP  0.0.0.2        0.0.2.6         551 80000030            2001:678:3fc:c::/64
INP  0.0.0.3        0.0.2.6        1485 8000005a           2001:678:3fc:17::/64
INP  0.0.0.2        0.0.3.6         541 80000030            2001:678:3fc:d::/64

        I/F Scoped Link State Database (I/F eth0.12 in Area 0.0.0.0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Lnk  0.0.0.2        0.0.1.6         553 80000030      fe80::c828:72ff:fedf:3608
Lnk  0.0.0.2        0.0.2.6        1191 80000084      fe80::4c8c:2aff:fe42:b075

        I/F Scoped Link State Database (I/F eth0.13 in Area 0.0.0.0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Lnk  0.0.0.3        0.0.1.6         550 80000030      fe80::c828:72ff:fedf:3608
Lnk  0.0.0.2        0.0.3.6        1492 8000005a       fe80::440:39ff:fe30:710c

        AS Scoped Link State Database

Type LSId           AdvRouter       Age   SeqNum                        Payload

Q17.

Quelle est la condition préalable à respecter pour que le routeur R1 soit en mesure de publier une route par défaut via son démon OSPF ?

À partir des tables de routage relevées dans la Section 5, « Configurer les démons OSPF Quagga », repérer le routeur qui dispose d'un accès vers un réseau qui n'appartient pas à la topologie triangle.

ip route ls default
ip -6 route ls default

Une route par défaut doit exister avant d'être injectée dans une aire OSPF. Dans notre cas, une route statique par défaut suffit à respecter la condition préalable.

Sur la maquette, on valide la présence des routes par défaut à l'aide la commande ip au niveau système.

R1:~# ip route ls default
default via 192.0.2.1 dev eth0 onlink
R1:~# ip -6 route ls default
default via fe80::dc02:44ff:fe64:4834 dev eth0 proto ra metric 1024 \
                                expires 1463sec hoplimit 64 pref medium

Au niveau de la console vtysh, ces même routes correspondent aux entrées marquées K pour kernel.

R1# sh ip route kernel
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, P - PIM, A - Babel, N - NHRP,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 via 192.0.2.1, eth0
R1# sh ipv6 route kernel
Codes: K - kernel route, C - connected, S - static, R - RIPng,
       O - OSPFv6, I - IS-IS, B - BGP, A - Babel, N - NHRP,
       > - selected route, * - FIB route

K>* ::/0 via fe80::dc02:44ff:fe64:4834, eth0

Q18.

Quelle est l'instruction à utiliser pour publier une route par défaut via le protocole de routage OSPFv2 pour IPv4 ?

Parmi toutes les méthodes de redistribution de routes disponibles avec protocole OSPFv2, il en existe une dédiée à l'injection de route par défaut dans une aire normale : Voir Index des commandes Quagga.

Rechercher le mot clé default dans l'index.

L'instruction qui correspond le plus simplement à la redistribution de route par défaut est la suivante.

default-information originate

On doit l'appliquer au démon de routage OSPFv2 uniquement sur le routeur R1.

R1# conf t
R1(config)# router ospf
R1(config-router)# default-information originate
R1(config-router)# ^Z

Une fois cette instruction exécutée, la base de données OSPFv2 est complétée avec une nouvelle entrée.

R1# sh ip ospf database

       OSPF Router with ID (0.0.1.4)

                Router Link States (Area 0.0.0.0)

Link ID         ADV Router      Age  Seq#       CkSum  Link count
0.0.1.4         0.0.1.4         1203 0x80000039 0xfd9b 2
0.0.2.4         0.0.2.4          791 0x80000091 0x1517 2
0.0.3.4         0.0.3.4         1324 0x80000065 0xa3ad 2

                Net Link States (Area 0.0.0.0)

Link ID         ADV Router      Age  Seq#       CkSum
10.1.12.2       0.0.2.4          511 0x80000036 0xd168
10.1.13.3       0.0.3.4          884 0x80000035 0xc472
10.1.23.2       0.0.2.4          611 0x8000005e 0x1ee6

                AS External Link States

Link ID         ADV Router      Age  Seq#       CkSum  Route
0.0.0.0         0.0.1.4          133 0x80000004 0x229e E2 0.0.0.0/0 [0x0]

On voit apparaître une nouvelle rubrique baptisée AS External Link States. Ce nouveau rôle pour le routeur R1 apparaît aussi lorsque l'on affiche l'état de l'instance de routage OSPFv2.

R1# show ip ospf
 OSPF Routing Process, Router ID: 0.0.1.4
 Supports only single TOS (TOS0) routes
 This implementation conforms to RFC2328
 RFC1583Compatibility flag is disabled
 OpaqueCapability flag is disabled
 Initial SPF scheduling delay 0 millisec(s)
 Minimum hold time between consecutive SPFs 50 millisec(s)
 Maximum hold time between consecutive SPFs 5000 millisec(s)
 Hold time multiplier is currently 1
 SPF algorithm last executed 1h21m25s ago
 Last SPF duration 90 usecs
 SPF timer is inactive
 Refresh timer 10 secs
 This router is an ASBR (injecting external routing information)
 Number of external LSA 1. Checksum Sum 0x0000229e
 Number of opaque AS LSA 0. Checksum Sum 0x00000000
 Number of areas attached to this router: 1
 Adjacency changes are logged

 Area ID: 0.0.0.0 (Backbone)
   Number of interfaces in this area: Total: 2, Active: 2
   Number of fully adjacent neighbors in this area: 2
   Area has no authentication
   SPF algorithm executed 8 times
   Number of LSA 6
   Number of router LSA 3. Checksum Sum 0x0001b65f
   Number of network LSA 3. Checksum Sum 0x0001b4c0
   Number of summary LSA 0. Checksum Sum 0x00000000
   Number of ASBR summary LSA 0. Checksum Sum 0x00000000
   Number of NSSA LSA 0. Checksum Sum 0x00000000
   Number of opaque link LSA 0. Checksum Sum 0x00000000
   Number of opaque area LSA 0. Checksum Sum 0x00000000

Le routeur R1, est maintenant à la frontière entre deux systèmes autonomes. Il a le rôle ASBR (Autonmous System Border Router) et il est responsable de l'émission des LSAs de type 5 à destination des autres routeurs de l'aire.

Ici, R1 utilise OSPF et possède une route statique définie au niveau système vers l'Internet. L'instruction donnée ci-dessus assure la redistribution de la route statique vers R2 et R3. Cette route apparaît comme une entrée de type E2 dans les tables de routage de ces routeurs.

L'indicateur E2 correspond au type par défaut des routes apprises par le biais de la redistribution. La métrique est un point important à considérer avec les routes de type E2. Ces routes ne présentent que le coût du chemin allant du routeur ASBR vers le réseau de destination ; ce qui ne correspond pas au coût réel du chemin à l'intérieur de l'aire OSPF.

Q19.

Quelles sont les instructions à utiliser pour publier une route par défaut via le protocole de routage OSPFv3 pour IPv6 ?

Parmi toutes les méthodes de redistribution de routes disponibles avec le protocole OSPFv3, celle qui nous intéresse est relative aux entrées apprises via le noyau. En effet, dans la première question de cette section sur la présence d'une route par défaut, nous avons identifié les entrées marquées K dans les tables de routage.

Pour traiter cette question, il faut isoler le préfixe correspondant à la route par défaut, créer une carte de routage qui établit la correspondance avec ce préfixe et enfin redistribuer les routes apprises du noyau dans OSPFv3 à partir de la carte.

Les instrcutions à utiliser pour traiter cette question entrent dans la liste suivante.

ipv6 prefix-list
route-map
match ipv6 address prefix-list
redistribute kernel route-map

Voici la séquence des instructions qui permet de redistribuer uniquement la route par défaut apprise via le noyau dans OSPFv3.

R1# conf t
R1(config)# ipv6 prefix-list IPv6-DEFAULT-PLIST seq 5 permit ::/0
R1(config)# route-map IPv6-DEFAULT-RMAP permit 1
R1(config-route-map)# match ipv6 address prefix-list IPv6-DEFAULT-PLIST
R1(config-route-map)# exit
R1(config)# router ospf6
R1(config-ospf6)# redistribute kernel route-map IPv6-DEFAULT-RMAP
R1(config-ospf6)# ^Z

Une fois cette instruction exécutée, la base de données OSPFv3 est complétée avec une nouvelle entrée.

R1# show ipv6 ospf6 database

        Area Scoped Link State Database (Area 0.0.0.0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Rtr  0.0.0.0        0.0.1.6         208 80000039                0.0.2.6/0.0.0.2
Rtr  0.0.0.0        0.0.1.6         208 80000039                0.0.3.6/0.0.0.2
Rtr  0.0.0.0        0.0.2.6         216 8000008b                0.0.2.6/0.0.0.2
Rtr  0.0.0.0        0.0.2.6         216 8000008b                0.0.2.6/0.0.0.3
Rtr  0.0.0.0        0.0.3.6         206 80000062                0.0.3.6/0.0.0.2
Rtr  0.0.0.0        0.0.3.6         206 80000062                0.0.2.6/0.0.0.3
Net  0.0.0.2        0.0.2.6         216 80000035                        0.0.2.6
Net  0.0.0.2        0.0.2.6         216 80000035                        0.0.1.6
Net  0.0.0.3        0.0.2.6        1150 8000005f                        0.0.2.6
Net  0.0.0.3        0.0.2.6        1150 8000005f                        0.0.3.6
Net  0.0.0.2        0.0.3.6         206 80000035                        0.0.3.6
Net  0.0.0.2        0.0.3.6         206 80000035                        0.0.1.6
INP  0.0.0.2        0.0.2.6         216 80000035            2001:678:3fc:c::/64
INP  0.0.0.3        0.0.2.6        1150 8000005f           2001:678:3fc:17::/64
INP  0.0.0.2        0.0.3.6         206 80000035            2001:678:3fc:d::/64

        I/F Scoped Link State Database (I/F eth0.12 in Area 0.0.0.0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Lnk  0.0.0.2        0.0.1.6         218 80000035      fe80::c828:72ff:fedf:3608
Lnk  0.0.0.2        0.0.2.6         856 80000089      fe80::4c8c:2aff:fe42:b075

        I/F Scoped Link State Database (I/F eth0.13 in Area 0.0.0.0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Lnk  0.0.0.3        0.0.1.6         215 80000035      fe80::c828:72ff:fedf:3608
Lnk  0.0.0.2        0.0.3.6        1157 8000005f       fe80::440:39ff:fe30:710c

        AS Scoped Link State Database

Type LSId           AdvRouter       Age   SeqNum                        Payload
ASE  0.0.0.1        0.0.1.6         208 80000001                             ::

On voit apparaître une nouvelle rubrique baptisée AS Scoped Link State Database. Ce nouveau rôle pour le routeur R1 apparaît aussi lorsque l'on affiche l'état de l'instance de routage OSPFv3.

R1# show ipv6 ospf6
 OSPFv3 Routing Process (0) with Router-ID 0.0.1.6
 Running 1d02:39:46
 Initial SPF scheduling delay 0 millisec(s)
 Minimum hold time between consecutive SPFs 50 millsecond(s)
 Maximum hold time between consecutive SPFs 5000 millsecond(s)
 Hold time multiplier is currently 1
 SPF algorithm has not been run$
 SPF timer is inactive
 Number of AS scoped LSAs is 1
 Number of areas in this router is 1
 Adjacency changes are logged

 Area 0.0.0.0
     Number of Area scoped LSAs is 9
     Interface attached to this area: eth0.12 eth0.13

Q20.

Comment la publication de route par défaut apparaît-elle sur les autres routeurs de la topologie triangle ?

Relevez, dans la console vtysh, la métrique de la route par défaut sur les routeurs qui n'ont pas une connexion directe vers l'Internet.

Les instrcutions à utiliser pour traiter cette question entrent dans la liste suivante.

show ip route A.B.C.D/MM
show ipv6 route A:B:C::D/MM
show ip ospf route
show ipv6 ospf6 route

En prenant l'exemple du routeur R2, on retrouve les informations suivantes.

  • Vue de la table de routage :

    R2# sh ip route 0.0.0.0/0
    Routing entry for 0.0.0.0/0
      Known via "ospf", distance 110, metric 10, tag 0, vrf 0, best, fib
      Last update 01:54:46 ago
      >* 10.1.12.1, via eth0.12
    R2# sh ipv6 route ::/0
    Routing entry for ::/0
      Known via "ospf6", distance 110, metric 1, tag 0, vrf 0, best, fib
      Last update 00:12:24 ago
      >* fe80::c828:72ff:fedf:3608, via eth0.12
  • Vue de la base de topologie OSPF :

    R2# sh ip ospf route
    ============ OSPF network routing table ============
    N    10.1.12.0/26          [1] area: 0.0.0.0
                               directly attached to eth0.12
    N    10.1.13.0/26          [2] area: 0.0.0.0
                               via 10.1.12.1, eth0.12
                               via 10.1.23.3, eth0.23
    N    10.1.23.0/26          [1] area: 0.0.0.0
                               directly attached to eth0.23
    
    ============ OSPF router routing table =============
    R    0.0.1.4               [1] area: 0.0.0.0, ASBR
                               via 10.1.12.1, eth0.12
    
    ============ OSPF external routing table ===========
    N E2 0.0.0.0/0             [1/10] tag: 0
                               via 10.1.12.1, eth0.12
    R2# show ipv6 ospf6 route
    *N E1 ::/0                           fe80::c828:72ff:fedf:3608 eth0.12 00:18:25
    *N IA 2001:678:3fc:c::/64            ::                        eth0.12 1d02:18:38
    *N IA 2001:678:3fc:d::/64            fe80::c828:72ff:fedf:3608 eth0.12 1d02:18:28
                                         fe80::440:39ff:fe30:710c  eth0.23
    *N IA 2001:678:3fc:17::/64           ::                        eth0.23 1d23:34:11

Avec les copies d'écran ci-dessus, on vérifie bien que les routes par défaut ont été apprises via le protocole OSPF.