設定 - アクセスポイント

提供: MochiuWiki : SUSE, EC, PCB

概要

NetworkManager (nmcliコマンド) を使用することにより、インターネット接続に依存しないアクセスポイントを数コマンドで作成することができる。

また、Banana Pi F3はRealtek RTL8852BSチップを搭載しており、2.4GHz / 5GHz WiFi 5 (802.11ax) と Bluetooth 5.2に対応しており、APモードをサポートしている。


必要なパッケージのインストール

# RHEL
sudo dnf install

# SUSE
sudo zypper install dnsmasq dnsmasq-utils

# Raspberry Pi / Banana Pi F3
sudo apt install dnsmasq-base



Wi-Fiインターフェース名の確認

一般的には、wlan0 という名前であることが多い。

ip link show
# または
nmcli device



アクセスポイントの構築 (汎用)

アクセスポイントを構築する。
また、OSの起動時にアクセスポイントを自動起動する。

  • con-name (Connection Name)
    NetworkManager内部の接続プロファイル名のこと。
    システム内部で設定を管理するための名前である。
    外部からは見えない。


sudo nmcli connection add \
     type wifi \
     ifname <Wi-Fiインターフェース名  例: wlan0> \
     con-name <任意のアクセスポイント名  例: my_access_point>
     autoconnect yes \
     ssid "<任意のSSID名>"


APモードと周波数帯を設定する。
b/gは、2.4[GHz]帯である。

sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     802-11-wireless.mode ap \
     802-11-wireless.band bg \
     ipv4.method shared


WPA2 / WPA3等のセキュリティを設定する。

  • WPA2 + WPA3 Personal
sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     wifi-sec.key-mgmt wpa-psk


  • WPA3 Personalのみ
sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     wifi-sec.key-mgmt sae


  • WPA2 (暗号化プロトコルと暗号化方式を明示的に指定)
sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     wifi-sec.key-mgmt wpa-psk \
     wifi-sec.proto rsn \           # WPA2を明示 (rsnはRobust Security Network)
     wifi-sec.pairwise ccmp \       # 暗号化方式(AES-CCMP)
     wifi-sec.group ccmp            # グループ暗号化方式


パスワード (8文字以上) を設定する。

sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     wifi-sec.psk "<パスワード>"


アクセスポイントを起動する。

sudo nmcli connection up <任意のアクセスポイント名  例: my_access_point>


接続状態を確認する。

sudo nmcli connection show


APが動作しているかどうかを確認する。

sudo nmcli device status


これにより、PCやスマートフォンから設定したSSIDが確認できるようになり、設定したパスワードで接続することができる。
アクセスポイントには自動的にIPアドレスが割り当てられ、接続したデバイスにはDHCPでIPアドレスが配布される。


アクセスポイントの構築 (Banana Pi F3)

Banana Pi F3では、5[GHz]帯の全チャンネルに no IR フラグが付いている。
これは、Initiating Radiationが禁止されていることを意味しており、5[GHz]帯でのAPモードは使用できない。

また、2.4[GHz]帯もチャンネル12〜13に no IR が付いているが、チャンネル1〜11は使用可能 である。

ブリッジモードとして構築する場合

これは、上位ルータと同じネットワークセグメントに参加する形となる。

ブリッジインターフェースを作成する。

# ブリッジを作成
sudo nmcli connection add type bridge \
     ifname br0 \
     con-name br0 \
     autoconnect yes


# ブリッジのIPアドレスを設定 (上位ルータと同じネットワークセグメント)
sudo nmcli connection modify br0 \
     ipv4.method manual          \
     ipv4.addresses <Banana Pi F3のIPアドレス  例: 192.168.1.10/24> \
     ipv4.gateway <上位ルータのゲートウェイ  例: 192.168.1.1>       \
     ipv4.dns <上位ルータのDNS  例: 192.168.1.1>


有線LANをブリッジに接続する。

# 現在の有線接続名を確認
nmcli connection show

# 有線接続 (end0) をブリッジのスレーブにする
sudo nmcli connection add \
     type bridge-slave    \
     ifname end0          \
     master br0           \
     con-name bridge-end0


Wi-Fiアクセスポイントをブリッジに接続する。

# Wi-Fiアクセスポイント接続を作成
sudo nmcli connection add \
     type wifi            \
     ifname wlan0         \
     con-name <任意のアクセスポイント名  例: Banana-Pi-AP> \
     autoconnect yes      \
     ssid "<任意のSSID名  例: Banana-Pi-G>" \
     master br0           \
     slave-type bridge

# APモードと2.4[GHz]の設定
sudo nmcli connection modify <任意のアクセスポイント名  例: Banana-Pi-AP> \
     802-11-wireless.mode ap \
     802-11-wireless.band bg \
     802-11-wireless.channel 6


アクセスポイントのセキュリティ設定を行う。

  • wpa-psk
    WPA2-Personal (PSK : Pre-Shared Key)
  • sae
    WPA3-Personal (SAE = Simultaneous Authentication of Equals)
  • wpa-psk sae
    WPA2とWPA3の両方をサポート (混在モード)


# WPA2 / WPA3 混在モード (推奨)
sudo nmcli connection modify <任意のアクセスポイント名  例: Banana-Pi-AP> \
     wifi-sec.key-mgmt wpa-psk sae \
     wifi-sec.proto rsn            \
     wifi-sec.pairwise ccmp        \
     wifi-sec.group ccmp           \
     wifi-sec.psk "<SSIDのパスワード>"

# WPA3のみ
sudo nmcli connection modify <任意のアクセスポイント名  例: Banana-Pi-AP> \
     wifi-sec.key-mgmt sae \
     wifi-sec.psk "<SSIDのパスワード>"


アクセスポイント接続を確認する。

# ブリッジを起動
sudo nmcli connection up br0

# 有線接続を起動
sudo nmcli connection up bridge-end0

# アクセスポイントを起動
sudo nmcli connection up <任意のアクセスポイント名  例: Banana-Pi-AP>


アクセスポイントの状態を確認する。

# ブリッジの状態確認
ip addr show br0
brctl show

# 接続状態確認
nmcli connection show --active


以下に示すコマンドを実行して、[type]が[AP]と表示されていれば正常に動作している。

sudo iw dev wlan0 info


そして、PCやスマートフォン等のクライアントデバイスから、SSID名が表示されているかどうかを確認する。

ブリッジモードの設定を削除する場合

ブリッジ構成を全て削除する場合は、以下に示す順序で実行する。
重要なことは、子 (スレーブ) から先に削除して、最後に親 (ブリッジ本体) を削除する ということである。

まず、現在アクティブな接続を全て停止する。
これは、接続が稼働中だと削除できない場合があるためである。

# アクセスポイントを停止
sudo nmcli connection down Banana-Pi-AP

# 有線ブリッジスレーブを停止
sudo nmcli connection down bridge-end0

# ブリッジ本体を停止
sudo nmcli connection down br0


次に、接続設定を削除する。
これは、ブリッジに接続されているスレーブデバイスから先に削除することが重要である。
親であるブリッジを先に削除しようとすると、スレーブが孤立してしまう可能性がある。

# Wi-Fiアクセスポイント接続を削除
sudo nmcli connection delete <任意のアクセスポイント名  例: Banana-Pi-AP>

# 有線ブリッジスレーブ接続を削除
sudo nmcli connection delete bridge-end0

# ブリッジ本体を削除
sudo nmcli connection delete br0


削除が完了した後、システムに残っているブリッジインターフェース自体も確認して、必要に応じて削除する。

# ブリッジインターフェースの確認
ip link show br0

# もしブリッジインターフェースが残っている場合は削除
sudo ip link delete br0


最後に、元の有線接続が正常に動作することを確認する。
ブリッジスレーブとして設定される前の有線接続設定が残っている場合、それを再び有効にする必要がある。

# 現在の接続一覧を確認
nmcli connection show

# 元の有線接続名 (例: end0 や Wired connection 1) を確認して起動
sudo nmcli connection up "<元の接続名  例: end0 や Wired connection 1>"

# または、有線接続を新たに作成する場合
sudo nmcli connection add \
     type ethernet \
     ifname end0 \
     con-name end0 \
     autoconnect yes


全ての設定が削除されたことを確認する。

# 接続一覧を表示
# br0、bridge-end0、アクセスポイントト名等が存在しないことを確認
nmcli connection show

# デバイスの状態を確認
nmcli device status

# ブリッジが存在しないことを確認
brctl show


これにより、ブリッジ構成が全て削除され、有線LANとWi-Fiは独立したインターフェースとして動作するようになる。

別のネットワークセグメントとして構築する場合

2.4[GHz]帯 (例: チャンネル6) でアクセスポイントを作成する。
sudo nmcli connection add \

    type wifi \
    ifname wlan0 \
    con-name <任意のアクセスポイント名  例: Banana-Pi-AP> \
    autoconnect yes \
    ssid "<任意のSSID名  例: Banana-PI-G>"


APモードと2.4[GHz] Wi-Fi 6を設定する。

sudo nmcli connection modify <任意のアクセスポイント名  例: Banana-Pi-AP> \
     802-11-wireless.mode ap \
     802-11-wireless.band bg \
     802-11-wireless.channel 6 \
     ipv4.method shared \
     ipv4.addresses 192.168.50.1/24


WPA2 + WPA3に対応する。

sudo nmcli connection modify <任意のアクセスポイント名  例: Banana-Pi-AP> \
     wifi-sec.key-mgmt wpa-psk \
     wifi-sec.proto rsn \
     wifi-sec.pairwise ccmp \
     wifi-sec.group ccmp \
     wifi-sec.psk "<任意のパスワード>"


アクセスポイントを起動する。

sudo nmcli connection up <任意のアクセスポイント名  例: Banana-Pi-AP>



アクセスポイントの削除

アクセスポイントを削除する場合は、以下に示すコマンドを実行する。

アクセスポイント接続を停止する。

sudo nmcli connection down <任意のアクセスポイント名  例: Banana-Pi-AP>


アクセスポイント接続を削除する。

sudo nmcli connection delete <任意のアクセスポイント名  例: Banana-Pi-AP>


または、1つのコマンドで削除することもできる。(自動的に停止される)

sudo nmcli connection delete <任意のアクセスポイント名  例: Banana-Pi-AP>


アクセスポイントが削除されたかどうかを確認する。

# 全ての接続を表示
nmcli connection show

# インターフェースの状態を確認
nmcli device status


アクセスポイントを削除した後、インターフェースは通常の管理モードに戻り、Wi-Fiクライアントとして他のアクセスポイントに接続できるようになる。


設定のカスタマイズ

5[GHz]帯を使用する場合

sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     802-11-wireless.band a


チャンネルを指定する場合

  • 2.4[GHz]の場合 (チャンネル1〜11)
sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     802-11-wireless.channel 6


  • 5[GHz]の場合 (チャンネル36, 40, 44, 48等)
sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     802-11-wireless.channel 36


IPアドレス範囲を変更する場合

sudo nmcli connection modify \
     <任意のアクセスポイント名  例: my_access_point> \
     ipv4.addresses 192.168.50.1/24



トラブルシューティング

アクセスポイントが起動しない場合

既存の接続を削除する。

sudo nmcli connection delete <任意のアクセスポイント名  例: my_access_point>


NetworkManagerを再起動する。

sudo systemctl restart NetworkManager


再度設定を実行する。