web-dev-qa-db-ja.com

起動順序が間違っているため、DHCPサーバーが起動時に起動しない

どうやらisc-dhcp-serverが起動シーケンスの早い段階で起動されたようで、それは何の関係もないと述べています。 rootとして直接ログインし、init.d-scriptを使用して起動するだけで、正常に起動します。

私のセットアップは基本的に完全に標準的なルーターで、inet側にeth0があり、lan側にeth1があります。ただし、lan側にはeth1の代わりにブリッジを定義しました。したがって、ネットワークのLAN部分は、ブリッジが起動するまで起動しません。

私は現在、ブリッジが起動される前にdhcpサーバーが起動されると考えています。おそらく、ブリッジは「ネットワーク」タスクで起動され、ethは「ネットワークインターフェース」タスクで起動されます-以前に実行されます。 (また、橋はethに比べて立ち上がるのに少し時間がかかります)。

LAN側にeth1を直接使用する代わりに、ブリッジ構成を削除すると、問題は解決します。 (ただし、syslogで判断すると、物事はまだきつい。)

DHCPを後で開始する方法のアイデアは?

(ブリッジの理由は、ブリッジネットワークでKVMを使用できるようにするためです。)

5
stolsvik

ネットワークインターフェースは、networkingタスクがupstartシーケンスで実行された後にのみ起動します。/etc/init/networking.confのタスクの設定で、それが実行するのはifup -aだけであることがわかります。 /etc/rc?.dフォルダーからisc-dhcp-serverシンボリックリンクを削除し、upstartの新しいタスクを追加することにより、スタートアップシーケンスを修正しました。あなたがしなければならない唯一のことは、設定ファイル/etc/init/dhcp_start.confを追加して、次のようなものにそれを編集することです:

停止したネットワークで開始

exec /etc/init.d/isc-dhcp-server start

これは厄介なハックですが、動作します。ネットワークのように、別のイベントでdhcpdを静かにシャットダウンする別のタスクを追加することもできます。

停止したブリッジネットワークインターフェイスbr0で開始

exec /etc/init.d/isc-dhcp-server stop

ネットワーキングを停止する代わりに、ネットワーキングを開始したときにdhcpを起動するように言う人がいることを他のどこかで見つけました。インターフェイスはifup -aコマンドが終了した後にのみ構成され、実際に実行されたときではないため、本質的に間違っています。 dhcpと並行してifupを実行するのは非常に高速だったため、偶然にしか機能しませんでした。

2
Piotr Skibinski

私はまったく同じ問題を抱えていました。

/etc/init.d/isc-dhcp-serverを編集し、上部にsleep 10を追加して修正しました。
sleep 5を試しましたが、十分ではありませんでした。

うまくいけばそれもあなたのために働くでしょう。

3
David Lomax

/etc/default/isc-dhcp-serverに正しいインターフェイスを配置します。私の場合:

INTERFACES="br0 eth2"
2
Paul B

上記のどれも私にとってはうまくいきませんでしたが、rc.localスクリプトにこれらの行を追加することでようやく動作しました

sleep 10
/etc/init.d/isc-dhcp-server start

スリープ10がなければ、これは効果がありませんでした。また、デフォルトルートを維持するのにも問題がありました。

route add default gw 192.168.1.1 eth1

(私はeth0を持っていません、理由を理解したことがありません)

0
boatcoder

これを試して、それは私のために働いた:

rm /etc/init/isc-dhcp-server.override

ファイル内に手動と表示されているため、ファイルを削除しました。

0
RLZG