Bonjour,
Je travaille sur la mise en œuvre d’un routeur Wifi sous Debian.
Trois interfaces dans la machine :
[ul][li] Ethernet, connectée au modem ADSL : eth1[/li]
[li] Ethernet, pour le réseau local : eth0[/li]
[li] Réseau sans fil local : wlan0[/li][/ul]
J’ai installé les logiciels suivants :
[ul][li] Serveur DHCP : isc-dhcp-server[/li]
[li] Point d’accès : hostapd[/li][/ul]
J’ai activé le transfert de paquets dans le noyau (/etc/sysctl.d/forwarding.conf) :
net.ipv6.conf.all.forwarding=1
net.ipv4.ip_forward=1
Les interfaces réseau sont configurées (/etc/network/interfaces) :
[code]auto lo
iface lo inet loopback
auto eth0 wlan0
eth1 ==> Connexion ADSL
auto FAI-adsl
iface FAI-adsl inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider FAI-adsl
up ip -f inet6 route add default dev ppp0
eth0 ==> Réseau local filaire
iface eth0 inet static
address 192.168.1.225
netmask 255.255.255.0
wlan0 ==> Réseu local en Wifi
iface wlan0 inet static
address 192.168.1.226
netmask 255.255.255.0[/code]
Le serveur DHCP écoute sur les deux interfaces (/etc/default/isc-dhcp-server) :
Il est configuré pour attribuer des adresses dans une plage définie (/etc/dhcp/dhcpd.conf morceaux choisis) :
option domain-name "toto.net";
option domain-name-servers 192.168.1.226, 192.168.1.225;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.230 192.168.1.250;
#option routers 192.168.1.226; <-- J'ai essayé en activant la ligne
option routers 192.168.1.225; # eth0
option broadcast-address 192.168.1.255;
}
Et enfin, les règles iptables sont lancées au démarrage :
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat
iptables -A FORWARD -i wlan0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o wlan0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Voilà pour les fichiers de config, le décor est planté !
Ça fonctionne très bien (une adresse est bien attribuée par le serveur DHCP et je ping des adresses distantes) en filaire.
Par contre, en Wifi alors que l’ordinateur client se connecte bien au réseau sans fil et une adresse lui est attribuée par DHCP, impossible de sortir du réseau…
Sur la machine cliente :
Si connecté en wifi
root@chlore:~# route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
0.0.0.0 192.168.1.226 0.0.0.0 UG 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Si connecté en filaire
root@chlore:~# route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
0.0.0.0 192.168.1.225 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Et, encore plus étrange, si je fait en sorte d’avoir seulement l’interface Wifi fonctionnelle pour permettre une connexion d’une machine cliente, elle fonctionne !
Pourquoi ne pourrais-je pas avoir deux interfaces pour mon routeur ?!
Il doit y avoir quelque chose que j’ai loupé.
Auriez-vous une idée ?
Merci.