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.4.1)

                Router Link States (Area 0.0.0.0)

Link ID         ADV Router      Age  Seq#       CkSum  Link count
0.0.4.1        0.0.4.1          450 0x80000012 0xa296 2
0.0.4.2        0.0.4.2          372 0x80000008 0x2912 2
0.0.4.3        0.0.4.3          416 0x80000008 0x57dd 2

                Net Link States (Area 0.0.0.0)

Link ID         ADV Router      Age  Seq#       CkSum
10.48.0.1      0.0.4.1           56 0x80000002 0xe232
10.48.1.1      0.0.4.1           86 0x80000002 0xe52d
10.48.2.3      0.0.4.3           35 0x80000002 0xc448
R1# sh ipv6 ospf6 database

        Area Scoped Link State Database (Area 0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Rtr  0.0.0.0        0.0.6.1         497 8000000b                0.0.6.1/0.0.0.4
Rtr  0.0.0.0        0.0.6.1         497 8000000b                0.0.6.1/0.0.0.5
Rtr  0.0.0.0        0.0.6.2         419 80000005                0.0.6.1/0.0.0.4
Rtr  0.0.0.0        0.0.6.2         419 80000005                0.0.6.3/0.0.0.4
Rtr  0.0.0.0        0.0.6.3         463 80000005                0.0.6.1/0.0.0.5
Rtr  0.0.0.0        0.0.6.3         463 80000005                0.0.6.3/0.0.0.4
Net  0.0.0.4        0.0.6.1        1789 80000001                        0.0.6.1
Net  0.0.0.4        0.0.6.1        1789 80000001                        0.0.6.2
Net  0.0.0.5        0.0.6.1          54 80000002                        0.0.6.1
Net  0.0.0.5        0.0.6.1          54 80000002                        0.0.6.3
Net  0.0.0.4        0.0.6.3        1781 80000001                        0.0.6.3
Net  0.0.0.4        0.0.6.3        1781 80000001                        0.0.6.2

        I/F Scoped Link State Database (I/F enp0s1.480 in Area 0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Lnk  0.0.0.4        0.0.6.1         930 80000005        fe80::baad:caff:fefe:c8
Lnk  0.0.0.3        0.0.6.2        1798 80000001        fe80::baad:caff:fefe:c9

        I/F Scoped Link State Database (I/F enp0s1.481 in Area 0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Lnk  0.0.0.5        0.0.6.1         926 80000005        fe80::baad:caff:fefe:c8
Lnk  0.0.0.3        0.0.6.3          61 80000002        fe80::baad:caff:fefe:ca

Q15.

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

À partir des tables de routage relevées dans la Section 5, « Configurer les démons OSPFv2 et OSPFv3 », 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
sh ip route kernel
sh ipv6 route kernel

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.

ip route ls default
default via 192.168.104.129 dev enp0s1.360 onlink
ip -6 route ls default
default via fe80:168::1 dev enp0s1.360 metric 1024 onlink 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, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

K>* 0.0.0.0/0 [0/0] via 192.168.104.129, enp0s1.360 onlink, 04:50:31
R1# sh ipv6 route kernel
Codes: K - kernel route, C - connected, S - static, R - RIPng,
       O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
       v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

K>* ::/0 [0/1024] via fe80:168::1, enp0s1.360 onlink, 04:51:23

Q16.

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

Parmi toutes les méthodes de redistribution de routes disponibles avec le protocole OSPFv2, il en existe une dédiée à l'injection de route par défaut dans une aire normale. Consulter le guide FRRouting User Guide.

Rechercher le mot clé redistribution dans la section OSPF route-map.

L'instruction qui correspond à la redistribution de route par défaut à destination des autres routeurs de l'aire OSPF est la suivante.

default-information originate

On doit l'appliquer dans la section router ospf de la configuration du 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, le rôle du routeur R1 change. Il devient Autonomous System Boundary Router ou ASBR. Les bases de données sont complétées avec des LSAs de type 5.

R1# sh ip ospf database external

       OSPF Router with ID (0.0.4.1)

                AS External Link States

  LS age: 38
  Options: 0x2  : *|-|-|-|-|-|E|-
  LS Flags: 0xb
  LS Type: AS-external-LSA
  Link State ID: 0.0.0.0 (External Network Number)
  Advertising Router: 0.0.4.1
  LS Seq Number: 80000001
  Checksum: 0x259e
  Length: 36

  Network Mask: /0
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 10
        Forward Address: 0.0.0.0
        External Route Tag: 0

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# sh ip ospf
 OSPF Routing Process, Router ID: 0.0.4.1
 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 1m50s ago
 Last SPF duration 133 usecs
 SPF timer is inactive
 LSA minimum interval 5000 msecs
 LSA minimum arrival 1000 msecs
 Write Multiplier set to 20
 Refresh timer 10 secs
 Maximum multiple paths(ECMP) supported 256
 Administrative distance 110
 This router is an ASBR (injecting external routing information)
 Number of external LSA 1. Checksum Sum 0x0000259e
 Number of opaque AS LSA 0. Checksum Sum 0x00000000
 Number of areas attached to this router: 1
 All 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 21 times
   Number of LSA 6
   Number of router LSA 3. Checksum Sum 0x0001277e
   Number of network LSA 3. Checksum Sum 0x00028ba7
   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 est responsable de l'émission des LSAs de type 5 à destination des autres routeurs de l'aire.

Ici, R1 possède une route statique définie au niveau système vers l'Internet. Cette route statique est redistribuée 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.

Q17.

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

Reprendre la même démarche de la question précédente avec le protocole OSPFv3. Consulter le guide FRRouting User Guide.

Rechercher le mot clé redistribution dans la section OSPF6 route-map.

L'instruction est identique pour les deux versions du protocole OSPF.

default-information originate

On doit l'appliquer dans la section router ospf6 de la configuration du routeur R1.

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

Une fois cette instruction exécutée, le rôle du routeur R1 change. Il devient Autonomous System Boundary Router ou ASBR. Les bases de données sont complétées avec des LSAs de type 5.

R1# sh ipv6 ospf6 database as-external

        AS Scoped Link State Database

Type LSId           AdvRouter       Age   SeqNum                        Payload
ASE  0.0.0.1        0.0.6.1          58 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# sh ipv6 ospf6
 OSPFv3 Routing Process (0) with Router-ID 0.0.6.1
 Running 02:40:17
 LSA minimum arrival 1000 msecs
 Maximum-paths 256
 Administrative distance 110
 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 last executed 00:01:46 ago, reason R+, R-, A
 Last SPF duration 0 sec 118 usec
 SPF timer is inactive
 Number of AS scoped LSAs is 1
 Number of areas in this router is 1
 Authentication Sequence number info
  Higher sequence no 0, Lower sequence no 0
 All adjacency changes are logged

 Area 0
     Number of Area scoped LSAs is 6
     Interface attached to this area: enp0s1.480 enp0s1.481
     SPF last executed 106.592900s ago

Q18.

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 instructions à 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
    Routing entry for 0.0.0.0/0
      Known via "ospf", distance 110, metric 10, best
      Last update 00:07:26 ago
      * 10.48.0.1, via enp0s1.480, weight 1
    R2# sh ipv6 route ::/0
    Routing entry for ::/0
      Known via "ospf6", distance 110, metric 10, best
      Last update 00:04:43 ago
      * fe80::baad:caff:fefe:c8, via enp0s1.480, weight 1
  • Vue de la base de topologie OSPF :

    R2# sh ip ospf route
    ============ OSPF network routing table ============
    N    10.48.0.0/29          [1] area: 0.0.0.0
                               directly attached to enp0s1.480
    N    10.48.1.0/29          [2] area: 0.0.0.0
                               via 10.48.0.1, enp0s1.480
                               via 10.48.2.3, enp0s1.482
    N    10.48.2.0/29          [1] area: 0.0.0.0
                               directly attached to enp0s1.482
    
    ============ OSPF router routing table =============
    R    0.0.4.1               [1] area: 0.0.0.0, ASBR
                               via 10.48.0.1, enp0s1.480
    
    ============ OSPF external routing table ===========
    N E2 0.0.0.0/0            [1/10] tag: 0
                               via 10.48.0.1, enp0s1.480
    R2# sh ipv6 ospf6 route
    *N E2 ::/0                           fe80::baad:caff:fefe:c8   enp0s1.480 00:07:05

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

Q19.

Comment assurer la traduction d'adresses source sur l'interface de sortie du routeur R1-rouge vers l'Internet ?

Reprendre la section Rôle routeur du support Routage inter-VLAN contexte cloud.

Dans le cas de la maquette, c'est l'interface enp0s1.360 qui assure l'interconnexion avec l'Internet. Voici une copie de l'instruction d'ajout de la règle de traduction des adresses sources et de sa sauvegarde pour IPv4 et IPv6.

sudo iptables -t nat -A POSTROUTING -o enp0s1.360 -j MASQUERADE
sudo sh -c "iptables-save >/etc/iptables/rules.v4"
sudo ip6tables -t nat -A POSTROUTING -o enp0s1.360 -j MASQUERADE
sudo sh -c "ip6tables-save >/etc/iptables/rules.v6"

Une fois le jeu de règles en place, on peut vérifier leur utilisation à partir du relevé des compteurs de paquets traités.

sudo iptables -vnL -t nat
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  150 10288 MASQUERADE  all  --  *      enp0s1.360  0.0.0.0/0            0.0.0.0/0
sudo ip6tables -vnL -t nat
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
   57  5083 MASQUERADE  all      *      enp0s1.360  ::/0                 ::/0