web-dev-qa-db-ja.com

Debianでイーサネットにケーブルが接続されていない場合にDHCPをスキップする方法

私のBananian Linuxは、接続されていないeth0インターフェイスのDHCPリースを取得しようとして、ログオン時に時間を浪費しています。さて、延長ケーブルが接続されていますが、反対側には何もありません。

私が持っています

auto eth0
iface eth0 inet dhcp 

私の/etc/network/interfacesイーサネットが接続されている場合に備えてイーサネットを取得したいのですが、ケーブルがイーサネットに接続されていない場合は、システムの起動を遅くしたくありません。私はシステムがこれを自動的に認識し、インターフェイスのDHCPリースを取得しようとしないと想定しました。

これは、ロード時に表示されるものです(最後の3行を参照)。

enter image description here

リースが来ないことを理解したら、ブートを続行します。

接続されたケーブルがない場合にDHCPに通知しない方法はありますか?

12
Maxim V. Pavlov

指定した場合

allow-hotplug eth0

の代わりに

auto eth0

/etc/network/interfacesでは、起動のたびではなく、何かがトリガーしたときにudevによってのみ接続が開始されます。

それはあなたのケースを処理するのに十分かもしれませんが、必ずしもそうではありません; the interfaces manpage は、

(「allow-hotplug」とマークされたインターフェースは、udevがそれらを検出したときに表示されます。これは、インターフェースがすでに存在する場合のブート時、またはUSBネットワークカードを接続するときなど、後で発生する可能性があります。これは、接続されているネットワークケーブルの検出とは関係ありません。)

the /etc/network/if-up.d/00check-network-cable package からifupdown-extraを使用して、ケーブルが接続されていない場合にインターフェイスをスキップする必要がある場合があります。

16
Stephen Kitt

ifplugdをご覧ください:

ifplugdはLinuxデーモンであり、ケーブルが差し込まれたときにイーサネットデバイスを自動的に構成し、ケーブルが引っ張られた場合に自動的に構成を解除します。これは、ケーブルが実際に接続されている場合にのみインターフェイスを構成するため、オンボードネットワークアダプターを備えたラップトップで役立ちます。

ifplugd ifplugdは、ディストリビューションのネイティブネットワーク構成ユーティリティとインターフェイスします。

いくつかの機能:

  • ディストリビューションのネイティブのifup/ifdownプログラムを使用します。
  • ケーブルが取り外されたり、差し込まれたりした場合、ビープ音が鳴るかもしれません。インターフェースの設定が成功したか失敗したかです。
  • リンクステータスを取得するために、Linux SIOCETHTOOL(新しい、別名ethtool API)、SIOCGMIIREG(古い、別名mii-diag/mii-tool API)、およびSIOCDEVPRIVATE(最も古い、別名mii-tool API)ioctl()をサポートします。リリース0.24では、IFF_RUNNINGインターフェイスフラグによるリンク検出のサポートが導入されています。
  • Syslogサポート
  • 小さなプログラム-バイナリはわずか25 KB(libdaemonの場合は16 KB)。
  • 複数のイーサネットインターフェイスのサポート
  • 短い「アンプラグド」期間(-dオプション)または短い「プラグイン」期間(-uオプション)を無視するように構成できます。
  • ワイヤレスネットワークのサポート。 APへの関連付けが検出されるたびに、ネットワークが構成されます。 APアソシエーションが成功する前にWEPキーを設定する機能が必要な場合は、waproamdを確認してください。
  • ケーブル検出をサポートしないネットワークデバイスの互換モード(-Fオプション)

パッケージDebianパッケージ検索ページ: ifplugd
公式のifplugdサイト

apt-get update && apt-get-install ifpludトリックを行う必要があります。余談ですが、systemdの作成者はこのパッケージを保守しています。

0
eyoung100

上記の回答を完成させたいのですが、少し深く掘り下げるまで、最初は何もうまくいきませんでした。

Ifupdown-extraパッケージをインストールします。

$ Sudo apt-get install ifupdown-extra

/ etc/network/if-pre-upに00check-network-cableのシンボリックリンクを作成します。

$ cd /etc/network/if-pre-up
$ Sudo ln -s ../if-up.d/00check-network-cable .

ファイル/ etc/default/network-testを編集し、ABORT_ON_LINKからyesへ。注-私のdebianでは、それはABORT_ON_LINK=${ABORT_ON_LINK:-no}およびそれをデフォルトで「yes」に設定しても、check-network-cableスクリプトでnoに設定されていたため、効果がありませんでした。そのため、その設定をコメントアウトしました。私は物事を1つ(そして1つだけ)に設定することを好みます。

イーサネットが接続されていない状態での私の起動は高速でした。

0
DAmann

問題には常に複数の解決策があります。

このマシンを自宅のように常に1か所に置いている場合、最も簡単な方法は、dhcp-clientパッケージを削除し、静的IPアドレス、マスク、ゲートウェイを設定することです。必要ない場合は、次のようにします。

apt-get remove isc-dhcp-client

これは、依存関係がある場合は、最初に教えてくれます。パッケージをアンインストールすると、起動中に待つ必要がなくなります。

これは、/etc/network/interfacesに設定する例です

iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.254

出典: https://wiki.debian.org/DHCP_Client

0