Google is committed to advancing racial equity for Black communities. See how.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Configuración del punto de acceso Wi-Fi para el enrutador de borde OpenThread

Un punto de acceso (AP) Wi-Fi conecta una red Thread a Internet.

Una Raspberry Pi 3B (RPi3B) que funciona como un enrutador de borde OpenThread (OTBR) también puede servir como un punto de acceso suave (SoftAP). Este SoftAP actúa como un servidor DHCP para asignar direcciones IPv4 al RPi3B y cualquier dispositivo utilizado como Comisarios Externos.

El BeagleBone Black no tiene soporte Wi-Fi integrado y no se puede usar como un punto de acceso Wi-Fi.

Todos los comandos de terminal y configuración ocurren en un RPi3B que ejecuta OTBR. Consulte Compilación y configuración para obtener más información.

El RPi3B debe estar conectado a Internet a través de Ethernet (interfaz eth0 , como se muestra en la salida del comando ifconfig ) para que funcione correctamente como SoftAP.

Si ejecutó el script de configuración de OTBR sin deshabilitar NETWORK_MANAGER , como se describe en NETWORK_MANAGER y configuración , el AP Wi-Fi ya se ha configurado. Vaya a Uso de Network Manager para obtener más información.

Instalar paquetes

Se requieren tres paquetes:

  • hostapd : permite el uso de la radio Wi-Fi incorporada de un dispositivo como AP
  • dnsmasq : un servidor DHCP y DNS combinado
  • tayga - NAT64 sin estado
sudo apt-get install hostapd dnsmasq tayga

Configurar direcciones IPv4 estáticas

En las versiones más recientes de Raspbian, la configuración de la interfaz la maneja dhcpcd de forma predeterminada. Desactive dhcpcd para la interfaz y configure manualmente direcciones IPv4 estáticas para SoftAP.

  1. Actualice dhcpcd para ignorar la wlan0 (Wi-Fi):
    1. Abra la dhcpcd fichero de configuración:
      sudo vim /etc/dhcpcd.conf
    2. Agregue la siguiente línea al final del archivo:
      denyinterfaces wlan0
  2. Configure direcciones IPv4 estáticas en la interfaz wlan0 :
    1. Crear un archivo de configuración para el wlan0 interfaz:
      sudo vim /etc/network/interfaces.d/wlan0
    2. Añadir los siguientes parámetros de configuración al wlan0 archivo:
      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

Configurar hostapd

  1. Crear un nuevo hostapd fichero de configuración:
    sudo vim /etc/hostapd/hostapd.conf
  2. Agregue los siguientes parámetros de configuración 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. Establezca este nuevo archivo de configuración como demonio predeterminado:

    1. Abra el archivo de configuración predeterminado:
      sudo vim /etc/default/hostapd
    2. Habilitar el DAEMON_CONF parámetro y el punto a la nueva hostapd fichero de configuración:
      DAEMON_CONF="/etc/hostapd/hostapd.conf"
  4. hostapd demonio hostapd automáticamente al reiniciar:

    1. Desenmascare e inicie hostapd manualmente en caso de que esté enmascarado:
      sudo systemctl unmask hostapd
      sudo systemctl start hostapd
    2. Cree un archivo de configuración de servicio para hostapd :
      sudo vim /etc/systemd/system/hostapd.service
    3. Agregue los siguientes parámetros de configuración 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. Abra el archivo /etc/rc.local :

      sudo vim /etc/rc.local

    5. Agregue lo siguiente al final del archivo, antes de la línea de exit 0 :

      sudo service hostapd start

Verificar el punto de acceso

Una vez configurado hostapd , el SoftAP debería estar activo (aunque sin conectividad a Internet).

Para verificar, reinicie el RPi3B:

sudo reboot

Después de reiniciar, verifique las redes inalámbricas en otro dispositivo. Debería ver el SSID de BorderRouter-AP .

Configurar dnsmasq

  1. Para facilitar la configuración, si ya existe un archivo de configuración dnsmasq predeterminado en su sistema, muévalo y cree uno nuevo:
    sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
    sudo vim /etc/dnsmasq.conf
  2. Agregue los siguientes parámetros de configuración 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. El servicio bind9 puede entrar en conflicto con dnsmasq durante el inicio. Para asegurarse de que no haya ningún conflicto, actualice el servicio bind9 para que no se inicie hasta que dnsmasq haya comenzado. Abra la /lib/systemd/system/bind9.service archivo:

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

  4. Modifique el parámetro After para que bind9 comience después de dnsmasq :

    "After=network.target dnsmasq.service"

Configurar NAT

La traducción de direcciones de red (NAT) es un método para traducir direcciones IP mientras los paquetes están en tránsito. NAT64 traduce direcciones entre IPv6 e IPv4.

OTBR usa tayga para NAT64 sin estado, iptables para NAT44 con estado y combina los dos para proporcionar NAT64 con estado. Esto permite que los dispositivos Thread se comuniquen con hosts IPv4. Consulte la documentación de Tayga para obtener más información.

Configurar tayga

  1. Crea la configuración:
    1. Abra la /etc/tayga.conf archivo:
      sudo vim /etc/tayga.conf
    2. Actualice el archivo con la siguiente configuración:
      prefix 64:ff9b::/96
      dynamic-pool 192.168.255.0/24
      ipv6-addr 2001:db8:1::1
      ipv4-addr 192.168.255.1
      
  2. Habilitar tayga :
    1. Abra el /etc/default/tayga :
      sudo vim /etc/default/tayga
    2. Cambie el parámetro RUN a yes :
      RUN="yes"

En esta configuración, ipv6-addr es opcional. Si ipv6-addr no está definido, tayga genera para usted a partir del parámetro de prefix .

Parámetros de configuración

Parámetro Descripción
prefix Dado que Tayga proporciona NAT64 sin estado, se requiere un prefijo /96 o mayor para asignar todo IPv4 a IPv6. Este parámetro debe ser un prefijo /96 no utilizado de su rango de direcciones IPv6. Para OTBR, use el prefijo conocido ( 64:ff9b::/96 ) para habilitar la traducción automática de direcciones.
dynamic-pool Requerido para que Tayga asigne IPv6 a IPv4. Establecer en una red IPv4.
ipv6-addr Requerido para que Tayga actúe como un enrutador IPv6. Cuando se utiliza el prefijo conocido para el parámetro de prefix , esta dirección debe ser una que no esté incluida en el prefix .
ipv4-addr Requerido para que Tayga actúe como un enrutador IPv4. Esta dirección debe ser una que esté incluida en el grupo dynamic-pool .

Habilitar reenvío

  1. Habilite el reenvío de 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. Para garantizar que el reenvío de IPv4 permanezca habilitado después del reinicio, actualice también el archivo de configuración sysctl :
    1. Abra el archivo /etc/sysctl.conf :
      sudo vim /etc/sysctl.conf
    2. Descomente el parámetro de reenvío de IPv4 y asegúrese de que esté configurado en 1:
      net.ipv4.ip_forward=1
  3. Configure NAT con iptables :
    1. Habilitar NAT 44:
      sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    2. Configure el FILTRO entre las wlan0 (Wi-Fi) y 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. Aplique estas reglas de NAT automáticamente al reiniciar:
    1. Guardar las reglas de la /etc/iptables.ipv4.nat archivo:
      sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
    2. Open the /etc/rc.local file:
      sudo vim /etc/rc.local
    3. Agregue lo siguiente al final del archivo, antes de la línea de exit 0 :
      iptables-restore < /etc/iptables.ipv4.nat

Verificar la configuración

  1. Reinicie la Raspberry Pi 3B:
    sudo reboot
    Inicio de la GUI web de OTBR
  2. Después de reiniciar, conecte un dispositivo diferente (no el RPi3B) al punto de acceso Wi-Fi BorderRouter-AP .
  3. Abra una ventana del navegador en ese dispositivo y navegue hasta 192.168.1.2 (la dirección IPv4 configurada para la interfaz wlan0 ). Si la configuración del AP es correcta, se carga la GUI web de OTBR.

El punto de acceso Wi-Fi BorderRouter-AP también debe proporcionar conectividad a Internet regular. Verifique visitando o haciendo ping a cualquier sitio web público desde un dispositivo conectado al punto de acceso Wi-Fi BorderRouter-AP .

Solución de problemas

Si el punto de acceso Wi-Fi BorderRouter-AP no está disponible, verifique el estado del sistema del RPi3B:

sudo systemctl status

Si el estado muestra el RPi3B en un estado degradado , verifique qué servicios no se iniciaron:

sudo systemctl --failed

Si el AP se configuró manualmente y alguno de los servicios OTBR requeridos no pudo iniciarse:

  1. Vuelva a los pasos de configuración en Compilación y configuración y Configuración del punto de acceso Wi-Fi y verifique si hay errores.
  2. Reinicie el RPi3B o utilice el script del server para detener y reiniciar los servicios OTBR necesarios:
cd ot-br-posix
./script/server NETWORK_MANAGER=0

Usando Network Manager

Cuando el AP se configura automáticamente durante la instalación, es administrado por Network Manager. El script de configuración de OTBR utiliza los mismos valores predeterminados detallados en la configuración manual:

  • SSID = BorderRouter-AP
  • Contraseña = 12345678

Controle Network Manager utilizando la herramienta de línea de comandos nmcli .

Por ejemplo, para mostrar toda la información relacionada con el AP una vez que OTBR esté en funcionamiento:

nmcli -s c show BorderRouter-AP

Para obtener más información, consulte el script / script / _network_manager de OTBR Network Manager ).