3. Topologie Hub & Spoke - Protocole PPPoE

Le Protocole Point à Point (PPP) est utilisé pour établir une communication directe entre deux hôtes. Il relie deux routeurs de façon logique au dessus d'une topologie de réseau physique qui peut comprendre divers composants et différentes technologies. Il permet aux deux extrémités en communication de négocier des paramètres de transmission tels que l'authentification, la compression et l'attribution d'adresses de couche réseau. Dans ce document, on utilise le protocole PPP au dessus d'un réseau Ethernet qui représente la technologie mise en œuvre par un opérateur Internet.

Pour valider le fonctionnement du protocole PPPoE, on utilise les postes de travaux pratiques par groupes de deux routeurs Spoke et un routeur Hub. Les rôles sont définis ci-dessous.

Hub

Traduit mot à mot, le rôle Hub correspond à un concentrateur.

Il concentre tous les flux réseau des routeurs qui ont le rôle Spoke. En effet, les échanges entre deux routeurs Spoke doivent passer par le routeur Hub.

On lui attribue aussi la fonction de Broadband Remote Access Server ou BRAS. Dans notre contexte, cette fonction se caractérise par le fait que ce routeur détient le plan d'adressage. C'est lui qui a la responsabilité de délivrer les adresses IP lors de l'initiation de la session PPP.

Spoke

Contrairement au cas précédent, il n'y a pas de traduction mot à mot pour le rôle Spoke. Le routeur Spoke doit s'adresser au routeur Hub dès qu'il veut acheminer un flux réseau. Il s'agit d'un routeur d'extrémité qui ne dispose d'aucun chemin alternatif pour joindre l'Internet.

Dans les réseaux domestiques, la «box» correspond bien au rôle Spoke dans la mesure où elle se voit attribuer une adresse IPv4 publique par le fournisseur d'accès. Les seules informations qu'elle détient sont les authentifiants du client de l'opérateur.

Comme le montre le graphique ci-dessus, l'opérateur distingue 4 types de flux réseau. Dans les manipulations qui suivent, on ne s'intéresse qu'au VLANs Management et Data. La gestion des flux de téléphonie et de vidéo suppose que l'on mette en œuvre des services qui sortent du cadre de l'étude du protocole PPP.

Pour mettre en œuvre la topologie voulue, on distingue 4 groupes de 3 postes de travaux pratiques. Le rôle de chaque poste est défini dans les tableaux ci-dessous en fonction de la salle de travaux pratiques.

Plusieurs remarques sont à prendre en considération pour la suite du document.

  • Les adresses IPv4 données dans les tableaux sont utilisées par des liens point à point. Le masque réseau est donc complet : 255.255.255.255. Pour autant, les adresses ont été choisies de façon à pouvoir publier des réseaux avec un masque sur 30 bits via des routes statiques et/ou des protocoles de routage dynamique.

  • Tous les exemples de commandes donnés dans la suite du document utilisent la numérotation suivante pour les VLANs.

    Flux réseau VLAN
    Internet 4
    Management 25
    Data 26
    Voice 27
    Video 28
  • Pour les accès à l'Internet, le routeur de cœur de réseau à utiliser est Casper. Les adresses de passerelle par défaut des routeurs Hub dans le VLAN 4 sont :

    • 172.16.16.2/20

    • 2001:678:3fc:4::2/64

  • Pour l'adressage du réseau local d'extrémité du routeur Spoke, on utilise les préfixes suivants :

    • 10.2.6.1/28

    • 2001:678:3fc:1a::1/64

3.1. Plan d'adressage pour les groupes de 3 routeurs

Tableau 1. Affectation des rôles, des numéros de VLANs et des adresses pour la salle 211

Groupe Poste Rôle VLAN Flux Réseau/Authentification
1 christophsis Hub 4 Internet 172.16.17.10/20
2001:678:3fc:4::3a/64
400 Management fe80:190::3/64
401 Data 192.168.1.141:192.168.1.142
402 Data 192.168.1.145:192.168.1.146
corellia Spoke 1 400 Management fe80:190::1/64
401 Data etu_s1 / Sp0k3.1
  Branch 10.4.0.1/26
2001:678:3fc:191::1/64
delaya Spoke 2 400 Management fe80:190::2/64
402 Data etu_s2 / Sp0k3.2
  Branch 10.4.0.65/26
2001:678:3fc:192::1/64
2 kashyyyk Hub 4 Internet 172.16.17.13/20
2001:678:3fc:4::3d/64
405 Management fe80:195::3/64
406 Data 192.168.1.149:192.168.1.150
407 Data 192.168.1.153:192.168.1.154
korriban Spoke 1 405 Management fe80:195::1/64
406 Data etu_s1 / Sp0k3.1
  Branch 10.4.0.129/26
2001:678:3fc:196::1/64
kessel Spoke 2 405 Management fe80:195::2/64
407 Data etu_s2 / Sp0k3.2
  Branch 10.4.0.193/26
2001:678:3fc:197::1/64
3 mygeeto Hub 4 Internet 172.16.17.16/20
2001:678:3fc:4::40/64
410 Management fe80:19a::3/64
411 Data 192.168.1.157:192.168.1.158
412 Data 192.168.1.161:192.168.1.162
nelvaan Spoke 1 410 Management fe80:19a::1/64
411 Data etu_s1 / Sp0k3.1
  Branch 10.4.1.1/26
2001:678:3fc:19b::1/64
rattatak Spoke 2 410 Management fe80:19a::2/64
412 Data etu_s2 / Sp0k3.2
  Branch 10.4.1.65/26
2001:678:3fc:19c::1/64
4 saleucami Hub 4 Internet 172.16.17.19/20
2001:678:3fc:4::43/64
415 Management fe80:19f::3/64
416 Data 192.168.1.165:192.168.1.166
417 Data 192.168.1.169:192.168.1.170
taris Spoke 1 415 Management fe80:19f::1/64
416 Data etu_s1 / Sp0k3.1
  Branch 10.4.1.129/26
2001:678:3fc:1a0::1/64
teth Spoke 2 415 Management fe80:19f::2/64
417 Data etu_s2 / Sp0k3.2
  Branch 10.4.1.193/26
2001:678:3fc:1a1::1/64

3.2. Communications dans le VLAN Management

Sachant que les routeurs sont reliés entre eux par des trunks, il faut commencer par s'assurer que les échanges réseau sont possible au sein du VLAN de gestion opérateur : Management.

Q4.

Comment créer et configurer une sous-interface dédiée au VLAN Management sur chaque routeur ?

Consulter les pages de manuels man ip-link et rechercher les options du type vlan.

Il est aussi possible de consulter l' Antisèche réseau.

La syntaxe de création d'une sous-interface de l'interface physique eth0 est la suivante :

$ sudo ip link add link eth0 name eth0.25 type vlan id 25

La syntaxe d'activation de l'interface est la suivante :

$ sudo ip link set dev eth0.25 up

Dès cette étape il est possible de faire un recensement du voisinage réseau IPv6.

$ ping -c2 ff02::1%eth0.25
PING ff02::1%eth0.25(ff02::1%eth0.25) 56 data bytes
64 bytes from fe80::baca:3aff:fe9e:8556%eth0.25: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from fe80::c0da:e2ff:feec:6ac0%eth0.25: icmp_seq=1 ttl=64 time=2.83 ms (DUP!)
64 bytes from fe80::baca:3aff:fe9e:8556%eth0.25: icmp_seq=2 ttl=64 time=0.069 ms

--- ff02::1%eth0.25 ping statistics ---
2 packets transmitted, 2 received, +1 duplicates, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 0.055/0.985/2.831/1.305 ms

$ ip neigh ls dev eth0.25
fe80::c0da:e2ff:feec:6ac0 lladdr c2:da:e2:ec:6a:c0 REACHABLE

La dernière commande de la copie d'écran ci-dessus indique qu'au moins un voisin est joignable dans le domaine de diffusion correspondant au VLAN Management.

La syntaxe d'affectation d'une nouvelle adresse IPv6 à l'interface est la suivante :

$ sudo ip -6 addr add fe80:19::3/64 dev eth0.25

$ ip addr ls dev eth0.25
3: eth0.25@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 \
                        qdisc noqueue state UP group default qlen 1000
    link/ether b8:ca:3a:9e:85:56 brd ff:ff:ff:ff:ff:ff
    inet6 fe80:19::3/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::baca:3aff:fe9e:8556/64 scope link
       valid_lft forever preferred_lft forever

Q5.

Comment qualifier les échanges réseau dans le VLAN Management ?

Il faut, au minimum, que le routeur Hub et les deux routeurs Spoke puissent se contacter via le protocole ICMP. Cette opération sert à valider le raccordement physique entre les 3 routeurs ainsi que la configuration des ports de commutation Ethernet.

Voici un exemple de commande ping dans le VLAN Management.

$ ping -c2 fe80:19::1%eth0.25
PING fe80:19::1%eth0.25(fe80:19::1%eth0.25) 56 data bytes
64 bytes from fe80:19::1%eth0.25: icmp_seq=1 ttl=64 time=1.42 ms
64 bytes from fe80:19::1%eth0.25: icmp_seq=2 ttl=64 time=0.827 ms

--- fe80:19::1%eth0.25 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 0.827/1.124/1.422/0.299 ms

3.3. Activation du routage dans le noyau Linux

Quel que soit le rôle joué par le routeur, il est essentiel que la fonction de routage des paquets IPv4 et IPv6 soit activée dans le noyau Linux.

Q6.

Quel est l'outil qui permet de modifier dynamiquement les paramètres de fonctionnement du noyau Linux ?

Les paramètres du noyau Linux apparaissent dans l'arborescence du système de fichiers virtuel /proc. Il faut rechercher le paquet contenant les outils qui travaillent avec cette arborescence.

Le paquet qui fournit les outils de manipulation des paramètres du noyau Linux est procps. Il contient l'outil sysctl qui nous permet de configurer la fonction de routage dans le noyau Linux.

Q7.

Quels sont les fichiers ou répertoires qui contiennent les paramètres de configuration et leurs valeurs dans l'arborescence de configuration du système ?

Rechercher dans l'arborescence les références à l'outil de la question précédente.

$ sudo find /etc/ -name "*sysctl*"
/etc/sysctl.conf
/etc/sysctl.d
/etc/sysctl.d/README.sysctl
/etc/sysctl.d/99-sysctl.conf

C'est le fichier /etc/sysctl.conf qui contient les paramètres intéressants dans le contexte de ces travaux pratiques.

Q8.

Quels sont les paramètres à modifier pour que le routage des paquets IPv4 et IPv6 soit effectif ?

La consultation du fichier fait apparaître directement les paramètres de routage. Il suffit alors de décommenter les lignes intéressantes.

Voici le contenu du fichier /etc/sysctl.conf après modification des paramètres et après filtrage des lignes de commentaires et des lignes vides.

$ egrep -v '(^#|^$)' /etc/sysctl.conf
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.log_martians = 1

Q9.

Comment activer les paramètres définis dans les fichiers de configuration des paramètres du noyau Linux ?

Consulter les pages de manuels de la commande sysctl.

L'option --system de la commande sysctl permet de (re)parcourir tous les paramètres de tous les fichiers et répertoires de l'arborescence de configuration.

$ sudo sysctl --system
* Applying /etc/sysctl.d/99-sysctl.conf ...
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.log_martians = 1
* Applying /etc/sysctl.d/bindv6only.conf ...
net.ipv6.bindv6only = 1
* Applying /etc/sysctl.d/protect-links.conf ...
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /etc/sysctl.conf ...
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.log_martians = 1