2024/01/17(水)固定化IP(bullseye)

bullseye版の有線LANとWiFiの固定化IP(※2022年9月以前のOSはNetworkManagerのインストールから)

RaspiOSのbullseye版はIP設定をdhcpcdで管理しているがこれをNetworkManagerで管理するよう変更する。
 ● WindowsのコマンドプロンプトからsshでRaspiへログインし作業を行う。(TeraTermだとnetworkを設定するので途中、通信不能になる場合がある)
C:\Users\usr_name> ssh pi@raspberrypi01
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
pi@raspberrypi01's password:***<---ここでRaspiのパスワードを聞かれるので入力
pi@raspberrypi01:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.51.138  netmask 255.255.255.0  broadcast 192.168.51.255
        inet6 fe80::83aa:2980:df1c:4e9  prefixlen 64  scopeid 0x20<link>
        ether bc:5c:4c:e1:09:ca  txqueuelen 1000  (Ethernet)
        RX packets 384  bytes 33732 (32.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 102  bytes 13180 (12.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12  bytes 1738 (1.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 1738 (1.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.242  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ed4:979e:ac64:b4cc  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:07:f8:cb  txqueuelen 1000  (Ethernet)
        RX packets 335  bytes 31570 (30.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39  bytes 5018 (4.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
pi@raspberrypi01:~ $ hostname -I
192.168.51.138 192.168.1.242
 ● bullseye版をNetworkManagerに切り替える。
pi@raspberrypi11:~ $ nmcli
Error: NetworkManager is not running.
pi@raspberrypi01:~ $ sudo raspi-config nonint do_netconf 2<-NetworkManagerに切り替える
Failed to enable unit: Unit file NetworkManager.service does not exist.<-NetworkManager自体が無い
   OSが2022年9月以前のインストールだとNetworkManager自体が無いのでこちら( NetworkManager )から作業を行う。
pi@raspberrypi01:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.51.139  netmask 255.255.255.0  broadcast 192.168.51.255
        inet6 fe80::83aa:2980:df1c:4e9  prefixlen 64  scopeid 0x20<link>
        ether bc:5c:4c:e1:09:ca  txqueuelen 1000  (Ethernet)
        RX packets 1109  bytes 95613 (93.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 202  bytes 26389 (25.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12  bytes 1738 (1.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 1738 (1.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 4e:47:2d:3b:42:5f  txqueuelen 1000  (Ethernet)
        RX packets 1030  bytes 97051 (94.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 71  bytes 9034 (8.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 ・WiFiが無くなり、eth0が192.168.51.139になっている。
pi@raspberrypi11:~ $ sudo reboot
 ● Windowsのコマンドプロンプトから再度、sshでRaspiへログイン
  ・ 現状でRaspiから見えているWiFiを確認する。
pi@raspberrypi01:~ $ nmcli dev 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  75      ▂▄▆_  WPA2
        00:D0:1D:26:96:6D  CWN                       Infra  11    130 Mbit/s  44      ▂▄__  WPA2 802.1X
        00:D0:1D:26:96:94  --                        Infra  11    130 Mbit/s  39      ▂▄__  --
        CC:32:E5:A8:96:CB  EU_WIRELESS_4th_floor     Infra  2     270 Mbit/s  37      ▂▄__  WPA2
        CA:32:E5:A8:96:CC  EU_WIRELESS               Infra  2     270 Mbit/s  37      ▂▄__  WPA1 WPA2
        00:D0:1D:26:96:6C  --                        Infra  11    130 Mbit/s  37      ▂▄__  --
        00:D0:1D:26:96:95  CWN                       Infra  11    130 Mbit/s  37      ▂▄__  WPA2 802.1X
        18:C2:BF:15:2C:13  Buffalo-G-2C12            Infra  1     130 Mbit/s  32      ▂▄__  WPA2
        86:BA:3B:8A:83:73  DIRECT-xE73-MB5400series  Infra  3     65 Mbit/s   30      ▂___  WPA2
        00:D0:1D:26:96:9C  --                        Infra  11    130 Mbit/s  22      ▂___  --
pi@raspberrypi01:~ $ systemctl status NetworkManager.service
     Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
    Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
             └─10-dhcpcd.conf
     Active: active (running) since Wed 2024-01-31 16:22:51 JST; 8min ago
・dhcpcd.confが Drop-In 扱いとなって NetworkManager enabled; となっている。
・NetworkManagerは立ち上がっておりWiFiも認識しているようなのでWiFiの設定から先に行う。
pi@raspberrypi01:~ $ hostname -I
192.168.51.139<--WiFiが消えた

ここまででWiFiが認識できているようなので、bullseye版のWiFiを固定化IPとする

● 現在のWiFi状態を確認する
pi@raspberrypi01:~ $ nmcli radio wifi
enabled
pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk"
Device 'wlan0' successfully activated with 'aae8b353-1070-485f-ba75-e997a47b5484'.
・このコマンドで0024A5C99861.nmconnectionファイルが以下の場所へ作成される。
 /etc/NetworkManager/system-connections/0024A5C99861.nmconnection
pi@raspberrypi01:~ $ nmcli con show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  2d286ab1-58ac-30bf-8c8d-acb1d812b328  ethernet  eth0
0024A5C99861        aae8b353-1070-485f-ba75-e997a47b5484  wifi      wlan0<--追加された
pi@raspberrypi01:~ $ hostname -I
192.168.51.139 192.168.1.242<--追加された
この192.168.1.242を固定化IPとする。
pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.addresses 192.168.1.242/24
pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.gateway 192.168.1.1
pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.dns 8.8.8.8
pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.method manual
pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/0024A5C99861.nmconnection
[ipv4]
address1=192.168.1.242/24,192.168.1.1<--追加された
dns=8.8.8.8;<--追加された
dns-search=
method=manual<--変更された
● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload
pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk"
pi@raspberrypi01:~ $ sudo nmcli c down 0024A5C99861 && sudo nmcli c up 0024A5C99861
・ここで認証エラーが出た場合、rebootする。(NetworkManagerへ切り替えた直後なのでまだdhcpcdを引き継いでいる?)

有線LANを固定化IPとする

● ネットワークの設定ファイルにおいて、「キーファイル」と「ifcfgスタイル」の2種類があるが
  NetworkManagerのbookworm版は「キーファイル」の設定が優先される。
  ・「キーファイル」でIPアドレス設定する場合、「キーファイル」の保存先:
  /etc/NetworkManager/system-connections/eth0.nmconnection<--例
  配下にファイルが存在しないことを確認する。
● IPアドレス設定前の初期設定
 ・NetWorkインターフェースの「NAME」を変更する。
・変更前の例
pi@raspberrypi01:~ $ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  2d286ab1-58ac-30bf-8c8d-acb1d812b328  ethernet  eth0
0024A5C99861        aae8b353-1070-485f-ba75-e997a47b5484  wifi      wlan0
・NAME:Wired connection 1をNAME:enp0s10とする(DEVICEの管理をNAME名:enp0s10で行うため)
pi@raspberrypi01:~ $ sudo nmcli connection modify 2d286ab1-58ac-30bf-8c8d-acb1d812b328 connection.id enp0s10
・このコマンドで以下のファイルが作られる。このファイルを変更することで固定IP化する。
/etc/NetworkManager/system-connections/enp0s10.nmconnection
pi@raspberrypi01:~ $ nmcli connection show
NAME          UUID                                  TYPE      DEVICE
enp0s10       2d286ab1-58ac-30bf-8c8d-acb1d812b328  ethernet  eth0
0024A5C99861  aae8b353-1070-485f-ba75-e997a47b5484  wifi      wlan0
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.addresses 192.168.51.139/24
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.gateway 192.168.51.1
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.dns 8.8.8.8
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.method manual
pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/enp0s10.nmconnection
[ipv4]
address1=192.168.51.139/24,192.168.51.1<--nmcliコマンドで追加された
dns=8.8.8.8;<--nmcliコマンドで追加された
method=manual<--nmcliコマンドで追加された
● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload
pi@raspberrypi01:~ $ sudo nmcli c down enp0s10 && sudo nmcli c up enp0s10
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
● IPが固定できたのでこれ以降の作業はTeraTermで行う。