Lors du TP précédent, vous avez vu comment on s'adresse statiquement sur un réseau.
C'est marrant de s'adresser en statique, ça vous laisse la liberté de choisir votre IP, et vous ne dépendez de personne en théorie.. ?
Ah bah si, voilà quelques mises en situation pour comprendre le problème :
Pour palier ce problème, les supers développeurs réseau ont créé ce qu'on appelle, le protocole DHCP.
DHCP : Dynamic Host Configuration Protocol.
Ce protocole agit au niveau de la couche applicative (couche 7 OSI, couche 4 TCP/IP), et il permet d'affecter dynamiquement des adresses IP aux hôtes sur un réseau.
On appelle par abus de langage, un serveur qui traite les requêtes DHCP, un serveur DHCP.
Un client qui veut une adresse IP envoie une requête DHCP sur le réseau, et le serveur DHCP répond avec une IP (et d'autres trucs).
En pratique, à MiNET on utilise un serveur DHCP qui est sur un serveur Linux, et qui discute avec une base de données, pour la simplicité du TP, on va utiliser un serveur DHCP qui sera sur le Switch. Chaque chose en son temps ne vous en faites pas
Sur le Switch, passez en mode configuration :
Switch# configure terminal
On va configurer un serveur DHCP sur le Switch :
Switch(config)# ip dhcp pool test
Switch(config-dhcp)# network 192.168.0.0 255.255.255.0 (les adresse qu'on veut donner : 192.168.0.0-254)
Switch(config-dhcp)# exit
Switch(config)# ip dhcp-server 192.168.0.1 (l'IP sur laquelle va être notre serveur)
Switch(config)# interface Vlan 1
Switch(config-interface)# ip address 192.168.0.1 255.255.255.0 (l'interface sur laquelle est l'IP du serveur)
Switch(config-interface)# no shutdown (on s'assure qu'elle est bien active)
Switch(config-interface)# end
Juste après cette digression, vous allez avoir des commandes de configuration qui nécessitent vos interfaces.
Mais dis moi Jamy, c'est quoi une interface ?
C'est simple : une interface réseau, c’est comme une “prise” par laquelle ton ordinateur communique avec le reste du monde.
Super, mais comment on les trouve sur son ordinateur ?
Sous Linux : Tapez la commande
ip a
Vous verrez alors quelque chose qui resemble à ça :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d4:f3:2d:d5:fb:4c brd ff:ff:ff:ff:ff:ff
altname wlp0s20f3
inet 192.168.110.34/18 brd 192.168.127.255 scope global dynamic noprefixroute wlo1
valid_lft 8926sec preferred_lft 8926sec
inet6 fe80::a4e1:b90c:1f12:904e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:da:e0:46:4f brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
10: enx00e04c6808c2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 00:e0:4c:68:08:c2 brd ff:ff:ff:ff:ff:ff
Ça veut dire quoi tout ce charabia ? Je comprends rien...
Décomposons :
lo
: C’est l’abréviation de loopback (bouclage). En gros, c’est comme si ton ordinateur avait une porte qui mène directement… à lui-même. Ça sert aux programmes qui veulent communiquer entre eux sur la même machine, sans passer par Internet ni le réseau local. L’adresse associée est toujours 127.0.0.1
(ou localhost
).wlo1
: c'est la "prise" Wi-Fi de ton PC. Le nom peut varier mais généralement, c'est l'interface qui commence par W (pour wireless). Après link/ether
, tu as l'adresse MAC de ta carte Wi-Fi (ce que tu devais mettre sur ADH6 inet
, tu as ton adresse IPv4 ; après inet6
, tu as ton adresse IPv6.enx00e04c6808c2
: c'est la "prise" ethernet de ton PC. Le nom peut aussi varier (plus classique : eth0
) mais ça commence probablement par E (pour Ethernet). Idem, tu vois son adresse MAC ethernet après link/ether
. Et tu aurais aussi les inet
mais tu peux déduire de mon exemple que je n'étais pas connecté en filaire quand j'ai fait ce TP docker0
: c'est une interface virtuelle ! Il s'agit de la "porte" que va utiliser docker (application de conteneurisation, je vais pas digresser sur ça) pour communiquer.Sous Windows : Tapez la commande
netsh interface show interface
Vous verrez alors quelque chose qui ressemble à ça :
Admin State State Type Interface Name
-------------------------------------------------------------------------
Enabled Connected Dedicated Ethernet
Enabled Connected Dedicated Wi-Fi
Enabled Disconnected Dedicated Ethernet 2
Enabled Disconnected Dedicated Local Area Connection* 3
J'ai pris volontairement une commande qui réduit un peu plus car vous aviez la commande :
ipconfig /all
Mais elle donne beaucoup plus de détails et et je voulais pas mettre un aussi gros pavé sur la page de TP lol. Mais vous avez le nécessaire pour la suite du TP : il faudra remplacer "INTERFACE" par ce qu'il y a dans la colonne "Interface Name"
Maintenant vous pouvez remettre votre PC en DHCP !
Sous Linux :
sudo ip addr flush dev INTERFACE
sudo dhclient INTERFACE (si vous n'avez pas dhclient, essayez avec en le rempaçant par dhcpcd)
Sous Windows :
netsh interface ip set address "INTERFACE" dhcp
Vous pouvez regarder quelle adresse vous avez obtenu avec :
ip a (Linux)
ipconfig (Windows)
Maintenant sur le switch, vous pouvez observez aussi des choses :
Switch# show ip dhcp binding
Switch# show ip dhcp conflict
Vous avez probabement mis un serveur sur chaque switch. En pratique, on en met qu'un seul dans le réseau, là vous pouvez observer que c'est celui qui répond le plus vite qui l'emporte.
Donc vous avez probablement des conflits : des adresses en double dans le réseau, ce qu'il ne faut pas si on veut que ça fonctionne correctement. Pour corriger :
et
Switch(config)# ip dhcp excluded-address 192.168.0.1 192.168.0.1
Switch(config)# end
#
et
choisissez deux adresses IP différentes pour vos deux switchs
Vous pouvez maintenant redemander des adresses IP (il y a des commandes pour ça aussi) : Linux :
sudo dhclient -r INTERFACE
sudo dhclient INTERFACE
Windows :
ipconfig /renew
On peut bien évidemment indiquer le routeur par défaut, pour pouvoir sortir du réseau, ainsi que les serveurs dns :
Switch(config)# ip dhcp pool test
Switch(config-dhcp)# default-server 192.168.0.1
Switch(config-dhcp)# dns-server 157.159.40.55 157.159.40.54
Bravo vous avez fait votre premier serveur DHCP