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).
で、エラー。
でも
色々調べていくと/etc/default/isc-dhcp-serverにMulti Hostな場合のインターフェースを記載するようです。これが
実際に、起動するときの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/
こちらにあるように、グラフィカルに表示可能です。
また起動順序をグラフィカルに確認するには
今回、desktop環境はインストールしていないので、sftpでWindows側に持ってきて表示しましたが、わかりやすいですね:-)
なお、今回は、radvdの設定でManaged FlagをOFFしたときの挙動を確認するためでした。
アドレスをDHCPv6で割り当てなくても、経路情報を設定してInternalなname serverにきちんとアクセス出来ることが確認出来たので、こっちで運用かな。
起動後に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にきちんとアクセス出来ることが確認出来たので、こっちで運用かな。
コメント 0