長いタイトルだ、、

さて、最近のラズパイはIPアドレスの固定をdhcpcdサービスの設定で行うのがセオリーになっているようだが、こちらが(自分にとって)なかなか曲者の様です。

一般的な環境で使う分には/etc/dhcpcd.confに以下のような記述を加えてサービスなりを再起動すれば固定化されるはずです。この方法はネットで検索するといくらでも出てくるのでそちらを参考にしてください。

interface eth0
static ip_address=192.168.10.203/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1

しかしこの方法ではイーサケーブル等がネットワークにつながっていない状態、すなわちDHCPサーバからのブロードキャストを受け取れない状況になると、IPアドレス設定が勝手に無効になってしまいます。

色々調べると、DHCPサーバが利用できない状況になった場合、fallbackという設定でリカバリー出来るという方法もあるようですが、自分はうまく行きませんでした。ぶちっとケーブルを抜いた瞬間に設定が無効になってしまいます。

profile static_eth0
static ip_address=192.168.10.203/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1

interface eth0
fallback static_eth0

これってサイネージとかIoTで閉じたLAN組む時に困るんじゃない?!

ということで、伝統的にラズビアンのベースとなっているUbuntsの一般的なネットワーク設定を参考にして、IPアドレスの固定化に成功しました。以下がその手順です。

まずは、使えないdhcpcdを停止
# systemctl disable dhcpcd

そしてネット情報ではタブーとなっている?interfacesに固定IPアドレス情報を設定する
# cd /etc/network/interfaces.d
# vi static  (ファイル名は何でもOK)
-----
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.10.203
netmask 255.255.255.0
broadcast 192.168.10.255
gateway 192.168.10.1
dns-nameservers 192.168.10.1
-----

再起動
# init 6

あー無駄な時間を費やしたわ