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.
BeagleBone Black no tiene soporte para Wi-Fi integrado y no se puede usar como un punto de acceso Wi-Fi.
Toda la configuración y los comandos de terminal 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. Deshabilite dhcpcd
para la interfaz y configure manualmente direcciones IPv4 estáticas para SoftAP.
- Actualice
dhcpcd
para ignorar lawlan0
(Wi-Fi):- Abra la
dhcpcd
fichero de configuración:sudo vim /etc/dhcpcd.conf
- Agregue la siguiente línea al final del archivo:
denyinterfaces wlan0
- Abra la
- Configure direcciones IPv4 estáticas en la interfaz
wlan0
:- Crear un archivo de configuración para el
wlan0
interfaz:sudo vim /etc/network/interfaces.d/wlan0
- 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
- Crear un archivo de configuración para el
Configurar hostapd
- Crear un nuevo
hostapd
fichero de configuración:sudo vim /etc/hostapd/hostapd.conf
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
Establezca este nuevo archivo de configuración como demonio predeterminado:
- Abra el archivo de configuración predeterminado:
sudo vim /etc/default/hostapd
- Habilitar el
DAEMON_CONF
parámetro y el punto a la nuevahostapd
fichero de configuración:DAEMON_CONF="/etc/hostapd/hostapd.conf"
- Abra el archivo de configuración predeterminado:
hostapd
demoniohostapd
automáticamente al reiniciar:- Desenmascare e inicie manualmente
hostapd
en caso de que esté enmascarado:sudo systemctl unmask hostapd
sudo systemctl start hostapd
- Cree un archivo de configuración de servicio para
hostapd
:sudo vim /etc/systemd/system/hostapd.service
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
Abra el archivo
/etc/rc.local
:sudo vim /etc/rc.local
Agregue lo siguiente al final del archivo, antes de la línea de
exit 0
:sudo service hostapd start
- Desenmascare e inicie manualmente
Verificar el punto de acceso
Una vez que se configura 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
- 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
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
El servicio
bind9
puede entrar en conflicto condnsmasq
durante el inicio. Para asegurarse de que no haya ningún conflicto, actualice el serviciobind9
para que no se inicie hasta quednsmasq
haya iniciado. Abra la/lib/systemd/system/bind9.service
archivo:sudo vim /lib/systemd/system/bind9.service
Modifique el parámetro
After
para quebind9
comience después dednsmasq
:"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
- Crea la configuración:
- Abra la
/etc/tayga.conf
archivo:sudo vim /etc/tayga.conf
- 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
- Abra la
- Habilitar
tayga
:- Abra el
/etc/default/tayga
:sudo vim /etc/default/tayga
- Cambie el parámetro
RUN
ayes
:RUN="yes"
- Abra el
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 superior para mapear 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 el reenvío
- 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"
- Para garantizar que el reenvío de IPv4 permanezca habilitado después del reinicio, actualice también el archivo de configuración
sysctl
:- Abra el archivo
/etc/sysctl.conf
:sudo vim /etc/sysctl.conf
- Descomente el parámetro de reenvío de IPv4 y asegúrese de que esté configurado en 1:
net.ipv4.ip_forward=1
- Abra el archivo
- Configure NAT con
iptables
:- Habilitar NAT 44:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- Configure el FILTRO entre las
wlan0
(Wi-Fi) yeth0
(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
- Habilitar NAT 44:
- Aplique estas reglas NAT automáticamente al reiniciar:
- Guardar las reglas de la
/etc/iptables.ipv4.nat
archivo:sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
- Open the
/etc/rc.local
file:sudo vim /etc/rc.local
- Agregue lo siguiente al final del archivo, antes de la línea de
exit 0
:iptables-restore < /etc/iptables.ipv4.nat
- Guardar las reglas de la
Verificar la configuración
- Reinicie la Raspberry Pi 3B:
sudo reboot
- Después de reiniciar, conecte un dispositivo diferente (no el RPi3B) al punto de acceso Wi-Fi BorderRouter-AP .
- 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:
- 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.
- Reinicie el RPi3B o utilice la secuencia de comandos 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 que se detallan en la configuración manual:
- SSID = BorderRouter-AP
- Contraseña = 12345678
Controle Network Manager usando 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 ).