Passerelle entre eth0 et wlan0

Tags: #<Tag:0x00007f46a79ed190>

Bonjour à tous,

je suis tombé sur plusieurs sujet ayant le même genre problème, mais je n’ai jamais réussi avec leur indication. Si vous voulez bien me guider pour réaliser ceci, je vous en remercie d’avance:

J’ai installé un Access point sur ma raspberry (wlan0), j’ai également une camera IP connecté à celle-ci en Ethernet.
Depuis mon Pc, j’aimerais, en passant par le réseaux Wifi (wlan0), accéder à ma camera.

Pour accéder au paramètre de la camera, j’ai juste besoin de son adresse IP sur une page web ou bien sur un logiciel.

Il faut que je créer un pont entre mon réseau eth0 et wlan0 mais toute mes tentatives échoues (sans aucun doute dû à mon manque de savoir que je vais essayer de combler grâce à vous)

j’ai déjà testé plusieurs choses du style bridge-utils, iptables, ip_forward = 1, mais sans réussite.

Donc je suis à votre écoute si vous voulez bien m’aider :smiley: Merci.

Bonjour,
En fait, ce que tu veux, c’est que ton Raspberry fasse un pont entre le réseau câblé et le wifi, est-ce exact ?
Normalement, tu n’as pas besoin d’iptables, et il me semble qu’il n’y a même pas besoin d’activer le forwarding.
Peux-tu nous donner ta configuration réseau sur le Raspberry ?

Salut,
Oui c’est ça, mais les “bridge” que j’ai pu trouver et tester, je n’arrive pas à les faire fonctionner comme il faut.

Voici mon /etc/network/interfaces:

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan0
iface wlan0 inet static
    address 172.24.10.1
    netmask 255.255.255.0
    network 172.24.10.0
    broadcast 172.24.10.255

Et ma configuration Hostspot /etc/hostapd/hostapd.conf:

# This is the name of the WiFi interface we configured above
interface=wlan0

# Creat a bridge for connect Eth0 & Wlan0
#bridge=br0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=Pi3-32Gb-AP

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

Mon dns /etc/dnsmasq.conf:

interface=wlan0      # Use interface wlan0
listen-address=172.24.10.1 # Explicitly specify the address to listen on
bind-interfaces      # Bind to the interface to make sure we aren't sending thi$
server=8.8.8.8       # Forward DNS requests to Google DNS
domain-needed        # Don't forward short names
bogus-priv           # Never forward addresses in the non-routed address spaces$
dhcp-range=172.24.10.50,172.24.10.150,12h # Assign IP addresses between 172.24.$

Et mon iptables /etc/iptables.ipv4.nat:

# Generated by iptables-save v1.4.21 on Wed Apr 12 13:48:21 2017
*filter
:INPUT ACCEPT [113:9507]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3:228]
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
COMMIT
# Completed on Wed Apr 12 13:48:21 2017
# Generated by iptables-save v1.4.21 on Wed Apr 12 13:48:21 2017
*nat
:PREROUTING ACCEPT [15:2105]
:INPUT ACCEPT [15:2105]
:OUTPUT ACCEPT [4:304]
:POSTROUTING ACCEPT [4:304]
-A POSTROUTING -o wlan0 -j MASQUERADE
COMMIT
# Completed on Wed Apr 12 13:48:21 2017

Voici tous ce que j’ai fait pour mon hotspot. Il n’est pas nécessaire de configurer autant de fichier pour un AP je pense mais j’ai suivie ce tuto: https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/

Merci de ton aide

Salut.

Il n’y a aucun bridge dans cette configuration. Le problème vient peut-être de là…

Hein ? Je ne comprend pas, j’ai peut-être besoin d’un shéma.

Donc, de ce que je comprend de ta configuration, ton raspi a trois interfaces, tu as eth0 qui est relié à ta caméra, wlan1 est relié à un point d’accès et wlan0 sert de point d’accès.
Les interfaces eth0 et wlan1 n’ont absolument aucune configuration réseau, ce qui n’est plus ou moins utile que pour faire des captures de paquets.
L’interface wlan0 fourni un point d’accès “Pi3-32Gb-AP” avec, dessus, un serveur DHCP et un serveur DNS qui renvoie toutes ses requettes nul part (parce qu’il n’a pas accès à Internet pour joindre 8.8.8.8).
Tu veux faire quoi de ça ?

Oui ma raspi a bien 3 interfaces.
Eth0: connecté à une camera IP
Wlan0: qui me sert d’AP
Wlan1: qui me sert d’accès internet pour les MAJ. (uniquement) C’est un dongle qui sera viré par la suite

Ensuite cela ne met d’aucune utilité d’avoir ce serveur DNS (j’ai simplement suivie le tuto pour être certain que cela fonctionnerais bien), mon réseau accès point n’a pas besoin d’être relié à internet.
Le seule but de ce réseau et d’échanger des data avec d’autres appareils connectés sur ce réseau.

Depuis mon Pc je me connecte au réseaux Pi3-32Gb-AP. A partir de ce réseau j’aimerais accéder à l’IP de la camera donc en reliant wlan0 et eht0.

J’ai essayé de donné une IP fixe à Eth0 (172.24.11.1) dans interfaces mais quand je fait un ifconfig son IP est (169.254.51.49).
Ensuite j’ai mis un pont Br0 entre eth0 et wlan0, avec un ifconfig celui-ci était visible mais aucun moyen d’accéder a l’IP indiqué, à celui de eth0 ou bien de la camera.

Je sais pas trop si c’est claire les tests que j’ai fait, mais sur ce que je t’ai montré tout est à l’état d’origine sans pont. Car justement cela ne fonctionné pas.

Si tu as une méthode pour relié wlan0 et eth0 afin que j’accède au réseaux ethernet depuis le réseau wifi?

OK, donc, je te conseille un truc de ce genre pour le fichier /etc/network/interfaces :

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan0
iface wlan0 inet manual

auto br0
iface br0 inet static
    address 172.24.10.1
    netmask 255.255.255.0
    bridge_ports eth0 wlan0

Ou, si tu n’a pas besoin d’accéder au raspi :

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan0
iface wlan0 inet manual

auto br0
iface br0 inet manual
1 J'aime

Ok, du coup dans le hostapd.conf, je déclare br0 au lieu de wlan0?

j’ai du mal a concevoir le fonctionnement.
(J’ai besoin d’accéder à ma pi du coup)

Pas du tout, ce n’est pas le pont qui fait point d’accès, c’est toujours wlan0. En fait, les interfaces eth0 et wlan0 ne sont que le support physique pour le réseau. Elles sont reliées par le pont br0. Après, si tu veux que ton raspi ait une adresse IP, il faut la définir sur le pont br0.

Merci de ton aide, je comprend de mieux en mieux.

J’ai tout repris à zéro pour l’accès point du coup,
j’ai configurer mon hostapd comme celui que je t’ai montré, j’ai utiliser ta config interfaces.

j’ai encore quelques questions si tu veux bien:
- Dans mon dns, je déclare mon dhcp-range=172.24.10.50,172.24.10.150,12h comme avant?
ou bien je met une autre plage d’IP sachant que c’est br0 qui à l’IP 172.24.10.1 ?
- Quand je me connecte à mon accès point, je ne parvient pas à me connecter à un réseaux de ma PI
ifconfig:

br0       Link encap:Ethernet  HWaddr b8:27:eb:3f:9c:01
          inet adr:172.24.10.1  Bcast:172.24.10.255  Masque:255.255.255.0
          adr inet6: fe80::ba27:ebff:fe3f:9c01/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0
          TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:1587 (1.5 KiB)  TX bytes:13880 (13.5 KiB)

eth0      Link encap:Ethernet  HWaddr b8:27:eb:3f:9c:01
          inet adr:169.254.48.95  Bcast:169.254.255.255  Masque:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0
          TX packets:109 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:1587 (1.5 KiB)  TX bytes:22738 (22.2 KiB)

lo        Link encap:Boucle locale
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:203 errors:0 dropped:0 overruns:0 frame:0
          TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1
          RX bytes:16896 (16.5 KiB)  TX bytes:16896 (16.5 KiB)

wlan0     Link encap:Ethernet  HWaddr 74:da:38:b9:26:62
          inet adr:169.254.11.149  Bcast:169.254.255.255  Masque:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:912 errors:0 dropped:0 overruns:0 frame:0
          TX packets:280 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:164362 (160.5 KiB)  TX bytes:39115 (38.1 KiB)

Mon accès point ne fonctionne pas, j’ai oublié quelques choses?
Lorsque je suis connecté a l’AP, je me connecte bien à l’@IP de Wlan0 et non celle de Br0?

Tu as bien laissé wlan0 comme interface pour hostap ?

Oui, mais tu changes la valeur de l’option interface pour mettre br0 et tu me vires la ligne listen-address=172.24.10.1. La plage doit rester dans le même sous-réseau.

Donc, au risque de me répéter, les commandes ifconfig, arp, route et iwconfig sont obsolètes depuis plus de dix ans, merci d’utiliser les commandes ip et iw à la place.
C’est bizarre, tes interfaces eth0 et wlan0 ont une adresse IPv4 alors qu’elle sont en manual, tu peux me donner le retour de la commande ip a, ainsi que brctl show après avoir redémarré ton raspi ?

1 J'aime

Oui j’ai bien laissé wlan0.

C’est fait.

Je ne suis vraiment pas à jour du coup^^ j’utilise constamment “ifconfig”

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether b8:27:eb:3f:9c:01 brd ff:ff:ff:ff:ff:ff
    inet 169.254.48.95/16 brd 169.254.255.255 scope global eth0
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:6a:c9:54 brd ff:ff:ff:ff:ff:ff
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 74:da:38:b9:26:62 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.85/24 brd 192.168.1.255 scope global wlan1
       valid_lft forever preferred_lft forever
    inet6 fe80::b03e:1590:e47e:b1bf/64 scope link
       valid_lft forever preferred_lft forever
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b8:27:eb:3f:9c:01 brd ff:ff:ff:ff:ff:ff
    inet 172.24.10.1/24 brd 172.24.10.255 scope global br0
       valid_lft forever preferred_lft forever
    inet 169.254.5.162/16 brd 169.254.255.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe3f:9c01/64 scope link
       valid_lft forever preferred_lft forever

eth0 à toujours une ip mais c’est surement dû à la camera qui y es connecté et qui à une ip fixe. Un rapport, je sais pas du tout.

Non, pas du tout, les adresses 169.254.0.0/16 sont dans le réseau réservé au service avahi pour l’autoconfiguration.
Et sinon, le pont est bien monté ? Elle dit quoi la commande brctl show ?

Salut, je suis parti en vacance jusqu’au 22, j’ai pas pris ma raspberry :confused:
En tout cas merci de ton aide, je transmet le résultat de la commande brctl show dès mon retour.
C’est cette commande qui m’indiquera si le pont est monté ou non ?

Je ne vois pas le rapport avec la programmation. Ce sujet ne devrait-il pas être déplacé dans la section Support Debian ?

Salut,
La commande me renvoie:

bridge name     bridge id               STP enabled     interfaces
br0             8000.b827eb3f9c01       no              eth0

Oui, en fait, ton bridge n’inclus pas l’interface Wifi wlan0, mais seulement eth0. Tu as utilisé la configuration du réseau (/etc/network/interfaces) que je t’ai recommandée ? Et si oui, celle avec accès réseau au Rapberry ou sans ?

J’ai tout vérifier, j’utilise bien la configuration avec accès que tu ma donné.
Cela donne Interfaces:

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan0
iface wlan0 inet manual

auto br0
iface br0 inet static
    address 172.24.10.1
    netmask 255.255.255.0
    bridge_ports eth0 wlan0

Et pour le fichier hostapd.conf, il est comme avant:

interface=wlan0
driver=nl80211
ssid=Pi3-AP
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=123456789
rsn_pairwise=CCMP

J’ai oublié quelques choses?

A quel moment/par quoi hostapd est-il démarré sur wlan0 ?
Une interface wifi doit être configurée en mode “master” (point d’accès) avant de pouvoir être pontée.
D’ailleurs il y a une option “bridge”-quelquechose dans hostapd.conf pour déclarer le pont dont l’interface wifi fait partie.

1 J'aime

Le hostapd est démarré au boot de la raspberry en modifiant le fichier /etc/default/hostapd: DAEMON_CONF="/etc/hostapd/hostapd.conf".

Oui il y a bien une option à mettre dans /etc/hostapd/hostapd.conf qui est:
bridge=br0

Mais quand je l’ajoute rien de change…

Est-ce que wlan0 est bien en mode AP après le démarrage ?