Ifup/ifdown: Unterschied zwischen den Versionen
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: | ||
== 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 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''' | |||
== | == 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 41: | Zeile 37: | ||
</pre> | </pre> | ||
== | == Struktur == | ||
* | * Konfiguration auslagern | ||
<pre> | <pre> | ||
| Zeile 53: | Zeile 44: | ||
</pre> | </pre> | ||
== | == Datei: /etc/network/interfaces.d/lan.cfg == | ||
<pre> | <pre> | ||
auto enp0s3 | auto enp0s3 | ||
| Zeile 61: | Zeile 52: | ||
</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 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