Contents
- PDHのAP化(bookworm OS版)
- 1.概要
- 2.OSのバージョンのチェック方法
- 3.APモードの設定方法
- 4.APモード設定に必要な情報
- 5. Network Managerの基本コマンド
- 5-1. ネットワークの情報取得
- 5-2.ネットワークの切断
- 5-3.ネットワークの接続(過去に接続したことのあるwifiへの接続)
- 5-3.ネットワークの接続(新規wifiへの接続)
- 6. ローカルネットワーク仕様(APモード専用)の設定
- 6-1. 一つ一つ設定していく場合
- 6-2. 一行で設定する場合
- 6-3. 実行例
- 6-4. APモードの起動
- 6-5. 動作の確認
- 6-5. コネクションの削除
- 7. ルータ仕様(APモード+WiFi接続)の設定
- 7-1. wlan0のMACアドレスの確認
- 7-2. インターフェースの追加
- 7-3. コネクションの作成
- 7-4. APモードの起動
- 7-5. IPフォワード設定
- 7-6. 接続確認
PDHのAP化(bookworm OS版)
1.概要
PDHのAP(Access Point)モードとCL(Client)モードの切り替えに関しては、ホームページR-CPS-TOPの第3巻 「7.PDHで使用しているその他の技術」の下の「7.6.APモードとCLモードの移行」に記載しました。しかし、PDHの本体であるRaspberry PiのOSのバージョンが2023年10月に“bookworm“に上がり、ネットワークの制御がNetwork Managerに変更になったことで、上記の設定が使えなくなりました。
ここでは、Raspberry Pi OSが”bookworm”の場合のNetwork Managerを使ったAPモードの設定に関して説明します。
Network Managerになったことで、APモード時に、ルータとして動作させることが、比較的簡単になりました。
そこで、ここでは、ローカルネットワーク仕様(APモードのみ)とルータ仕様の双方の設定の仕方を記述しています。
ハードは、Raspberry Pi 4Bで動作確認しています。
2.OSのバージョンのチェック方法
OSのバージョンのチェック方法は、以下のコマンドを使います(こちら「PDHのOSバージョン確認」も参照ください)。
$ lsb_release -a
3.APモードの設定方法
APモードの設定方法は、2通りあります。
1つは、PDH(Raspberry Pi)のwifiをAPモード専用として使う方法です。この場合、PDHとAPモードに接続した機器は、外部のインターネットに接続することはできません。互いにつながるだけです。ローカルネットワーク仕様です。
もう一つは、PDHのwifiを中継器として使う方法です。この場合は、PDHとAPモードに接続した機器は、インターネットに接続することができます。ルータ仕様です。
順に説明します。
4.APモード設定に必要な情報
APモードの設定には、以下の様な情報が必要になります。あらかじめ決めておく必要があります。
設定対象 |
設定値 |
備考 |
---|---|---|
SSID |
AP_SSID |
自分の設定したいSSIDに読み替える |
パスワード |
AP_PASSWORD |
自分の設定したいパスワードに読み替える |
コネクション名 |
rpi_ap |
コネクション名、何でもよい |
IP範囲 |
192.168.50.1/24 |
ipv4.address 設定したいIPアドレスを指定 |
5. Network Managerの基本コマンド
Network Managerのコマンドは、nmcliです。APモードの設定に入る前に、nmcliを使ったwifiへの接続/切断などの基本コマンドを紹介します。
5-1. ネットワークの情報取得
現状のネットワークの情報を取得するコマンドです。
$ nmcli device
で、状態が表示されます。下の例では、コネクション名:Buffalo-A-BEB6が、wlan0にwifi typeとして接続済みになっています。
5-2.ネットワークの切断
ネットワークの切断は、以下のコマンドを使って行います。
$ nmcli connection down コネクション名
切断されたか確認します。
$ nmcli device
5-3.ネットワークの接続(過去に接続したことのあるwifiへの接続)
接続が可能なコネクション名を調べます。現在接続可能なwifiのリストではなく、過去に接続したことがあるwifiのリストです。
$ nmcli connection show
ネットワークの接続は、以下のコマンドを使って行います。
$ nmcli connection up コネクション名
接続されたか確認します。
$ nmcli device
5-3.ネットワークの接続(新規wifiへの接続)
以下のコマンドで、wifiのSSIDを調べます。接続可能なwifiのリストが表示されます。
$ nmcli device wifi list
次に以下のコマンドでwifiに接続します。
$ nmcli device wifi connect SSID --ask
改行するとpasswordを聞いてきますので、入力して接続します。
6. ローカルネットワーク仕様(APモード専用)の設定
Network ManagerのAPモード化で使用するコマンドは、以下の2通りがあります。違いは、一つ一つ設定していくか、1行で設定するかの違いだけです。中身は同じです。Network Managerのコマンドは、nmcliです。
6-1. 一つ一つ設定していく場合
次のコマンドを順番に入力してきます。1行目でrpi_apをコネクション名として追加(add)します。次の行からは、rpi_apの情報を変更(modify)していきます。
$ nmcli connection add con-name rpi_ap ifname wlan0 type wifi ssid AP_SSID
$ nmcli connection modify rpi_ap wifi-sec.key-mgmt wpa-psk
$ nmcli connection modify rpi_ap wifi-sec.proto rsn
$ nmcli connection modify rpi_ap wifi-sec.pairwise ccmp
$ nmcli connection modify rpi_ap wifi-sec.psk AP_PASSWORD
$ nmcli connection modify rpi_ap 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared
$ nmcli connection modify rpi_ap ipv4.address 192.168.50.1/24
$ nmcli connection modify rpi_ap autoconnect yes
6-2. 一行で設定する場合
上記のコマンドを1行にスペースで区切って並べて実行します。間違えた場合は、一つ一つ設定してくmodifyコマンドを使って内容を変更します。
$ nmcli connection add type wifi ifname wlan0 con-name rpi_ap autoconnect yes ssid AP_SSID 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared ipv4.address 192.168.50.1/24 wifi-sec.key-mgmt wpa-psk wifi-sec.pairwise ccmp wifi-sec.proto rsn wifi-sec.psk AP_PASSWORD
6-3. 実行例
rpi_apの設定コマンドの実行例です。
設定した内容は、以下のディレクトリにファイルとして保存されます。設定した内容が確認できます。修正はmodifyコマンドを使って行ってください。
$ nmcli connection show コネクション名
でも設定内容は確認可能です。
また、
$ nmcli connection show
でも、設定が登録されたことが確認できます。
6-4. APモードの起動
APモードの起動は、以下のコマンドで行います。
$ nmcli connection up rpi_ap
6-5. 動作の確認
APモードで、SSIDが発振されます。Windows PCから接続可能なwifiの一覧を確認すると、SSID ap-modeを確認することができます。
そこで、接続をすると、インターネット無しで接続することができます。
そして、SSID ap-modeに接続した状態で、VNCでPDHに接続することが出来ました。
6-5. コネクションの削除
上記で作成したコネクションを削除したい場合には、以下のコマンドで削除します。
$ nmcli connection delete コネクション名
以下の例では、”Bullfao-G-8EB6“を削除しています。
7. ルータ仕様(APモード+WiFi接続)の設定
ローカルネットワーク仕様では、コネクション名 rpi_apをwlan0に割り当てています。そのため、wlan0が占有されてしまいますので、インターネットへの接続ができません。
ルータ仕様では、ひと手間かけて、wlan0以外のインターフェースを追加して、それにrpi_apを割り当てます。wlan0には、従来通りwifiを割り当てたままとします。
そして、その後IPのフォワード設定を行い、rpi_apからwlan0を通じて、wifiにアクセスできるようにします。
7-1. wlan0のMACアドレスの確認
wlan0のMACアドレスを調べます。ここでは、以下のコマンドで調べます(ifconfigでも調べられます)。
$ iw dev
7-2. インターフェースの追加
以下のコマンドで追加します。一つ目が、ap0の作成で、2つ目がap0にMACアドレスを割り当てます。
$ sudo iw phy phy0 interface add ap0 type __ap
$ sudo ip link set ap0 address MAC_ADDRESS
ここでの設定を永続化(リブートしても再現)するために、同じコマンドをファイルに記述し、起動のたびに読み込ませます。
下記のディレクトリに移動し、”99-ap0.rules”というファイルを作成し、中に以下を記載して保存します。
SUBSYSTEM=="ieee80211", ACTION=="add|change", ATTR{macaddress}=="MAC_ADDRESS", KERNEL=="phy0", \
RUN+="/sbin/iw phy phy0 interface add ap0 type __ap", \
RUN+="/bin/ip link set ap0 address MAC_ADDRESS"
7-3. コネクションの作成
以下のコマンドを実行します。1行で実行することもできます。「4.ローカルネットワーク仕様」との違いは、インターフェース名の違いです。
ifname wlan0が、ifname ap0になっています。それ以外は、ローカルネットワーク仕様と同じです。
$ nmcli connection add con-name rpi_ap ifname ap0 type wifi ssid AP_SSID
$ nmcli connection modify rpi_ap wifi-sec.key-mgmt wpa-psk
$ nmcli connection modify rpi_ap wifi-sec.proto rsn
$ nmcli connection modify rpi_ap wifi-sec.pairwise ccmp
$ nmcli connection modify rpi_ap wifi-sec.psk AP_PASSWORD
$ nmcli connection modify rpi_ap 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared
$ nmcli connection modify rpi_ap ipv4.address 192.168.50.1/24
$ nmcli connection modify rpi_ap autoconnect yes
7-4. APモードの起動
APモードの起動は、以下のコマンドで行います。
$ nmcli connection up rpi_ap
その後、接続を確認します。
7-5. IPフォワード設定
以下のファイルを開き、先頭の#を外し、コメントを解除します。
net.ipv4.ip_forward=1
保存後、リブートします。
7-6. 接続確認
Windows PCから、PDHのSSID ap_modeに接続して、インタネットに出られるか確認します。
■ Windows PCからR-CPS-TOPに接続可能
■ VNCでPDHに接続可能