CentOS > dhclientの設定
更新日
2015-01-15
広告
CentOS 5.5で、dhclientがDHCPDISCOVERを繰り返し送信するようにする方法を説明します。
eth0インターフェースを使って通信している場合は、/etc/sysconfig/network-scripts/ifcfg-eth0 に、以下の設定を追加します。
PERSISTENT_DHCLIENT=yes
これで、DHCPDISCOVERに対してDHCPOFFERが返されなかった場合に、DHCPDISCOVERを再送します。 ただし、CentOSのブート時にDHCPサーバがダウンしていると、延々とDHCP処理を行い続け、処理が先に進まなくなる可能性があります。
以下は詳細な説明です。
CentOS 5.5のdhclientは、デフォルトでは以下のような設定で実行されます。
/sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid eth0
ここで重要なのは-1オプションです。 -1オプションを指定すると、dhclientはDHCPDISCOVERを1回しかブロードキャストしません。 そして、その1回のDISCOVERにOFFERが返されないと、処理を終了します。
つまり、-1オプションを指定したdhclientは、DHCPサーバがしばらくダウンすると、処理を停止するということです。 こうなると、DHCPを利用しているマシンは、それまで割当てられていたIPv4アドレスを解放し、その後は再取得しません。
dhclientはネットワークインターフェースがリンクアップした際に、スクリプト(/etc/sysconfig/network-scripts/ifup-eth)から実行されます。ifup-ethの一部を抜粋します。
if [[ "${PERSISTENT_DHCLIENT}" = [yY1]* ]]; then ONESHOT=""; else ONESHOT="-1"; fi;
つまり、変数PERSISTENT_DHCLIENTが [yY1]* であれば、変数ONESHOTは空文字になります(-1オプションは指定されなくなります)。 冒頭で ifcfg-eth0 スクリプトに PERSISTENT_DHCLIENT=yes を設定したのは、この理由からです。
広告
お問い合わせは sweng.tips@gmail.com まで。