Utiliser le port Ethernet pour l'accès au WiFi RASPBERRY 3


#1

Après 2 semaines de recherches quotidiennes, je poste ici la méthode pour utiliser le port Ethernet comme accès à Internet via le Wifi. (Pompée, debugée, et traduite)

A noter qu’il faut IMPERATIVEMENT un SWITCH Ethernet pour que ça fonctionne!

Prérequis
Assurez-vous que votre Wi-Fi fonctionne et est convenablement configuré.Si ce n’est pas le cas, votre accès au dispositif vers eth0 sera limité ou inexistant.

Setup
Vous devez avoir quelques packages pour commencer :

apt-get update
apt-get install network-manager isc-dhcp-server

Interfaces
Editez le fichier sudo nano /etc/network/interfaces et remplacez par ce qui suit, ceci donnera une ip fixe à votre eth0 (192.168.1.1) et recréera resolv.conf.

 auto lo
 iface lo inet loopback

 iface default inet dhcp

 allow-hotplug eth0
 iface eth0 inet static
   address 192.168.1.1
   network 192.168.1.0
   netmask 255.255.255.0
   broadcast 192.168.1.255
   gateway 192.168.1.1

 auto wlan0
 allow-hotplug wlan0
 iface wlan0 inet dhcp
   wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
   up cat /etc/resolv.conf | sed 's/ver /ver 127.0.0.1,/g' > /etc/resolv_local.conf
   up cat /etc/resolv.conf | sed 's/ver /ver 127.0.0.1,/g' > /etc/resolv.conf

DHCP
Modifiez la configuration par défaut du dhcp et ajoutez le réseau LAN (192.168.1.*), editez le fichier sudo nano /etc/dhcp/dhcpd.conf, et ajoutez ce qui suit:

# configuration for the bridge internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.101 192.168.1.119;
  option domain-name-servers 8.8.8.8;
  option domain-name "domain.local";
  option routers 192.168.1.1;
  default-lease-time 600;
  max-lease-time 7200;
}

IPTABLES
Maintenant, créez le script suivant pour configurer et démarrer le réseau pour chaque démarrage. Le script créera dynamiquement les règles ‘IPTABLES’ . Nommez le sudo nano /root/bridge.sh:

#!/bin/bash
LOCAL_IFACE=eth0
INET_IFACE=wlan0

# this is where the dhcp info comes in. We need the default gateway
# /var/lib/dhcp/dhclient.wlan0.leases
f=/var/lib/dhcp/dhclient.$INET_IFACE.leases
GATEWAY=$(cat $f| grep "option route" | tail -1 |awk '{print $3}'| sed 's/;//')

IPT=$(which iptables)
# get the wlan address
INET_ADDRESS=$(ifconfig $INET_IFACE |grep "inet addr" |awk '{print $2}' | awk END{print} | awk -F  ":" '/1/ {print $2}')

# Flush the tables
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -t nat -F

$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT

# Allow forwarding packets:
$IPT -A FORWARD -p ALL -i $LOCAL_IFACE -j ACCEPT
$IPT -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

# Packet masquerading
$IPT -t nat -A POSTROUTING -o $INET_IFACE  -j SNAT --to-source $INET_ADDRESS
$IPT -t nat -A POSTROUTING -o $LOCAL_IFACE -j MASQUERADE

# save the created tables 
iptables-save > /etc/network/iptables

#cat /proc/sys/net/ipv4/ip_forward
# make sure we are forwarding packets
echo "1" > /proc/sys/net/ipv4/ip_forward
sysctl --system > /dev/nul

#remove the default route, usually on eth0 interface
route del default
#ifdown $INET_IFACE  && ifup $INET_IFACE
#ensure is $INET_IFACE now...
route add default gw $GATEWAY $INET_IFACE
gw=$(route -n -A inet | grep '^0.0.0.0' |awk '{ print $2 }')
echo "default route is now " $gw

Dans sudo nano /etc/sysctl.conf enlever le # sur net.ipv4.ip_forward=1 et net.ipv6.conf.all.forwarding=1

Finalement
Afin d’éviter de relancer le script à chaque démarrage, ajoutez ces deux lignes avant le exit 0 dans le fichier sudo nano /etc/rc.local.

# will run the bridge on startup
sudo sh ../root/bridge.sh 

Maintenant relancer votre dispositif et le bridge se mettra en
route.


#2

Bonjour,
Suite à des coupures régulières de ma box, je cherche une solution alternative quand ca bloque pour les éléments du LAN, et celle-ci correspond à ce que je cherche.

Seul souci, j’arrive bien à configurer le DHCP, j’obtiens l’IP sur le nouveau dhcp du raspberry, j’arrive à voir que de l’autre côté j’ai bien une IP sur le côté wifi depuis le tléphoen avec le partage de connexion.
J’ai donc bien 2 IP pour le raspberry.
Seul souci, je ne parviens pas à sortir… J’ai tenté un ping sur depuis le PC vers le côté wlan : pas de réponse. Aviez vous eu des soucis particulier lors de la mise en place ?

Sinon comment vérifier que le routage est correct ?

Merci