Activité pratique
Durée2h30La couche réseau
Lors de cette séance, nous allons utiliser l’émulateur kathara que vous devez avoir installé sur votre ordinateur. Si vous n’avez pas installé kathara, les intructions sont disponibles, Kathara nous sera utile pour émuler un réseau virtuel. En pratique Kathara sur des containers Docker. Chaque container peut émuler un équipement tel qu’un ordinateur, un switch, un routeur, un pare-feu, ou un serveur hébergeant des services. Nous allons ici créer au cours des différents exercices plusieurs réseaux virtuels dont il vous faudra configurer les équipements.
Vous allez effectuer plusieurs exercices au cours de cette séance. Il est conseillé de créer un répertoire (par exemple le répertoire lab-reseau-entreprise) sur votre machine, et d'y conserver les informations relatives à chacun des labs (fichiers de configurations etc.).
Deux PCs connectés l’un à l’autre
Deux PCs (pc1 et pc2) sont connectés directement l’un à l’autre par un câble Ethernet (appelé aussi câble RJ 45) disposant de 8 broches.
Avant de commencer, vous allez télécharger et deziper le fichier adhoc.zip
Vous allez vous placer dans le répertoire dézippé (en tapant la commande cd adhoc), et vous allez y trouver les fichiers suivants :
lab.conf
pc1.startup
pc2.startup
Remarque :
- Le fichier
lab.conf
permet de déterminer la topologie du réseau (équipements, interconnexion entre les équipements). - Les fichiers
pc1.startup
et respectivementpc2.startup
sont vides mais ils contiendront quand vous aurez fini l’exercice l’ensemble de commandes exécutées au démarrage pour configurer pc1 et respectivement pc2.
Contenu du fichier “lab.conf”
Ouvrez le fichier lab.conf
.
Le fichier lab.conf
stipule que pc1
et pc2
sont reliés au domaine de collision A avec leurs interfaces respectives eth0
:
pc1[0]=A
pc2[0]=A
Remarques : Un domaine de collision (dans l’exemple A) peut être vu comme matérialisant le lien (le câble) Ethernet séparant deux équipements.
Le fait que pc2 et pc1 aient le même nom d’interface réseau (eth 0) n’a aucune signification. Le nom de l’interface Ethernet configuré pour chaque PC lui appartient. On aurait pu par exemple pour PC1 attribuer eth 1 et pour PC2 eth 0 ou vis versa.
Démarrer le Lab
Pour démarrez le lab, placez-vous dans le répertoire adhoc
cd adhoc
Puis, taper la commande suivante qui va démarrer pc1 et pc2 :
kathara lstart
Vous allez voir apparaitre deux fenêtres (l’une pour pc1 et l’autre pour pc2) qui vous seront utiles par la suite pour lancer des commandes (de configuration) sur les équipements (pc1 et pc2 ici).
Configuration IP
Configurer les deux terminaux en leur attribuant des adresses IP et masques IP sur leurs interfaces réseaux (eth0
).
Dans la fenêtre de pc1, tapez la commande suivante qui assigne à l’interface eth0 l’adresse IP 192.168.1.2 et le masque /24:
ip address add 192.168.1.2/24 dev eth0
Dans la fenêtre de pc2, taper la commande suivante :
ip address add 192.168.1.3/24 dev eth0
Vérification
Afficher la configuration IP que vous venez d’établir. Taper la commande suivante pour pc1 et pc2 :
ip addr
Analyse du trafic
Analyser les messages échangés entre pc1 et pc2 au moyen du logiciel Wireshark
Pour pouvoir capturer les messages échangés, vous allez utiliser la commande tcpdump, puis, vous utiliserez wireshark pour pouvoir visualiser ces messages. Pour cela, suivez les étapes suivantes:
-
Dans le répertoire courant (à partir duquel vous avez lancé kathara), regardez si le répertoire ./shared/ existe. Si c’est le cas, passez à l’étape 2 directement. Dans le cas contraire, créez le répertoire ./shared/ en tapant la commande ‘mkdir shared’, et relancer le labo (‘kathara lclean; kathara lstart’, puis reconfiguration ip…) C’est un répertoire spécial, partagé entre toutes les machines virtuelles lancées par Kathara, et la machine hôte. Nous y placerons les fichiers pc1.cap et pc2.cap contenant les messages générés avec kathara pour pc1 et pc2.
-
Sur la fenêtre relative à pc1, taper la commande suivante :
tcpdump -s 0 -i eth0 -U -w /shared/pc1.pcap &
-
Sur la fenêtre relative à pc2, taper la commande suivante :
tcpdump -s 0 -i eth0 -U -w /shared/pc2.pcap &
Remarquetcpdump va générer un fichier pc1.cap ou pc2.cap (dans le répertoire shared crée à cet effet) qui correspond à du binaire (et donc non visualisable). Les options de tcpdump utilisées sont les suivantes :
-s 0 : extrait 2621144 octets du message échangé avant de passer aux prochains 2621144 octets;
-i : sélectionne l'interface (ici eth0) sur laquelle la capture doit avoir lieu, ce sera souvent une carte Ethernet;
-U -w : permet de rediriger chaque paquet capturé vers un fichier dont le nom est spécifié. -
Effectuer un ping entre les deux PCs pour tester la connectivité
Pour pc1, lancez la commande suivante :
ping 192.168.1.3
Pour pc2, lancez la commande suivante :
ping 192.168.1.2
Remarque : la commande ping envoie périodiquement une demande ECHO_REQUEST ICMP de manière à recevoir en réponse un message ECHO RESPONSE ICMP d’un hôte ou d’une passerelle. Elle est utile pour calculer le RTT (temps aller retours, en anglais Round Trip Time) par exemple.
-
Analyser les trafic reçu par pc1 et pc2
Après avoir lancé le logiciel wireshark et ouvert le fichier pc1.pcap (en sélectionnant dans le menu fichier, l’option ouvrir puis en sélectionnant le fichier pc1.pcap), analyser le contenu des messages échangés.
-
Mettre fin au TP
kathara lclean
Automatiser le configuration de pc1 et pc2
Ajouter les information ci-dessous dans le fichier pc1.startup
:
ip address add 192.168.1.2/24 dev eth0
tcpdump -s 0 -i eth0 -U -w /shared/pc1.pcap
ping 192.168.1.3
Ajouter les information ci-dessous dans le fichier pc2.startup
:
ip address add 192.168.1.3/24 dev eth0
tcpdump -s 0 -i eth0 -U -w /shared/pc2.pcap
ping 192.168.1.2
Démarrer le Lab
kathara lstart
Utilisation en live
Vous pouvez, de même que précédemment, lancer des pings etc. en utilisant pour cela les deux fenêtres qui sont apparues.
Mettre fin au Lab
kathara lclean
Astuce: Pensez toujours à mettre fin au TP. Si ce n’est pas le cas, les containers resteront actifs et ne pourront pas se relancer. Si cela arrive, vous pouvez aussi tout nettoyer avec un :
kathara wipe
### Correction
La correction est disponible après le TP à l’adresse suivante : adhoc-correction.zip
Dans le fichier README, vous trouverez des explications liées à la correction
Quelques concepts expliqués
L’adressage IPv4
Une adresse IPv4 (par exemple, 192.168.1.1
) se représente sous forme de quatre entiers de 8 bits séparés par des points.
Chaque entier est compris entre 0 et 255 (correspondant à 8 bits). Ces quatre entiers forment une adresse unique sur un réseau IPv4.
- Les bits les plus à gauche identifient le réseau.
- Les bits les plus à droite identifient l’équipement.
Masque de sous-réseau
Un masque de sous-réseau IPv4 (par exemple, 255.255.255.0
) se compose également de quatre octets. Il définit quelle partie de l’adresse correspond au réseau et quelle partie correspond à l’hôte.
- La partie du masque avec des bits à 1 indique la portion réseau.
- La partie avec des bits à 0 indique la portion hôte.
Exemple de masque : 255.255.255.0
(ou /24
)
- En binaire :
11111111.11111111.11111111.00000000
- Les 24 premiers bits sont pour le réseau.
- Les 8 derniers bits sont pour les hôtes.
Pourquoi et comment utiliser le masque
L’adresse IPv4 et le masque de sous-réseau permettent de déterminer si deux adresses sont dans le même réseau ou non. En appliquant une opération ET logique entre une adresse IP et un masque, on isole la partie réseau.
Exemple :
- Adresse IP :
192.168.1.10
=11000000.10101000.00000001.00001010
- Masque :
255.255.255.0
=11111111.11111111.11111111.00000000
- Partie réseau :
192.168.1.0
=11000000.10101000.00000001.00000000
Adresses IPv4 publiques et privées
Les adresses IPv4 publiques sont accessibles depuis Internet et doivent être uniques dans le monde entier. Les adresses IPv4 privées, en revanche, sont réservées pour une utilisation au sein d’un réseau local et ne sont pas routées sur Internet.
Plages d’adresses IPv4 privées (RFC 1918) :
10.0.0.0 – 10.255.255.255
(16 777 216 adresses)172.16.0.0 – 172.31.255.255
(1 048 576 adresses)192.168.0.0 – 192.168.255.255
(65 536 adresses)
L’adresse de broadcast
Une adresse de broadcast est utilisée pour envoyer un paquet à tous les hôtes d’un réseau. Elle se distingue par le fait que tous les bits de la portion hôte de l’adresse IP sont à 1.
Exemple :
- Adresse IP :
192.168.1.10
- Masque :
255.255.255.0
- Adresse de broadcast :
192.168.1.255
En binaire :
- Adresse IP :
11000000.10101000.00000001.00001010
- Broadcast :
11000000.10101000.00000001.11111111
Les adresses de loopback :
La plage d’adresse IPv4 127.0.0.0/8 (les adresses IPv4 comprises entre 127.0.0.0 et 127.255.255.255 donc) est attribuée/réservée à la boucle locale. L’adresse la plus utilisée dans cette plage est 127.0.0.1, qui représente généralement la boucle locale par défaut. Les adresses de boucle locale permettent de tester le fonctionnement des applications réseau ou des services localement (sur l’équipement sans qu’un seul paquet ne soit envoyé par une quelconque interface réseau) : elles permettent à des applications sur un équipement de communiquer entre elles directement.
Sous-réseaux
Un sous-réseau est une partie d’un réseau plus vaste. Le sous-réseau 192.168.1.0/24 fait partie du réseau 192.168.0.0/16 qui fait lui-même partie du réseau 192.0.0.0/8 par exemple.
Quizz
La commande ip
La commande ip
permet de visualiser les interfaces réseau disponibles et d’afficher des informations les concernant, telles que les adresses IP associées. Voici quelques-unes des informations disponibles :
-
Nom de l’interface : Par exemple, deux interfaces
lo
eteth0
dans notre exemple. -
État opérationnel de l’interface : Indiqué avec des drapeaux comme
UP
,DOWN
,UNKNOWN
,RUNNING
. D’autres drapeaux commeLOOPBACK
indiquent s’il s’agit d’une interface de boucle locale. Les capacités de l’interface (par exemple,MULTICAST
,BROADCAST
) sont également affichées. -
Adresse MAC : Pour l’interface
eth0
qui supporte Ethernet, la lignelink/ether
affiche :- L’adresse MAC unicast :
0e:a4:7e:56:05:59
- L’adresse MAC broadcast :
ff:ff:ff:ff:ff:ff
- L’adresse MAC unicast :
-
MTU (Maximum Transmission Unit) : Spécifie la taille maximale des paquets pouvant être envoyés sur l’interface (1500 octets pour Ethernet).
-
Queueing Discipline : Spécifie le mécanisme de mise en file d’attente utilisé (par exemple,
qdisc pfifo_fast
). L’algorithmefq_codel
est souvent utilisé pour gérer dynamiquement la longueur des files d’attente tout en assurant une distribution équitable des flux. La taille maximale de la file d’attente est de 1000. -
Adresses IP (le cas échéant) : Les adresses IP attribuées sont listées sous les lignes
inet
(IPv4) etinet6
(IPv6), avec leurs masques. Exemple :inet 192.168.1.10/24
indique une adresse IPv4 avec un masque de sous-réseau255.255.255.0
.
-
Adresses de diffusion et de multidiffusion : Les adresses de diffusion (
broadcast
) ou de multidiffusion (multicast
) pour IPv4 sont affichées lorsqu’elles sont disponibles.
Après avoir pris connaissance des informations relatives à l’interface lo lorsque l’on utilise la commande ip, répondez au quizz qui suit
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 135690 bytes 15761772 (15.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 135690 bytes 15761772 (15.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Deux ordinateurs reliés par un pont
Un pont est un équipement qui transmet les paquets entre deux ou plusieurs segments réseau.
Dans ce cas, un pont se comporte comme un commutateur de réseau virtuel, fonctionnant de manière transparente.
Les autres équipements du réseau n’ont pas besoin de connaître son existence. Des périphériques réseau physiques (par exemple, eth1
) et des périphériques réseau virtuels (par exemple, tap0
) peuvent y être connectés.
Objectif :
Relier un ordinateur pc1 à un serveur wserver, chacun à une interface d’un bridge (pont). Par abus de l’angage, nous l’appelons switch.
Note :
Les adresses IP de pc1
et wserver
ne diffèrent pas de celles utilisées dans l’exercice précédent.
Vous pouvez repartir du lab précédent en ajoutant un équipement correspondant au pont (appelé ici switch 1).
vous allez télécharger et deziper le fichier pont.zip
-
Configurer pc1 et wserver : pour assigner une adresse IPv4 et un masque à chacun, vous pouvez vous inspirer de l’exercice précédent.
-
Configurer le pont pour jouer le rôle de pont entre les deux domaines de collision.
2.1 Pour créer un nouveau pont (type bridge) nommé mainbridge, taper la commande suivante dans la fenêtre de switch :
ip link add name mainbridge type bridge
2.2 Pour rajouter 2 interfaces (eth0 et eth1) au pont, taper la commande suivante :
ip link set dev eth0 master mainbridge ip link set dev eth1 master mainbridge
2.3 Pour rendre opérationel le pont mainbridge (état up), taper la commande suivante
ip link set up dev mainbridge
-
Pour visualiser les informations contenues dans la table de commutation du pont:
La première commande ci-dessous établit que les informations contenues dans la table doivent y rester 600 sec. La deuxième ligne permet d’afficher la table de commutation.
brctl setageing mainbridge 600 brctl showmacs mainbridge
Voila ce qui devrait s’afficher : le numéro de port, l’adresse MAC le cas échéant, si les informations affichées sont relatives à l’interface locale : is local? = yes), depuis quand des trames ont transité.
On peut voir les informations relatives aux interfaces (is local = yes) du pont lui-même.
brctl showmacs mainbridge port no mac addr is local? ageing timer 1 00:00:00:00:00:b1 yes 0.00 1 00:00:00:00:00:b1 yes 0.00 2 00:00:00:00:00:b2 yes 0.00 2 00:00:00:00:00:b2 yes 0.00
Aucune communication n’a eu lieu. La commande demande d’afficher les adresses MACs connues : les adresses MACs des 2 interfaces du switch (00:00:00:00:00:b1 et 00:00:00:00:00:b2) s’affichent. La même ligne se répète deux fois car l’une des lignes correspond au VLAN1 utilisé pour des tâches administratives et configuré par défaut.
-
Effectuer un ping entre pc1 et wserver
Après ce ping, au contraire, on note (du fait qu’une trame aille de pc1 -> wserver et qu’une réponse de wserver-> pc1 soit envoyée en retour) que pc1 et wserver sont désormais visibles dans les tables du pont. Cette information disparaitra au bout de 600s.
brctl showmacs mainbridge port no mac addr is local? ageing timer 1 00:00:00:00:00:01 no 4.21 2 00:00:00:00:00:02 no 4.21 1 00:00:00:00:00:b1 yes 0.00 1 00:00:00:00:00:b1 yes 0.00 2 00:00:00:00:00:b2 yes 0.00 2 00:00:00:00:00:b2 yes 0.00
-
Etablir une communication entre un client UDP (pc1) et un serveur UDP (wserver)
Nous allons maintenant rajouter sur pc1 un code correspondant à un client UDP et sur wserver un code correspondant à un serveur UDP.
Vous allez ensuite exécuter le code client sur pc1 et le code du serveur sur wserver.
Rappel : sous linux, vous pouvez utiliser l’éditeur nano, et n’oubliez pas de rendre les deux fichiers exécutables.
Ainsi, sur wserver, taper les commandes ci-dessous pour éditer le fichier server.py et rajouter le code du serveur UDP, rendre exécutable le fichier server.py et enfin exécuter le code server.py :
nano server.py chmod +x server.py python3 server.py
Code pour le serveur UDP:
#/usr/bin/env/python3
#Python UDP Listener, listening on localhost 50000, change address
# to listen on other ip/port combos.
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', 50000))
while True:
data, address = sock.recvfrom(65538)
text = data.decode('ascii')
print('Connection from Client{} says {}'.format(address, text))
text = 'Your data was {} bytes long'.format(len(data))
data = text.encode('ascii')
# sock.sendto(data, address)
Vous remarquerez que la dernière ligne dans le fichier ci-dessous doit être décommentée si vous voulez que le serveur renvoie une réponse au client.
**Important: pensez bien à lancer le serveur UPD avant de lancer le client UDP. **
De même sur pc1, taper les commandes suivantes :
```
nano client.py
chmod +x client.py
python3 client.py
```
Code pour le client UDP :
```python
#/usr/bin/env/python3
#UDP Client
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
text = 'Hello World'
data = text.encode('ascii')
sock.sendto(data, ('192.168.1.3', 50000))
data, address = sock.recvfrom(65538)
text = data.decode('ascii')
print('The server {} replied {}'.format(address, text))
```
Remarque : le code ci-dessus envoie à wserver (adresse ip 192.168.1.3 sur le port 50000) le message Hello World.
-
Utiliser wireshark (et tcpdump) pour voir quels sont les messages qui sont échangés. Vous devez retouver des messages icmp (ping) et des messages UDP.
-
Observer les informations dans la table de commutation du pont.
### Correction
La correction est disponible après le TP à l’adresse suivante : pont-correction.zip
Dans le fichier README, vous trouverez des explications liées à la correction.
Réseau local IP
Nous considérons un réseau local IP constitué de 2 routeurs qu’il faut configurer manuellement dans un premier temps pour qu’ils connaissent les routes disponibles, puis, dans un second temps, pour qu’ils puissent acheminer les paquets par ces routes vers les utilisateurs finaux.
Le routage statique consiste à configurer manuellement les tables de routage d’un routeur en y ajoutant des routes. Cette méthode est utile dans les petits réseaux ou pour des chemins statiques spécifiques dans les grands réseaux. Cependant, l’une des limites du routage statique est que les routes ne changent pas à moins d’être modifiées manuellement.
Un routeur utilise les routes contenues dans sa table de routage pour acheminer un paquet vers une destination en suivant l’algorithme suivant :
-
L’adresse de destination se trouve-t-elle sur une interface locale (lien local, directement connecté) ? Si oui, le paquet est acheminé sur cette interface.
-
Existe-t-il une route pour la destination dans la table de routage ? Si oui, utiliser la route disponible qui correspond et est la plus spécifique (c-à-d avec le masque de réseau le plus long). Exemple : Si le paquet doit être envoyé à
192.168.1.3
et que deux routes existent dans la table de routage :192.168.0.0/16
192.168.1.0/24
La route192.168.1.0/24
sera utilisée car elle est plus spécifique.
-
Existe-t-il une route par défaut ? Si oui, envoyez le paquet au prochain saut spécifié.
-
Si aucune route n’a été trouvée : Supprimez le paquet et, éventuellement, avertissez l’expéditeur avec un message ICMP de type “Network unreachable”.
Remarque :
Une route par défaut est utilisée lorsque aucune autre route connue ne correspond à l’adresse IP de destination.
Lorsqu’un routeur joue le rôle de passerelle (gateway) vers Internet, il utilise l’adresse 0.0.0.0
pour rediriger tous les paquets inconnus.
Prise en main
Voici le réseau que nous souhaitons obtenir :
vous allez télécharger et deziper le fichier routage-init.zip
Après avoir décompressé ce fichier zip dans un répertoire de travail dédié, étudiez les fichiers de configuration de l’exercice (lab.conf) et des équipements. Vous verrez qu’il manque certaines configurations de pc3 et wserver. La configuration des routeurs (tables de routages) n’a pas été effectuée non plus. Nous avons dans notre scénario deux routeurs r1 et r2 que nous allons émuler. Pour cela, nous utilisons quagga et zebra qui permettent de gérer le routage IP et d’effectuer les mises à jour nécessaires dans notre cas de la table de routage du noyau, des consultations d’interfaces et une redistribution des routes entre différents protocoles de routage. Vous pouvez consulter le lien suivant pour plus d’information sur quagga : documentation.
Mise en place du Lab
Nettoyage préalable
Pour pouvoir sur utiliser zebra + quagga, nous allons devoir changer d’image (nous n’utiliserons plus l’image de base de kathara mais l’image correspondant à quagga). Il faut d’abord nettoyer l’image précédente.
Pour cela, taper la commande suivante :
kathara wipe
La commande wipe permet déteindre tous les équipements kathara qui pourraient encore s’exécuter.
Configuration de kathara
Comme nous avons besoin d’une image de machine virtuelle avec des services dédiés à un routeur (avec zebra + quagga), reconfigurer katara en tapant la commande suivante :
katara settings
Le menu suivant apparait. Attention, si le menue qui apparait est un peu différent, vous devrez faire avec et
. Sélectionner l’option Choose default image en tapant 2 (comme indiqué ci-dessous, toutefois,
sil le numéro correspondant n’est pas deux dans le menu qui apparait, taper le bon numéro)
. Sélectionner l’option kathara quagga en tapant 8 (comme indiqué ci-dessous, toutefois,
sil le numéro correspondant n’est pas deux dans le menu qui apparait, taper le bon numéro)
. Sélectionner l’option exit en tapant 16 (comme indiqué ci-dessous, toutefois,
sil le numéro correspondant n’est pas deux dans le menu qui apparait, taper le bon numéro)
Démarrage du Lab
Dans le répertoire de travail où vous avez décompressé le fichier “routage-init.zip”, lancez kathara:
kathara lstart
Votre objectif est maintenant de :
- configurer wserver puis pc3 qui ne sont pas configurés
- configurer r1 et r2
Pour vous aider, nous vous donnons des exemples dans ce qui suit. Ne les recopiez pas un exemple tel quel, il vous faut l’adapter/le modifier à vos cas.
Comment ajouter une route par défaut à un PC ?
Même des pcs ont besoin d’une table de routage. Cette table peut être très simple, et ne comporter qu’une seule indication : le seul est unique routeur à qui confier tous les paquets qui partent, autrement dit la route par défaut. C’est le cas dans la commande ci-dessous qui stipule que le routeur 192.168.1.1 jour le rôle de gateway par défaut et donne ainsi un accès à n’importe quel réseau:
ip route add default via 192.168.1.1
La commande ci-dessous au contraire donne accès au réseau 192.168.1.0/24 seulement via la passerelle (gateway) 190.1.1.1
ip route add 192.168.1.0/24 via 190.1.1.1
Il est ainsi possible pour un pc de définir plusieurs passerelles avec chaque passerelle donnant accès à un réseau particulier.
Comment afficher les routes par défaut d’un PC ?
La commande route -n
(ou ip route
) permet d’afficher la table de routage IP d’un système Linux.
Les champs principaux de la table de routage sont:
-
Destination : Indique le réseau de destination ou l’adresse IP correspondante. Par exemple,
0.0.0.0
correspond à la route par défaut (vers tout réseau inconnu). -
Gateway : Adresse IP de la passerelle (ou gateway) utilisée pour atteindre la destination. Si la destination est
0.0.0.0
, cela signifie qu’il n’y a pas de passerelle, et le trafic est envoyé directement sur le réseau local. -
Genmask : Masque de sous-réseau associé à la route.
-
Flags : Indiquent les caractéristiques de la route :
U
: La route est Up (active).G
: La route utilise une passerelle (gateway).H
: La route cible une adresse hôte (une seule machine).D
: Route créée dynamiquement par un protocole de routage.M
: Route modifiée par le kernel ou un protocole.
-
Metric : Priorité de la route. Les routes avec une métrique plus basse sont privilégiées. Par exemple, une métrique de
0
est prioritaire sur une métrique de10
. -
Ref : Rarement utilisé aujourd’hui, il compte le nombre de références à cette route.
-
Use : Nombre de fois où la route a été utilisée pour acheminer un paquet.
-
Iface (Interface) : L’interface réseau utilisée pour atteindre la destination.
Maintenant que vous savez comment ajouter un route sur un PC et comment afficher les routes, à vous maintenant de configurer wserver puis pc3 qui ne sont pas configurés et de vérifier que vos configurations sont bonnes !!! Une fois cela effectué, il vous reste encore à configurer r1 et r2, comme nous allons le voir ci-après
Comment configurer des routeurs?
Les routeurs sont dotés de logiciels pour construire leur table de routage. Voyons cela. Dans chaque routeur (r1 et puis ensuite faire la même chose pour r2), taper la commande suivante pour voir les ports utilisés par zebra lui-même ou par des protocoles de routage comme rip, bgp, ospf etc.
cat /etc/services | grep zebra
zebrasrv 2600/tcp # zebra service
zebra 2601/tcp # zebra vty
ripd 2602/tcp # ripd vty (zebra)
ripngd 2603/tcp # ripngd vty (zebra)
ospfd 2604/tcp # ospfd vty (zebra)
bgpd 2605/tcp # bgpd vty (zebra)
ospf6d 2606/tcp # ospf6d vty (zebra)
isisd 2608/tcp # ISISd vty (zebra)
Nous allons nous cantonner dans un premier temps à effectuer une configuration statique (c’est-à-dire manuelle) des tables de routage de chaque routeur sans utiliser de protocole de routage (comme ceux que nous avons cité ci-dessus). Dans la console de chaque routeur, taper la commande suivante :
telnet localhost zebra
Cette commande vous permettra de communiquer avec le deamon zebra (qui nous intéresse ici) et de pouvoir configurer le routage statiquement de chaque routeur. Le mot de passe à utiliser (pas très sécure…) est zebra. Les deux routeurs zebra sont maintenant opérationnels mais il vous reste à les configurer.
Comment configurer des routeurs zebra
Voici les principales étapes de configuration, suivies d'un exemple typique de configuration. Attention, ne tapez pas ces commandes telles quelles, il vous faut vous en inspirer et les adapter à votre cas pour configurer r1 et r2
-
Se placer dans un mode permettant de modifier le comportement du routeur : La commande
enable
permet de modifier le comportement d’un routeur, notamment en utilisant la commandewrite
pour sauvegarder les modifications effectuées.- Si cette commande n’est pas tapée, il n’est possible que de visualiser le comportement du routeur (mode lecture seule).
-
Se placer en mode de configuration : La commande
configure terminal
permet de placer le routeur en mode configuration.- Une fois activé, le prompt change en :
zebra(config)#
. - Pour désactiver le mode de configuration, tapez la commande
end
.
- Une fois activé, le prompt change en :
-
Configurer et activer l’adressage IP pour une interface donnée :
- Entrez dans le mode de configuration de l’interface à configurer, dans l’exemple ci-dessous, nous slélectionnons
eth0
:
interface eth0
- Configurez l’adresse IP (dans l’exemple ci-dessous, nous considérons l’adresse IP 192.168.1.34/27) avec la commande :
ip address 192.168.1.34/27
- Activez l’interface (si elle est désactivée) avec :
no shutdown
- Quittez la configuration de l’interface avec :
quit
- Vous pouvez ensuite continuer avec une autre interface ou mettre fin à la configuration en tapant la commande
write
pour que les configurations d’interface que vous avez effectuées deviennent opérationnelles et en tapant exit pour quitter le mode configuration :
write end
- Entrez dans le mode de configuration de l’interface à configurer, dans l’exemple ci-dessous, nous slélectionnons
Pour vous faciliter la tâche, voici un autre exemple typique correspondant à la configuration de l’adresse et du masque IP pour une interface donnée:
zebra# enable
zebra#configure terminal
zebra(config)#interface eth0
zebra(config-if)#ip address 192.168.1.34/27
zebra(config-if)#no shutdown
zebra(config-if)#link-detect
zebra(config-if)# quit
zebra(config-if)# write
zebra(config)#end
Attention : dans l'exemple ci-dessus, l'adresse 192.168.1.34 n'est pas l'adresse d'un réseau, mais l'adresse IP donnée à l'interface eth0 du routeur. Il est ainsi possible de faire un ping vers cette adresse IP. Maintenant que vous venez de comprendre de quelle manière vous pouvez configurer les interfaces d'un routeur, à vous de configurer les interfaces de vos routeurs r1 et r2.
Quelles sont les commandes de configuration importantes d’un routeur :
list
: Liste toutes les commandes disponibles.configure terminal
: Permet d’initier les configurations et de passer le routeur en mode de configuration.write terminal
: Affiche la configuration en cours.write
: Sauvegarde la configuration en mémoire.exit
: Quitte le mode actuel et revient dans le mode précédent.show
: Montre les informations de configuration.
Quelles sont les commandes liées aux interfaces dans un routeur:
interface ifname
: Sélectionne l’interface appeléeifname
(par exemple,eth0
).shutdown
: Désactive l’interface courante (après avoir sélectionné l’interface avecinterface ifname
).no shutdown
: Active l’interface courante.ip address address/prefix
: Configure l’adresse IPv4 et le préfixe de sous-réseau.no ip address address/prefix
: Supprime la configuration de l’adresse et du préfixe IPv4.
Comment configurer une route dans un routeur :
Il vous faut encore configurer une route au niveau du routeur r1 et une route au niveau du routeur r2 pour que les réseaux distants de chacun soient atteignables. En effet, au niveau de pc3, si vous tentez de faire un ping à pc1, vous verrez que cela ne marche pas.
Pour configurer des routes dans les routeurs r1 et r2, vous pouvez vous inspirer de l’exemple ci-dessous, dans lequel une route vers le réseau 10.59.0.0/24 passant par le prochain routeur (dont l’adresse IP la plus proche est 10.59.1.193) est ajoutée. Bien sur il vous faut dans votre cas adapter les code ci-dessous.
r1# configure terminal
r1(config)# ip route 10.59.0.0/24 10.59.1.193
r1(config)# quit
r1# show ip route
Quelles sont les commandes pour afficher des routes d’un routeur :
show ip route
: Affiche les routes IPv4.show ipv6 route
: Affiche les routes IPv6.show interface
: Affiche les informations sur les interfaces réseau.show ipforward
: Vérifie si la fonctionnalité de “faire suivre” (forwarding) est activée. Cela est indispensable pour un routeur.
Voici un exemple de commande pour rajouter une route vers le réseau destinataire 10.59.0.0/24 et le prochain saut (adresse IP du prochain routeur) est 10.59.1.193
Test final
Tout est bien configuré ?
Si oui, pc1 et pc3 peuvent maintenant se pinger, de même que wserver et pc3. Vérifiez !
Si oui, bravo. Sinon, recommencez…
Bonne configuration !
La correction est disponible après le TP à l’adresse suivante : routage.zip
Dans le fichier README, vous trouverez des explications liées à la correction.
Pour aller plus loin : exercice portant sur un plan d’addressage
Comme dans la plupart des disciplines, il est important de sortir son crayon et son papier avant de réfléchir au déploiment d’un réseau. Une des étapes correspond à la définition du plan d’adressage du réseau : en fonction des équipement courants, des futurs extensions d’équipements, et de facilité de maintenance, l’opérateur réseau doit définir qu’elles seront les adresse réseaux des différentes entités d’une organisation.
La société Arcad’oke est spécialisée dans les bars d’arcade et de karaoké. Elle est présente dans plus de 15 pays et a ouvert, jusqu’à présent, 170 établissements ainsi que 4 entrepôts destinés au stockage et à la réparation des équipements. Chaque année, elle ouvre 15 nouveaux établissements à travers l’Europe.
Dans le cadre de son nouveau siège social, l’entreprise a décidé de revoir l’interconnexion entre ses différents sites et entrepôts en utilisant un VPN IP fourni par un fournisseur d’accès européen. La société utilise des adresses privées pour ses réseaux internes.
Siège social
Situé à Sophia Antipolis, le nouveau siège social est composé de trois bâtiments distincts hébergeant les différents services de l’entreprise.
Le premier bâtiment abrite :
- Les bureaux de la direction (et leurs 45 équipements),
- Le département marketing (et ses 12 équipements),
- Les services de gestion des installations (et leurs 5 équipements),
- Les services administratifs (et leurs 4 équipements),
- Les services informatiques (et leurs 38 équipements),
- Une salle serveurs (et ses 128 équipements).
Le deuxième bâtiment abrite le département comptabilité (et ses 12 équipements).
Le troisième bâtiment abrite :
- Le département juridique (et ses 12 équipements),
- Le département développement commercial (et ses 12 équipements),
- Une seconde salle serveurs (et ses 64 équipements).
En plus de chaque VLAN dédié à chaque service, un VLAN est dédié au service de téléphonie sur IP (ToIP) de l’entreprise.
Bars
Chaque bar propose plusieurs salles de karaoké ainsi qu’une salle d’arcade. Les VLAN suivants sont disponibles :
- Un VLAN général (pour jusqu’à 32 équipements),
- Un VLAN pour les ordinateurs des employés (pour deux machines),
- Un VLAN pour l’équipement de karaoké (pour jusqu’à 15 équipements),
- Un VLAN pour les machines de la salle d’arcade (pour jusqu’à 40 équipements).
Les clients ont accès à un Wi-Fi gratuit, qui ne fait pas partie du réseau privé mais utilise l’accès Internet du fournisseur d’accès local. Entrepôts
Les entrepôts sont utilisés pour la réparation et le stockage des équipements de karaoké et d’arcade. Les VLAN suivants sont disponibles :
- Un VLAN général (pour jusqu’à 32 équipements),
- Un VLAN pour les ordinateurs des employés (pour deux machines),
- Un VLAN pour un Wi-Fi sécurisé utilisé à des fins logistiques.
L’objectif est de proposer un plan d’adressage cohérent pour le routage du trafic interne de l’entreprise. Ce schéma d’adressage sera évalué selon trois critères :
- La lisibilité des adresses, afin d’identifier facilement le réseau auquel elles appartiennent ;
- La capacité à agréger facilement les préfixes réseau appartenant au même site ou ouverts au même groupe d’utilisateurs ;
- La possibilité d’inclure de nouveaux réseaux dans le plan d’adressage sans remettre en question le principe de gestion.