Ifup/ifdown: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | |||
== Allgemeines == | == Allgemeines == | ||
| − | * | + | * Klassisches Netzwerk-Management unter Debian |
| − | * Konfiguration | + | * 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 == | == Datei: /etc/network/interfaces == | ||
| Zeile 22: | Zeile 23: | ||
</pre> | </pre> | ||
| − | == | + | == auto vs allow-hotplug == |
| − | + | * auto startet Interface beim Boot | |
| − | + | * allow-hotplug reagiert auf Geräteereignisse | |
| − | |||
| − | |||
| − | * auto | ||
| − | * allow-hotplug | ||
<pre> | <pre> | ||
auto enp0s3 | auto enp0s3 | ||
</pre> | </pre> | ||
| − | |||
| − | |||
<pre> | <pre> | ||
| Zeile 40: | Zeile 35: | ||
</pre> | </pre> | ||
| − | == | + | == Struktur == |
| − | * | + | * Konfiguration auslagern |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<pre> | <pre> | ||
| Zeile 52: | Zeile 42: | ||
</pre> | </pre> | ||
| − | == | + | == Datei: /etc/network/interfaces.d/lan.cfg == |
<pre> | <pre> | ||
auto enp0s3 | auto enp0s3 | ||
| Zeile 60: | Zeile 50: | ||
</pre> | </pre> | ||
| − | == | + | == Wichtige Befehle == |
| − | * | + | |
| − | * | + | ;Aktiviert alle Interfaces, die mit auto definiert sind |
| + | * ifup -a | ||
| + | |||
| + | ;Deaktiviert alle Interfaces aus der Konfiguration | ||
| + | * ifdown -a | ||
| − | == Status | + | ;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 | ||
| − | == | + | == Neu laden == |
* ifdown enp0s3 && ifup enp0s3 | * ifdown enp0s3 && ifup enp0s3 | ||
| − | == | + | == Debug == |
| − | |||
| − | |||
| − | |||
| − | + | ;Zeigt System-Logs für Netzwerkfehler und Dienste | |
* journalctl -xe | * journalctl -xe | ||
| − | * | + | |
| − | * ifquery | + | ;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 | ||
| − | * | + | * 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