Les manipulations sur le système de filtrage réseau présentées
ici s'appuient sur la topologie Hub and
Spoke étudiée dans le support précédent de la série :
Topologie Hub & Spoke avec le protocole
PPPoE.
La topologie étudiée associe trois routeurs qui ont deux rôles
distincts.
Ce routeur réalise une interconnexion LAN/WAN. Il fournit un accès Internet aux
routeurs de sites distants via ses interfaces WAN. Il dispose de son propre accès Internet
via son interface LAN.
Ce routeur réalise aussi une interconnexion LAN/WAN. À la différence du routeur Hub, il obtient l'accès Internet sur son
interface WAN et il met cet
accès à disposition d'un réseau local de site représenté par des
conteneurs LXD.
Routage
et traduction d'adresses (situation de départ)
Les manipulations qui suivent supposent que la topologie
Hub & Spoke est en place et
fonctionnelle. On s'appuie sur le support précédent de la
série : Topologie Hub & Spoke avec le protocole
PPPoE
Le routeur Hub doit s'assurer que le
trafic réseau qu'il route vers et depuis l'Internet correspond bien
au plan d'adressage défini. Dans ce but, il attribue les adresses
du lien point à point ainsi qu'une route statique à destination du
réseau d'extrémité distant.
Le routeur Hub assure la traduction
des adresses sources du réseau distant vers l'Internet.
Le routeur Spoke doit obtenir son
adresse IPv4 de réseau étendu
via PPP et assurer le routage de
son réseau local. Il dispose d'une route par défaut qui désigne le
lien point à point comme seul accès vers l'Internet.
Les questions ci-dessous ont pour objectif de valider le
fonctionnement du routage et de la traduction des adresses sources
en sortie du routeur Hub vers
l'Internet.
Pour traiter les questions, on doit effectuer quelques
opérations de vérification et de préparation.
On doit d'abord s'assurer que les réseaux des conteneurs de
chaque branche de la topologie sont en place. On affiche la liste
des conteneurs de chaque routeur Spoke.
On configure le shell par défaut
dans les conteneurs des deux routeurs Spoke de façon à pouvoir exécuter des scripts
dans ces conteneurs.
Création du script qui définit bash comme shell
par défaut.
etu@Spoke1Vert:~$ cat << EOF > setBashasSh.sh
#!/bin/sh
# make /bin/sh symlink to bash instead of dash:
echo "dash dash/sh boolean false" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash
EOF
Copie du script dans chaque conteneur.
etu@Spoke1Vert:~$ for i in {0..2}
do
lxc file push setBashasSh.sh spoke1C$i/root/
done
Exécution du script dans chaque conteneur.
etu@Spoke1Vert:~$ for i in {0..2}
do
lxc exec spoke1C$i -- sh /root/setBashasSh.sh
done
Q1.
Comment tracer le chemin suivi par les
paquets IPv4 et IPv6 d'un conteneur à un autre conteneur du
site distant de l'autre branche de la topologie ?
Rechercher le paquet contenant la commande tracepath qui permet d'afficher
le chemin suivi par le trafic réseau.
Par exemple, on se place sur le routeur Spoke2Vert et on installe le paquet iputils-tracepath dans les conteneurs avant de
lancer les relevés du chemin de bout en bout.
etu@Spoke2Vert:~$ for i in {0..2}
do
lxc exec spoke1C$i -- apt install iputils-tracepath
done
une fois le paquet installé, on doit pouvoir contacter les
adresses IPv4 et IPv6 des conteneurs situés à l'autre extrémité
de la topologie Hub & Spoke.
Par exemple, on relève le chemin entre les conteneurs
spoke2C2 et spoke1C0.
Les résultats obtenus avec l'exécution de la commande
tracepath montrent
que le routage des paquets IPv4
et IPv6 est fonctionnel.
Q2.
Comment caractériser la traduction
d'adresses source en sortie du routeur Hub ?
La fonction de traduction d'adresse entre dans cadre du filtrage
réseau et fait appel aux mêmes outils : netfilter/iptables.
Rechercher le paquet qui contient la commande conntrack puis rechercher les
options de cette commande qui permettent d'afficher les états des
enregistrements de la table NAT.
On ouvre une console sur le routeur Hub de la maquette et on installe le paquet
conntrack.
etu@HubBleu:~$ sudo apt -y install conntrack
Dans le même temps, on ouvre une autre console sur le routeur
Spoke1Vert. C'est à partir de cette
console que l'on lance des téléchargements depuis le serveur
inetdoc.net à l'aide de la commande
wget.
etu@Spoke1Vert:~$ for i in {0..2}
do
lxc exec spoke1C$i -- apt -y install wget
done
Sur le routeur Hub, on affiche la
liste des enregistrements de la table NAT.
Requête IPv4 depuis le
conteneur :
root@container0:~# while true
do
wget -4 -O /dev/null https://inetdoc.net/pdf/iproute-cheatsheet.pdf
sleep 3
done