LinuxとBusyboxをベースにした組み込みデバイスを開発しており、さまざまなネットワーク構成に適応できるようにしようとしています。したい:
1-起動時にDHCP応答がない場合は、AutioIPアドレスを使用します。
2-実行時にDHCPサーバーが使用可能になった場合は、使用を開始します。
/ etc/network/interfacesでeth0をmanualに設定し、コマンドをに設定できるので、ポイント1は簡単に思えます。
udhcpc eth0 --now || zcip eth0 /etc/zcip.script
ポイント2がわかりません。udhcpcデーモンとzcipデーモンの両方を同時に実行した場合、それらは一緒にうまく機能しますか?
これはudhcpc + avahiで実行できます。 AvahiはLinux用のzeroconf実装です。 autoip(dhcpなしでアドレスを与える)とmDNS(DNSサーバーなしの名前解決)を提供します。
buildroot の組み込みシステムで動作させました。 dhcpが使用できない場合にautoipへのフォールバックを有効にする変更されたudhcpc開始スクリプトもあります。
起動時にDHCPへのフォールバックとしてAutoIPのみを使用する必要がある場合は、デーモンとして実行する代わりに、アドレスを取得して終了するようにzcipに指示することをお勧めします。
起動時に行うこと:
udhcpc eth0 --now || zcip -f -q eth0 /etc/zcip.script
このコマンドが完了すると、udhcpcが実行されるか、リンクローカルアドレスが作成されます。
次に、DHCPサーバーが使用可能になったら、udhcpcデーモンを起動します。