Une fois la topologie décrite dans la Section 2, « Topologie Hub & Spoke - Protocole PPPoE » complète, on peut lancer une série des tests de connectivité et d'accès aux services Web depuis et vers les réseaux de conteneurs des deux routeurs Spoke.
Comme l'essentiel des tests qui suivent sont lancés depuis les conteneurs, il est nécessaire d'installer les outils dans ces mêmes conteneurs. Voici une exemple de traitement pour les 3 conteneurs d'un routeur Spoke.
for i in {0..2} do echo ">>>>>>>>>>>>>>>>> c$i" lxc exec c$i -- apt -y update lxc exec c$i -- apt -y full-upgrade lxc exec c$i -- apt -y install iputils-tracepath wget lxc exec c$i -- apt clean done
Q17. |
Comment visualiser le chemin suivi par le trafic entre les réseaux IPv4 et IPv6 de chaque branche de la topologie à partir des tables de routage ? |
Voici une série de copie d'écran valables dans le contexte de la maquette. Si on se place sur le routeur Hub, on doit retrouver les deux routes statiques vers les réseaux des conteneurs de chaque branche. ip route ls default via 192.168.104.129 dev enp0s1.360 onlink 10.0.10.0/24 dev ppp0 scope link 10.0.20.0/24 dev ppp1 scope link 10.44.1.2 dev ppp0 proto kernel scope link src 10.44.1.1 10.44.3.2 dev ppp1 proto kernel scope link src 10.44.3.1 192.168.104.128/29 dev enp0s1.360 proto kernel scope link src 192.168.104.130 ip -6 route ls ::1 dev lo proto kernel metric 256 pref medium 2001:678:3fc:168::/64 dev enp0s1.360 proto kernel metric 256 pref medium fda0:7a62:a::/64 dev ppp0 metric 1024 pref medium fda0:7a62:14::/64 dev ppp1 metric 1024 pref medium fe80::81:f421:dcb9:b115 dev ppp0 proto kernel metric 256 pref medium fe80::7846:dae9:1c1f:4b7c dev ppp1 proto kernel metric 256 pref medium fe80::a1d3:fb63:2582:f6eb dev ppp0 proto kernel metric 256 pref medium fe80::e0b4:231f:92d4:524f dev ppp1 proto kernel metric 256 pref medium fe80::/64 dev enp0s1 proto kernel metric 256 pref medium fe80::/64 dev enp0s1.360 proto kernel metric 256 pref medium fe80::/64 dev enp0s1.440 proto kernel metric 256 pref medium fe80::/64 dev enp0s1.441 proto kernel metric 256 pref medium fe80::/64 dev enp0s1.442 proto kernel metric 256 pref medium fe80::/64 dev enp0s1.443 proto kernel metric 256 pref medium fe80:1b8::/64 dev enp0s1.440 proto kernel metric 256 pref medium fe80:1ba::/64 dev enp0s1.442 proto kernel metric 256 pref medium default via fe80:168::1 dev enp0s1.360 metric 1024 onlink pref medium Si on se place sur l'un des deux routeurs Spoke, on doit trouver des routes par défaut identiques puisqu'elles utilisent le nom de l'interface créée lors de l'établissement de la session PPP. ip route ls default default dev ppp0 scope link ip -6 route ls default default dev ppp0 metric 1024 pref medium |
|
Q18. |
Quels sont les tests ICMP à réaliser pour valider la connectivité d'un réseau de conteneurs de branche à l'autre ? |
Voici un exemple de tests depuis le réseau des conteneurs desservi par le routeur Spoke-1. for i in {0..2} do echo ">>>>> from Spoke-1 c$i to Spoke-2 c$i" lxc exec c$i -- ping -q -c2 10.0.20.$(($i + 10)) done >>>>> from Spoke-1 c0 to Spoke-2 c0 PING 10.0.20.10 (10.0.20.10) 56(84) bytes of data. --- 10.0.20.10 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 3.508/4.768/6.029/1.260 ms >>>>> from Spoke-1 c1 to Spoke-2 c1 PING 10.0.20.11 (10.0.20.11) 56(84) bytes of data. --- 10.0.20.11 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 3.550/4.201/4.853/0.651 ms >>>>> from Spoke-1 c2 to Spoke-2 c2 PING 10.0.20.12 (10.0.20.12) 56(84) bytes of data. --- 10.0.20.12 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 3.346/4.194/5.042/0.848 ms for i in {0..2} do echo ">>>>> from Spoke-1 c$i to Spoke-2 c$i" lxc exec c$i -- ping -q -c2 fda0:7a62:14::$(printf "%x" $(($i + 10))) done >>>>> from Spoke-1 c0 to Spoke-2 c0 PING fda0:7a62:14::a(fda0:7a62:14::a) 56 data bytes --- fda0:7a62:14::a ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 3.654/4.981/6.308/1.327 ms >>>>> from Spoke-1 c1 to Spoke-2 c1 PING fda0:7a62:14::b(fda0:7a62:14::b) 56 data bytes --- fda0:7a62:14::b ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 3.342/4.205/5.069/0.863 ms >>>>> from Spoke-1 c2 to Spoke-2 c2 PING fda0:7a62:14::c(fda0:7a62:14::c) 56 data bytes --- fda0:7a62:14::c ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 3.428/4.118/4.809/0.690 ms |
|
Q19. |
Comment visualiser le chemin emprunté par le trafic d'un réseau de conteneurs à l'autre ? Installer le paquet |
Voici encore un exemple de tests depuis le réseau des conteneurs desservi par le routeur Spoke-1. for i in {0..2} do echo ">>>>>>>>>>>>>>>>> c$i" lxc exec c$i -- tracepath -n 10.0.20.$(($i + 10)) done >>>>>>>>>>>>>>>>> c0 1?: [LOCALHOST] pmtu 1492 1: 10.0.10.1 0.931ms 1: 10.0.10.1 0.091ms 2: 10.44.1.1 2.042ms 3: 10.44.3.2 3.474ms 4: 10.0.20.10 4.306ms reached Resume: pmtu 1492 hops 4 back 4 >>>>>>>>>>>>>>>>> c1 1?: [LOCALHOST] pmtu 1492 1: 10.0.10.1 0.998ms 1: 10.0.10.1 0.099ms 2: 10.44.1.1 2.102ms 3: 10.44.3.2 3.875ms 4: 10.0.20.11 4.458ms reached Resume: pmtu 1492 hops 4 back 4 >>>>>>>>>>>>>>>>> c2 1?: [LOCALHOST] pmtu 1492 1: 10.0.10.1 0.120ms 1: 10.0.10.1 0.034ms 2: 10.44.1.1 1.856ms 3: 10.44.3.2 3.658ms 4: 10.0.20.12 4.080ms reached Resume: pmtu 1492 hops 4 back 4 for i in {0..2} do echo ">>>>>>>>>>>>>>>>> c$i" lxc exec c$i -- tracepath -n fda0:7a62:14::$(printf "%x" $(($i + 10))) done >>>>>>>>>>>>>>>>> c0 1?: [LOCALHOST] 0.025ms pmtu 1500 1: fda0:7a62:a::1 0.917ms 1: fda0:7a62:a::1 0.150ms 2: fda0:7a62:a::1 0.076ms pmtu 1492 2: 2001:678:3fc:168::2 1.838ms 3: fda0:7a62:14::1 3.295ms 4: fda0:7a62:14::a 4.349ms reached Resume: pmtu 1492 hops 4 back 4 >>>>>>>>>>>>>>>>> c1 1?: [LOCALHOST] 0.030ms pmtu 1500 1: fda0:7a62:a::1 2.830ms 1: fda0:7a62:a::1 0.129ms 2: fda0:7a62:a::1 0.063ms pmtu 1492 2: 2001:678:3fc:168::2 2.190ms 3: fda0:7a62:14::1 3.764ms 4: fda0:7a62:14::b 4.759ms reached Resume: pmtu 1492 hops 4 back 4 >>>>>>>>>>>>>>>>> c2 1?: [LOCALHOST] 0.033ms pmtu 1500 1: fda0:7a62:a::1 2.422ms 1: fda0:7a62:a::1 0.056ms 2: fda0:7a62:a::1 0.030ms pmtu 1492 2: 2001:678:3fc:168::2 1.970ms 3: fda0:7a62:14::1 3.310ms 4: fda0:7a62:14::c 4.532ms reached Resume: pmtu 1492 hops 4 back 4 |
|
Q20. |
Comment valider les accès Web depuis le routeur Hub et depuis l'autre routeur Spoke ? Il suffit de reprendre la même série de tests depuis les autres routeurs de la topologie. |
Voici deux exemples de tests réalisés dans le contexte de la maquette à nouveau depuis les conteneurs du routeur Spoke-1. for i in {0..2} do echo ">>>>> from Spoke-1 c$i to Spoke-2 c$i" lxc exec c$i -- wget -O /dev/null http://10.0.20.$(($i + 10)) 2>&1 | grep "HTTP " done >>>>> from Spoke-1 c0 to Spoke-2 c0 HTTP request sent, awaiting response... 200 OK >>>>> from Spoke-1 c1 to Spoke-2 c1 HTTP request sent, awaiting response... 200 OK >>>>> from Spoke-1 c2 to Spoke-2 c2 HTTP request sent, awaiting response... 200 OK for i in {0..2} do echo ">>>>> from Spoke-1 c$i to Spoke-2 c$i" lxc exec c$i -- wget -O /dev/null http://[fda0:7a62:14::$(printf "%x" $(($i + 10)))] 2>&1 | grep "HTTP " done >>>>> from Spoke-1 c0 to Spoke-2 c0 HTTP request sent, awaiting response... 200 OK >>>>> from Spoke-1 c1 to Spoke-2 c1 HTTP request sent, awaiting response... 200 OK >>>>> from Spoke-1 c2 to Spoke-2 c2 HTTP request sent, awaiting response... 200 OK |
|
Q21. |
Est-il possible d'obtenir les mêmes résultats depuis un routeur extérieur au routeur Hub ? Analyser la portée de la table de routage du routeur Hub. |
La table de routage du routeur Hub sert uniquement à joindre les routeurs Spoke et à offrir une connectivité entre ces sites distants. Comme les règles de traduction des adresses source IPv4 et IPv6 ont été implantées sur le routeur Hub, les réseaux de conteneurs ont accès à Internet mais ils ne sont pas accessibles depuis Internet. Rendre ces services accessibles depuis l'Internet est un des objectifs du support de travaux pratiques suivant : Filtrage réseau avec netfilter/iptables. |