Raspberry - bridge wifi - ethernet

Raspberry può diventare un bridge tra il wifi (dato da un cellulare che fa da hotspot mobile o un qualsiasi altro segnale wifi) e un altro host che ha la necessità di avere un collegamento alla rete ma è privo di wifi.

Il raspberry diventa un server dhcp ossia fornisce un indirizzo ip a tutti gli host che siu collegano ad esso.

Nella mia configurazione ho collegato all'uscita ethernet raspberry uno switch a cui si collegava un host con windows 10, un host debian sempre collegato allo switch ed un host Ubuntu sempre collegato allo switch.

Per comprendere tutti i passaggi è necessario conoscere:

  • impostazione porta wlan
  • dhcp
  • ip statico
  • modifica parametri di sistema
  • firewall

Per eseguire i comandi che seguono bisogna essere root

Impostazione wlan0

nano /etc/wpa_supplicant/wpa_supplicant.conf
network=

{

      ssid="ReteETE"

      psk="PASSWORD"

}

con

  • ssid il nome della rete wifi
  • psk la password del wifi

si può verificare la corretta impostazione della rete con il comando:

wpa_passphrase "NOME-RETE" "password"

Impostazione IP statico

nano /etc/network/interfaces

e lo modifico come segue:

allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1    
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


 

da notare come gestisco entrambe le porte la eth0 e la wlan0 in maniera tale che quando ricarico la configurazione entrambe le porte siano correttamente configurate.

Per caricare la corretta configurazione digitare il comando:

service networking restart

Per verificare lo stato del servizio digitare:

service networking status

Installazione dhcp

per installare il dhcp bisogna prima installarlo con il comando:

apt-get install dnsmasq

è buona regola copiare il vecchio file di configurazione prima di modificarlo:

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

adesso vado a digitarlo:

nano /etc/dnsmasq.conf

ed inserisco le seguenti righe:

interface=eth0 # Use interface eth0
listen-address=10.0.0.1 # Specify the address to listen on
bind-interfaces      # Bind to the interface
server=208.67.222.222 # Use OpenDNS
domain-needed        # Don't forward short names
bogus-priv           # Drop the non-routed address spaces.
dhcp-range=10.0.0.10,10.0.0.50,12h # IP range and lease time

è necessario anche abilitare il forward nel file sdi configurazione sysctl.conf per abilitire l'invio IP IPv4p

Modifica variabili di configurazione di sistema

Bisogan editare il file:

nano /etc/sysctl.conf

e togliere il cancelletto alla riga

#net.ipv4.ip_forward=1

per attivare il nuovo parametro digitare:

sysctl --system

per verificare i parametri attivi nel sistema digitare il comando:

sysctl -a

Configurazione firewall

S modifica il firewall per consentire a tutto il traffico dalla nostra interfaccia eth0  di convogliarsi nella wlan0.

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT

per consentire a tutte le modifiche di diventare definitive e non di cancellarsi ogni qualvolta che si fa il reboot del sistema si deve:

sh -c "iptables-save > /etc/iptables.ipv4.nat"
nano /etc/rc.local

inserire prima della riga exit 0 la riga:

iptables-restore < /etc/iptables.ipv4.nat

A questo punto si può far partire il dhcp:

service dnsmasq start

ma considerando tutte le notevoli modifiche effettuate, meglio è far ripartire il sistema.

 

Informazioni su Francesco Bragadin

Insegno informatica e telecomunicazioni al liceo scienze applicate ed all'indirizzo informatica e telecomunicazioni. Ho terminato gli studi in ingegneria elettronica e telecomunicazioni lavorando per molti anni come libero professionista nell'ambito della gestione storage e disaster recovery su mainframe.
Questa voce è stata pubblicata in Senza categoria e contrassegnata con , , . Contrassegna il permalink.

2 risposte a Raspberry - bridge wifi - ethernet

  1. Andrea Pigozzo scrive:

    Salve Prof.
    Problema risolto, ho seguito tutti i passi e funziona correttamente, il problema era dato dalle impostazioni predefinite del Raspberry, il quale aveva disabilitate tutte quante le interfacce disponibili.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *