Dans cette section, on s'intéresse aux rôles et fonctionnalités suivantes :
-
Gérer les sessions PPPoE avec les Spoke
-
Filtrer et traduire les adresses sources (NAT) pour le trafic sortant vers l'Internet
-
Annoncer les routes vers les réseaux distants via OSPF
Les tâches à réaliser sont :
-
Activer le routage
-
Activer la traduction des adresses sources vers l'Internet
-
Installer le paquet pppoe
-
Paramétrer le fichier
/etc/ppp/pppoe-server-options
. -
Créer les unités systemd pour le lancement des serveurs PPPoE
Voici un extrait des questions du support de travaux pratiques Topologie Hub & Spoke avec le protocole PPPoE.
Q1. |
Comment activer le routage dans le sous-système réseau du noyau Linux ? Utiliser la commande sysctl pour effectuer des recherches et identifier les paramètres utiles. Par exemple : sudo sysctl -a -r ".*forward.*" Il est dorénavant recommandé de créer un fichier de
configuration spécifique par fonction. C'est la raison pour
laquelle on crée un nouveau fichier |
|||
cat << EOF | sudo tee /etc/sysctl.d/10-routing.conf net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 net.ipv4.conf.all.log_martians=1 EOF Attention ! N'oubliez pas d'appliquer les nouvelles valeurs des paramètres de configuration. sudo sysctl --system |
||||
Q2. |
Comment assurer la traduction d'adresses sources pour tous les flux réseaux sortants sur le réseau d'infrastructure (VLAN rouge) ? Rechercher dans des exemples de configuration |
|||
Voici un exemple de création du fichier cat << 'EOF' | sudo tee /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
# Define variables
define RED_VLAN = enp0s1.360
table inet nat {
chain postrouting {
type nat hook postrouting priority 100;
oifname $RED_VLAN counter packets 0 bytes 0 masquerade
}
}
EOF
La création de ce fichier de règles n'est pas suffisante. Il faut appliquer les règles contenues dans le fichier. sudo nft -f /etc/nftables.conf Il faut aussi activer ce service pour assurer le chargement automatique des règles de filtrage au démarrage. sudo systemctl enable --now nftables.service sudo systemctl status nftables.service |
||||
Q3. |
Quel paquet spécifique à la gestion du dialogue PPPoE à installer sur le routeur Hub ? Rechercher dans le catalogue des paquets, la référence pppoe. |
|||
apt search ^pppoe Le résultat de la commande apt show pppoe montre
que c'est bien le paquet sudo apt -y install pppoe |
||||
Q4. |
Dans quel fichier sont stockés les paramètres d'identité et d'authentification utilisés par le protocole EAP pour la méthode CHAP ? Consulter les pages de manuels du démon pppd à la section AUTHENTICATION. |
|||
C'est le fichier Voici un exemple du contenu de ce fichier. # Secrets for authentication using CHAP # client server secret IP addresses "spoke_site1" * "0r4ng3_1" * "spoke_site2" * "0r4ng3_2" * |
||||
Q5. |
Dans quel fichier sont stockés les paramètres passés au démon pppd lors du lancement du serveur PPPoE ? Consulter les pages de manuels de l'outil pppoe-server. |
|||
C'est le fichier Ce fichier contient tous les paramètres communs aux deux démons
cat << 'EOF' | sudo tee /etc/ppp/pppoe-server-options # Gestion de session avec PAM login # Authentification EAP require-eap # Le Routeur Hub détient déjà une route par défaut nodefaultroute # Envoi de l'adresse de résolution DNS avec les adresses IPv4 ms-dns 172.16.0.2 # Ajout du protocole IPv6 +ipv6 # Informations détaillées dans la journalisation debug # Options préconisées par la documentation noaccomp default-asyncmap nodeflate nopcomp novj novjccomp lcp-echo-interval 10 EOF |
||||
Q6. |
Comment créer les comptes utilisateurs locaux sur le routeur Hub sachant qu'ils ne sont autorisés ni à se connecter ni à avoir un répertoire personnel ? Consulter les options de la commande adduser. |
|||
Voici un exemple dans le contexte de la maquette. sudo adduser --gecos 'Spoke 1' --disabled-login --no-create-home spoke_site1 sudo adduser --gecos 'Spoke 2' --disabled-login --no-create-home spoke_site2 |
||||
Q7. |
Quel paramètre supplémentaire doit être ajouté à la configuration de la commande pppoe-server pour distinguer les échanges entre les deux routeurs Spoke ? Relativement au support Routage inter-VLAN et protocole PPPoE, il est essentiel de définir correctement les routes statiques vers les réseaux d'extrémité de chaque routeur Spoke. Consulter les options de la commande pppoe-server. |
|||
L'option |
||||
Q8. |
Comment créer deux nouvelles unités systemd responsables du lancement des processus pppoe-server ? Consulter la page systemd Services et rechercher la procédure à suivre pour ajouter un service au lancement du système. |
|||
On commence par la création du fichier de service appelé :
Voici un exemple de création du fichier d'unité systemd pour le premier service. cat << 'EOF' | sudo tee /etc/systemd/system/pppoe-server1.service [Unit] Description=PPPoE Server After=systemd-networkd.service Wants=systemd-networkd.service BindsTo=sys-subsystem-net-devices-enp0s1.441.device After=sys-subsystem-net-devices-enp0s1.441.device [Service] Type=forking ExecCondition=/bin/sh -c '[ "$(systemctl show --property MainPID --value pppoe-server1.service)" = "0" ]' ExecStart=/usr/sbin/pppoe-server -I enp0s1.441 -C BRAS -L 10.44.1.1 -R 10.44.1.2 -N 1 -u 0 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF Voici un exemple de création du fichier d'unité systemd pour le second service. cat << 'EOF' | sudo tee /etc/systemd/system/pppoe-server2.service [Unit] Description=PPPoE Server After=systemd-networkd.service Wants=systemd-networkd.service BindsTo=sys-subsystem-net-devices-enp0s1.443.device After=sys-subsystem-net-devices-enp0s1.443.device [Service] Type=forking ExecCondition=/bin/sh -c '[ "$(systemctl show --property MainPID --value pppoe-server2.service)" = "0" ]' ExecStart=/usr/sbin/pppoe-server -I enp0s1.443 -C BRAS -L 10.44.3.1 -R 10.44.3.2 -N 1 -u 1 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF |
||||
Q9. |
Comment activer les deux nouveaux services et contrôler leur état après lancement ? Consulter la page systemd Services et rechercher la procédure à suivre pour activer et lancer un service. |
|||
On commence par la relecture de la liste des services disponibles par le gestionnaire systemd. sudo systemctl daemon-reload On active les nouveaux services. for i in {1..2}; do sudo systemctl enable pppoe-server$i.service; done
On lance ce nouveau service. for i in {1..2}; do sudo systemctl start pppoe-server$i.service; done
On vérifie que l'opération s'est déroulée correctement. for i in {1..2}; do systemctl status pppoe-server$i.service; done
En l'état actuel de la configuration, aucune session PPP n'a encore été établie. Il faut maintenant passer à la configuration réseau du routeur Spoke pour avancer dans l'utilisation du protocole PPP. |
Les tâches à réaliser sont :
-
Installer et préparer les services FRRouting
-
Activer les démons des protocoles OSPFv2 pour IPv4 et OSPFv3 pour IPv6
Voici un extrait des questions du support de travaux pratiques Introduction au routage dynamique OSPF avec FRRouting.
Q10. |
Comment installer le paquet |
Pour installer le paquet FRR, on doit ajouter un nouveau dépôt au système. On commence par ajouter la clé de signature des paquets à la configuration du gestionnaire. sudo apt -y install curl gpg curl -s https://deb.frrouting.org/frr/keys.asc | \ sudo gpg -o /usr/share/keyrings/frr-keyring.gpg --dearmor On créé ensuite un nouveau fichier de liste de sources de paquets qui fait référence à cette clé de signature. echo "deb [signed-by=/usr/share/keyrings/frr-keyring.gpg] \ https://deb.frrouting.org/frr bookworm frr-stable" | \ sudo tee /etc/apt/sources.list.d/frr.list Avant de lancer l'installation des paquets de la suite FRRouting, on doit mettre à jour le catalogue local. sudo apt update sudo apt -y install frr frr-pythontools On peut afficher les informations sur le paquet apt show ^frr$ Sans configuration particulière, les services zebra et staticd sont lancés. Aucun protocole de routage dynamique n'est activé. systemctl status frr ● frr.service - FRRouting Loaded: loaded (/usr/lib/systemd/system/frr.service; enabled; preset: enabled) Active: active (running) since Sat 2024-11-02 16:17:42 CET; 5min ago Invocation: a1d3f0e79647471bb1a17069f3f4c69a Docs: https://frrouting.readthedocs.io/en/latest/setup.html Process: 2098 ExecStart=/usr/lib/frr/frrinit.sh start (code=exited, status=0/SUCCESS) Main PID: 2107 (watchfrr) Status: "FRR Operational" Tasks: 8 (limit: 1032) Memory: 14.9M (peak: 28.2M) CPU: 416ms CGroup: /system.slice/frr.service ├─2107 /usr/lib/frr/watchfrr -d -F traditional zebra mgmtd staticd ├─2117 /usr/lib/frr/zebra -d -F traditional -A 127.0.0.1 -s 90000000 ├─2122 /usr/lib/frr/mgmtd -d -F traditional -A 127.0.0.1 └─2124 /usr/lib/frr/staticd -d -F traditional -A 127.0.0.1 nov. 02 16:17:42 R2 staticd[2124]: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00 nov. 02 16:17:42 R2 frrinit.sh[2144]: [2144|staticd] done nov. 02 16:17:42 R2 zebra[2117]: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00 nov. 02 16:17:42 R2 frrinit.sh[2128]: [2128|zebra] done nov. 02 16:17:42 R2 watchfrr[2107]: [QDG3Y-BY5TN] zebra state -> up : connect succeeded nov. 02 16:17:42 R2 watchfrr[2107]: [QDG3Y-BY5TN] mgmtd state -> up : connect succeeded nov. 02 16:17:42 R2 watchfrr[2107]: [QDG3Y-BY5TN] staticd state -> up : connect succeeded nov. 02 16:17:42 R2 watchfrr[2107]: [KWE5Q-QNGFC] all daemons up, doing startup-complete notify nov. 02 16:17:42 R2 frrinit.sh[2098]: Started watchfrr. nov. 02 16:17:42 R2 systemd[1]: Started frr.service - FRRouting. |
|
Q11. |
Comment vérifier que la console unifiée du
service Afficher le contenu du fichier L'accès à cette console unifiée est important puisqu'il permet d'utiliser une console unique pour les trois démons qui sont utilisés dans la suite des manipulations : zebra, ospfd et ospf6d. |
Voici un exemple pour un routeur de la maquette. sudo grep "service integrated-vtysh-config" /etc/frr/vtysh.conf service integrated-vtysh-config |
|
Q12. |
Comment ajouter l'utilisateur Utiliser la commande adduser. Une fois que l'utilisateur appartient à ces groupes, il a un accès direct à la console de configuration des protocoles actifs. |
Comme dans les autres travaux pratiques de la série, on utilise une boucle. for grp in frr frrvty do sudo adduser etu $grp done Il ne faut pas oublier de déconnecter/reconnecter l'utilisateur pour bénéficier de la nouvelle attribution de groupe. On vérifie l'appartenance aux groupes avec la commande groups. groups etu adm sudo users frrvty frr |
|
Q13. |
Comment activer les deux démons des protocoles OSPFv2 et OSPFv3 ? Consulter le fichier de configuration : |
Il faut remplacer les clés sudo sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons sudo sed -i 's/ospf6d=no/ospf6d=yes/' /etc/frr/daemons sudo systemctl restart frr On peut alors afficher l'état du service systemctl status frr ● frr.service - FRRouting Loaded: loaded (/usr/lib/systemd/system/frr.service; enabled; preset: enabled) Active: active (running) since Sat 2024-11-02 17:40:32 CET; 6s ago Invocation: 84e33888211f45f297c9135cace76751 Docs: https://frrouting.readthedocs.io/en/latest/setup.html Process: 2467 ExecStart=/usr/lib/frr/frrinit.sh start (code=exited, status=0/SUCCESS) Main PID: 2476 (watchfrr) Status: "FRR Operational" Tasks: 12 (limit: 1032) Memory: 23M (peak: 34.8M) CPU: 380ms CGroup: /system.slice/frr.service ├─2476 /usr/lib/frr/watchfrr -d -F traditional zebra mgmtd ospfd ospf6d staticd ├─2488 /usr/lib/frr/zebra -d -F traditional -A 127.0.0.1 -s 90000000 ├─2493 /usr/lib/frr/mgmtd -d -F traditional -A 127.0.0.1 ├─2495 /usr/lib/frr/ospfd -d -F traditional -A 127.0.0.1 ├─2498 /usr/lib/frr/ospf6d -d -F traditional -A ::1 └─2501 /usr/lib/frr/staticd -d -F traditional -A 127.0.0.1 nov. 02 17:40:32 R2 mgmtd[2493]: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00 nov. 02 17:40:32 R2 frrinit.sh[2504]: [2504|mgmtd] done nov. 02 17:40:32 R2 watchfrr[2476]: [QDG3Y-BY5TN] zebra state -> up : connect succeeded nov. 02 17:40:32 R2 watchfrr[2476]: [QDG3Y-BY5TN] mgmtd state -> up : connect succeeded nov. 02 17:40:32 R2 watchfrr[2476]: [QDG3Y-BY5TN] ospfd state -> up : connect succeeded nov. 02 17:40:32 R2 watchfrr[2476]: [QDG3Y-BY5TN] ospf6d state -> up : connect succeeded nov. 02 17:40:32 R2 watchfrr[2476]: [QDG3Y-BY5TN] staticd state -> up : connect succeeded nov. 02 17:40:32 R2 watchfrr[2476]: [KWE5Q-QNGFC] all daemons up, doing startup-complete notify nov. 02 17:40:32 R2 frrinit.sh[2467]: Started watchfrr. nov. 02 17:40:32 R2 systemd[1]: Started frr.service - FRRouting. On peut aussi lister les démons actifs à partir de la console du service. vtysh
Hello, this is FRRouting (version 10.1.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
|
Une fois la partie configuration initiale traitée, passons à la maquette de la synthèse.
Les tâches à réaliser sont :
-
Configurer les identifiants de routeur
-
Activer OSPF sur les interfaces du réseau de collecte
Voici un jeu de questions extraites du support de travaux pratiques Introduction au routage dynamique OSPF avec FRRouting
Q15. |
Quelles sont les opérations à effectuer pour activer les protocoles de routage OSPFv2 et OSPFv3 ? Comment affecter manuellement l'identifiant du routeur ?
La liste des commandes utiles en mode configuration dans la console vtysh est la suivante.
|
||||||||||||
Toujours à partir de la console vtysh, on accède au mode configuration à l'aide de la commande conf t. Voici un exemple de séquence sur le troisième routeur.
Une fois que chaque démon de routage OSPF possède un identifiant unique, on peut afficher les propriétés du protocole de routage dynamique même si aucun échange de route n'a encore eu lieu. sh run ospfd Building configuration...
Current configuration:
!
frr version 10.1.1
frr defaults traditional
hostname R1
log syslog informational
service integrated-vtysh-config
!
router ospf
ospf router-id 1.0.0.4
log-adjacency-changes detail
exit
!
end
sh run ospf6d Building configuration...
Current configuration:
!
frr version 10.1.1
frr defaults traditional
hostname R1
log syslog informational
service integrated-vtysh-config
!
router ospf6
ospf6 router-id 1.0.0.6
log-adjacency-changes detail
exit
!
end
Le choix de codage des identifiants OSPF a pour but d'éviter une confusion avec les adresses des réseaux actifs sur chaque routeur. Si on reprend les instructions de la question précédente, on obtient l'état de chacun des démons de protocole de routage dynamique. sh ip ospf OSPF Routing Process, Router ID: 1.0.0.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 has not been run
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
Number of external LSA 0. Checksum Sum 0x00000000
Number of opaque AS LSA 0. Checksum Sum 0x00000000
Number of areas attached to this router: 0
All adjacency changes are logged
sh ipv6 ospf OSPFv3 Routing Process (0) with Router-ID 1.0.0.6
Running 00:09:20
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 has not been run
SPF timer is inactive
Number of AS scoped LSAs is 0
Number of areas in this router is 0
Authentication Sequence number info
Higher sequence no 0, Lower sequence no 0
All adjacency changes are logged
L'affectation des identifiants des démons de routage OSPF doit être réalisée sur les trois routeurs de la topologie. Ces identifiants seront très utiles et importants dès qu'il faudra afficher les listes de routeurs voisins au sens du protocole OSPF. |
|||||||||||||
Q16. |
Comment activer les protocoles de routage OSPFv2 et OSPFv3 pour les réseaux d'interconnexion de chaque routeur ? Il faut activer le protocole de routage dynamique sur chaque interface de la topologie qui participe à la construction du triangle. La liste des commandes utiles en mode console et en mode configuration dans vtysh est la suivante.
|
||||||||||||
Voici un exemple de séquence d'instructions pour le routeur
On commence par lister les entrées marquées C ou connected des tables de routage IPv4 et IPv6
de façon à reconnaître les deux côtés de la topologie triangle
connus du “sommet” sh ip route connected Codes: K - kernel route, C - connected, L - local, 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, t - Table-Direct, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure C>* 10.44.0.0/29 is directly connected, enp0s1.440, 01:26:12 C>* 10.44.1.0/29 is directly connected, enp0s1.441, 01:26:12 C>* 192.168.104.128/29 is directly connected, enp0s1.360, 01:26:12 sh ipv6 route connected Codes: K - kernel route, C - connected, L - local, 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, t - Table-Direct, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure C>* 2001:678:3fc:168::/64 is directly connected, enp0s1.360, 01:30:26 C * fe80::/64 is directly connected, enp0s1.360, 01:30:25 C * fe80::/64 is directly connected, enp0s1.440, 01:30:26 C * fe80::/64 is directly connected, enp0s1, 01:30:26 C>* fe80::/64 is directly connected, enp0s1.441, 01:30:26 À partir de ces affichages, on sait que l'on doit activer les
protocoles OSPF pour les deux
sous-interfaces :
Ces opérations doivent être répétées sur les trois routeurs de la topologie. |
|||||||||||||
Q17. |
Comment visualiser l'état des interfaces actives pour chaque processus de protocole de routage dynamique OSPFv2 ou OSPFv3 ? Les interfaces sont dites actives pour les protocoles OSPFv2 ou OSPFv3 dès qu'elles ont été ajoutées aux processus de routage dynamique en précisant l'aire à laquelle elles appartiennent. La liste des commandes utiles dans la console vtysh est la suivante.
|
||||||||||||
En prenant l'exemple du routeur
enp0s1.440 is up ifindex 4, MTU 1500 bytes, BW 0 Mbit <UP,LOWER_UP,BROADCAST,RUNNING,MULTICAST> Internet Address 10.44.0.2/29, Broadcast 10.44.0.7, Area 0.0.0.0 MTU mismatch detection: enabled Router ID 2.0.0.4, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State Backup, Priority 1 Designated Router (ID) 1.0.0.4 Interface Address 10.44.0.1/29 Backup Designated Router (ID) 2.0.0.4, Interface Address 10.44.0.2 Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5 Hello due in 5.086s Neighbor Count is 1, Adjacent neighbor count is 1 Graceful Restart hello delay: 10s La copie d'écran ci-dessus permet d'identifier les éléments suivants :
On reprend la même démarche pour le protocole OSPFv3.
enp0s1.440 is up, type BROADCAST Interface ID: 4 Internet Address: inet : 10.44.0.2/29 inet6: fe80::baad:caff:fefe:6/64 inet6: fe80::1b8:2/64 Instance ID 0, Interface MTU 1500 (autodetect: 1500) MTU mismatch detection: enabled Area ID 0.0.0.0, Cost 10 State BDR, Transmit Delay 1 sec, Priority 1 Timer intervals configured: Hello 10(8.803), Dead 40, Retransmit 5 DR: 1.0.0.6 BDR: 2.0.0.4 Number of I/F scoped LSAs is 2 0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off] 0 Pending LSAs for LSAck in Time 00:00:00 [thread off] Graceful Restart hello delay: 10s Authentication Trailer is disabled Relativement, à l'affichage des informations sur l'association entre une interface réseau et le démon de protocole OSPFv2 pour IPv4, l'affichage pour OSPFv3 et IPv6 est plus succinct. |
|||||||||||||
Q18. |
Comment vérifier que l'identifiant de routeur a correctement été attribué ? À partir des commandes proposées et de résultats des questions précédentes, rechercher l'information demandée. |
||||||||||||
Quelque soit la version du protocole OSPF, l'identifiant de routeur est toujours codé sous la forme d'une adresse IPv4. Pour valider la conformité entre les identifiants définis dans le plan d'adressage des travaux pratiques et les valeurs effectivement utilisées par les deux démons de routage dynamique, on affiche le contenu des base de topologie du protocole. Avec le démon OSPFv2, l'identification du routeur est immédiate.
OSPF Router with ID (1.0.0.4)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
1.0.0.4 1.0.0.4 884 0x8000001f 0x3bee 2
2.0.0.4 2.0.0.4 1016 0x8000001d 0xab78 2
3.0.0.4 3.0.0.4 843 0x8000001d 0xd34a 2
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
10.44.0.1 1.0.0.4 994 0x80000018 0xe61c
10.44.1.1 1.0.0.4 984 0x80000018 0xe61a
10.44.2.3 3.0.0.4 843 0x80000018 0xbc3e
En revanche, le démon OSPFv3 ne donne pas d'information sur l'identifiant du processus en cours. L'affichage est cependant beaucoup plus exhaustif avec les informations par interface.
Area Scoped Link State Database (Area 0) Type LSId AdvRouter Age SeqNum Payload Rtr 0.0.0.0 1.0.0.6 1012 8000001b 1.0.0.6/0.0.0.5 Rtr 0.0.0.0 1.0.0.6 1012 8000001b 1.0.0.6/0.0.0.3 Rtr 0.0.0.0 2.0.0.4 1010 80000019 1.0.0.6/0.0.0.5 Rtr 0.0.0.0 2.0.0.4 1010 80000019 3.0.0.6/0.0.0.4 Rtr 0.0.0.0 3.0.0.6 1010 80000019 1.0.0.6/0.0.0.3 Rtr 0.0.0.0 3.0.0.6 1010 80000019 3.0.0.6/0.0.0.4 Net 0.0.0.3 1.0.0.6 1088 80000017 1.0.0.6 Net 0.0.0.3 1.0.0.6 1088 80000017 3.0.0.6 Net 0.0.0.5 1.0.0.6 1012 80000017 1.0.0.6 Net 0.0.0.5 1.0.0.6 1012 80000017 2.0.0.4 Net 0.0.0.4 3.0.0.6 1010 80000017 3.0.0.6 Net 0.0.0.4 3.0.0.6 1010 80000017 2.0.0.4 I/F Scoped Link State Database (I/F enp0s1.440 in Area 0) Type LSId AdvRouter Age SeqNum Payload Lnk 0.0.0.5 1.0.0.6 303 8000001a fe80::1b8:1 Lnk 0.0.0.4 2.0.0.4 1019 80000017 fe80::1b8:2 I/F Scoped Link State Database (I/F enp0s1.441 in Area 0) Type LSId AdvRouter Age SeqNum Payload Lnk 0.0.0.3 1.0.0.6 288 8000001a fe80::1b9:1 Lnk 0.0.0.3 3.0.0.6 1090 80000017 fe80::1b9:3 AS Scoped Link State Database Type LSId AdvRouter Age SeqNum Payload |
|||||||||||||
Q19. |
Comment identifier le type de réseau d'une interface ? À partir des résultats des questions précédentes, rechercher l'information demandée. |
||||||||||||
Comme on utilise des liens Ethernet dans ce contexte de travaux pratiques, le type le plus important est le réseau de diffusion ou BROADCAST.
enp0s1.442 is up
ifindex 4, MTU 1500 bytes, BW 0 Mbit <UP,LOWER_UP,BROADCAST,RUNNING,MULTICAST>
Internet Address 10.44.2.3/29, Broadcast 10.44.2.7, Area 0.0.0.0
MTU mismatch detection: enabled
Router ID 3.0.0.4, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 3.0.0.4 Interface Address 10.44.2.3/29
Backup Designated Router (ID) 2.0.0.4, Interface Address 10.44.2.2
Saved Network-LSA sequence number 0x80000019
Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
Hello due in 1.361s
Neighbor Count is 1, Adjacent neighbor count is 1
Graceful Restart hello delay: 10s
enp0s1.442 is up, type BROADCAST
Interface ID: 4
Internet Address:
inet : 10.44.2.3/29
inet6: fe80::baad:caff:fefe:7/64
inet6: fe80::1ba:3/64
Instance ID 0, Interface MTU 1500 (autodetect: 1500)
MTU mismatch detection: enabled
Area ID 0.0.0.0, Cost 10
State DR, Transmit Delay 1 sec, Priority 1
Timer intervals configured:
Hello 10(9.055), Dead 40, Retransmit 5
DR: 3.0.0.6 BDR: 2.0.0.4
Number of I/F scoped LSAs is 2
0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
0 Pending LSAs for LSAck in Time 00:00:00 [thread off]
Graceful Restart hello delay: 10s
Authentication Trailer is disabled |
|||||||||||||
Q20. |
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
La liste des commandes utiles dans la console vtysh est la suivante.
|
||||||||||||
À partir du routeur
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL 2.0.0.4 1 Full/Backup 11h34m21s 37.712s 10.44.0.2 enp0s1.440:10.44.0.1 0 0 0 3.0.0.4 1 Full/Backup 11h35m30s 33.792s 10.44.1.3 enp0s1.441:10.44.1.1 0 0 0
Neighbor ID Pri DeadTime State/IfState Duration I/F[State] 2.0.0.4 1 00:00:37 Full/BDR 11:36:00 enp0s1.440[DR] 3.0.0.6 1 00:00:37 Full/BDR 11:37:15 enp0s1.441[DR] Les deux listes de voisins donnent une information essentielle
sur l'état de protocole de routage avec le mot clé |
Pour achever cette partie de la synthèse, il reste à étudier la redistribution des routes connectées dans les démons de routage OSPFv2 et OSPFv3.
Q21. |
Quel est l'état des voisins OSPF à ce stade de la configuration ? Afficher la liste des voisins OSPFv2 OSPFv3 sur l'un des deux routeurs Hub. |
|||
En se plaçant sur le second routeur Hub de la maquette, on obtient les informations suivantes. sh ip ospf neighbor Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL 1.0.0.4 1 Full/DR 23.841s 36.142s 172.20.70.1 enp0s1.470:172.20.70.2 0 0 0 sh ipv6 ospf6 neighbor Neighbor ID Pri DeadTime State/IfState Duration I/F[State] 1.0.0.6 1 00:00:30 Full/DR 00:00:29 enp0s1.470[BDR]
|
Les tâches à réaliser sont :
-
Configurer la redistribution des routes connectées dans OSPF
-
Valider la présence des routes IPv4 de transit vers les routeurs Spoke
Q22. |
Quelle est l'instruction qui permet de redistribuer les routes connectées dans les démons OSPF ? Rechercher les options de l'instruction redistribute dans la documentation FRR à l'adresse FRRouting User Guide. |
L'instruction redistribute est générique et s'emploie dans la configuration de tous les protocoles de routage. Voici un extrait de configuration pour chacun des deux démons OSPF. sh run ospfd Building configuration...
Current configuration:
!
frr version 10.1.1
frr defaults traditional
hostname hub1
log syslog informational
service integrated-vtysh-config
!
interface enp0s1.470
ip ospf area 0
exit
!
router ospf
ospf router-id 1.0.0.4
log-adjacency-changes detail
redistribute connected
exit
!
end
sh run ospf6d Building configuration...
Current configuration:
!
frr version 10.1.1
frr defaults traditional
hostname hub1
log syslog informational
service integrated-vtysh-config
!
interface enp0s1.470
ipv6 ospf6 area 0
exit
!
router ospf6
ospf6 router-id 1.0.0.6
log-adjacency-changes detail
redistribute connected
exit
!
end |
|
Q23. |
Pourquoi choisir la redistribution des routes connectées ? Il existe de nombreuses solutions pour intégrer des réseaux dans OSPF. Voici deux exemples :
|
Cela s'explique par les principes de la topologie Hub & Spoke. Un lien WAN sur lequel on établit une session PPPoE n'a pas de caractère permanent. Il faut donc trouver une solution qui permette au protocole de routage dynamique OSPF de fonctionner de façon optimale avec un nombre de routeurs Spoke variable. Avec la maquette des travaux pratiques, chaque routeur Hub est relié à deux routeurs Spoke. Dans un contexte plus réaliste, le nombre de routeurs Spoke peut varier en fonction de l'ouverture ou de la fermeture de sites distants, et le fonctionnement du réseau de collecte ne doit pas être impacté par ces variations. C'est la raison pour laquelle les variations du nombre de routes connectées sont gérées au niveau système avec les services PPP. Les changements sont automatiquement répercutés dans la base d'information FRR puis publiés par le protocole de routage dynamique OSPF. La redistribution des routes connectées répond parfaitement à ce besoin. |
|
Q24. |
Comment vérifier que la redistribution de route est effective ? Rechercher les entrées OSPF dans les tables de routage des deux routeurs Hub. |
Voici ce que l'on observe sur le premier routeur de la maquette. sh ip route ospf Codes: K - kernel route, C - connected, L - local, 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, t - Table-Direct, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure O>* 10.47.6.2/32 [110/20] via 172.20.70.2, enp0s1.470, weight 1, 00:46:51 O>* 10.47.8.2/32 [110/20] via 172.20.70.2, enp0s1.470, weight 1, 00:46:51 O 172.20.70.0/29 [110/10] is directly connected, enp0s1.470, weight 1, 03:43:32 O 172.20.120.0/23 [110/20] via 172.20.70.2, enp0s1.470, weight 1, 00:46:51 Dans le cas du protocole IPv6, la redistribution n'est pas visible puisque les réseaux de transit utilisent uniquement des adresses de lien local pour former les adjacences entre routeurs. La commande ci-dessous ne produit aucune sortie. Il faut attendre la mise en place des réseaux d'hébergement au delà des routeurs Spoke pour voir apparaître de nouvelles entrées dans la table de routage. sh ipv6 route ospf |