Cara melewatkan DHCP jika tidak ada kabel yang terhubung ke ethernet di Debian

12

Bananian Linux saya membuang-buang waktu saat masuk untuk mencoba mendapatkan sewa DHCP untuk antarmuka eth0 yang tidak terhubung. Nah, kabel extender terhubung ke sana, tetapi tidak ada yang di ujung sana.

saya sudah

auto eth0
iface eth0 inet dhcp 

mengatur di saya /etc/network/interfaceskarena saya ingin mengambil ethernet kalau-kalau terhubung, tapi saya pasti tidak ingin memperlambat startup sistem jika kabel tidak terhubung ke ethernet. Saya berasumsi sistem akan mengetahui hal ini secara otomatis dan tidak akan mencoba untuk mendapatkan sewa DHCP untuk antarmuka.

Inilah yang saya lihat pada waktu pengambilan (lihat tiga baris terakhir):

masukkan deskripsi gambar di sini

Setelah jika memahami bahwa sewa tidak datang, maka akan dilanjutkan dengan boot.

Apakah ada cara saya bisa mengatakannya tidak ke DHCP jika tidak ada kabel yang terhubung?

Maxim V. Pavlov
sumber

Jawaban:

16

Jika Anda menentukan

allow-hotplug eth0

dari pada

auto eth0

di /etc/network/interfaces, maka koneksi hanya akan dimulai oleh udevketika sesuatu memicu itu, bukan pada setiap boot.

Itu mungkin cukup untuk menangani kasus Anda, tetapi tidak harus; halaman interfacesmanual menyebutkan itu

(Antarmuka bertanda "boleh-hotplug" muncul ketika udev mendeteksi mereka. Ini dapat terjadi saat boot jika antarmuka sudah ada, atau di lain waktu, misalnya saat memasukkan kartu jaringan USB. Harap dicatat bahwa ini tidak tidak ada hubungannya dengan mendeteksi kabel jaringan yang terhubung.)

Anda mungkin perlu menggunakan /etc/network/if-up.d/00check-network-cabledari yang ifupdown-extrapaket untuk melewati antarmuka jika ada kabel yang terhubung.

Stephen Kitt
sumber
Bagaimana jika kabel sudah terhubung sebelum boot? Akankah suatu udevperistiwa memicu koneksi pada saat boot dalam kasus itu? Dengan kata lain, apakah udevmemeriksa perangkat apa yang sudah terhubung ke port mesin?
Joseph R.
0

Selalu ada lebih dari satu solusi untuk masalah ini.

Jika Anda dengan mesin ini selalu di satu tempat, seperti di rumah, maka cara termudah adalah menyingkirkan paket dhcp-client, dan mengatur alamat IP statis, mask, gateway. Andaikata Anda tidak membutuhkannya, Anda akan melakukan sesuatu seperti

apt-get remove isc-dhcp-client

Ini akan memberi tahu Anda terlebih dahulu, jika ada ketergantungan. Setelah Anda menghapus paket, Anda tidak perlu lagi menunggu saat boot.

Ini adalah contoh dari apa yang akan Anda atur di /etc/network/interfaces

iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.254

Sumber: https://wiki.debian.org/DHCP_Client

LinuxSecurityFreak
sumber
Seperti disebutkan dalam pertanyaan, saya ingin menggunakan DHCP jika kabel ethernet terhubung. Jadi menghapus klien DHCP tidak akan membantu saya.
Maxim V. Pavlov
0

Lihatlah ifplugd:

ifplugd adalah daemon Linux yang secara otomatis akan mengkonfigurasi perangkat ethernet Anda ketika kabel dicolokkan dan secara otomatis mengkonfigurasi itu jika kabel ditarik. Ini berguna pada laptop dengan adapter jaringan onboard, karena hanya akan mengkonfigurasi antarmuka ketika kabel benar-benar terhubung.

ifplugd ifplugd berinteraksi dengan utilitas konfigurasi jaringan asli distribusi Anda.

Beberapa fitur:

  • Menggunakan program ifup / ifdown asli distribusi Anda.
  • Mungkin berbunyi bip saat kabel dicabut, dicolokkan, konfigurasi antarmuka berhasil atau gagal.
  • Mendukung Linux SIOCETHTOOL (lebih baru, alias ethtool API), SIOCGMIIREG (lebih lama, alias mii-diag / mii-tool API) dan SIOCDEVPRIVATE (tertua, alias mii-tool API) ioctl () untuk mendapatkan status tautan. Rilis 0.24 memperkenalkan dukungan untuk deteksi tautan dengan bendera antarmuka IFF_RUNNING.
  • Dukungan syslog
  • Program kecil - biner hanya 25 KB (ditambah 16 KB untuk libdaemon).
  • Beberapa dukungan antarmuka ethernet
  • Dapat dikonfigurasikan untuk mengabaikan periode "tidak terhubung" pendek (opsi -d) atau periode "dicolokkan" pendek (opsi -u)
  • Dukungan untuk jaringan nirkabel. Setiap kali asosiasi dengan AP terdeteksi jaringan dikonfigurasi. Lihatlah waproamd jika Anda memerlukan fasilitas untuk mengonfigurasi kunci WEP sebelum asosiasi AP berhasil.
  • Mode kompatibilitas untuk perangkat jaringan yang tidak mendukung deteksi kabel (-F opsi)

Paket Halaman Pencarian Paket Debian: ifplugd .
Situs ifplugd resmi

Sebuah apt-get update && apt-get-install ifpludharus melakukan trik. Di samping catatan, pencipta systemd memelihara paket ini.

eyoung100
sumber
2
Saya akan memenuhi syarat itu sebagai "... digunakan untuk memelihara paket ini" sejak rilis terakhir adalah sepuluh tahun yang lalu ;-). Saat ini Lennart mungkin akan merekomendasikan systemd-networkd... Dengan ifplugd, setelah instalasi, Anda juga perlu mengkonfigurasi perangkat Anda (sebutkan allow-ifplugddalam /etc/network/interfaces).
Stephen Kitt
@StephenKitt sudahkah Anda menggunakan allow-ifplugdatau melihat kode? Saat mencari saya hanya menemukan bugs.debian.org/cgi-bin/bugreport.cgi?bug=468896 , yang mengatakan allow-ifplugdfitur itu tidak diterima.
sourcejedi