Bonjour,
je rencontre un problème dans la configuration du point d’accès wifi (“une passerelle”) vers mon réseau local.
1/ le but recherché :
Je souhaite que des machines se connectant au point d’accès wifi puissent avoir accès aux ressources(*) du réseau local.
Pour le moment je souhaite resté en “passerelle routée”.
(*) : pour le moment la seule et unique ressource mise à dispo est un serveur ssh (sur pc_B)
2/ la topologie
switch
|--- eth0 (192.168.0.77) pc_A
|--- eth0 (192.168.0.118) pc_B
|--- eth0 (192.168.0.180) pc_C (192.168.1.1) wlan0
^
.
.
.
"client_wifi (192.168.1.200)"
en résumé :
- trois machines sont branchées sur un switch par cable rj45.
- pc_A et pc_B ne possèdent qu’une seule interface réseau.
- pc_B possède un serveur ssh qui écoute sur le port 22.
- pc_C possède deux interfaces : eth0 et wlan0
- un client_wifi possède une interface réseau wifi
- ce switch n’est relié à aucun autre réseau (en particulier, il n’est pas relié sur ma box)
- toutes les adresses sont statiques (pas de DHCP sur le reseau) et définies dans le fichier “/etc/network/interfaces” de chaque machine (-> je n’utilise pas NetworkManager).
- il n’y a pas de DNS sur ce réseau (les machines sont contactées directement par leur adresses ip)
3/ ce qui est testé :
mike@pc_A $ ping 192.168.0.118 -> ok mike@pc_A $ ssh mike@192.168.0.118 -> ok mike@pc_B $ ping 192.168.0.77 -> ok mike@pc_A $ ping 192.168.0.180 -> ok mike@pc_B $ ping 192.168.0.180 -> ok mike@pc_A $ ping 192.168.1.1 -> destination host unreachable mike@pc_B $ ping 192.168.1.1 -> destination host unreachable mike@pc_A $ ping 192.168.1.200 -> destination host unreachable mike@pc_B $ ping 192.168.1.200 -> destination host unreachable mike@pc_C $ ping 192.168.1.200 -> ok [edit suite à question de Almtesh] mike@client_wifi $ ssh mike@192.168.0.118 -> failed (no route to host), (voir plus bas)
4/ un mot sur pc_C :
- ip_forward est bien positionné à “1” [edit : ip_forward en ipv4 /edit]
- [edit : la carte wifi est basée sur un chipset : ralink RT5370 avec le paquet non-free firmware-ralink installé sur la machine /edit]
- hostapd est configuré et est fonctionnel (le client_wifi s’authentifie bien sur pc_C)
- les POLICY sont toutes à ACCEPT (en particulier la chaîne FORWARD).
- aucune règle dans la table nat n’est définie pour le moment.
# route -n
Destination Gateway Genmask Flags Metric Ref USe IFace
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
5/ ce qui ne fonctionne pas :
a) quand le client wifi (un smartphone android équipé de “connectbot”, un client ssh) se connecte au réseau wifi diffusé par la passerelle pc_C, alors la tentative de connexion par le client ssh donne :
ssh mike@192.168.0.118
failed to connect to /192.168.0.118 (port 22) connect failed: EHOSTUNREACH (No route to host)
b) J’ai essayé d’ajouter 2 routes supplémentaires [edit: dans la table de routage de pc_C /edit] , mais cela n’a pas fonctionné (-> “la connexion du client_wifi au serveur ssh de pc_C n’est toujours pas possible”).
route add -net 192.168.1.0 gw 192.168.0.180
route add -net 192.168.0.0 gw 192.168.1.1
c) j’ai également essayé de mettre un règle dans la table nat, mais cela n’a pas résolu le problème (la connexion de client_wifi au serveur ssh sur pc_B n’est pas possible).
De plus, j’ai cru (mon niveau de compétences dans les route est nul) comprendre que l’ajout de règle dans la table NAT n’était pas une bonne solution (mais j’ai peut mal compris, ou sorti la citation de son contexte) :
Tu n’as pas besoin de NAT/masquerade sur un réseau privé.
Le NAT est parfois une solution, parfois la seule solution, mais toujours une mauvaise solution. La bonne solution, c’est le routage.
(extrait d’une réponse de Pascal Hambourg)
Si vous avez des pistes pour résoudre mon problème, un grand merci !
Si il manque des infos ou des résultats des commandes, n’hésitez pas à me demander.
mk