Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Configuration du point d'accès Wi-Fi pour OpenThread Border Router

Un point d'accès Wi-Fi (AP) connecte un réseau Thread à Internet.

Un Raspberry Pi 3B (RPi3B) fonctionnant comme OpenThread Border Router (OTBR) peut également servir de Soft Access Point (SoftAP). Ce SoftAP agit comme un serveur DHCP pour attribuer des adresses IPv4 au RPi3B et à tous les périphériques utilisés en tant que commissaires externes.

Le BeagleBone Black n'a pas de support Wi-Fi intégré et ne peut pas être utilisé comme point d'accès Wi-Fi.

Toutes les commandes de configuration et de terminal se produisent sur un RPi3B exécutant OTBR. Voir Génération et configuration pour plus d'informations.

Le RPi3B doit être connecté à Internet via Ethernet (interface eth0 , comme affiché dans la sortie de la commande ifconfig ) pour servir avec succès de SoftAP.

Si vous avez exécuté le script de configuration OTBR sans désactiver NETWORK_MANAGER , comme décrit dans Génération et configuration , le point d'accès Wi-Fi a déjà été configuré. Passez à Utilisation de Network Manager pour plus d'informations.

Installer des packages

Trois packages sont requis:

  • hostapd - Permet d'utiliser la radio Wi-Fi intégrée d'un appareil comme point d'accès
  • dnsmasq - Un serveur DHCP et DNS combiné
  • tayga - NAT64 sans état
sudo apt-get install hostapd dnsmasq tayga

Configurer les adresses IPv4 statiques

Dans les versions plus récentes de Raspbian, la configuration de l'interface est gérée par dhcpcd par défaut. Désactivez dhcpcd pour l'interface et configurez manuellement les adresses IPv4 statiques pour SoftAP.

  1. Mettez à jour dhcpcd pour ignorer l' wlan0 (Wi-Fi):
    1. Ouvrez le dhcpcd fichier de configuration:
      sudo vim /etc/dhcpcd.conf
    2. Ajoutez la ligne suivante à la fin du fichier:
      denyinterfaces wlan0
  2. Configurez les adresses IPv4 statiques sur l'interface wlan0 :
    1. Créez un fichier de configuration pour l' wlan0 interface:
      sudo vim /etc/network/interfaces.d/wlan0
    2. Ajoutez les paramètres de configuration suivants au wlan0 fichier:
      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

Configurer hostapd

  1. Créer un nouveau hostapd fichier de configuration:
    sudo vim /etc/hostapd/hostapd.conf
  2. Ajoutez les paramètres de configuration suivants à 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. Définissez ce nouveau fichier de configuration comme démon par défaut:

    1. Ouvrez le fichier de configuration par défaut:
      sudo vim /etc/default/hostapd
    2. Activez le DAEMON_CONF paramètre et pointer vers le nouveau hostapd fichier de configuration:
      DAEMON_CONF="/etc/hostapd/hostapd.conf"
  4. hostapd automatiquement le démon hostapd au redémarrage:

    1. Démasquer et démarrer manuellement hostapd au cas où il serait masqué:
      sudo systemctl unmask hostapd
      sudo systemctl start hostapd
    2. Créez un fichier de configuration de service pour hostapd :
      sudo vim /etc/systemd/system/hostapd.service
    3. Ajoutez les paramètres de configuration suivants à 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. Ouvrez le fichier /etc/rc.local :

      sudo vim /etc/rc.local

    5. Ajoutez ce qui suit à la fin du fichier, avant la ligne de exit 0 :

      sudo service hostapd start

Vérifiez le point d'accès

Une fois hostapd configuré, le SoftAP doit être actif (mais sans connexion Internet).

Pour vérifier, redémarrez le RPi3B:

sudo reboot

Après le redémarrage, recherchez les réseaux sans fil sur un autre appareil. Vous devriez voir le SSID BorderRouter-AP .

Configurer dnsmasq

  1. Pour faciliter la configuration, si un fichier de configuration dnsmasq par défaut existe déjà sur votre système, déplacez-le et créez-en un nouveau:
    sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
    sudo vim /etc/dnsmasq.conf
  2. Ajoutez les paramètres de configuration suivants à 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. Le service bind9 peut entrer en conflit avec dnsmasq lors du démarrage. Pour vous assurer qu'il n'y a pas de conflit, mettez à jour le service bind9 pour ne pas démarrer tant que dnsmasq n'a pas démarré. Ouvrez le /lib/systemd/system/bind9.service fichier:

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

  4. Modifiez le paramètre After pour que bind9 démarre après dnsmasq :

    "After=network.target dnsmasq.service"

Configurer NAT

La traduction d'adresses réseau (NAT) est une méthode de traduction d'adresses IP pendant que les paquets sont en transit. NAT64 traduit les adresses entre IPv6 et IPv4.

OTBR utilise tayga pour NAT64 sans état, iptables pour NAT44 avec état et combine les deux pour fournir un NAT64 avec état. Cela permet aux périphériques Thread de communiquer avec les hôtes IPv4. Consultez la documentation Tayga pour plus d'informations.

Configurer tayga

  1. Créez la configuration:
    1. Ouvrez le /etc/tayga.conf fichier:
      sudo vim /etc/tayga.conf
    2. Mettez à jour le fichier avec la configuration suivante:
      prefix 64:ff9b::/96
      dynamic-pool 192.168.255.0/24
      ipv6-addr 2001:db8:1::1
      ipv4-addr 192.168.255.1
      
  2. Activer tayga :
    1. Ouvrez le fichier /etc/default/tayga :
      sudo vim /etc/default/tayga
    2. Modifiez le paramètre RUN sur yes :
      RUN="yes"

Dans cette configuration, ipv6-addr est facultatif. Si ipv6-addr n'est pas défini, tayga génère pour vous à partir du paramètre prefix .

Paramètres de configuration

Paramètre La description
prefix Puisque Tayga fournit un NAT64 sans état, un préfixe /96 ou supérieur est requis pour mapper tout IPv4 à IPv6. Ce paramètre doit être un préfixe /96 non utilisé de votre plage d'adresses IPv6. Pour OTBR, utilisez le préfixe bien connu ( 64:ff9b::/96 ) pour activer la traduction d'adresse automatique.
dynamic-pool Requis pour que Tayga mappe IPv6 à IPv4. Réglez sur un réseau IPv4.
ipv6-addr Requis pour que Tayga agisse en tant que routeur IPv6. Lorsque vous utilisez le préfixe bien connu pour le paramètre de prefix , cette adresse doit être une adresse qui n'est pas incluse dans le prefix .
ipv4-addr Requis pour que Tayga agisse en tant que routeur IPv4. Cette adresse doit être une adresse incluse dans dynamic-pool .

Activer le transfert

  1. Activer le transfert IPv4 et 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. Pour vous assurer que le transfert IPv4 reste activé après le redémarrage, mettez également à jour le fichier de configuration sysctl :
    1. Ouvrez le /etc/sysctl.conf fichier:
      sudo vim /etc/sysctl.conf
    2. Décommentez le paramètre de transfert IPv4 et assurez-vous qu'il est défini sur 1:
      net.ipv4.ip_forward=1
  3. Configurez NAT avec iptables :
    1. Activer NAT 44:
      sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    2. Configurez FILTER entre les wlan0 (Wi-Fi) et 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. Appliquez ces règles NAT automatiquement au redémarrage:
    1. Enregistrez les règles du /etc/iptables.ipv4.nat fichier:
      sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
    2. Open the /etc/rc.local file:
      sudo vim /etc/rc.local
    3. Ajoutez ce qui suit à la fin du fichier, avant la ligne de exit 0 :
      iptables-restore < /etc/iptables.ipv4.nat

Vérifiez la configuration

  1. Redémarrez le Raspberry Pi 3B:
    sudo reboot
    Accueil de l'interface graphique Web OTBR
  2. Après le redémarrage, connectez un appareil différent (pas le RPi3B) au point d'accès Wi-Fi BorderRouter-AP .
  3. Ouvrez une fenêtre de navigateur sur cet appareil et accédez à 192.168.1.2 (l'adresse IPv4 configurée pour l'interface wlan0 ). Si la configuration AP réussit, l'interface graphique Web OTBR se charge.

Le point d'accès Wi-Fi BorderRouter-AP doit également fournir une connectivité Internet régulière. Vérifiez en visitant ou en envoyant une requête ping à tout site Web public à partir d'un appareil connecté au point d'accès Wi-Fi BorderRouter-AP .

Dépannage

Si le point d'accès Wi-Fi BorderRouter-AP n'est pas disponible, vérifiez l'état du système du RPi3B:

sudo systemctl status

Si l'état indique le RPi3B dans un état dégradé , vérifiez quels services n'ont pas pu démarrer:

sudo systemctl --failed

Si le point d'accès a été configuré manuellement et que l'un des services OTBR requis n'a pas pu démarrer:

  1. Revenez aux étapes de configuration dans Génération et Configuration et Configuration du point d' accès Wi-Fi et recherchez les erreurs.
  2. Redémarrez le RPi3B ou utilisez le script server pour arrêter et redémarrer les services OTBR requis:
cd ot-br-posix
./script/server NETWORK_MANAGER=0

Utilisation de Network Manager

Lorsque le point d'accès est automatiquement configuré lors de l'installation, il est géré par Network Manager. Le script de configuration OTBR utilise les mêmes valeurs par défaut détaillées dans la configuration manuelle:

  • SSID = BorderRouter-AP
  • Mot de passe = 12345678

Contrôlez Network Manager à l'aide de l'outil de ligne de commande nmcli .

Par exemple, pour afficher toutes les informations relatives au point d'accès une fois que l'OTBR est opérationnel:

nmcli -s c show BorderRouter-AP

Pour plus d'informations, consultez le script / script / _network_manager OTBR Network Manager ).