Configuration d’un serveur DHCP sur un routeur CISCO

Le protocole DHCP est un des protocoles les plus couramment utilisé dans les réseaux locaux. Nous pourrions résumer qu’un réseau local est un ensemble de machine qui s’échange des données. Nous avons vu tout au long des chapitres précédent que la communication nécessitait que les clients et les serveurs soit configuré et notamment qu’ils soient identifiés par une adresse réseau et un masque de sous-réseau. Il serait laborieux de configurer manuellement tous les équipements d’un LAN. Pour pallier cette problématique, nous allons nous appuyer sur le protocole DHCP (Dynamic Host Configuration Protocol), du moins pour les machines clientes de notre LAN. Le protocole DHCP permet à la fois l’attribution permanente d’adresses d’hôte, mais plus communément, le serveur DHCP attribue un bail temporaire d’adresses IP. Avec ces baux, le serveur DHCP peut récupérer des adresses IP lorsqu’un périphérique est retiré du réseau, en utilisant au mieux les adresses disponibles. DHCP permet également la mobilité. Par exemple, chaque fois qu’un utilisateur se déplace vers un nouvel emplacement avec une tablette (salle de réunion, visite clientèle, etc…), l’appareil de l’utilisateur peut se connecter à un autre réseau local sans fil, l’utilisation DHCP pour louer une nouvelle adresse IP dans ce LAN, et commencez à travailler sur le nouveau réseau. Sans DHCP, l’utilisateur devrait demander des informations à l’administrateur réseau du lieu où il se trouve et configurer les paramètres manuellement. Bien que DHCP fonctionne automatiquement pour les machines clientes, il nécessite une certaine préparation du réseau, avec une certaine configuration sur les routeurs. Dans certains réseaux d’entreprise, cette configuration de routeur peut être une commande unique sur un certain nombre d’interfaces LAN du routeur, qui identifie le serveur DHCP par son adresse IP, on parlera alors de relais DHCP. Dans d’autres cas, le routeur fait office de serveur DHCP, c’est ce cas que nous avons dans les box des FAI.

Fonctionnement du protocole DHCP

Dans un réseau local, lorsqu’une machine client se connecte au réseau, va chercher à obtenir une configuration réseau si aucune information n’a été renseigné par l’utilisateur. Cette recherche d’information passera par une requête DHCP qui est appelé DHCP Discover. Pour ce faire la trame DHCP Discover sera en mode de communication Broadcast.

Vu que la trame est en broadcast, elle sera dupliquée et envoyée sur tous les ports du switch à l’exception du port qui a reçu la trame.

Lorsqu’une machine du réseau reçoit la trame, deux choix sont possibles, soit elle n’est pas concernée par la requête et dans ce cas la trame sera supprimé, soit elle est concernée est dans ce cas, elle répond avec une requête DHCP Offer, qui proposera au client qui a envoyé la trame DHCP Discover une offre de bail. Cette communication pourra se faire en unicast du fait que la trame DHCP Discover qui a été reçu contenait l’adresse MAC source de l’expéditeur de la trame.

Dans cette offre, nous retrouverons l’adresse IP du serveur DHCP ainsi qu’une adresse IP est un masque de sous-réseau. Il faut noter que dans le cas où il existe plusieurs serveur DHCP dans le réseau local, le client peut recevoir plusieurs propositions.

Une image contenant texte, capture d’écran, diagramme, conception

Description générée automatiquement

Dès que le client, représenté dans les illustrations en vert, il annonce au réseau à travers une trame broadcast nommée DHCP Request qu’il est maintenant associé à un serveur DHCP.

Le serveur qui a été désigné comme serveur DHCP pour le poste client reçoit aussi cette information qu’il est le serveur DHCP désigné, il lui répondra à travers une trame DHCP « Ack » qu’il acte cette association en lui envoyant les options nécessaires à la configuration du réseau. Parmi ses options nous retrouverons l’adresse du routeur par défaut (la passerelle du lan), les adresses des serveurs dns, la durée du bail, c’est-à-dire combien de temps cette configuration lui sera attribué, etc…

Une image contenant capture d’écran, texte, diagramme, conception

Description générée automatiquement

La listes options proposées par le protocole DHCP sont disponible dans la RFC 2132

En résumé, nous pourrions indiquer que l’attribution des configurations réseau automatiques, s’appuient sur 4 trames :

  • DHCP Discover
  • DHCP Offer
  • DHCP Request
  • DHCP Ack

Un mémo-technique est souvent utilisé pour s’en rappeler : DORA.

Configuration d’un serveur DHCP sur un équipement CISCO

S’il est plutôt d’usage d’utiliser un serveur pour configurer le rôle DHCP, il n’en reste pas moins que cela peut se révéler pratique et moins coûteux d’installer un serveur DHCP sur un équipement réseau. En effet, prenant l’exemple d’un réseau de type SOHO, il serait relativement coûteux, voir disproportionné de mettre un serveur sur place. Ce type de réseau aura forcément besoin d’équipement réseau, ne serait-ce que pour se connecter à internet pour consulter sa messagerie. Par conséquent, il aura un équipement réseau de type routeur ou pare-feu. Ici, nous nous concentrerons sur le routeur (la configuration sera la même sur un switch de niveau 3). Nous partirons d’une topologie relativement simpliste avec une machine et routeur qui hébergera le rôle DHCP.

Une image contenant blanc

Description générée automatiquement

Configuration de l’interface Gig 0/0

Router>enable
Router#configure terminal
Router(config)#interface gig 0/0
Router(config-if)#ip address 192.168.0.254 255.255.255.0
Router(config-if)#no shutdown

Ensuite nous allons configurer notre serveur DHCP, il faut savoir qu’un serveur DHCP peut être serveur de plusieurs réseaux. Chaque réseau aura une étendue qui lui sera propre. Pour configurer notre serveur DHCP, nous allons commencer par créer notre étendue en lui attribuant un nom par exemple LAN.

 Router(config-if)#ip dhcp pool LAN

Ensuite, nous devons indiquer le réseau pour lequel, il sera amené à distribuer des configurations réseaux. Dans notre exemple, cela sera le réseau 192.168.0.0/24

Router(dhcp-config)#network 192.168.0.0 255.255.255.0

Nous terminerons par ajouter la passerelle de notre réseau et le serveur DNS de notre LAN.

Router(dhcp-config)#default-router 192.168.0.254
Router(dhcp-config)#dns-server 8.8.8.8

Notre serveur DHCP étant maintenant fonctionnelle, depuis ma machine cliente (un VPCS), je peux constater que mon serveur DHCP a bien été associé à mon client.

Relais DHCP

Nous avons vu plus tôt que le client, pour s’associer à un serveur DHCP, va commencer par envoyer une trame en broadcast or, comme nous l’avons déjà vu plus tôt, une trame de broadcast est limitée à son réseau local. Dans beaucoup de contexte d’entreprise, un vlan est dédié aux serveurs, donc par sur le même sous-réseau que les machines clientes. Nous devons donc permettre à notre trame de broadcast de pouvoir aller jusqu’à un autre réseau. Cette fonctionnalité est assurée par la fonctionnalité du relais DHCP.

Le mécanisme du relais DHCP permet d’encapsuler une trame DHCP Offer dans un paquet avec une destination prédéfini qui sera le serveur DHCP. Cela aura pour conséquence de transformer une communication broadcast (DHCP) vers une communication unicast.

Cela laisse sous-entendre que l’interface qui reçoit la trame devra être un relais entre la trame et le paquet qui sera envoyé au serveur DHCP distant.

Pour la mise en application partons de la topologie suivante :

Une image contenant texte, Police, capture d’écran, blanc

Description générée automatiquement

Dans ce lab, l’interface Gig 0/0 de RT-2 sera configurer via un serveur DHCP hébergé sur RT-3.

Configuration de RT-3

RT-3>enable
RT-3#configure terminal
RT-3(config)#interface gig 0/1
RT-3(config-if)#ip address 192.168.1.254 255.255.255.0
RT-3(config-if)#no shutdown
RT-3(config-if)#ip DHCP pool LAN-192.168.1.0
RT-3(dhcp-config)#network 192.168.1.0 255.255.255.0
RT-3(dhcp-config)#default-router 192.168.1.254
RT-3(dhcp-config)#dns-server 8.8.8.8
RT-3(dhcp-config)#ip DHCP pool LAN-192.168.0.0
RT-3(dhcp-config)#network 192.168.0.0 255.255.255.0
RT-3(dhcp-config)#default-router 192.168.0.254
RT-3(dhcp-config)#dns-server 8.8.8.8
RT-3(dhcp-config)#ip dhcp excluded-address 192.168.1.254
RT-3(config)#ip dhcp excluded-address 192.168.0.254

Noter que la commande « IP DHCP excluded-address » permet d’exclure du pool de distribution des adresses IP. On exclura les IP que l’on fixe sur des interfaces réseaux

L’interface qui recevra notre trame DHCP offer est l’interface gig0/0 de RT-1 qui aura comme adresse 192.168.0.254.

RT-1#enable
RT-1#configure terminal
RT-1(config)#interface gig 0/1
RT-1(config-if)#ip address 192.168.1.253 255.255.255.0
RT-1(config-if)#no shutdown
RT-1(config-if)#interface gig 0/0
RT-1(config-if)#ip address 192.168.0.254 255.255.255.0
RT-1(config-if)#no shutdown

L’interface gig 0/0 du routeur RT-1, sera chargé de relayer le message DHCP Offer vers RT-3, ce qui se traduira par la commande suivante :

RT-1(config-if)#interface gig 0/0
RT-1(config-if)#ip helper-address 192.168.1.254

Nous finirons par configure le routage, nous utiliserons le protocole de routage dynamique OSPF.

RT-1

RT-1(config)#router ospf 1
RT-1(config-router)#network 192.168.0.0 0.0.0.255 area 0
RT-1(config-router)#network 192.168.1.0 0.0.0.255 area 0

RT-2

RT-2(config)#router ospf 1
RT-2(config-router)#network 192.168.0.0 0.0.0.255 area 0

RT-3

RT-3(config)#router ospf 1
RT-3(config-router)#network 192.168.0.0 0.0.0.255 area 0

Testons maintenant la configuration.

RT-2(config)#interface gig 0/0
RT-2(config)#no shutdown
RT-2(config)#ip address DHCP

Après quelques secondes, vous devriez avec un message 


  %DHCP-6-ADDRESS_ASSIGN: Interface GigabitEthernet0/0 assigned DHCP address 192.168.0.3, mask 255.255.255.0, hostname RT-2

Retourner sur le routeur hébergeant le serveur DHCP pour lister les baux en cours.


  RT-3#show ip dhcp binding

Sécurité DHCP

DHCP Sniffing

Le DHCP est un protocole qui ne nécessite pas d’authentification, de ce fait, un client peut recevoir une configuration réseau de n’importe quel serveur DHCP se trouvant dans le LAN, notamment un serveur DHCP « pirate » (Usurpation DHCP). Cette attaque est connue sous le nom de « DHCP Spoofing ». Les conséquences peuvent être par exemple, un serveur proposerait une passerelle qui serait une interface ayant une sniffer ceux qui permettra de récupérer tout le trafic d’une ou de plusieurs machines. Il pourra aussi indiquer un faux serveur DNS permettant renvoyant sur des clones de site internet.

Une image contenant capture d’écran, diagramme

Description générée automatiquement

Une solution doit donc être mise en place pour empêcher ce type d’attaque. Cette contre mesure est le DHCP « snooping ». Cette solution visera à indiquer quel port pourra se voir retransmettre une trame DHCP offer qui sera le port sur lequel est connecté le serveur DHCP, soit dans l’illustration précédent l’interface Gig 0/0. Cette interface sera donc une interface de confiance, dans la configuration du commutateur nous allons donc devoir l’indiquer qu’elle est notre port de confiance.

Pour la mise en pratique, nous allons appuyer sur le schéma précédent, pour une question de simplicité, les serveurs DHCP seront installés sur des routeurs.

Configuration du DHCP (vert)

Router#configure terminal
Router(config)#hostname DHCP
DHCP(config)#interface gig 0/0
DHCP(config-if)#ip address 192.168.0.254 255.255.255.0
DHCP(config-if)#no shutdown
DHCP(config-if)#ip dhcp pool LAN
DHCP(dhcp-config)#network 192.168.0.0 255.255.255.0
DHCP(dhcp-config)#default-router 192.168.0.254
DHCP(dhcp-config)#dns-server 192.168.0.254

Configuration du DHCP PIRATE (rouge)

Router(config)#hostname DHCP-PIRATE
DHCP-PIRATE(config)#interface gig 0/1
DHCP-PIRATE(config-if)#ip address 192.168.0.253 255.255.255.0
DHCP-PIRATE(config-if)#no shutdown
DHCP-PIRATE(config-if)#ip dhcp pool PIRATE-LAN
DHCP-PIRATE(dhcp-config)#network 192.168.0.0 255.255.255.0
DHCP-PIRATE(dhcp-config)#default-router 192.168.0.253
DHCP-PIRATE(dhcp-config)#dns-server 192.168.0.253

Le serveur DHCP pirate se trouvant sur le même switch que le serveur, il répondra plus rapidement que le DHCP légitime et par conséquent le serveur DHCP pirate sera le serveur du client.

Une image contenant texte, capture d’écran, Police

Description générée automatiquement

Comme il a été noté précédemment, nous devons indiquer que le port de confiance est le gig 0/0 du commutateur ACCESS-1. Pour ce faire nous devons activer la fonctionnalité « IP DHCP snooping »

ACCESS-1(config)#ip dhcp snooping

Par défaut lorsque nous activons le DHCP snooping, l’option 82 « Option information » s’active. Cette option est nécessaire lorsque le commutateur est un relais DHCP, ce qui n’est pas notre cas. Il ne faut donc désactiver cette option.

ACCESS-1(config)#no ip dhcp snooping information option

Ensuite nous allons identifier le VLAN sur lequel le DHCP snooping va être opérationnel. Ici, nous n’avons pas créer de vlan donc nous sommes sur le VLAN par défaut, c’est-à-dire le VLAN 1.

ACCESS-1(config)#ip dhcp snooping vlan 1

Nous allons maintenant sélectionner l’interface qui sera notre interface de confiance, et nous la taguons comme tel.

ACCESS-1(config)#interface gig 0/0
ACCESS-1(config-if)#ip dhcp snooping trust

Sur notre client, nous libérons le bail DHCP qui nous a été fournit précédemment et nous demandons une nouvelle configuration réseau à notre serveur DHCP.