4. Configuration PPPoE d'un routeur Hub

Le rôle du routeur Hub, tel qu'il été défini dans la section précédente, est d'interconnecter un réseau local (LAN) qui donne accès à l'Internet et plusieurs réseaux étendus (WAN) d'extrémité. Dans le contexte de ces travaux pratiques, le routeur Hub assure aussi la fonction Broadband Remote Access Server (BRAS). C'est la raison pour laquelle il détient les adresses IPv4 et IPv6 à attribuer aux routeurs Spoke.

Ce routeur doit aussi gérer l'encapsulation des trames PPP dans Ethernet. Voir Section 2, « Interface Ethernet & protocole PPP ».

4.1. Côté réseaux étendus - WAN

Le protocole PPP n'a pas été conçu suivant le modèle Client/Serveur. Il suppose que deux processus pairs échangent des informations. Dans les questions qui suivent, le routeur Hub doit exiger que le routeur Spoke s'authentifie auprès de lui avant de délivrer les adresses de couche réseau.

Q10.

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.

$ aptitude search pppoe
i   pppoe     - Pilote PPP sur Ethernet
p   pppoeconf - configures PPPoE/ADSL connections

Le résultat de la commande aptitude show pppoe montre que c'est bien ce paquet qui répond au besoin.

Q11.

Quel est le rôle de l'outil contenu dans le paquet demandé à la question précédente relativement au démon pppd fourni avec le paquet ppp ?

Rechercher dans les pages de manuels de l'outil demandé à la question précédente.

L'outil pppoe-server gère directement l'encapsulation des trames PPP dans les trames Ethernet. Il communique ensuite les paramètres utiles au démon pppd qui fonctionne de façon totalement transparente vis-à-vis de la technologie du réseau sous-jacent.

Q12.

Quels sont les noms des deux sous-couches du protocole PPP qui apparaissent dans les journaux systèmes ? Quels sont les rôles respectifs de ces deux sous-couches ?

Consulter la page Point-to-Point Protocol.

La consultation des journaux système lors du dialogue PPP fait apparaître des informations du type suivant.

pppd[3262]: sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x46010ac>]
kernel: [  895.700115] NET: Registered protocol family 24
pppd[3262]: rcvd [LCP ConfReq id=0x1 <magic 0xcab9fecc>] 1
pppd[3262]: sent [LCP ConfAck id=0x1 <magic 0xcab9fecc>]
pppd[3262]: sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x46010ac>]
pppd[3262]: rcvd [LCP ConfAck id=0x1 <mru 1492> <magic 0x46010ac>]
pppd[3262]: sent [LCP EchoReq id=0x0 magic=0x46010ac]
pppd[3262]: peer from calling number 52:54:00:12:34:05 authorized
pppd[3262]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>] 2
pppd[3262]: rcvd [LCP EchoReq id=0x0 magic=0xcab9fecc]
pppd[3262]: sent [LCP EchoRep id=0x0 magic=0x46010ac]
pppd[3262]: rcvd [IPCP ConfReq id=0x1 <addr 10.0.0.1>]
pppd[3262]: sent [IPCP ConfAck id=0x1 <addr 10.0.0.1>]
pppd[3262]: rcvd [LCP EchoRep id=0x0 magic=0xcab9fecc]
pppd[3262]: rcvd [IPCP ConfNak id=0x1 <addr 10.67.15.1>]
pppd[3262]: sent [IPCP ConfReq id=0x2 <addr 10.67.15.1>]
pppd[3262]: rcvd [IPCP ConfAck id=0x2 <addr 10.67.15.1>]
pppd[3262]: local  IP address 10.67.15.1
pppd[3262]: remote IP address 10.0.0.1

1

La sous-couche Link Control Protocol (LCP) assure la configuration automatique des interfaces à chaque extrémité. Les paramètres négociés entre les deux hôtes en communication sont multiples : l'adaptation de la taille de datagramme, les caractères d'échappement, les numéros magiques et la sélection des options d'authentification.

2

La sous-couche Network Control Protocol (NCP) assure l'encapsulation de multiples protocoles de la couche réseau. Dans l'exemple donné, c'est le protocole IPv4 qui est utilisé ; d'où l'acronyme IPCP.

Q13.

Quels sont les en-têtes du dialogue qui identifient les requêtes (émises|reçues), les rejets et les acquittements ?

Consulter les journaux système contenant les traces d'une connexion PPP.

La copie d'écran donnée ci-dessus fait apparaître les directives Conf* pour chaque paramètre négocié.

  • ConfReq indique une requête.

  • ConfAck indique un acquittement.

  • ConfNak indique un rejet.

Q14.

Dans quel fichier sont stockés les paramètres d'identité et d'authentification utilisés par le protocole CHAP ?

Consulter les pages de manuels du démon pppd à la section AUTHENTICATION.

C'est le fichier /etc/ppp/chap-secrets qui contient les couples login/password utilisés lors de l'authentification.

Voici un exmple du contenu de ce fichier.

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
"spoke1"        *       "5p0k3-1-53cr3t"        *
"spoke2"        *       "5p0k3-2-53cr3t"        *

Q15.

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 /etc/ppp/pppoe-server-options qui contient la liste des paramètres utilisés lors du dialogue PPP.

Q16.

Quelles sont les options du protocole PPP qui doivent être implantées dans le fichier demandé à la question précédente ?

Consulter les pages de manuels du démon pppd et rechercher les paramètres correspondant à la liste suivante.

  • Afficher en détail toutes les étapes d'établissement de session dans les journaux système.

  • Référencer l'identifiant du compte utilisateur à utiliser lors de l'authentification du routeur Spoke. Cette option implique que le compte utilisateur existe sur le système et qu'il soit présent dans le fichier /etc/ppp/chap-secrets.

  • Imposer au routeur Spoke une authentification via le protocole CHAP (Challenge Handshake Authentication Protocol).

  • Préserver la route par défaut, et donc l'accès Internet, du routeur Hub.

  • Publier l'adresse IP du serveur DNS à utiliser pour la résolution des noms de domaines.

  • Activer l'utilisation des protocoles IPv6CP et IPv6.

Voici une copie du fichier /etc/ppp/pppoe-server-options qui contient la liste des paramètres demandés.

debug
login
require-chap
nodefaultroute
ms-dns 172.16.16.2
+ipv6

Q17.

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 de commande adduser.

# adduser --disabled-login --no-create-home spoke1

Q18.

Quels sont les paramètres à donner au lancement de l'outil pppoe-server pour qu'il délivre les adresses aux routeurs Spoke après authentification de ceux-ci ?

Consulter les options de la commande pppoe-server.

Voici un exemple de commande pppoe-server.

# pppoe-server -I eth0.26 -C BRAS -L 192.168.1.29 -R 192.168.1.30

Q19.

Quels sont les résultats obtenus une fois que la session PPP est établie et que les adresses de couche réseau ont été délivrées ?

Consulter les journaux système, la liste des procsessus, l'état des interfaces réseau et de la table de routage.

Attention ! Les résultats ne sont pertinents que si le dialogue avec un routeur Spoke est effectif.

  • Consultation des journaux système.

    pppoe-server[7]: Session 1 created for client e6:92:9d:7a:9a:98 (192.168.1.30) on eth0.26 using Service-Name ''
    pppd[7]: pppd 2.4.7 started by etu, uid 0
    pppd[7]: using channel 2
    pppd[7]: Using interface ppp0
    pppd[7]: Connect: ppp0 <--> /dev/pts/1
    pppd[7]: sent [LCP ConfReq id=0x1 <mru 1492> <auth chap MD5> <magic 0x7da53eb6>]
    pppd[7]: rcvd [LCP ConfAck id=0x1 <mru 1492> <auth chap MD5> <magic 0x7da53eb6>]
    pppd[7]: rcvd [LCP ConfReq id=0x1 <mru 1492> <magic 0xeea2b21a>]
    pppd[7]: sent [LCP ConfAck id=0x1 <mru 1492> <magic 0xeea2b21a>]
    pppd[7]: sent [LCP EchoReq id=0x0 magic=0x7da53eb6]
    pppd[7]: sent [CHAP Challenge id=0xdf <a67ec17d7f16afda88af52b81a1357b506b2260d7f754e>, name = "corellia"]
    pppd[7]: rcvd [LCP EchoReq id=0x0 magic=0xeea2b21a]
    pppd[7]: sent [LCP EchoRep id=0x0 magic=0x7da53eb6]
    pppd[7]: rcvd [LCP EchoRep id=0x0 magic=0xeea2b21a]
    pppd[7]: rcvd [CHAP Response id=0xdf <8d36d92d4559ee32aec3383bd725eb4f>, name = "spoke1"]
    pppd[7]: sent [CHAP Success id=0xdf "Access granted"]
    pppd[7]: Initializing PAM (2) for user spoke1
    pppd[7]: ---> PAM INIT Result = 0
    pppd[7]: Attempting PAM account checks
    pppd[7]: PAM Account OK for spoke1
    pppd[7]: PAM Session opened for user spoke1
    pppd[7]: user spoke1 logged in on tty  intf ppp0
    pppd[7]: local  LL address fe80::85c9:885e:3a4e:02ad
    pppd[7]: remote LL address fe80::399d:24c8:9deb:a7b7
    pppd[7]: local  IP address 192.168.1.29
    pppd[7]: remote IP address 192.168.1.30
  • Liste des processus.

    pppoe-server -I eth0.26 -C BRAS -L 192.168.1.29 -R 192.168.1.30
            \_ pppd pty /usr/sbin/pppoe -n -I eth0.26 -e 1:e6:92:9d:7a:9a:98 -S '' 
                    file /etc/ppp/pppoe-server-options 192.168.1.29:192.168.1.30 
                    nodetach noaccomp nopcomp default-asyncmap mru 1492 mtu 1492
                    \_ /usr/sbin/pppoe -n -I eth0.26 -e 1:e6:92:9d:7a:9a:98 -S
  • État des interfaces.

    $ ip addr ls dev eth0.26
    5: eth0.26@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::baca:3aff:fe9e:8556/64 scope link
           valid_lft forever preferred_lft forever
    
    $ ip addr ls dev ppp0
    9: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 \
                            qdisc pfifo_fast state UNKNOWN group default qlen 3
        link/ppp
        inet 192.168.1.29 peer 192.168.1.30/32 scope global ppp0
           valid_lft forever preferred_lft forever
        inet6 fe80::8478:a29b:3836:8f96/10 scope link
           valid_lft forever preferred_lft forever
  • Table de routage.

    $ ip route ls dev ppp0
    192.168.1.30 proto kernel scope link src 192.168.1.29

4.2. Côté réseau local - LAN

Le routeur Hub doit interconnecter les routeurs Spoke entre eux et donner accès à l'Internet via son interface réseau active sur le VLAN dédié à cet usage.

Ici, on reprend les questions de la Section 3.2, « Communications dans le VLAN Management » avec un changement de numéro de VLAN.

Q20.

Comment créer et configurer une sous-interface dédiée au VLAN Internet (numéro 4) ?

Consulter l' Antisèche réseau ou les pages de manuels man ip-link et rechercher les options du type vlan.

Voici les différentes instructions.

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

$ sudo ip link set dev eth0.4 up

$ sudo ip addr add 172.16.16.59/20 brd + dev eth0.4

$ sudo ip -6 addr add 2001:678:3fc:4::3b/64 dev eth0.4

Q21.

Comment valider les communciations dans le VLAN Internet (numéro 4) ?

L'hôte voisin le plus intéressant dans le VLAN Internet est le routeur. On vérifie à l'aide de requêtes ICMP que l'on peut le contacter.

Voici un exemple de résultats.

$ ping -qc2 172.16.16.2
PING 172.16.16.2 (172.16.16.2) 56(84) bytes of data.

--- 172.16.16.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 13ms
rtt min/avg/max/mdev = 0.634/0.643/0.653/0.027 ms

$ ping -qc2 2001:678:3fc:4::2
PING 2001:678:3fc:4::2(2001:678:3fc:4::2) 56 data bytes

--- 2001:678:3fc:4::2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 28ms
rtt min/avg/max/mdev = 0.628/0.634/0.640/0.006 ms