6. Publier les routes par défaut via OSPF

Dans la topologie logique étudiée, le routeur R1 dispose d'un lien vers l'Internet. On considère ce lien comme 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 deux routeurs R2 et R3.

Avant publication de la route par défaut depuis le routeur R1, les démons OSPF n'utilisent que des annonces LSA (Link State Advertisement) de type 1 et 2. Voici un tableau de référence pour le codage des LSAs.

Tableau 1. Codage des annonces OSPF

OSPFv2 Description OSPFv3 Description
1 Router LSA 0x2001 Router LSA
2 Network LSA 0x2002 Network LSA
3 Network Summary LSA 0x2003 Inter-Area Prefix LSA for ABRs
4 ASBR Summary LSA 0x2004 Inter-Area Router LSA for ABRs
5 AS-external LSA 0x4005 AS-external LSA
6 Group Membership LSA 0x2006 Group Membership LSA
7 Not So Stubby Area LSA 0x2007 Type-7 LSA
8   0x2008 Link LSA
9   0x2009 Intra-Area Prefix LSA

  • ABR : Area Border Router

  • ASBR : Autonomous System Border Router

Les listes des annonces connues du routeur R1 avant publication des routes par défaut sont données dans les copies d'écran ci-dessous.

R1:~# birdc show ospf lsadb
BIRD 1.6.4 ready.

Area 0.0.0.0

 Type   LS ID           Router          Sequence   Age  Checksum
 0001  0.0.1.4         0.0.1.4          80000148  1465    88f0
 0001  0.0.2.4         0.0.2.4          80000146  1466    70f2
 0002  10.1.12.2       0.0.2.4          80000003  1466    3439
 0001  0.0.3.4         0.0.3.4          80000147  1469    a4b6
 0002  10.1.13.3       0.0.3.4          80000003  1470    2148
 0002  10.1.23.3       0.0.3.4          80000003   375    bf9e
R1:~# birdc6 show ospf lsadb
BIRD 1.6.4 ready.

Area 0.0.0.0

 Type   LS ID           Router          Sequence   Age  Checksum
 2001  0.0.0.0         0.0.1.6          8000015c  1643    116b
 2009  0.0.0.0         0.0.1.6          8000015c  1643    7e2b
 2001  0.0.0.0         0.0.2.6          80000151  1647    4243
 2009  0.0.0.0         0.0.2.6          80000151  1647    9a18
 2002  0.0.0.2         0.0.2.6          80000001  1647    9976
 2009  0.0.0.2         0.0.2.6          80000001  1647    a95c
 2001  0.0.0.0         0.0.3.6          80000153  1646    4c35
 2009  0.0.0.0         0.0.3.6          80000153  1646    9c12
 2002  0.0.0.2         0.0.3.6          80000001  1646    9b72
 2009  0.0.0.2         0.0.3.6          80000001  1646    c939
 2002  0.0.0.3         0.0.3.6          80000003   575    9a6f
 2009  0.0.0.3         0.0.3.6          80000003   575    ca2a

Link eth0.12

 Type   LS ID           Router          Sequence   Age  Checksum
 0008  0.0.0.2         0.0.1.6          80000137  1648    c5df
 0008  0.0.0.2         0.0.2.6          8000012e   575    5640

Link eth0.13

 Type   LS ID           Router          Sequence   Age  Checksum
 0008  0.0.0.3         0.0.1.6          80000137  1646    e1c1
 0008  0.0.0.2         0.0.3.6          8000012e   610    62dc

Q16.

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

Avant de procéder à l'importation de route dans les démons Bird, on doit s'assurer de la présence des deux routes par défaut IPv4 et IPv6 dans les tables de routage au niveau système.

Sur le routeur R1 uniquement, on valide la présence des routes par défaut.

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 metric 1024 onlink pref medium

Q17.

Comment valider l'importation des routes par défaut dans les deux démons bird et bird6 ?

L'importation des routes depuis le niveau système dans les démons Bird a été traitée à la Section 5, « Échanger les routes entre Bird et le système ». Ici, on se contente de vérifier la présence des routes par défaut au niveau des consoles de chaque démon.

On peut spécifier le préfixe réseau directement dans l'affichage de la table de routage de chaque démon.

R1:~# birdc show route 0.0.0.0/0
BIRD 1.6.4 ready.
0.0.0.0/0          via 192.0.2.1 on eth0 [kernel1 2018-10-27] * (10)

R1:~# birdc6 show route ::/0
BIRD 1.6.4 ready.
::/0               via fe80::dc02:44ff:fe64:4834 on eth0 [kernel1 2018-10-27] * (10)

Q18.

Comment créer les filtres qui serviront à exporter les routes par défaut dans la configuration de chaque démon pour les protocoles OSPFv2 et OSPFv3 ?

Il faut consulter la documentation BIRD User's Guide aux sections Filters et OSPF pour trouver des exemples de syntaxe.

Voici une copie d'écran pour chaque démon.

R1:~# sed -n '/^filter export_OSPF/,/^}/p' /etc/bird/bird.conf
filter export_OSPF {
        if ( net = 0.0.0.0/0 ) then {
                ospf_metric2 = 100;
                accept;
        }
        reject;
}
R1:~# sed -n '/^filter export_OSPF/,/^}/p' /etc/bird/bird6.conf
filter export_OSPF {
        if ( net = ::/0 ) then {
                ospf_metric2 = 100;
                accept;
        }
        reject;
}

Q19.

Comment appliquer les filtres de la question précédente pour que les routes par défaut soient exportées via OSPF à destination des autres routeurs ?

Il faut consulter la documentation BIRD User's Guide à la section OSPF et rechercher un exemple de la directive suivante.

export

Voici une copie d'écran pour chaque démon avec l'exportation dans le processus OSPF en fonction du filtre défini préalablement.

R1:~# sed -n '/^protocol ospf/,/^}/p' /etc/bird/bird.conf
protocol ospf OSPFv2R1 {
        rfc1583compat yes;
        ecmp yes;
        export filter export_OSPF;
        area 0 {
                interface "eth0.12", "eth0.13" {
                        authentication none;
                };
        };
}
R1:~# sed -n '/^protocol ospf/,/^}/p' /etc/bird/bird6.conf
protocol ospf OSPFv3R1 {
        ecmp yes;
        export filter export_OSPF;
        area 0 {
                interface "eth0.12", "eth0.13" {
                        authentication none;
                };
        };
}

Q20.

Quelles sont les nouvelles annonces LSA apparues après exportation des routes par défaut depuis R1 vers les deux autres routeurs de la topologie triangle ?

À partir du Tableau 1, « Codage des annonces OSPF » donné en début de section, donner le nouveau rôle du routeur R1.

Une fois que l'exportation des routes par défaut dans OSPF est effective sur R1, ce routeur devient Autonomous System Border Router ou ASBR. Dès lors, il émet des annonces de type 5 que l'on peut identifier dans les bases de chaun des trois routeurs de l'aire OSPF.

Par exemple, on obtient les résultats suivants sur le routeur R2.

R2:~# birdc show ospf lsadb type 5
BIRD 1.6.4 ready.

Global

 Type   LS ID           Router          Sequence   Age  Checksum
 0005  0.0.0.0         0.0.1.4          80000001  1570    afb9
R2:~# birdc6 show ospf lsadb type 5
BIRD 1.6.4 ready.

Global

 Type   LS ID           Router          Sequence   Age  Checksum
 4005  0.0.0.0         0.0.1.6          80000001  1574    e4c8

Q21.

Comment valider l'exportation des routes par défaut depuis les deux démons bird et bird6 vers le niveau système sur les routeurs R2 et R3 ?

L'exportation des routes depuis les démons Bird vers le système a été traitée à la Section 5, « Échanger les routes entre Bird et le système ». Ici, on se contente de vérifier la présence des routes par défaut au niveau système sur R2 et R3.

Voici une copie d'écran pour le routeur R2 qui caractérise le fait que les routes par défaut ont été apprises via Bird.

R2:~# ip route ls default
default via 10.1.12.1 dev eth0.12 proto bird

R2:~# ip -6 route ls default
default via fe80::70de:4fff:fe1d:68b4 dev eth0.12 proto bird metric 1024 pref medium

Si la table de routage du routeur d'accès à Internet contient les routes statiques vers les réseaux de l'aire OSPF, il est possible de lancer les tests ICMP classiques. Voici deux exemples depuis le routeur R2.

R2:~# ping -qc2 9.9.9.9
PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.

--- 9.9.9.9 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 13.796/13.910/14.024/0.114 ms

R2:~# ping -qc2 2620:fe::fe
PING 2620:fe::fe(2620:fe::fe) 56 data bytes

--- 2620:fe::fe ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 43.986/44.802/45.618/0.816 ms