Exemple de DHCP sur un réseau fixe

Introduction

Pour ne pas avoir à manipuler la table de routage et la table ARP de l'hote, il est plus simple d'utiliser pour simuler le réseau des démons uml_switch que des dispositifs TUN/TAP.

La figure ci-dessous représente le réseau que nous allons simuler :

                          serveur DHCP                     "client"
                                |                             |
                                | eth0                        | eth0
                                |                             |
----réseau 192.168.100.0--------1-------------2---------------?---------
   (switch /tmp/reseau100)                    |
                                              | eth0
                                              |
                                          passerelle
                                              |
                                              | eth1
                                              |
---réseau 192.168.200.0---------1-------------2---------------?----------
  (switch /tmp/reseau200)       |                             |
                                | eth0                        |
                                |                             |
                           relai DHCP                      "nouveau"

Serveur DHCP

  1. Démarrez un démon uml_switch pour le réseau 192.168.100.0 :
    uml_switch -unix /tmp/reseau100
    
  2. Démarrez une machine UML en utilisant un noyau compilé avec CONFIG_FILTER et CONFIG_PACKET à yes et en utilisant le système de fichiers fs2 ou fs3 :
    Noyaux/linux-2.4.24-wifi/linux umid=serveurDHCP ubd0=cow_serveurDHCP,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau100
    
  3. Configurez l'UML conformément au schéma de réseau ci-dessus :
    ifconfig eth0 192.168.100.1
    
  4. Indiquez la configuration du serveur DHCP :
  5. Démarrez le serveur DHCP :
    dhcpd -d eth0
    

Client DHCP

  1. Démarrez une deuxième machine UML :
    Noyaux/linux-2.4.24-wifi/linux umid=client ubd0=cow_client,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau100
    
  2. Exécutez un ifconfig -a : eth0 n'a pas encore d'adresse.
  3. Demandez une adresse par DHCP :
    dhcpcd eth0
    
    Sur la machine UML où tourne le serveur DHCP, vous pouvez visualiser les échanges DHCP (car le serveur a été lancé avec l'option -d). Dans le fichier /var/state/dhcp/dhcpd.conf du serveur un enregistrement apparait. Enfin, en refaisant un ifconfig -a sur le client, on constate qu'eth0 a maintenant l'adresse 192.168.100.65.

Mise en place du deuxième brin du réseau

  1. Démarrez un deuxième démon uml_switch pour le réseau 192.168.200.0 :
    uml_switch -unix /tmp/reseau200
    
  2. Démarrez le noeud servant de passerelle :
    Noyaux/linux-2.4.24-wifi/linux umid=passerelle ubd0=cow_passerelle,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau100 eth1=daemon,,,/tmp/reseau200
    
  3. Configurez les interfaces de la passerelle :
    ifconfig eth0 192.168.100.2 up
    ifconfig eth1 192.168.200.2 up
    
  4. Activez le forward IP sur la passereelle :
    echo "1" > /proc/sys/net/ipv4/ip_forward 
    
  5. Démarrez le noeud servant de relai DHCP :
     Noyaux/linux-2.4.24-wifi/linux umid=relai ubd0=cow_relai,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau200
    
  6. Configurez l'interface du relai DHCP :
    ifconfig eth0 192.168.200.1 up
    
  7. Définissez la passerelle sur les noeuds des 2 brins du réseau : sur le réseau 100 :
    route add default gw 192.168.100.2
    
    et sur le réseau 200 :
    route add default gw 192.168.200.2
    
  8. Vérifiez que le relai DHCP parvient à pinguer le serveur DHCP.

Relai DHCP

Lancez le relai DHCP :

 dhcrelay 192.168.100.1

Démarrez une nouvelle machine attachée au démon du réseau 200 :

 Noyaux/linux-2.4.24-wifi/linux umid=nouveau ubd0=cownouveau,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau200
puis demandez depuis cette machine une adresse :
dhcpcd eth0