treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Raspberry Pi OS Lite Trixieで静的IP設定を実施する

Raspberry Pi OSで静的IPアドレスを設定する手順が、いままでのやり方と違っていたのでご報告です。
いままでアップグレードした環境しか使ってこなかったので、初めての手順で設定を実施しました。

ネットワーク設定の今昔

Linuxをサーバにするとき、固定でIPを割り当てることが多いのですが、昔使っていた

/etc/network/interfaces

のファイルに直接書き込んでいくのですが、世代が進んで

/etc/dhcpcd.conf

に書き込むようにある世代から変更となっていました。(※DHCPクライアントに静的IPを設定しておく、という感じに変わった)

</etc/network/interfaces>ファイル内にも「このファイルは dhcpcd で使用するために作成されています。固定 IP については、/etc/dhcpcd.conf および 'man dhcpcd.conf' を参照してください。」と記載されるようになっていました。

これが、今回設定したTrixieベースのRaspberry Pi OSでは、(恐らく先代のbookwormのタイミングから)Network Managerベースとなったことで、上記のやり方と相違しているようでした。

マニュアルの推奨はルータ割り当て

静的IPアドレス設定は、どうもルータで割り当てるように変わった模様。マニュアル<https://www.raspberrypi.com/documentation/computers/configuration.html>には、

--------------------------------------------------------------
To allocate a static IP address to your Raspberry Pi, reserve an address for it on your router. Your Raspberry Pi will continue to have its address allocated via DHCP, but will receive the same address each time. A "fixed" address can be allocated by associating the MAC address of your Raspberry Pi with a static IP address in your DHCP server.
--------------------------------------------------------------
Raspberry Pi に静的 IP アドレスを割り当てるには、ルーターでそのアドレスを予約します。Raspberry Pi には引き続き DHCP 経由でアドレスが割り当てられますが、毎回同じアドレスが届きます。「固定」アドレスは、Raspberry Pi の MAC アドレスを DHCP サーバーの静的 IP アドレスに関連付けることによって割り当てることができます。
--------------------------------------------------------------

と記載があります。インストール直後のRaspberry Pi OSを確認してみたところ、Network Manager が標準となったためかdhcpcd も ifupdown (/etc/network/interfacesで使用される)もインストールされていません。

これを、以前のようにRaspberry Pi OS上でスタティックIPを設定してDHCP依存じゃないIPv4設定を入れたいというのが今回の目標です。

ネットワーク情報の確認

ネットワーク設定の確認にはip aとnmcli cがあります。

ip aは(ifconfig -aが使えなくなったタイミング以降)いつも使っているのですが、nmcliコマンドは今まで使っていませんでした。

書式

$ nmcli c

実行すると

--------------------------------------------------------------

$ nmcli c
NAME  UUID                                  TYPE      DEVICE
Wired connection 1  00000000-0000-0000-0000-000000000000  ethernet  eth0
lo                  00000000-0000-0000-0000-000000000000  loopback  lo

--------------------------------------------------------------

このように、NIC別にUUIDやデバイス名(NIC名)の確認ができます。
今回は有線LAN設定にIPv4を設定しますので「Wired connection 1」がeth0というところを確認しておきます。

IP設定画面を開く

GUIだとリッチな画面が表示されるのですが、CUIではどのように設定するのかを試してみました。

Network Managerで静的IPアドレスの指定をするには、

sudo nmtui

でプロファイルを作成し、設定ができました。まずは起動してみます。

コマンドで、

$ sudo nmtui

と入力すると設定画面が起動します。

メニューは、
Edit a connection(接続を編集する)
Activate a connection(接続をアクティブにする)
Set system hostname(システムホスト名を設定する)
Radio (無線)
Quit (終了)
となっています。

設定する

設定するために前述の画面で「Edit a connection(接続を編集する)」を選択します。選択すると次の画面、

NIC別の選択画面が表示されます。

SSIDを入力していない(たぶん)ので、Wi-Fi設定は出てこないようです。設定したいオンボードNIC(RJ-45の方)が先ほど調べた「Wired connection 1」を選択して、「Edit」を選択します。

この画面で、「IPv4 CONFIGURATION <Automatic>」の箇所を選択すると、

選択肢が表示されます。ここで「Manual」を選択します。選択後に、「Show」を選択すると、IPv4設定項目が画面表示されます。

Addressの<Add...>を選択してIPアドレス(このRaspberry Piの)を設定します。
同様にデフォルトゲートウエイやDNSサーバも設定していきます。


※画像のIPなどは実際の設定は実際の環境に合わせて実施します。

IP設定後必要に応じて

オプション設定を実施します。それぞれの項目は、

  • ルーティング(カスタムルートなし)<編集...>
  • このネットワークをデフォルトルートとして使用しない
  • 自動取得ルートを無視する
  • 自動取得DNSパラメータを無視する
  • この接続にはIPv4アドレスを要求する

必要に応じてオプション設定を設定しておきます。また、IPv6が必要なければDisabledにしてIPv4のみの通信になるようにしておきます。(※参考:<sambaサーバにホスト名でアクセスできなくなったので対処 - treedown’s Report>で発生したのは元々IPv6が優先で応答してくるのが発端でした。)

OKボタンを選択して設定が完了すると、

画面が戻るので、「Back」で以前の画面に戻ります。

トップページで、

「Quit」を選択して「OK」を選ぶ。以上でIP設定が完了します。


ただ設定直後はこの設定値でなく、OS起動時にDHCPで取得したIPアドレスが使われているので、初期設定ということもあり、いったんOSを再起動(sudo systemctl reboot)してIPアドレス設定が反映されるかを確認しておきます。

OS再起動後にコマンドip aなどで確認してみると、Network Managerで設定した静的IPの設定値になっているので設定は狙い通りスタティックIPを手入力した値が使われることを確認できました。

これからはファイル編集でなくNetwork Manager

ここまでで完了です。Network ManagerベースとなったRaspberry Pi OSにて静的IPアドレスの設定方法を実施してみました。

ファイルに記載するだけの以前とそれほど変わらず、手入力箇所がファイルからUIになっただけなのですが、その入り口が分からないと設定をすることができないということもあり、今回のやり方は今後のRaspberry Pi OSを設定するうえで覚えておきたいと思いました。