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"
uml_switch -unix /tmp/reseau100
Noyaux/linux-2.4.24-wifi/linux umid=serveurDHCP ubd0=cow_serveurDHCP,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau100
ifconfig eth0 192.168.100.1
touch /var/state/dhcp/dhcpd.leases
/etc/dhcpd.conf
:default-lease-time 60; max-lease-time 150; option subnet-mask 255.255.255.0; option broadcast-address 192.168.100.255; option routers 192.168.100.2; ddns-update-style ad-hoc; subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.55 192.168.100.65; } subnet 192.168.200.0 netmask 255.255.255.0 { range 192.168.200.75 192.168.200.85; }
dhcpd -d eth0
Noyaux/linux-2.4.24-wifi/linux umid=client ubd0=cow_client,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau100
ifconfig -a
: eth0 n'a pas encore d'adresse.dhcpcd eth0Sur 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.
uml_switch -unix /tmp/reseau200
Noyaux/linux-2.4.24-wifi/linux umid=passerelle ubd0=cow_passerelle,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau100 eth1=daemon,,,/tmp/reseau200
ifconfig eth0 192.168.100.2 up ifconfig eth1 192.168.200.2 up
echo "1" > /proc/sys/net/ipv4/ip_forward
Noyaux/linux-2.4.24-wifi/linux umid=relai ubd0=cow_relai,SysFich/fs3/root_fs3 eth0=daemon,,,/tmp/reseau200
ifconfig eth0 192.168.200.1 up
route add default gw 192.168.100.2et sur le réseau 200 :
route add default gw 192.168.200.2
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/reseau200puis demandez depuis cette machine une adresse :
dhcpcd eth0