SSブログ

Pi4 Ubuntu 20.04 LTSでDHCPv4 & DHCPv6が自動起動しない... [Raspberry Pi]

設定変更の確認のため、rebootをしていたら、dhcpdが立ち上がっていないことに気が付きました。
起動後にloginしてps -ef | grep dhcpすると、いないんです...

/var/log/syslogを見てみると

No subnet6 declaration for eth0 (no IPv6 addresses).



No subnet declaration for eth0 (no IPv4 addresses).

で、エラー。
でも
$ systemctl is-enabled isc-dhcp-server isc-dhcp-server6
enabled
enabled
ってなってるんだよな~とぐぐって調べてみても、ろくな答えは書いてない...

色々調べていくと/etc/default/isc-dhcp-serverにMulti Hostな場合のインターフェースを記載するようです。これが
INTERFACESv4=""
INTERFACESv6=""
となっていて、ここにeth0を書いてあげればいいのかと思ったら、何も変化無し...

実際に、起動するときのscriptは/etc/systemd/system/multi-user.target.wantsの下にある

isc-dhcp-server.service
isc-dhcp-server6.service

で、これらは/lib/systemd/system以下の同名のファイルへのsymbolic link。
こいつには、/bin/shに食わせるコマンドとして

exec dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES

とか

exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES

とか書いてある...
どっちも$INTERFACESぢゃん... /etc/default/isc-dhcp-serverに書き込んだところで、反映されないのはこのため。
なので、/etc/default/isc-dhcp-serverに1行加えて

INTERFACES="eth0"

と書き加えてあげたら、見事に立ち上がりました。
bugかな...

んで、おまけ。
systemdによる起動は
https://milestone-of-se.nesuke.com/sv-basic/linux-basic/systemctl-list-dependencies/
こちらにあるように、グラフィカルに表示可能です。
$ systemctl list-dependencies
とすれば、赤丸付いているのは、起動に失敗と言うことがすぐに分かります。
また起動順序をグラフィカルに確認するには
systemd-analyze plot > /tmp/plot.svg
とかして、Web browserで表示させると良いです。
今回、desktop環境はインストールしていないので、sftpでWindows側に持ってきて表示しましたが、わかりやすいですね:-)

なお、今回は、radvdの設定でManaged FlagをOFFしたときの挙動を確認するためでした。
アドレスをDHCPv6で割り当てなくても、経路情報を設定してInternalなname serverにきちんとアクセス出来ることが確認出来たので、こっちで運用かな。
nice!(9)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 9

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。