Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Configurazione del punto di accesso Wi-Fi per OpenThread Border Router

Un punto di accesso Wi-Fi (AP) connette una rete Thread a Internet.

Un Raspberry Pi 3B (RPi3B) che funge da OpenThread Border Router (OTBR) può anche fungere da Soft Access Point (SoftAP). Questo SoftAP funge da server DHCP per assegnare indirizzi IPv4 all'RPi3B ea qualsiasi dispositivo utilizzato come Commissario esterno.

BeagleBone Black non dispone del supporto Wi-Fi integrato e non può essere utilizzato come punto di accesso Wi-Fi.

Tutti i comandi di configurazione e terminale avvengono su un RPi3B che esegue OTBR. Vedere Build e configurazione per ulteriori informazioni.

L'RPi3B deve essere connesso a Internet tramite Ethernet (interfaccia eth0 , come visualizzato nell'output del comando ifconfig ) per funzionare correttamente come SoftAP.

Se hai eseguito lo script di configurazione OTBR senza disabilitare NETWORK_MANAGER , come descritto in Build and Configuration , l'AP Wi-Fi è già stato configurato. Passare a Utilizzo di Network Manager per ulteriori informazioni.

Installa i pacchetti

Sono necessari tre pacchetti:

  • hostapd - Consente l'uso della radio Wi-Fi integrata di un dispositivo come AP
  • dnsmasq - Un server DHCP e DNS combinato
  • tayga - Stateless NAT64
sudo apt-get install hostapd dnsmasq tayga

Configurare indirizzi IPv4 statici

Nelle versioni più recenti di Raspbian, la configurazione dell'interfaccia è gestita da dhcpcd per impostazione predefinita. Disabilitare dhcpcd per l'interfaccia e configurare manualmente gli indirizzi IPv4 statici per SoftAP.

  1. Aggiorna dhcpcd per ignorare l'interfaccia wlan0 (Wi-Fi):
    1. Apri il file di configurazione dhcpcd :
      sudo vim /etc/dhcpcd.conf
    2. Aggiungi la seguente riga alla fine del file:
      denyinterfaces wlan0
  2. Configurare indirizzi IPv4 statici sull'interfaccia wlan0 :
    1. Creare un file di configurazione per l'interfaccia wlan0 :
      sudo vim /etc/network/interfaces.d/wlan0
    2. Aggiungere i seguenti parametri di configurazione al file wlan0 :
      allow-hotplug wlan0
      iface wlan0 inet static
          address 192.168.1.2
          netmask 255.255.255.0
          network 192.168.1.0
          broadcast 192.168.1.255

Configura hostapd

  1. Crea un nuovo file di configurazione hostapd :
    sudo vim /etc/hostapd/hostapd.conf
  2. Aggiungi i seguenti parametri di configurazione a hostapd.conf :

    # The Wi-Fi interface configured for static IPv4 addresses
    interface=wlan0
    
    # Use the 802.11 Netlink interface driver
    driver=nl80211
    
    # The user-defined name of the network
    ssid=BorderRouter-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
    
    # Use WPA authentication
    auth_algs=1
    
    # Require clients to know the network name
    ignore_broadcast_ssid=0
    
    # Use WPA2
    wpa=2
    
    # Use a pre-shared key
    wpa_key_mgmt=WPA-PSK
    
    # The network passphrase
    wpa_passphrase=12345678
    
    # Use AES, instead of TKIP
    rsn_pairwise=CCMP
    
  3. Imposta questo nuovo file di configurazione come demone predefinito:

    1. Apri il file di configurazione predefinito:
      sudo vim /etc/default/hostapd
    2. Abilita il parametro DAEMON_CONF e indirizzalo al nuovo file di configurazione hostapd :
      DAEMON_CONF="/etc/hostapd/hostapd.conf"
  4. hostapd automaticamente il demone hostapd al riavvio:

    1. Smaschera e avvia manualmente hostapd nel caso sia mascherato:
      sudo systemctl unmask hostapd
      sudo systemctl start hostapd
    2. Crea un file di configurazione del servizio per hostapd :
      sudo vim /etc/systemd/system/hostapd.service
    3. Aggiungi i seguenti parametri di configurazione a hostapd.service :

      [Unit]
      Description=Hostapd IEEE 802.11 Access Point
      After=sys-subsystem-net-devices-wlan0.device
      BindsTo=sys-subsystem-net-devices-wlan0.device
      
      [Service]
      Type=forking
      PIDFile=/var/run/hostapd.pid
      ExecStart=/usr/sbin/hostapd -B /etc/hostapd/hostapd.conf -P /var/run/hostapd.pid
      
      [Install]
      WantedBy=multi-user.target
      
    4. Apri il file /etc/rc.local :

      sudo vim /etc/rc.local

    5. Aggiungere quanto segue alla fine del file, prima della riga di exit 0 :

      sudo service hostapd start

Verifica il punto di accesso

Una volta configurato hostapd , il SoftAP dovrebbe essere attivo (anche se senza connettività Internet).

Per verificare, riavvia l'RPi3B:

sudo reboot

Dopo il riavvio, verifica la presenza di reti wireless su un altro dispositivo. Dovresti vedere l'SSID BorderRouter-AP .

Configura dnsmasq

  1. Per facilità di configurazione, se sul tuo sistema esiste già un file di configurazione dnsmasq predefinito, spostalo e creane uno nuovo:
    sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
    sudo vim /etc/dnsmasq.conf
  2. Aggiungere i seguenti parametri di configurazione a dnsmasq.conf :

    # The Wi-Fi interface configured for static IPv4 addresses
    interface=wlan0
    
    # Explicitly specify the address to listen on
    listen-address=192.168.1.2
    
    # Bind to the interface to make sure we aren't sending things elsewhere
    bind-interfaces
    
    # Forward DNS requests to the Google DNS
    server=8.8.8.8
    
    # Don't forward short names
    domain-needed
    
    # Never forward addresses in non-routed address spaces
    bogus-priv
    
    # Assign IP addresses between 192.168.1.50 and 192.168.1.150 with a 12 hour lease time
    dhcp-range=192.168.1.50,192.168.1.150,12h
    
  3. Il servizio bind9 potrebbe dnsmasq in conflitto con dnsmasq durante l'avvio. Per assicurarsi che non vi siano conflitti, aggiornare il servizio bind9 in modo che non si avvii fino a quando dnsmasq è avviato dnsmasq . Aprire il /lib/systemd/system/bind9.service di file:

    sudo vim /lib/systemd/system/bind9.service

  4. Modificare il parametro After modo che bind9 inizi dopo dnsmasq :

    "After=network.target dnsmasq.service"

Configura NAT

Network Address Translation (NAT) è un metodo per tradurre gli indirizzi IP mentre i pacchetti sono in transito. NAT64 converte gli indirizzi tra IPv6 e IPv4.

OTBR utilizza tayga per tayga stateless, iptables per NAT44 stateful e combina i due per fornire NAT64 stateful. Ciò consente ai dispositivi Thread di comunicare con gli host IPv4. Vedere la documentazione di Tayga per ulteriori informazioni.

Configura tayga

  1. Crea la configurazione:
    1. Aprire il /etc/tayga.conf di file:
      sudo vim /etc/tayga.conf
    2. Aggiorna il file con la seguente configurazione:
      prefix 64:ff9b::/96
      dynamic-pool 192.168.255.0/24
      ipv6-addr 2001:db8:1::1
      ipv4-addr 192.168.255.1
      
  2. Abilita tayga :
    1. Apri il /etc/default/tayga :
      sudo vim /etc/default/tayga
    2. Modificare il parametro RUN su yes :
      RUN="yes"

In questa configurazione, ipv6-addr è opzionale. Se ipv6-addr non è definito, tayga genera per te dal parametro prefix .

Parametri di configurazione

Parametro Descrizione
prefix Poiché Tayga fornisce NAT64 senza stato, è necessario un prefisso /96 o superiore per mappare tutto l'IPv4 su IPv6. Questo parametro dovrebbe essere un prefisso /96 non utilizzato dall'intervallo di indirizzi IPv6. Per OTBR, utilizza il prefisso Well-Known ( 64:ff9b::/96 ) per abilitare la traduzione automatica degli indirizzi.
dynamic-pool Necessario per Tayga per mappare IPv6 su IPv4. Impostato su una rete IPv4.
ipv6-addr Necessario per Tayga per agire come router IPv6. Quando si utilizza Well-Known Prefix per il parametro prefix , questo indirizzo dovrebbe essere uno non incluso nel prefix .
ipv4-addr Necessario per Tayga per agire come router IPv4. Questo indirizzo dovrebbe essere uno incluso in dynamic-pool .

Abilita inoltro

  1. Abilita l'inoltro IPv4 e IPv6:
    sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    sudo sh -c "echo 1 > /proc/sys/net/ipv6/conf/all/forwarding"
  2. Per garantire che l'inoltro IPv4 rimanga abilitato dopo il riavvio, aggiorna anche il file di configurazione sysctl :
    1. Apri il file /etc/sysctl.conf :
      sudo vim /etc/sysctl.conf
    2. Rimuovere il commento dal parametro di inoltro IPv4 e assicurarsi che sia impostato su 1:
      net.ipv4.ip_forward=1
  3. Configura NAT con iptables :
    1. Abilita NAT 44:
      sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    2. Configurare FILTER tra le interfacce wlan0 (Wi-Fi) ed eth0 (Ethernet):
      sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
      sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
  4. Applica queste regole NAT automaticamente al riavvio:
    1. Salvare le regole per il /etc/iptables.ipv4.nat di file:
      sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
    2. Open the /etc/rc.local file:
      sudo vim /etc/rc.local
    3. Aggiungere quanto segue alla fine del file, prima della riga exit 0 :
      iptables-restore < /etc/iptables.ipv4.nat

Verifica la configurazione

  1. Riavvia il Raspberry Pi 3B:
    sudo reboot
    Pagina iniziale della GUI Web OTBR
  2. Dopo il riavvio, collega un dispositivo diverso (non l'RPi3B) al punto di accesso Wi-Fi BorderRouter-AP .
  3. Apri una finestra del browser su quel dispositivo e vai a 192.168.1.2 (l'indirizzo IPv4 configurato per l'interfaccia wlan0 ). Se la configurazione dell'AP ha esito positivo, viene caricata la GUI Web OTBR.

Il punto di accesso Wi-Fi BorderRouter-AP dovrebbe anche fornire una connettività Internet regolare. Verifica visitando o eseguendo il ping di qualsiasi sito Web pubblico da un dispositivo connesso al punto di accesso Wi-Fi BorderRouter-AP .

Risoluzione dei problemi

Se il punto di accesso Wi-Fi BorderRouter-AP non è disponibile, controllare lo stato del sistema dell'RPi3B:

sudo systemctl status

Se lo stato mostra l'RPi3B in uno stato degradato , controlla quali servizi non sono stati avviati:

sudo systemctl --failed

Se l'AP è stato configurato manualmente e uno dei servizi OTBR richiesti non è stato avviato:

  1. Torna indietro attraverso i passaggi di configurazione in Creazione e configurazione e Configurazione punto di accesso Wi-Fi e verifica la presenza di errori.
  2. Riavviare l'RPi3B o utilizzare lo script del server per arrestare e riavviare i servizi OTBR richiesti:
cd ot-br-posix
./script/server NETWORK_MANAGER=0

Utilizzando Network Manager

Quando l'AP viene configurato automaticamente durante l'installazione, viene gestito da Network Manager. Lo script di configurazione OTBR utilizza gli stessi valori predefiniti descritti in dettaglio nella configurazione manuale:

  • SSID = BorderRouter-AP
  • Password = 12345678

Controlla Network Manager utilizzando lo strumento da riga di comando nmcli .

Ad esempio, per visualizzare tutte le informazioni relative all'AP una volta che OTBR è attivo e in esecuzione:

nmcli -s c show BorderRouter-AP

Per ulteriori informazioni, vedere lo script / script / _network_manager di OTBR Network Manager ).