Linux: Mehrere IP-Adressen an ein Netzwerkinterface binden

Manchmal ist es erforderlich mehrere IP-Adressen an ein Netzwerkinterface zu binden. Nur so lassen sich beispielsweise auf einem angemieteten Rootserver mit nur einer Netzwerkkarte Websites unter verschiedenen IP-Adressen hosten – Voraussetzung dabei ist selbstverständlich, dass der Hoster zusätzliche IP-Adressen zur Verfügung stellt.

Linux bietet mit dem Konzept der virtuellen Netzwerkinterfaces eine elegante Lösung, um an einen Netzwerkadapter viele IP-Adressen zu binden. Jede physikalisch Netzwerkkarte trägt einen eindeutigen Namen, etwa eth0 für die erste Karte oder eth1 für die zweite Netzwerkkarte. Für jede physikalische Netzwerkarte lassen sich mehrere virtuelle Interfaces mit einer eigenen IP-Adresse konfigurieren. Dazu ist das physikalische Interface (eth0, eth1, eth2 usw.) gefolgt von einem Doppelpunkt und der Nummer des zu erstellenden virtuellen Interface anzugeben. So bezeichnet eth0:1 das erste virtuelle Interface an der physikalischen Netzwerkkarte eth0 und eth1:5 das fünfte virtuelle Interface an der zweiten Netzwerkkarte eth1.

Die virtuellen Netzwerkschnittstellen lassen sich mit den gleichen Werkzeugen konfigurieren, wie ihre physikalischen Pendants.

Um beispielsweise manuell die IP-Adresse 192.168.35.100 an die Netzwerkkarte eth0 zu binden, genügt es folgenden Befehl mit root-Rechten auszuführen.

ifconfig eth0:1 192.168.35.200 netmask 255.255.255.0 broadcast 192.168.35.255 up

Möchte man die manuell vorgenommene Konfiguration dauerhaft hinterlegen, wäre unter Debian die /etc/network/interfaces wie folgt zu editieren:

auto eth0:1
iface eth0:1 inet static
address 192.168.35.200
netmask 255.255.255.0
broadcast 192.163.35.255

9 Antworten auf „Linux: Mehrere IP-Adressen an ein Netzwerkinterface binden“

  1. hallo,

    ich habe eine frage dazu. ich habe das bei mir genauso konfiguriert. jetzt moechte ich auf eth0:1 per iptables aber nur zugriffe von extern nur auf port 80 zulassen. hast du dazu eine loesung? ich selber komme nicht weiter.

    danke und gruss. 🙂

  2. Hallo Benny,

    ich denke, dein Problem besteht darin, dass iptables die alte Alias Notation in Form von eth0:1 nicht versteht. Um zu spezifizieren, welches Interface du auf Port 80 beschränken möchtest, kannst du das Interface mithilfe des Destination-Parameters genauer beschreiben.
    Also so etwa:

    iptables -A INPUT -p TCP -d --dport 80 -s 0/0 --sport 1024:65535 -j ACCEPT
    iptables -A OUTPUT -p TCP -s --sport 80 -d 0/0 --dport 1024:65535 -J ACCEPT

    Ich hoffe dir damit geholfen zu haben.

    Viele Grüße
    Tom

  3. Um die IP-Adresse 192.168.35.100 an die Netzwerkkarte eth0 zu binden geht man normalerweise so vor:

    ifconfig eth0 192.168.35.100 netmask 255.255.255.0 broadcast 192.168.35.255 up

    Wenn ich zwei Adressen an eth0 binden will so:

    ip addr add 192.168.35.101/24 dev eth0 brd +

    Vielleicht vorher Korrekturlesen. Daher auch das Missverständis zwischen Interface und Netzwerkkarte

  4. Hi,

    mich würde interessieren wo in etwa die maximale Anzahl an virtuellen Interfaces liegt. Oder vielleicht wie man es herausbekommt und wovon die maximale Anzahl abhängig ist.

    Gruß
    Sires

  5. Sorry, Tippfehler:
    auto eth0:1
    iface eth0:1 inet static
    address 192.168.35.200
    netmask 255.255.255.0
    broadcast 192.163.35.255 falsch
    broadcast 192.168.35.255 richtig

  6. Hallo habe da auch eine frage.

    Wie kann ich 3 IP Adressen einfügen so das die Ports auch mehrfach genutzt werden können.

    z.B

    IP1:7000
    IP2:7000
    usw.

    Aber nicht so wie ich das jetzt habe, das wenn ich IP2:7000 eintrage das ich das sehe was auf dem Port von IP1 kommt. Im Allgemeinen geht es darum mehrere ShouCast-Streams auf mehreren IPs laufen zu lassen aber die Port mehrfach nutzen kann.

    Ist das so möglich oder nicht?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.