Les ponts simplifiés :
Il existe un projet sur sourceforge conçu spécialement pour votre situation. http://sourceforge.net/projects/bridger/ Il s'agit même d'un package deb.
En ce qui concerne les paquets "abandonnés" :
-
Avez-vous vérifié si iptables est défini sur drop par défaut ?
sudo iptables --list
devrait dire "ACCEPTER, ACCEPTER, ACCEPTER" pour une boîte de ce type. Si tel est le problème, désactivez-le. -
Est-ce que vous transférez même les paquets, mon frère ? Assurez-vous que la ligne "net.ipv4.ip_forward=1" n'est PAS commentée dans /etc/sysctl.conf (elle l'est par défaut), puis redémarrez votre réseau.
-
Le mode promiscuité n'est pas pris en charge par votre dongle sans fil. (ce qui signifie qu'il ne peut pas accepter les paquets qui ne lui sont pas destinés)
Pont pur contre pont partagé :
-
iface br0 inet dhcp indique un partagé pont, ce qui signifie que le pont lui-même obtient une adresse IP et peut être un point de terminaison pour le trafic.
-
Un pur pont n'obtient pas d'adresse IP et transfère uniquement le trafic entre les deux interfaces
-
Pont partagé Exemple de fichier de configuration /etc/network/interfaces (Debian/Ubuntu)
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Bridge between eth0 and wlan0 auto br0 iface br0 inet dhcp pre-up ip link set eth0 down pre-up ip link set wlan0 down pre-up brctl addbr br0 pre-up brctl addif br0 eth0 wlan0 pre-up ip addr flush dev eth0 pre-up ip addr flush dev wlan0 post-down ip link set eth0 down post-down ip link set wlan0 down post-down ip link set br0 down post-down brctl delif br0 eth0 wlan0 post-down brctl delbr br0
Redémarrez le réseau :sudo /etc/init.d/networking restart
Après avoir apporté des modifications complexes à la configuration du réseau, il est plus facile de simplement redémarrer plutôt que de s'assurer que tout a redémarré correctement lors du redémarrage.
Vous pensez avoir des problèmes de routage :
-
Éliminer le DNS comme cause en testant avec
ping 8.8.8.8
. Si cela fonctionne, vous avez probablement un problème DNS sur votre réseau. -
Vérifiez votre passerelle avec
sudo ip route
j'espère que vous voyezdefault via 192.168.1.1 dev br0 proto dhcp
(en supposant que votre passerelle est 192.168.1.1). S'il est manquant ou incorrect, corrigez-lesudo ip route add default via 192.168.1.1
. Testez à nouveau :ping 8.8.8.8
-
Renouveler votre adresse IP de pont partagé avec
dhclient br0
et retester avecping 8.8.8.8
-
Vérifiez vos interfaces "esclaves" avec
ifconfig
et assurez-vous que eth0 et wlan0 n'ont PAS d'adresses IP. Ils font maintenant partie du pont. Si tel est le cas, assurez-vous de les supprimer de tous les fichiers de configuration, définissez-les sur statique 0.0.0.0 ou quelque chose du genre.
Si AUCUN de cela ne fonctionne, essayez cette application de pont Debian, et si cela ne fonctionne pas, votre dongle sans fil ne prend pas en charge le mode promiscuité. (voir ci-dessus)
Si cela fonctionne à tout moment ici, redémarrez et assurez-vous que cela fonctionne toujours.
J'ai des ponts sans fil qui fonctionnent sur Debian Linux et Openwrt, donc je connais très bien ce problème.
Vous avez manqué une commande importante :vous avez oublié de dire à votre pilote sans fil de transmettre des trames à 4 adresses (parfois incorrectement/historiquement appelées WDS), ce qui est nécessaire pour le pontage 802.11/sans fil. Faites cela avec la commande "iw dev wlan0 set 4addr on". Utilisez une instruction "pre-up" dans votre fichier d'interface Debian sur le pont pour l'appliquer avant de lancer le pont. Notez que le mode de trame à 4 adresses nécessite la prise en charge des pilotes et que certains anciens pilotes ou matériels 802.11 merdiques peuvent ne pas le prendre en charge.
Je soupçonne également fortement que vos problèmes ont pu être compliqués par un bogue dans le noyau Linux qui affecte spécifiquement les interfaces pontées. J'ai moi-même rencontré ce bogue et j'ai dû compiler mon propre wpa_supplicant à partir des sources car la version de Debian est ancienne et affectée. wpa_supplicant et hostapd partagent une base de code commune, mais je ne suis pas tout à fait sûr que cela affecte aussi bien hostapd que wpa_supplicant.
Il existe une solution de contournement pour résoudre le problème ici :
https://w1.fi/cgit/hostap/commit/?id=e6dd8196e5daf39e4204ef8ecd26dd50fdca6040
J'ai l'impression que c'est dans la version 2.5, et je sais que c'est dans la source 2.6 actuelle. La version actuelle de Debian est la 2.4, qui est cassée. Veuillez harceler le projet Debian pour mettre à jour leurs packages wpasupplicant et hostapd.
Voici un exemple de configuration pour un client de pont sans fil utilisant WPA/WPA2 avec un pont sans fil entre les interfaces wlan0 et eth0, l'hôte obtenant une adresse DHCP sur l'interface br0 (remplacez "dhcp" par "manual" pour aucune adresse IP). Dans une situation où vous souhaitez être l'AP, incluez les commandes interface=et bridge=dans hostapd.conf et omettez les commandes wpa-* ci-dessous.
Dans votre fichier /etc/network/interfaces :
allow-auto br0
iface br0 inet dhcp
bridge_ports wlan0 eth0
bridge_stp off
bridge_waitport 5
bridge_fd 0
wpa-ssid mynetwork
wpa-psk abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123
wpa-iface wlan0
wpa-bridge br0
pre-up iw dev wlan0 set 4addr on
post-down iw dev wlan0 set 4addr off
Et assurez-vous que votre wpa_supplicant est la version 2.5 ou ultérieure. Cela ne fonctionnera pas avec wpa_supplicant 2.4 et les versions actuelles du noyau.
Je dois également noter qu'il existe actuellement un bogue de course dans ifup où les interfaces de pont peuvent ne pas apparaître au démarrage, mais c'est un tout autre problème.
Vous semblez avoir besoin d'un transfert IP.
essayez cat /proc/sys/net/ipv4/ip_forward
Si c'est 0
problème :echo 1 > /proc/sys/net/ipv4/ip_forward