Ifup/ifdown: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „= ifup / ifdown – Best Practices = == Allgemeines == * ifup/ifdown ist ein klassisches Netzwerk-Management-Tool unter Debian-basierten Systemen * Konfigurat…“
 
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= ifup / ifdown – Best Practices =
 


== Allgemeines ==
== Allgemeines ==
* ifup/ifdown ist ein klassisches Netzwerk-Management-Tool unter Debian-basierten Systemen
* Klassisches Netzwerk-Management unter Debian
* Konfiguration erfolgt zentral über /etc/network/interfaces
* Zentrale Konfiguration über /etc/network/interfaces
* Ziel: einfache, reproduzierbare und stabile Netzwerkkonfiguration
* Deterministisch und gut skriptbar


== Grundprinzip ==
== Prinzip ==
* Interfaces werden deklarativ beschrieben
* Interface definieren
* Aktivierung erfolgt über ifup <interface>
* Aktivieren mit ifup <interface>
* Deaktivierung erfolgt über ifdown <interface>
* Deaktivieren mit ifdown <interface>


== Datei: /etc/network/interfaces ==
== Datei: /etc/network/interfaces ==
Zeile 21: Zeile 21:
     gateway 192.168.1.1
     gateway 192.168.1.1
     dns-nameservers 1.1.1.1 8.8.8.8
     dns-nameservers 1.1.1.1 8.8.8.8
    dns-search xinux.org
</pre>
</pre>
Anmerkung: dns-search und dns-nameservers benötigen das Paket '''resolvconf'''


== Best Practice: Klare Trennung ==
== auto vs allow-hotplug ==
* pro Interface nur eine Aufgabe (kein Mischbetrieb DHCP + static)
* auto startet Interface beim Boot
* sprechende Interface-Namen verwenden (Predictable Names wie enp0s3)
* allow-hotplug reagiert auf Geräteereignisse
 
== Best Practice: auto vs allow-hotplug ==
* auto = Interface wird beim Boot aktiviert
* allow-hotplug = Aktivierung nur bei physischem Ereignis


<pre>
<pre>
auto enp0s3
auto enp0s3
</pre>
</pre>
oder


<pre>
<pre>
Zeile 41: Zeile 37:
</pre>
</pre>


== Best Practice: Statische Konfiguration ==
== Struktur ==
* CIDR-Notation verwenden (address 192.168.1.10/24)
* Konfiguration auslagern
* Gateway nur einmal global setzen
* DNS explizit definieren
 
== Best Practice: Includes nutzen ==
* große Konfigurationen auslagern


<pre>
<pre>
Zeile 53: Zeile 44:
</pre>
</pre>


== Beispiel: Datei: /etc/network/interfaces.d/lan.cfg ==
== Datei: /etc/network/interfaces.d/lan.cfg ==
<pre>
<pre>
auto enp0s3
auto enp0s3
Zeile 61: Zeile 52:
</pre>
</pre>


== Best Practice: Kein Mischbetrieb mit NetworkManager ==
== Wichtige Befehle ==
* entweder ifupdown ODER NetworkManager
 
* Konflikte vermeiden
;Aktiviert alle Interfaces, die mit auto definiert sind
* ifup -a
 
;Deaktiviert alle Interfaces aus der Konfiguration
* ifdown -a


== Status prüfen ==
;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 a
* ip r
* ip r
* ip link


== Interface neu laden ==
== Neu laden ==
* ifdown enp0s3 && ifup enp0s3
* ifdown enp0s3 && ifup enp0s3


== Fehler vermeiden ==
== Debug ==
* keine Tabs und Spaces mischen
* Einrückung konsistent halten
* immer nach Änderungen testen


== Debugging ==
;Zeigt System-Logs für Netzwerkfehler und Dienste
* journalctl -xe
* journalctl -xe
* ip link show
 
* ifquery --list
;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 ==
== Fazit ==
* minimal halten
* minimal halten
* klar strukturieren
* klar strukturieren
* reproduzierbar konfigurieren
* 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 14. April 2026, 13:45 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
    dns-search xinux.org
Anmerkung: dns-search und dns-nameservers benötigen das Paket resolvconf

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