Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Hostapd avec 2 interfaces Wlan ??
#1

Bonjour à tous,

J’essaie depuis une semaine de paramétrer mon raspberry B+ afin qu'il soit hotspot.

Pour explication, je cherche à créer un hotspot wifi avec 2 cartes Wifi.
Wlan0 => Hostapd et dnsmasq
RTL8192CU

Wlan1 => Auto connexion freewifi
RTL8187

Après avoir eu de nombreux problèmes avec ma carte 8192CU, j'ai trouvé ce tuto dans lequel on recompile le drivers et hostapd :
http://wannabe-nerd.tweakblogs.net/blog/...ry-pi.html

Mon Hotspot fonctionne avec les interfaces eth0 et Wlan0.

Maintenant que hostapd fonctionne, je souhaiterai modifier ma conf, mon Raspberry à pour but, de me servir dans une maison ou il n'y a pas de ligne ADSL, mais des hotspot freewifi ou orange à proximité.
J'ai trouvé des scripts pour que la connexion (et authentification) se fasse au boot de la machine.

Voici enfin ma question Smile, comment modifier ma conf afin de pouvoir utiliser un hotspot public et diffuser internet sur un réseau personnel?

Voici mes fichiers de conf :

/etc/network/interfaces :
Code :
#Boucle Local et carte Ethernet
auto lo
allow-hotplug eth0
iface lo inet loopback
iface eth0 inet dhcp

#HOTSPOT
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.200.1
netmask 255.255.255.0
broadcast 192.168.200.255
hwaddress ether e8:94:f6:0b:28:38

#Wlan1 connecte au freewifi
#auto wlan1=freewifi
#iface freewifi inet dhcp
#wireless-essid FreeWifi
#wireless-rate 11M
#wireless-key off
#pre-up ifconfig wlan1 mtu 1460 up
#post-up nohup /home/pi/freewifi.sh &
#post-down killall -q -KILL freewifi.sh
#haddress ether 00:e0:6c:81:9a:e9

# pont reseau
auto br0
iface br0 inet static
address 192.168.200.2
netmask 255.255.255.0
network 192.168.200.1
broadcast 192.168.200.255
gateway 192.168.1.254
bridge-ports eth0 wlan0

/etc/dnsmaq.conf
Code :
domain-needed
interface=wlan0
dhcp-range=192.168.200.50,192.168.200.150,12h


/etc/hostapd/hostapd.conf

Code :
ctrl_interface=/var/run/hostapd
###############################
# Basic Config
###############################
macaddr_acl=0 auth_algs=1
driver=rtl871xdrv
##########################
# Local configuration...
##########################
interface=wlan0
bridge=br0
hw_mode=g
ieee80211n=1
wme_enabled=1
channel=4
ssid=Raspi
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
#wpa=2
#wpa_psk=
#wpa_key_mgmt=WPA-PSK
#wpa_pairwise=TKIP
rsn_pairwise=CCMP
Après pas mal de recherche, je ne trouve pas grand chose pouvant se rapprocher de se que je recherche.
Autre question, L.orsque je test ma connexion freewifi indépendamment de Hostapd, ma carte affiche un état connectée, mais je n'arrive pas à résoudre google.fr !! Dois je faire une modification du fichier resolv.conf.

Merci d'avance à tout ceux qui liront mon post et surtout à ceux qui y contribueront, en espérant avoir été clair.

Tchao
Répondre
#2

Bonjour Flocky,

(J'ai rajouté le hotspot free à ma todo list parce que c'est une bonne idée)

Je suis pas super easy en configuration réseau mais je te fais ces commentaires :
Dans ton fichier interfaces, wlan1 est # commenté. On est d'accord qu'avec ça, wlan1 n'est pas up sur freewifi.
Le pont br0 est fait entre eth0 et wlan0, pas entre wlan1 (hostspot) et wlan0 (freewifi).
Pour le dns, soit tu installes un serveur bind9, soit tu modifies ton fichier resolv.conf. Mais je crois qu'à chaque reboot de ton raspi, tu devras faire la manip. Le mieux est de rajouter les dns de free dans ton fichier interfaces :
Code :
...
#HOTSPOT
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.200.1
netmask 255.255.255.0
broadcast 192.168.200.255
hwaddress ether e8:94:f6:0b:28:38
dns-nameservers 212.27.40.240 212.27.40.241
...
Puis de redémarrer l'interface avec un sudo ifconfig up wlan0.
Pourrais-tu nous montrer le résultat des commandes ifconfig, route -n ainsi que le script freewifi.sh que tu as utilisé. (Pense à #### ton ip publique si besoin. Cool )

Cool
Répondre
#3

Salut gambit,

Merci pour ta réponse.

Pour Wlan1 c'était normal, je faisais des tests. je viens de modifier ma config.
Hostapd ne fonctionnait que lorsque wlan1 n'était pas branchée et ne fonctionnait plus après un reboot. Une erreur de drivers rtl871xdrv !!
J'ai trouvé cette erreur, en faite mes 2 Interfaces Wlan s'inversaient au niveau de leur appélation !!!
J'ai essayer de fixer les nom de celles-ci avec udev sans succès. Donc la manière la plus simple était de modifier ma conf en inversant les cartes dans les fichiers de conf.

Voici donc ma nouvelle conf :

/etc/netwok/interfaces :
Code :
auto lo
auto eth0
iface eth0 inet dhcp
allow-hotplug eth0

#Wlan0 connecte au freewifi
auto wlan0=freewifi
iface freewifi inet dhcp
wireless-essid FreeWifi
wireless-rate 11M
wireless-key off
pre-up ifconfig wlan1 mtu 1460 up
post-up nohup /home/pi/freewifi.sh &
post-down killall -q -KILL freewifi.sh

#HOTSPOT
auto wlan1
allow-hotplug wlan1
iface wlan1 inet static
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.155
dns-nameservers 212.27.40.240 212.27.40.241

/etc/hostapd/hostapd.conf :
Code :
interface=wlan1
driver=rtl871xdrv
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=Raspi
channel=6
hw_mode=g
ieee80211n=1
wpa=2
wpa_passphrase=VERYSECRET
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
beacon_int=100
auth_algs=3
wmm_enabled=1

/etc/dnsmasq.conf :
Code :
domain-needed
interface=wlan1
dhcp-range=10.0.0.2,10.0.0.20,255.255.255.0,12h
dhcp-option=3,10.0.0.1



Donc je suis au stade ou lors que je boot, mon interface wlan0 se connecte en auto sur freewifi et wlan1 diffuse mon ssid et les connexions fonctionnent.

iwconfig wlan0 :
Code :
wlan0     IEEE 802.11bg  ESSID:"FreeWifi"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: F4:CA:E5:9C:10:7D  
          Bit Rate=11 Mb/s   Tx-Power=20 dBm  
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=70/70  Signal level=-8 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0



Wlan1 Diffuse mon ssid et la connexion fonctionne.

Gambit, Voici le script de connexion auto à freewifi. Apparemment la connexion ne fonctionne pas :

freewifi.sh :
Code :
#!/bin/sh

[ ! -f /sbin/iwconfig -o ! -x /sbin/iwconfig ] && exit 0
[ `/sbin/iwconfig 2>&1|grep -i freewifi|wc -l` -eq 0 ] && logger "Ce n'est pas FreeWifi ..." && exit 0

. /etc/freewifi.conf

wget -O - --post-data="login=$LOGIN&password=$PASSWORD" "https://wifi.free.fr/Auth" 2>/home/pi/connex.log "CONNEXION AU SERVICE REUSSIE" 1>/home/pi/connex.html  "Connection FreeWifi OK" && exit 0
logger "Erreur de connection FreeWifi" 3>>/home/pi/connex.log
exit 0


# Envoi par mail du log
mail -s  "Raspi Connexion " [email protected]  < connex.log

/etc/freewifi.conf
Code :
LOGIN=Utilisateur Linux ( pas obligatoire je pense )
PASSWORD=motdepasse
UTILISATEUR=ID freewifi


cat connex.log :

Code :
--2014-10-16 10:37:06--  https://wifi.free.fr/Auth
Resolving wifi.free.fr (wifi.free.fr)... 212.27.40.236
Connecting to wifi.free.fr (wifi.free.fr)|212.27.40.236|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `STDOUT'

     0K ..                                                     6.26M=0s

2014-10-16 10:37:14 (6.26 MB/s) - written to stdout [2877]

Donc je suis au stade ou mes 2 interfaces Wifi fonctionnent, l'une pour le hotspot et la seconde pour la connexion au freewifi.

Voici mes Problèmes actuels :

1- La connexion Freewifi semble ok, mais ping -I wlan0 google.fr ne fonctionne pas.
2 - Je rencontre des problèmes de connexion certainement lié à dnsmasq, le connexion au hotspot ne fonctionne pas à chaque fois !
3 - il faut que je me renseigne, pour que la connextion internet freewifi soit partagée via hostapd.


@+
Répondre
#4

Un premier truc saute au yeux : l'adresse de broadcast de wlan1 n'est pas bonne. Ça doit être 10.0.0.255 pour ton réseau local.

Cool
Répondre
#5

Merci pour l'info, je viens de corriger.

Voici les infos que tu m'as demandé dans ton premier post :

ifconfig :
Code :
eth0      Link encap:Ethernet  HWaddr b8:27:eb:76:fc:91  
          inet adr:192.168.1.15  Bcast:192.168.1.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:671 errors:0 dropped:0 overruns:0 frame:0
          TX packets:581 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:68659 (67.0 KiB)  TX bytes:87702 (85.6 KiB)

wlan0     Link encap:Ethernet  HWaddr 00:e0:6c:81:9a:e9  
          inet adr:10.59.49.115  Bcast:10.63.255.255  Masque:255.248.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:1410 (1.3 KiB)  TX bytes:2220 (2.1 KiB)

wlan1     Link encap:Ethernet  HWaddr e8:94:f6:0b:28:38  
          inet adr:10.0.0.1  Bcast:10.0.0.255  Masque:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1460  Metric:1
          RX packets:314 errors:0 dropped:7 overruns:0 frame:0
          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:13894 (13.5 KiB)  TX bytes:3687 (3.6 KiB)


route -n:
Code :
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 wlan1
10.56.0.0       0.0.0.0         255.248.0.0     U     0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
Répondre
#6

Je suis pas sur que ping -I wlan0 google.fr doive fonctionner. Par contre, on est d'accord que ping google.fr et ping -I wlan1 google.fr fonctionne?

Cool
Répondre
#7

Non aucune des deux solution fonctionnent.
Code :
ping -I wlan0 google.fr
PING google.fr (74.125.71.94) from 192.168.1.15 wlan0: 56(84) bytes of data.
^C
--- google.fr ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6003ms

$ ping -I wlan1 google.fr
Code :
PING google.fr (64.233.166.94) from 192.168.1.15 wlan1: 56(84) bytes of data.
^C
--- google.fr ping statistics ---
212 packets transmitted, 0 received, 100% packet loss, time 211008ms
Répondre
#8

Je retire ce que j'ai précedemment dit, mais le service dns fonctionne (résolution de non de domaine en adresse ip...) :

wlan0 --> ?google.fr --> 64.233.166.94 (dns de free?)
wlan1 --> ?google.fr --> 74.125.71.94 (dns de ton fai?)

(tu peux utiliser la commande host -v google.fr)

Il est passé où le bridge br0? Parce que là, ça fait wlan1>>localhost>>ta box>>internet si on suit le routage.

Cool
Répondre
#9

Oui le bridge à disparu, Je sais pas quel est le plus simple, passer par un bridge ou par des règles iptables.

Alors ça avance, donc maintenant, que je démarre le raspi sans la carte LAN, le ping google répond correctement.
J'ai donc rajouté ces règles iptables :

Code :
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Mon raspi est donc connecté à internet via freewifi an auto. lorsque je connecte un périphérique, Tablet ou smartphone, l'accès internet fonctionne quelques secondes ( ping ) puis plus rien. Quand je regarde sur le raspi, le ping google.fr ne donne plus rien. Comme si je perdais la connexion, et effectivement :

Code :
[email protected] ~ $ ping google.fr
PING google.fr (173.194.40.175) 56(84) bytes of data.
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=1 ttl=56 time=92.9 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=2 ttl=56 time=80.3 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=3 ttl=56 time=88.1 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=4 ttl=56 time=88.2 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=5 ttl=56 time=83.9 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=6 ttl=56 time=84.2 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=7 ttl=56 time=85.4 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=8 ttl=56 time=102 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=9 ttl=56 time=103 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=10 ttl=56 time=88.8 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=11 ttl=56 time=88.7 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=12 ttl=56 time=86.7 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=13 ttl=56 time=92.1 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=14 ttl=56 time=82.6 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=15 ttl=56 time=81.0 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=16 ttl=56 time=78.7 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=17 ttl=56 time=79.4 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=18 ttl=56 time=97.3 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=19 ttl=56 time=84.5 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=20 ttl=56 time=75.2 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=21 ttl=56 time=113 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=22 ttl=56 time=105 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=23 ttl=56 time=95.0 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=24 ttl=56 time=83.8 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=25 ttl=56 time=74.1 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=26 ttl=56 time=90.5 ms
64 bytes from par10s11-in-f15.1e100.net (173.194.40.175): icmp_req=27 ttl=56 time=89.2 ms
ping: sendmsg: Network is unreachable                                                                                    => Accès à Internet par le périphérique connecté !
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable

          RX bytes:43007 (41.9 KiB)  TX bytes:50065 (48.8 KiB)

ifconfig wlan0 :
Code :
wlan0     Link encap:Ethernet  HWaddr 00:e0:6c:81:9a:e9  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:234 errors:0 dropped:0 overruns:0 frame:0
          TX packets:410 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
Répondre
#10

Faut rester positif, il y a un progrès notable. Smile

Cool
Répondre
#11

Tout à fait d'accord !! Smile
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)