2024/01/17(水)固定化IP(bookworm)
bookworm版の有線LANを固定化IPとする
■ RaspiOSのbookworm版はIP設定をNetworkManagerで行うように変更されている。NetworkManager:Red Hat, Inc.が開発したアプリケーション
・なぜ固定化IPが必要かはRaspiのboot初期値はDHCP(auto)によりIP番号は動的に変更されることがある。
それを禁止するため。(IP番号がOSの都合により変えられると温度計アプリが通信不能となる)
● NetworkManageの現状を確認する。(Windowsのコマンドプロンプトより行う)
WindowsのコマンドプロンプトからsshでRaspiへログイン(TeraTermだとnetworkを設定するので途中、通信不能になる場合がある)
● 初期起動時、NetworkManagerが停止しているのでrestart後イネーブルとする。 pi@raspberrypi01:~ $ sudo systemctl restart NetworkManager pi@raspberrypi01:~ $ sudo systemctl enable NetworkManager pi@raspberrypi01:~ $ sudo nmcli networking connectivity check full pi@raspberrypi01:~ $ systemctl status NetworkManager.service Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; preset: enabled) Active: active (running) since Fri 2023-12-22 08:32:23 GMT; 20h ago・コントロール Cで抜け出る。
・active (running)が緑色で表示されれば起動中である。
ネットワークの設定ファイルにおいて、「キーファイル」と「ifcfgスタイル」の2種類があるが
bookwormは「キーファイル」の設定が優先される。「ifcfgスタイル」:CentOSなどが採用
「キーファイル」でIPアドレス設定する場合で「キーファイル」の保存先例
/etc/NetworkManager/system-connections/eth0.nmconnection
配下にeth0.nmconnectionファイルが存在しないことを確認した上で、
● IPアドレス未設定時
pi@raspberrypi01:~ $ nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 d670c16f-e489-3964-bd86-b7786675a79b ethernet eth0 lo 7cb5e7cb-183d-49ed-92c0-403dcb2b3710 loopback lo「DEVICE」と「NAME」が一致していないので一致させる。
d670c16f-e489-3964-bd86-b7786675a79bは表示値を適時、適合させる。
NAME:enp0s10をDEVICE:eth0へ関連付ける。
pi@raspberrypi01:~ $ sudo nmcli connection modify 'Wired connection 1' connection.id enp0s10<-コピペ pi@raspberrypi01:~ $ nmcli connection show NAME UUID TYPE DEVICE enp0s10 d670c16f-e489-3964-bd86-b7786675a79b ethernet eth0 # Wired connection 1がenp0s10に変わった。 lo 7cb5e7cb-183d-49ed-92c0-403dcb2b3710 loopback lo● このコマンドで以下のenp0s10.nmconnectionというファイルが作られる。
/etc/NetworkManager/system-connections/enp0s10.nmconnection
このファイルへnmcliコマンドで固定IP化する情報の追加や変更を行う。
Windows編でuser名:pi、host名:raspberrypi01を設定しRaspiへログインした時、DHCPで割り振られたIPをそのまま
固定化する。(なぜなら参加ネットワーク(セグメント)内でユニークなIP番号が割り振られているから)
・現在のIP割り振り状況の確認 pi@raspberrypi01:~ $ hostname -I 192.168.51.131 192.168.1.242 有線LAN:192.168.51.131 WiFi:192.168.1.242<--これらのipはまだ固定化されたipではない。 適時、自ip番号へ置き換えること。 pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.addresses 192.168.51.131/24<--192.168.51.131これを適時、上記表示と合わせる pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.gateway 192.168.51.1<-ここは168.51の51.1のgatewayに適時合わせる pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.dns 8.8.8.8<-ここはこのまま pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.method manual<--ここで固定化ipとして登録される pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/enp0s10.nmconnection [ipv4] address1=192.168.51.131/24,192.168.51.1<--追加された dns=8.8.8.8;<--追加された method=manual<--固定IP化に変更(DHCPではmethod=autoであった) ・viの閉じ方、ESC : q ! これを順番に入力し最後にEnter これで書き込み無しで閉じる● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload 有線LAN(enp0s10)を再起動する。 pi@raspberrypi01:~ $ sudo nmcli connection up enp0s10 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
bookworm版のWiFiを固定化IPとする
● 現在のWiFi状態を確認する。pi@raspberrypi01:~ $ nmcli radio wifi enabled pi@raspberrypi01:~ $ nmcli device wifi IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY * 00:24:A5:C9:98:61 0024A5C99861 Infra 5 130 Mbit/s 100 ▂▄▆█ WPA1 WPA2 06:24:A5:C9:98:61 0024A5C99861-1 Infra 5 130 Mbit/s 100 ▂▄▆█ WPA1 B0:C7:45:34:20:60 Buffalo-G-206A Infra 8 195 Mbit/s 67 ▂▄▆_ WPA2 CA:32:E5:A8:96:CC EU_WIRELESS Infra 2 270 Mbit/s 50 ▂▄__ WPA1 WPA2 CC:32:E5:A8:96:CB EU_WIRELESS_4th_floor Infra 2 270 Mbit/s 49 ▂▄__ WPA2 00:D0:1D:26:96:6D CWN Infra 11 130 Mbit/s 44 ▂▄__ WPA2 802.1X 00:D0:1D:26:96:95 CWN Infra 11 130 Mbit/s 42 ▂▄__ WPA2 802.1X 18:C2:BF:15:2C:13 Buffalo-G-2C12 Infra 1 130 Mbit/s 37 ▂▄__ WPA2 pi@raspberrypi01:~ $● nmcli device wifiで表示されたSSIDの番号(0024A5C99861)でへwifi接続し、IPを固定化する。
・ここで0024A5C99861やpasswordは適時、自環境に合わせる。
・passwordはSDカードへRaspiOSを書き込む編の「パスワードを見るで表示される」でメモした文字列パスワードに置き換える。?????<-削除
pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk" Device 'wlan0' successfully activated with 'f8e7ff1d-b053-41a3-bf17-85c2c8961208'. ・このコマンドでpreconfigured.nmconnectionファイルが以下の場所へ作成される。 /etc/NetworkManager/system-connections/preconfigured.nmconnection pi@raspberrypi01:~ $ nmcli con show NAME UUID TYPE DEVICE enp0s10 058c1b36-ce22-3354-b5f7-f65c75b88c15 ethernet eth0 0024A5C99861 c2a191e6-1342-41d2-a898-736458bcdb35 wifi wlan0 lo 4852a825-c549-4bfa-8a0c-85f7ca562d01 loopback lo preconfigured c7f36508-2540-4236-8f6e-59ebf3b607c4 wifi --● コマンドによりファイルが作成されたので、このファイルに対してnmcliコマンドで固定IP化する情報の追加や変更を行う。
・現在のIP割り振り状況の確認 pi@raspberrypi01:~ $ hostname -I 192.168.51.131 192.168.1.242 192.168.51.131は有線LAN、すでに固定化済み、192.168.1.242はWiFiでまだ固定化されていない。 pi@raspberrypi01:~ $ sudo nmcli connection modify preconfigured ipv4.addresses 192.168.1.242/24<-適時、自IPへ合わせる pi@raspberrypi01:~ $ sudo nmcli connection modify preconfigured ipv4.gateway 192.168.1.1<-適時、自gateway 168.1.1へ合わせる pi@raspberrypi01:~ $ sudo nmcli connection modify preconfigured ipv4.dns 8.8.8.8<-ここはこのままコピペ pi@raspberrypi01:~ $ sudo nmcli connection modify preconfigured ipv4.method manual<-これでIPが固定化される このままコピペ pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/0024A5C99861.nmconnection<--SSIDを変更した時 pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/preconfigured.nmconnection<--SSIDを変更しなかった時 [ipv4] address1=192.168.1.242/24,192.168.1.1<--nmcliコマンドで追加された dns=8.8.8.8;<--nmcliコマンドで追加された method=manual<--nmcliコマンドで変更された(auto-->manualへ) ・viの閉じ方、ESC : q ! これを順番に入力し最後にEnter これで書き込み無しで閉じる● 設定を有効化する。(preconfigured.nmconnectionファイル変更したのでWiFiを接続しなおす)
pi@raspberrypi01:~ $ sudo nmcli connection reload pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk" Device 'wlan0' successfully activated with '690f0ecf-3330-4a0e-9b6c-9a2908c7124b'. pi@raspberrypi01:~ $ nmcli general status STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN connected full enabled enabled missing enabled・RaspiOSを書き込む編では0024A5C99861-1を選択していたがここでは0024A5C99861に変更したので
/etc/NetworkManager/system-connections/preconfigured.nmconnectionファイルが放置されてしまった。<--無害
● IPが固定できたのでこれ以降の作業はTeraTermで行う。????