LINUX:Routeur

But

Un routeur (ou router) ou passerelle est un matériel qui sert à relier deux réseaux. Nous allons en concevoir un sous Linux.

Cet article va présenter un routeur un peu plus compliqué qu'un simple routeur reliant deux réseaux privés. Il reliera aussi Internet aux LANs privés.


Projet

En Belgique beaucoup de familles utilisent le service de l'ISP Proximus, anciennement Belgacom; c'est mon cas. Pour connecter le LAN privé familial à Internet, il fournit un appareil nommé BBOX 3. Dans la grande majorité des cas, ses prestations suffisent amplement. Mais quand on veut sortir un peu des sentiers battus, on est vite limité. C'est le cas si on veut créer deux LAN privés interconnectés, utiliser des VLANs, sécuriser notre DMZ,...

Le projet présenté dans le schéma ci-dessous, reprend plusieurs objectifs:

  • créer un routeur reliant trois réseaux, un public et deux privés
  • se relier à Internet via une liaison PPPOE (Point to Point Protocol over Ethernet)
  • aborder la problématique du mur de feu ou Firewall

Ce projet pourrait être étendu à l'inclusion d'une DMZ isolant un serveur WEB accessible depuis Internet. L'ajout de serveurs DHCP et DNS.

Ce projet est axé sur Linux; la distribution utilisée est Fedora 35. Nous nous sommes restreints à IPV4. Linux Fedora utilise Network Manager comme gestionnaire réseau. Un interface GUI existe et sera utilisé "nmtui" mais la configuration par ligne de commande existe également "nmcli".


Pour la partie privée, nous avons deux LANs:

  • le LAN n°1 par défaut fourni par la configuration de la BBOX 3: 192.168.1.0/24 (adressage IP de 192.168.1.0 à 192.168.1.255)
  • le LAN n°2 que l'on veut ajouter: 192.168.2.0/24 (adressage IP de 192.168.2.0 à 192.168.2.255)



La BBOX 3

Notre ISP Proximus nous fournit une BBOX 3 sur laquelle nous avons que peu d'options de configuration. Cette configuration est accessible via une interface WEB à l'URL http://192.168.1.1/.

L'accès à Internet par le protocole PPP y est autorisé grâce au nom d'utilisateur et du mot de passe associé qu'il vous a fourni.

Schématiquement, la BBOX 3 est constituée d'un modem qui nous relie à Internet par une ligne téléphonique du réseau commuté, d'un switch à 4 ports RJ45 auquel vous connectez vos machines privées et un module de routage qui les relie. Un serveur DHCP est actif par défaut ainsi une interface Wifi.

Par défaut, l'adressage du LAN privé est "192.168.1.0" avec un masque de sous-réseau de "24" qui correspond à "255.255.255.0".

Par la ligne téléphonique, vous accédez à Internet. A cette interface est attribuée une adresse IP publique dynamique après authentification intégrée au protocole PPP.

Une caractéristique intéressante additionnelle existe. On peut obtenir une seconde adresse IP publique dynamique. Pour y arriver on se connecte à une des 4 portes RJ45 de la BBOX 3 et on utilise le protocole PPPOE (Point to Point Protocol over Ethernet) en utilisant la même authentification utilisée ci-dessus.











Configuration des machines du LAN 192.168.2.0/24

Pour les besoins du projet, on ajoute une machine Linux sur le LAN n°2. Nous donnons l'exemple d'une machine Linux ayant une adresse IP fixe.

En utilisant l'utilitaire GUI "nmtui", sous le menu "Modifier une connexion", on voit la seule interface présente, la carte réseau de la carte mère, nommée "enp0s25".



On accède à l'écran suivant via le bouton "Modifier".



On adapte les paramètres comme décrit dans cet écran. On spécifie:

  • l'adresse IP de la machine; ici "192.168.2.2" avec le masque de sous-réseau "24", c'est à dire "255.255.255.0".
  • l'adresse IP de la passerelle par défaut la plus proche; c'est à dire celle du routeur que nous venons de créer sur la LAN n°2.: "192.168.2.1"
  • l'adresse IP d'un serveur DNS, ici celui de Proximus: "195.238.2.21"
  • le nom de domaine correspond à celui de votre machine
  • on désactive l'IPV6

On vérifie que l'interface est active. Attention, si vous la désactivez vous perdez la connexion réseau si vous êtes connecté via une console SSH. Il vous restera à aller la réactiver via une console directement connectée à la machine.



On peut vérifier la configuration avec les commandes suivante.

Pour l'adressage:

ifconfig

qui donne:

enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.2  netmask 255.255.255.0  broadcast 192.168.2.255
        ether 00:1c:c0:30:2a:38  txqueuelen 1000  (Ethernet)
        RX packets 113339  bytes 160301720 (152.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 59268  bytes 5115242 (4.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0x93200000-93220000
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Boucle locale)
        RX packets 222  bytes 29780 (29.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 222  bytes 29780 (29.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Pour la route:

route -n

qui donne:

 Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG    100    0        0 enp0s25
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s25

Pour le DNS, faire une recherche:

nslookup www.google.be

qui donne:

Server:         127.0.0.53
Address:        127.0.0.53#53
Non-authoritative answer:
Name:   www.google.be
Address: 172.217.168.195
Name:   www.google.be
Address: 2a00:1450:4007:81a::2003


Configuration des machines du LAN 192.168.1.0/24

Par défaut, ces machines du LAN n°1 ne peuvent accéder au LAN n°2. La solution la plus simple aurait été d'ajouter une route vers ce dernier dans la BBOX 3 mais cela nous est interdit.

Deux solutions sont possibles:

  • utiliser comme passerelle par défaut le routeur Linux que nous venons d'ajouter, sur notre machine, par exemple celle dont l'adresse IP est 192.168.1.2 et donc passer par l'adresse IP publique n°2 pour accéder à Internet. L'adresse IP de cette passerelle est "192.168.1.33" .
  • ajouter une route statique à cette machine

L'écran ci-dessous présente un exemple de configuration sous Linux via le gestionnaire GUI de Network Manager pour cette seconde solution. Via l'écran de configuration IPV4 de l'interface réseau lié au LAN n°1, une option nommée "Routage" permet de l'ajouter en y accédant via le bouton "Modifier". On accède alors à un écran repris ci-dessous. On a ajouté une entrée reprenant:

  • le réseau à atteindre
  • l'adresse IP de la passerelle la plus proche liée au LAN n°1
  • une métrique qui donne l'ordre de priorité des routes; ici la valeur a peu d'importance car le chemin est unique



Il vous faudra peut-être redémarrer la machine.

Vous pouvez vérifier la présence de la nouvelle route via la commande de ligne:

route -n

ou

netstat -rn

qui donne:

Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 enp0s25
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s25
192.168.2.0     192.168.1.33    255.255.255.0   UG    102    0        0 enp0s25




->retour au menu de Linux