Q5.
|
Quels sont les fichiers de configuration à
éditer pour activer les protocoles OSPFv2 et OSPFv3 sur le routeur ?
Une fois le paquet bird
installé, deux démons distincts sont lancés : bird pour IPv4 et bird6
pour IPv6. Rechercher dans la
liste des fichiers fournis avec le paquet, les exemples de fichiers
de configuration.
|
|
Les fichiers de configuration sont au nombre de deux. Ils sont
placés dans le dossier /etc/bird/ .
Deux exemples de ces fichiers sont données dans le dossier de
documentation du paquet.
R1:~# dpkg -L bird | grep example
/usr/share/doc/bird/examples
/usr/share/doc/bird/examples/bird.conf.gz
/usr/share/doc/bird/examples/bird6.conf.gz
|
Q6.
|
Comment accéder à l'état des différents
protocoles actifs pour chaque démon ?
À chaque édition d'un fichier de configuration, il faut relancer
le démon correspondant. C'est à nouveau dans la liste des fichiers
du paquet que l'on identifie les outils d'accès à la configuration
active des deux démons.
Il faut consulter la section Remote
control de la documentation Bird. Les commandes utiles pour cette question
sont les suivantes.
show status |
show
protocols |
|
|
Chaque démon dispose d'une console propre avec les outils
birdc et birdc6. Ce sont ces deux consoles
qui permettent de connaître le statut du démon, la liste des
protocoles actifs et les informations relatives au fonctionnement
de ces protocoles.
R1:~# birdc
BIRD 1.6.4 ready.
bird> sh status
BIRD 1.6.4
Router ID is 0.0.4.1
Current server time is 2018-10-20 20:59:04
Last reboot on 2018-10-20 16:54:04
Last reconfiguration on 2018-10-20 20:58:58
Daemon is up and running
R1:~# birdc6
BIRD 1.6.4 ready.
bird> sh status
BIRD 1.6.4
Router ID is 0.0.6.1
Current server time is 2018-10-20 21:00:22
Last reboot on 2018-10-20 17:18:49
Last reconfiguration on 2018-10-20 17:18:49
Daemon is up and running
De la même façon, on peut connaître la liste des protocoles
actifs de chaque démon.
bird> sh protocols
name proto table state since info
device1 Device master up 16:54:04
kernel1 Kernel master up 20:58:58
|
Q7.
|
Comment activer le protocole de routage
OSPF et attribuer l'identifiant
du routeur ?
Consulter le document BIRD
User's Guide à la section OSPF pour activer le protocole. Consulter les
tableaux des plans d'adressage pour obtenir la valeur de
l'identifiant du routeur à configurer.
On édite les fichiers /etc/bird.conf et /etc/bird6.conf avec les paramètres suivants.
router id IPv4
address |
protocol ospf
<name> |
area
<id> |
|
|
Voici une copie des fichiers du routeur R1 .
R1:~# grep -v ^# /etc/bird/bird.conf
router id 0.0.1.4;
protocol kernel {
scan time 10;
import none;
}
protocol device {
scan time 10;
}
protocol ospf OSPFv2R1 {
area 0 {
};
}
R1:~# grep -v ^# /etc/bird/bird6.conf
router id 0.0.1.6;
protocol kernel {
scan time 10;
import none;
}
protocol device {
scan time 10;
}
protocol ospf OSPFv3R1 {
area 0 {
};
}
Une fois les deux services relancés, on peut vérifier que les
éléments demandés sont bien présents dans la configuration des
démons de routage OSPF.
R1:~# systemctl restart bird
R1:~# birdc sh protocols
BIRD 1.6.4 ready.
name proto table state since info
kernel1 Kernel master up 09:38:34
device1 Device master up 09:38:34
OSPFv2R1 OSPF master up 09:38:34 Alone
R1:~# birdc sh ospf state
BIRD 1.6.4 ready.
area 0.0.0.0
router 0.0.1.4
distance 0
R1:~# systemctl restart bird6
R1:~# birdc6 sh protocols
BIRD 1.6.4 ready.
name proto table state since info
kernel1 Kernel master up 09:42:33
device1 Device master up 09:42:33
OSPFv3R1 OSPF master up 09:42:33 Alone
R1:~# birdc6 sh ospf state
BIRD 1.6.4 ready.
area 0.0.0.0
router 0.0.1.6
distance 0
|
Q8.
|
Comment activer et valider le protocole de
routage OSPF pour les réseaux
IPv4 et IPv6 connus de chaque routeur ?
Consulter la section OSPF de
la documentation BIRD
User's Guide ainsi que l'exemple OSPF
example. Il suffit d'adapter les exemples avec les noms
d'interfaces en fonction du contexte.
On édite les fichiers /etc/bird.conf et /etc/bird6.conf avec les paramètres suivants.
interface <interface
pattern> |
authentication
none|simple|cryptographic; |
On vérifie au niveau console (Voir Remote
control) l'état de la base de connaissance des deux processus
OSPF avec la commande
suivante.
|
|
- Routeur R1 : OSPFv2 & interfaces
-
R1:~# grep -v ^# /etc/bird/bird.conf
router id 0.0.1.4;
protocol kernel {
scan time 10;
import none;
}
protocol device {
scan time 10;
}
protocol ospf OSPFv2R1 {
rfc1583compat yes;
area 0 {
interface "eth0.12", "eth0.13" {
authentication none;
};
};
}
- Routeur R1 : base de connaissance
OSPFv2
-
Dans la copie d'écran ci-dessous, on relève les deux routeurs
voisins de R1 ainsi que le réseau
distant 10.1.23.0/26 .
R1:~# birdc sh ospf state
BIRD 1.6.4 ready.
area 0.0.0.0
router 0.0.1.4
distance 0
network 10.1.12.0/26 metric 10
network 10.1.13.0/26 metric 10
router 0.0.2.4
distance 10
network 10.1.12.0/26 metric 10
network 10.1.23.0/26 metric 10
router 0.0.3.4
distance 10
network 10.1.13.0/26 metric 10
network 10.1.23.0/26 metric 10
network 10.1.12.0/26
dr 0.0.2.4
distance 10
router 0.0.2.4
router 0.0.1.4
network 10.1.13.0/26
dr 0.0.3.4
distance 10
router 0.0.3.4
router 0.0.1.4
network 10.1.23.0/26
dr 0.0.2.4
distance 20
router 0.0.2.4
router 0.0.3.4
- Routeur R1 : OSPFv3 & interfaces
-
R1:~# grep -v ^# /etc/bird/bird6.conf
router id 0.0.1.6;
protocol kernel {
scan time 10;
import none;
}
protocol device {
scan time 10;
}
protocol ospf OSPFv3R1 {
area 0 {
interface "eth0.12", "eth0.13" {
authentication none;
};
};
}
- Routeur R1 : base de connaissance
OSPFv3
-
Dans la copie d'écran ci-dessous, on relève les deux routeurs
voisins de R1 ainsi que le réseau
distant 2001:678:3fc:17::/64 .
R1:~# birdc6 sh ospf state
BIRD 1.6.4 ready.
area 0.0.0.0
router 0.0.1.6
distance 0
network [0.0.1.6-2] metric 10
network [0.0.1.6-3] metric 10
router 0.0.2.6
distance 10
network [0.0.1.6-2] metric 10
network [0.0.3.6-3] metric 10
router 0.0.3.6
distance 10
network [0.0.1.6-3] metric 10
network [0.0.3.6-3] metric 10
network [0.0.1.6-2]
distance 10
router 0.0.1.6
router 0.0.2.6
address 2001:678:3fc:c::/64
network [0.0.1.6-3]
distance 10
router 0.0.1.6
router 0.0.3.6
address 2001:678:3fc:d::/64
network [0.0.3.6-3]
distance 20
router 0.0.3.6
router 0.0.2.6
address 2001:678:3fc:17::/64
|
Q9.
|
Comment identifier le type de réseau des
interfaces actives d'un routeur pour chaque version du protocole de
routage OSPF ?
La question précédente montre que la configuration des deux
processus bird et bird6 est basée sur l'activation du protocole
par interface. Il faut donc rechercher dans la section Remote
control l'instruction qui donne l'état des interfaces
actives.
|
|
Comme on utilise uniquement des liens Ethernet dans ce contexte
de travaux pratiques, le type de réseau est nécessairement
diffusion.
- Routeur R1 : OSPFv2 & interfaces
-
R1:~# birdc sh ospf interface
BIRD 1.6.4 ready.
OSPFv2R1:
Interface eth0.12 (10.1.12.0/26)
Type: broadcast
Area: 0.0.0.0 (0)
State: Backup
Priority: 1
Cost: 10
Hello timer: 10
Wait timer: 40
Dead timer: 40
Retransmit timer: 5
Designated router (ID): 0.0.2.4
Designated router (IP): 10.1.12.2
Backup designated router (ID): 0.0.1.4
Backup designated router (IP): 10.1.12.1
Interface eth0.13 (10.1.13.0/26)
Type: broadcast
Area: 0.0.0.0 (0)
State: Backup
Priority: 1
Cost: 10
Hello timer: 10
Wait timer: 40
Dead timer: 40
Retransmit timer: 5
Designated router (ID): 0.0.3.4
Designated router (IP): 10.1.13.3
Backup designated router (ID): 0.0.1.4
Backup designated router (IP): 10.1.13.1
- Routeur R1 : OSPFv3 & interfaces
-
R1:~# birdc6 sh ospf interface
BIRD 1.6.4 ready.
OSPFv3R1:
Interface eth0.12 (IID 0)
Type: broadcast
Area: 0.0.0.0 (0)
State: DR
Priority: 1
Cost: 10
Hello timer: 10
Wait timer: 40
Dead timer: 40
Retransmit timer: 5
Designated router (ID): 0.0.1.6
Designated router (IP): fe80::70de:4fff:fe1d:68b4
Backup designated router (ID): 0.0.2.6
Backup designated router (IP): fe80::943a:41ff:fe65:7307
Interface eth0.13 (IID 0)
Type: broadcast
Area: 0.0.0.0 (0)
State: DR
Priority: 1
Cost: 10
Hello timer: 10
Wait timer: 40
Dead timer: 40
Retransmit timer: 5
Designated router (ID): 0.0.1.6
Designated router (IP): fe80::70de:4fff:fe1d:68b4
Backup designated router (ID): 0.0.3.6
Backup designated router (IP): fe80::3032:e9ff:fe73:6322
|
Q10.
|
Comment obtenir la liste du ou des routeurs
voisins pour chaque processus de protocole de routage dynamique
OSPFv2 ou OSPFv3 ?
Dès qu'une interface est active, il y a émission de paquets
HELLO et si un routeur avec un démon
OSPF envoie aussi des paquets
HELLO dans le même VLAN, les deux routeurs cherchent à former une
adjacence.
La commande utile de la section Remote
control est la suivante.
|
|
À nouveau sur le routeur R1 ,
voici un exemple de liste de routeurs OSPF voisins dans laquelle on reconnaît les
identifiants des routeurs R2 et
R3 .
R1:~# birdc sh ospf neighbors
BIRD 1.6.4 ready.
OSPFv2R1:
Router ID Pri State DTime Interface Router IP
0.0.2.4 1 Full/DR 00:31 eth0.12 10.1.12.2
0.0.3.4 1 Full/DR 00:34 eth0.13 10.1.13.3
R1:~# birdc6 sh ospf neighbors
BIRD 1.6.4 ready.
OSPFv3R1:
Router ID Pri State DTime Interface Router IP
0.0.2.6 1 Full/BDR 00:33 eth0.12 fe80::943a:41ff:fe65:7307
0.0.3.6 1 Full/BDR 00:36 eth0.13 fe80::3032:e9ff:fe73:6322
|
Q11.
|
Comment identifier le rôle des différentes
interfaces des routeurs pour chacun des liens du triangle de la
topologie logique ?
|
Avertissement |
La réponse à cette question suppose que les démons
OSPF des trois routeurs de la
topologie logique en triangle aient convergé. On doit repérer
l'état Full pour les listes de routeurs
voisins.
De plus, la réponse varie en fonction de l'ordre d'activation
des démons OSPF des différents
routeurs. En effet, un routeur peut être élu routeur désigné
(DR) en l'absence de routeurs
voisins. Cette élection n'est pas remise en cause tant qu'il n'y
pas de changement d'état de lien.
|
À partir des résultats des questions précédentes sur les
interfaces actives, il est possible de compléter le schéma de la
topologie étudiée avec l'état des interfaces pour chacun des trois
liens.
|
|
Sur un même réseau de diffusion, il est possible de trouver
plusieurs routeurs OSPF. Établir
une relation de voisinage et procéder aux échanges de bases de
données topologiques entre chaque routeur revient à constituer un
réseau de relations complètement maillé. À chaque recalcul de
topologie, ce réseau complètement maillé est inefficace. C'est la
raison pour laquelle la notion de routeur référent ou Designated Router a été introduite. Lors d'un
recalcul de topologie, tous les routeurs s'adressent au référent
qui correspond au cœur d'un réseau en topologie étoile.
Dans le contexte de la topologie triangle étudiée, il y a bien
élection d'un routeur référent et d'un routeur référent de secours.
Cependant, comme il n'y a que deux routeurs par domaine de
diffusion ou VLAN, on ne peut
pas caractériser l'utilité de cette élection.
|
Q12.
|
Quelles sont les réseaux IPv4 et IPv6
présents dans la base calcul du protocole OSPF ?
On cherche a visualiser la liste des préfixes des réseaux connus
des deux démons OSPF.
La commande utile dans les deux consoles est la suivante.
|
|
Une fois que les trois routeurs de la topologie ont convergé,
chaque démon connaît les trois préfixes qui correspondent aux trois
côtés du triangle. Un routeur correspond à un sommet du triangle et
il doit apprendre le préfixe réseau du côté opposé via ses deux
routeurs voisins.
Voici la vue depuis le routeur R1 .
R1:~# birdc sh route
BIRD 1.6.4 ready.
10.1.12.0/26 dev eth0.12 [OSPFv2R1 16:47:15] * I (150/10) [0.0.2.4]
10.1.13.0/26 dev eth0.13 [OSPFv2R1 16:47:10] * I (150/10) [0.0.3.4]
10.1.23.0/26 via 10.1.13.3 on eth0.13 [OSPFv2R1 16:47:10] * I (150/20) [0.0.2.4]
Les valeurs notées entre parenthèses correspondent à la métrique
du lien pour joindre le réseau noté à gauche. Pour le protocole
OSPF, le calcul de métrique se
fait à partir du coût de lien par défaut pour chaque interface
active. La valeur par défaut est 10
Les deux premiers réseaux de la table sont joignable via un lien
direct ; soit une métrique de 10 .
Le troisième réseau est joignable via deux liens Ethernet ;
d'où la métrique de 20 .
Pour les réseaux IPv6, on
retrouve les mêmes métriques puisque la topologie est identique
pour les deux version du protocole IP.
R1:~# birdc6 sh route
BIRD 1.6.4 ready.
2001:678:3fc:d::/64 dev eth0.13 [OSPFv3R1 10:01:30] * I (150/10) [0.0.1.6]
2001:678:3fc:c::/64 dev eth0.12 [OSPFv3R1 10:05:36] * I (150/10) [0.0.1.6]
2001:678:3fc:17::/64 via fe80::3032:e9ff:fe73:6322 on eth0.13 [OSPFv3R1 10:05:38] * I (150/20) [0.0.3.6]
Avec OSPFv3, les relations de
voisinage entre routeurs utilisent nécessairement les adresses de
lien local appartenant au préfixe fe80::/10 .
|
Q13.
|
Comment utiliser toutes les solutions
disponibles pour joindre le réseau distant depuis chacun des
sommets de la topologie triangle ?
Avec la topologie logique triangle, le réseau du côté opposé à
un sommet (au routeur) doit être joignable depuis les deux réseaux
locaux raccordés à ce routeur. Nous sommes donc dans un contexte
multi chemins.
Consulter la section OSPF de
la documentation BIRD
User's Guide et rechercher l'intsruction qui permet
l'utilisation de plusieurs chemins à coût égal.
ecmp switch [limit
number] |
|
|
La fonction réseau du noyau Linux recherchée est connue sous le
nom Equal Cost Multi Path ou
ECMP.
Sur le routeur R1 , la
configuration du bloc d'instructions OSPF de chaque processus est la suivante.
R1:~# sed -n '/protocol ospf/,//p' /etc/bird/bird.conf
protocol ospf OSPFv2R1 {
rfc1583compat yes;
ecmp yes;
area 0 {
interface "eth0.12", "eth0.13" {
authentication none;
};
};
}
R1:~# sed -n '/protocol ospf/,//p' /etc/bird/bird6.conf
protocol ospf OSPFv3R1 {
ecmp yes;
area 0 {
interface "eth0.12", "eth0.13" {
authentication none;
};
};
}
Relativement aux questions précédentes, les tables de routage
proposées par les processus bird et
bird6 font apparaître les deux
chemins disponibles pour joindre le réseau distant du sommet de la
topologie triangle.
R1:~# birdc sh route
BIRD 1.6.4 ready.
10.1.12.0/26 dev eth0.12 [OSPFv2R1 19:49:42] * I (150/10) [0.0.1.4]
10.1.13.0/26 dev eth0.13 [OSPFv2R1 19:50:37] * I (150/10) [0.0.1.4]
10.1.23.0/26 multipath [OSPFv2R1 19:50:48] * I (150/20) [0.0.2.4]
via 10.1.12.2 on eth0.12 weight 1
via 10.1.13.3 on eth0.13 weight 1
R1:~# birdc6 sh route
BIRD 1.6.4 ready.
2001:678:3fc:d::/64 dev eth0.13 [OSPFv3R1 19:50:38] * I (150/10) [0.0.1.6]
2001:678:3fc:c::/64 dev eth0.12 [OSPFv3R1 19:49:44] * I (150/10) [0.0.1.6]
2001:678:3fc:17::/64 multipath [OSPFv3R1 19:50:50] * I (150/20) [0.0.2.6]
via fe80::3032:e9ff:fe73:6322 on eth0.13 weight 1
via fe80::943a:41ff:fe65:7307 on eth0.12 weight 1
|