Ifup/ifdown: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 52: Zeile 52:
 
== Wichtige Befehle ==
 
== Wichtige Befehle ==
  
;ifup -a
+
;Aktiviert alle Interfaces, die mit auto definiert sind
* Aktiviert alle Interfaces, die mit auto definiert sind
 
 
 
 
* ifup -a
 
* ifup -a
  
;ifdown -a
+
;Deaktiviert alle Interfaces aus der Konfiguration
* Deaktiviert alle Interfaces aus der Konfiguration
 
 
 
 
* ifdown -a
 
* ifdown -a
  
;ifup enp0s3
+
;Aktiviert gezielt ein Interface
* Aktiviert gezielt ein Interface
 
 
 
 
* ifup enp0s3
 
* ifup enp0s3
  
;ifdown enp0s3
+
;Deaktiviert gezielt ein Interface
* Deaktiviert gezielt ein Interface
 
 
 
 
* ifdown enp0s3
 
* ifdown enp0s3
  
;ifup -v enp0s3
+
;Aktiviert ein Interface mit detaillierter Ausgabe (Debug)
* Aktiviert ein Interface mit detaillierter Ausgabe (Debug)
 
 
 
 
* ifup -v enp0s3
 
* ifup -v enp0s3
  
;ifdown -v enp0s3
+
;Deaktiviert ein Interface mit detaillierter Ausgabe
* Deaktiviert ein Interface mit detaillierter Ausgabe
 
 
 
 
* ifdown -v enp0s3
 
* ifdown -v enp0s3
  
;ifup -n enp0s3
+
;Simulation, zeigt nur was passieren würde (kein Apply)
* Simulation, zeigt nur was passieren würde (kein Apply)
 
 
 
 
* ifup -n enp0s3
 
* ifup -n enp0s3
  
;ifdown -n enp0s3
+
;Simulation für das Deaktivieren
* Simulation für das Deaktivieren
 
 
 
 
* ifdown -n enp0s3
 
* ifdown -n enp0s3
  
;ifquery --list
+
;Listet alle bekannten Interfaces aus der Konfiguration
* Listet alle bekannten Interfaces aus der Konfiguration
 
 
 
 
* ifquery --list
 
* ifquery --list
  
;ifquery enp0s3
+
;Zeigt Details zur Interface-Konfiguration
* Zeigt Details zur Interface-Konfiguration
 
 
 
 
* ifquery enp0s3
 
* ifquery enp0s3
  
Zeile 112: Zeile 92:
 
== Debug ==
 
== Debug ==
  
;journalctl -xe
+
;Zeigt System-Logs für Netzwerkfehler und Dienste
* Zeigt System-Logs für Netzwerkfehler und Dienste
 
 
 
 
* journalctl -xe
 
* journalctl -xe
  
;ifup -v enp0s3
+
;Detaillierte Ausgabe beim Hochfahren eines Interfaces
* Detaillierte Ausgabe beim Hochfahren eines Interfaces
 
 
 
 
* ifup -v enp0s3
 
* ifup -v enp0s3
  
;ifquery enp0s3
+
;Prüft die Konfiguration ohne das Interface zu verändern
* Prüft die Konfiguration ohne das Interface zu verändern
 
 
 
 
* ifquery enp0s3
 
* ifquery enp0s3
  
Zeile 136: Zeile 110:
 
* klar strukturieren
 
* klar strukturieren
 
* Befehle gezielt nutzen
 
* Befehle gezielt nutzen
 +
 +
 +
 +
== Hooks (pre-up / post-up / pre-down / post-down) ==
 +
* Ermöglichen eigene Befehle vor/nach Interface-Events
 +
* Werden direkt in der interfaces-Datei definiert
 +
 +
== Ablauf ==
 +
* pre-up → vor dem Hochfahren
 +
* up → während das Interface aktiv wird
 +
* post-up → nach erfolgreichem Start
 +
* pre-down → vor dem Herunterfahren
 +
* down → während des Stopps
 +
* post-down → nach dem Stop
 +
 +
== Beispiel ==
 +
<pre>
 +
auto enp0s3
 +
iface enp0s3 inet static
 +
    address 192.168.1.10/24
 +
    gateway 192.168.1.1
 +
 +
    pre-up ip link set enp0s3 mtu 1400
 +
    up ip addr add 192.168.1.20/24 dev enp0s3
 +
    post-up ip route add 10.10.0.0/16 via 192.168.1.1
 +
 +
    pre-down echo "Interface wird beendet"
 +
    down ip addr del 192.168.1.20/24 dev enp0s3
 +
    post-down echo "Interface ist down"
 +
</pre>
 +
 +
== Verhalten ==
 +
* Befehle laufen synchron im Kontext von ifup/ifdown
 +
* Fehler in pre-up verhindern das Starten
 +
* post-up läuft nur bei Erfolg
 +
 +
== Typische Einsätze ==
 +
* Routen setzen/löschen
 +
* Firewall-Regeln (nftables/iptables)
 +
* MTU anpassen
 +
* Zusatz-IP-Adressen
 +
* Logging / Debug
 +
 +
== Hinweise ==
 +
* Befehle ohne interaktive Eingaben
 +
* Absolute Pfade verwenden (z. B. /sbin/ip)
 +
* Fehler sauber behandeln (|| true falls nötig)
 +
 +
== Debug ==
 +
* ifup -v enp0s3
 +
* journalctl -xe

Aktuelle Version vom 29. März 2026, 09:10 Uhr


Allgemeines

  • Klassisches Netzwerk-Management unter Debian
  • Zentrale Konfiguration über /etc/network/interfaces
  • Deterministisch und gut skriptbar

Prinzip

  • Interface definieren
  • Aktivieren mit ifup <interface>
  • Deaktivieren mit ifdown <interface>

Datei: /etc/network/interfaces

auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet static
    address 192.168.1.10/24
    gateway 192.168.1.1
    dns-nameservers 1.1.1.1 8.8.8.8

auto vs allow-hotplug

  • auto startet Interface beim Boot
  • allow-hotplug reagiert auf Geräteereignisse
auto enp0s3
allow-hotplug enp0s3

Struktur

  • Konfiguration auslagern
source /etc/network/interfaces.d/*

Datei: /etc/network/interfaces.d/lan.cfg

auto enp0s3
iface enp0s3 inet static
    address 10.0.0.10/24
    gateway 10.0.0.1

Wichtige Befehle

Aktiviert alle Interfaces, die mit auto definiert sind
  • ifup -a
Deaktiviert alle Interfaces aus der Konfiguration
  • ifdown -a
Aktiviert gezielt ein Interface
  • ifup enp0s3
Deaktiviert gezielt ein Interface
  • ifdown enp0s3
Aktiviert ein Interface mit detaillierter Ausgabe (Debug)
  • ifup -v enp0s3
Deaktiviert ein Interface mit detaillierter Ausgabe
  • ifdown -v enp0s3
Simulation, zeigt nur was passieren würde (kein Apply)
  • ifup -n enp0s3
Simulation für das Deaktivieren
  • ifdown -n enp0s3
Listet alle bekannten Interfaces aus der Konfiguration
  • ifquery --list
Zeigt Details zur Interface-Konfiguration
  • ifquery enp0s3

Status

  • ip a
  • ip r
  • ip link

Neu laden

  • ifdown enp0s3 && ifup enp0s3

Debug

Zeigt System-Logs für Netzwerkfehler und Dienste
  • journalctl -xe
Detaillierte Ausgabe beim Hochfahren eines Interfaces
  • ifup -v enp0s3
Prüft die Konfiguration ohne das Interface zu verändern
  • ifquery enp0s3

Hinweise

  • kein Mischbetrieb mit NetworkManager
  • saubere Einrückung (Spaces, keine Tabs)
  • Änderungen immer direkt testen

Fazit

  • minimal halten
  • klar strukturieren
  • Befehle gezielt nutzen


Hooks (pre-up / post-up / pre-down / post-down)

  • Ermöglichen eigene Befehle vor/nach Interface-Events
  • Werden direkt in der interfaces-Datei definiert

Ablauf

  • pre-up → vor dem Hochfahren
  • up → während das Interface aktiv wird
  • post-up → nach erfolgreichem Start
  • pre-down → vor dem Herunterfahren
  • down → während des Stopps
  • post-down → nach dem Stop

Beispiel

auto enp0s3
iface enp0s3 inet static
    address 192.168.1.10/24
    gateway 192.168.1.1

    pre-up ip link set enp0s3 mtu 1400
    up ip addr add 192.168.1.20/24 dev enp0s3
    post-up ip route add 10.10.0.0/16 via 192.168.1.1

    pre-down echo "Interface wird beendet"
    down ip addr del 192.168.1.20/24 dev enp0s3
    post-down echo "Interface ist down"

Verhalten

  • Befehle laufen synchron im Kontext von ifup/ifdown
  • Fehler in pre-up verhindern das Starten
  • post-up läuft nur bei Erfolg

Typische Einsätze

  • Routen setzen/löschen
  • Firewall-Regeln (nftables/iptables)
  • MTU anpassen
  • Zusatz-IP-Adressen
  • Logging / Debug

Hinweise

  • Befehle ohne interaktive Eingaben
  • Absolute Pfade verwenden (z. B. /sbin/ip)
  • Fehler sauber behandeln (|| true falls nötig)

Debug

  • ifup -v enp0s3
  • journalctl -xe