Nudge am 03.03.2010

ifup und ifdown versus ifconfig

in Linux, Netzwerk | Tags: eth0, ifconfig, ifdown, ifup, IP, Linux, Netzwerk

Manchmal fragt man sich schon, wieviele Wege nach Rom führen mögen. Zum Beispiel kann man unter Linux eine Netzwerk-Karte (hier genannt eth0), unter zig Varianten konfigurieren und aktivieren.

Zum einen gibt es

1
# ifconfig eth0 up
# ifconfig eth0 up

zum anderen aber auch

1
# ifup eth0
# ifup eth0

wie auch

1
# ip link set eth0 up
# ip link set eth0 up

Ich habe mich schon immer gefragt: “Was ist da der Unterschied?” Nun, zu ifconfig konnte ich folgendes herausfinden:

  • ifconfig nimmt Netzwerk-Parameter aus der Kommandozeile entgegen
  • ifconfig kann mehrere Schnittstellen konfigurieren: ifconfig eth0 eth5 eth6 up/down
  • ifconfig lädt bzw. entlädt die Treiber zur Karte – dies führte zum Beispiel bei den e1000-Karten zu Problemen

ifup und ifdown dagegen verhalten sich ein wenig anders:

  • ifup und ifdown lesen die Netzwerk-Konfiguration aus /etc/network/interfaces aus
  • ifup und ifdown können mit dem Parameter -a alle in /etc/network/interfaces aufgelisteten Netzwerk-Geräte konfigurieren
  • ifup und ifdown laden oder entladen keine Treiber
  • ifup und ifdown rufen ihrerseits ifconfig auf – das kann man in den binaries sogar nachlesen!

Das Märchen, ifup und ifdown seien nur Skripte, ist Unfug. Es sind kompilierte, binäre ELF-Programme.

Ebenso ein Märchen: Das Kommando ip sei ganz neu. Es ist ist seit Kernel 1.2 vorhanden, bietet auch ähnliche Parameter wie ifconfig und arbeitet ebenso wie ifconfig auf direkter Kommandozeilen-Ebene und direkt mit dem Kernel. ip möchte eigentlich soviel wie möglich nach außen sichtbar machen, was der LinuxKernel alles mit IP-Adressen und Routing anstellen kann. Und das ist wirklich eine ganze Menge! Insofern sei nur ans Herz gelegt, auch mal ip eine Chance zu geben.

PS: Ich glaube, das if aus ifxxx steht immer für interface, was eigentlich mächtig ungenau ist…

PS2: Eine einfache Adress-Konfiguration erreicht man als Root mit:

1
2
# ifconfig eth0 <IP-Adresse> netmask <Netzwerk-Maske>
# route add default gw <Gateway-Adresse>
# ifconfig eth0 <IP-Adresse> netmask <Netzwerk-Maske>
# route add default gw <Gateway-Adresse>

Das mark ich mir: Alltagz Mr Wong Yigg Del.icio.us Yahoo MyWeb Blinklist Google folkd
 

4 responses to “ifup und ifdown versus ifconfig”

  1. Nudge says:

    PS: Ich habe so etwas jetzt auch über die Verwaltung von Init-Skripten gelesen: chkconfig zum Beispiel sei unter SuSE ein Perl-Script, unter Red Hat Linux ein Binärprogramm…habe ich aber nicht selbst nachvollzogen. Ich hoffe inständig, dass die LSB (Linux Standard Base) hier noch ein paar Dinge gerade rückt. Dann ist m.E. die Chance größer, dass neue Software schneller in die Distros kommt.

  2. Nudge says:

    Hallo me,

    sehr merkwürdig diese Distributoren. Müssen alles unterschiedlich machen! 🙂
    Hier ein kleiner Auszug aus /sbin/ifup (Debian Testing): “Copyright (c) 1999-2005 Anthony Towns” – was steht da bei OpenSuse?

  3. me says:

    Also bei mir sind ifup und ifdown Skripte (opensuse11.2)

  4. Nudge says:

    Was mir bei der Recherche zu diesem Artikel noch einfiel: Die Seite
    http://www.unix.com/de/red-hat/123561-ifconfig-ifdown-ifup.html
    ist wirklich phänomenal witzig. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *