Come saltare DHCP se nessun cavo è collegato a Ethernet in Debian


12

Il mio Bananian Linux sta perdendo tempo all'accesso cercando di ottenere un lease DHCP per l'interfaccia eth0 che non è connessa. Bene, il cavo di estensione è collegato ad esso, ma non c'è nulla sull'altra estremità.

io ho

auto eth0
iface eth0 inet dhcp 

impostato nel mio /etc/network/interfacespoiché voglio che raccolga Ethernet nel caso sia collegato, ma sicuramente non voglio rallentare l'avvio del sistema se il cavo non è collegato a Ethernet. Supponevo che il sistema lo sapesse automaticamente e non tentasse di ottenere un lease DHCP per l'interfaccia.

Ecco cosa vedo al momento del caricamento (vedi le ultime tre righe):

inserisci qui la descrizione dell'immagine

Dopo se capisce che il contratto di locazione non sta arrivando, procede con l'avvio.

C'è un modo per dirlo al DHCP se non c'è un cavo collegato?

Risposte:


16

Se si specifica

allow-hotplug eth0

invece di

auto eth0

in /etc/network/interfaces, quindi la connessione verrà avviata solo udevquando qualcosa la attiva, anziché ad ogni avvio.

Questo potrebbe essere sufficiente per gestire il tuo caso, ma non necessariamente; la interfacesmanpage lo menziona

(Le interfacce contrassegnate con "allow-hotplug" vengono visualizzate quando udev le rileva. Ciò può avvenire durante l'avvio se l'interfaccia è già presente o in un momento successivo, ad esempio quando si collega una scheda di rete USB. non ha nulla a che fare con il rilevamento di un cavo di rete collegato.)

Potrebbe essere necessario utilizzare da pacchetto di saltare l'interfaccia se non è collegato alcun cavo./etc/network/if-up.d/00check-network-cableifupdown-extra


Cosa succede se il cavo è già collegato prima dell'avvio? udevIn tal caso, un evento attiverà la connessione all'avvio? In altre parole, udevcontrolla quali dispositivi sono già collegati alle porte della macchina?
Joseph R.

0

Esistono sempre più soluzioni al problema.

Se stai con questa macchina sempre in un posto, come a casa, il modo più semplice sarebbe sbarazzarti del pacchetto dhcp-client e impostare l'indirizzo IP statico, la maschera, il gateway. Supponendo che non ti serva, faresti qualcosa del genere

apt-get remove isc-dhcp-client

Questo ti dirà per primo, se ci sono dipendenze. Dopo aver disinstallato il pacchetto, non sarà più necessario attendere durante l'avvio.

Questo è un esempio di ciò che vorresti impostare nel tuo /etc/network/interfaces

iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.254

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


Come accennato nella domanda, voglio usare DHCP se il cavo Ethernet è collegato. Quindi la rimozione del client DHCP non mi aiuterà.
Maxim V. Pavlov,

0

Dai un'occhiata a ifplugd:

ifplugd è un demone Linux che configura automaticamente il tuo dispositivo Ethernet quando è collegato un cavo e lo configura automaticamente se il cavo viene tirato. Ciò è utile su laptop con adattatori di rete integrati, poiché configurerà l'interfaccia solo quando un cavo è realmente collegato.

ifplugd ifplugd si interfaccia con le utility di configurazione della rete nativa della tua distribuzione.

Alcune caratteristiche:

  • Utilizza i programmi ifup / ifdown nativi della tua distribuzione.
  • Può emettere un segnale acustico quando il cavo è scollegato, collegato, la configurazione dell'interfaccia è riuscita o fallita.
  • Supporta Linux SIOCETHTOOL (più recente, noto anche come API ethtool), SIOCGMIIREG (più vecchio, noto anche come API mii-diag / mii-tool) e SIOCDEVPRIVATE (più vecchio, noto anche come API mii-tool) ioctl () per ottenere lo stato del collegamento. La versione 0.24 introduce il supporto per il rilevamento dei collegamenti con il flag dell'interfaccia IFF_RUNNING.
  • Supporto per syslog
  • Piccolo programma: il file binario ha solo 25 KB (più 16 KB per libdaemon).
  • Supporto per interfaccia ethernet multipla
  • Può essere configurato per ignorare brevi periodi "non collegati" (opzione -d) o brevi periodi "collegati" (opzione -u)
  • Supporto per reti wireless. Ogni volta che viene rilevata un'associazione a un AP, la rete viene configurata. Dai un'occhiata a waproamd se hai bisogno di una funzione per configurare le chiavi WEP prima che le associazioni AP abbiano successo.
  • Modalità di compatibilità per dispositivi di rete che non supportano il rilevamento dei cavi (opzione -F)

Pagina di ricerca dei pacchetti Debian: ifplugd .
Sito ufficiale ifplugd

An apt-get update && apt-get-install ifpluddovrebbe fare il trucco. In una nota a margine, il creatore di systemd mantiene questo pacchetto.


2
Lo qualificherei come "... usato per mantenere questo pacchetto" dall'ultima versione dieci anni fa ;-). Oggi Lennart probabilmente consiglierebbe systemd-networkd... Con ifplugd, dopo l'installazione, è necessario configurare anche il dispositivo (specificare allow-ifplugdin /etc/network/interfaces).
Stephen Kitt,

@StephenKitt hai usato allow-ifplugdo visto il codice? Durante la ricerca ho trovato solo bugs.debian.org/cgi-bin/bugreport.cgi?bug=468896 , che afferma che la allow-ifplugdfunzione non è stata accettata.
sourcejedi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.