Wie lege ich eine zusätzliche IP für eine vorhandene Schnittstelle fest?


8

Ich habe eine Schnittstelle eth0und möchte ihr eine zusätzliche virtuelle IP geben. Ich erreiche dies durch Folgendes:

ifconfig eth0:0 ip.address.goes.here netmask subnet.address.goes.here

Dies funktioniert einwandfrei, aber wenn ich neu starte, geht dies verloren.

Ich habe versucht zu bearbeiten /etc/network/interfaces, um Folgendes hinzuzufügen:

auto eth0:0 iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

Beim Neustart wird die statische IP für eth0 zwar einwandfrei geladen, die virtuelle IP-Adresse eth0: 0 wird jedoch überhaupt nicht geladen.

Wie kann ich die eth0:0virtuelle IP dauerhaft hinzufügen ?


Mögliches Duplikat: askubuntu.com/questions/45086/… .. Dies ist für eine Bridge, aber ändern Sie br0 in eth0 und die Methode ist dieselbe.
Caesium

Antworten:


12

Anstelle dieses eth0:0Geschäfts sollten Sie Folgendes tun:

  • Konfigurieren Sie Ihre (eine) statische IP-Adresse /etc/network/interfaceswie gewohnt:

    # The primary network interface
    auto eth0
    iface eth0 inet static
    address 192.168.0.201
    network 192.168.0.0
    netmask 255.255.255.0
    broadcast 192.168.0.255
    gateway 192.168.0.1
    
  • Fügen Sie dieser Schnittstelle eine weitere IP hinzu, indem Sie diese direkt nach dem oben genannten hinzufügen:

    up /sbin/ip addr add 192.168.0.203/24 dev eth0
    down /sbin/ip addr del 192.168.0.203/24 dev eth0
    
  • Die vollständige Datei sollte aussehen wie diese

Wenn Sie nun überprüfen, welche IP-Adressen durch Ausführen konfiguriert sind ip addr show, werden beide angezeigt:

2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link / ether 08: 00: 27: 1d: fa: 0b brd ff: ff: ff: ff: ff: ff: ff
    inet 192.168.0.201/24 brd 192.168.0.255 Bereich global eth0
     inet 192.168.0.203/24 Bereich global sekundär eth0

Mein Dank geht an Lekensteyn, der mich in die richtige Richtung gelenkt hat. Jede Site im Internet spricht nur eth0:0für eine sekundäre IP-Adresse. Dies scheint der richtige Weg zu sein.


2
Ja, ifconfig wurde zugunsten der iproute2Suite (der Befehl ip) veraltet . ifconfigIch werde mein Muskelgedächtnis jedoch nie verlassen. Ebenfalls wichtig zu beachten, ifconfigkann keine Adress-Aliase sehen, die von hinzugefügt wurden iproute2! (Dadurch funktionieren sie nicht weniger gut).
Caesium

Großartig! @ Caesium entspricht dem, was ich vermutet habe. Gut zu wissen, dass ich mich nicht völlig falsch erinnerte. :)
Stefano Palazzo

1
@Caesium Ich bin ein wenig verwirrt. Ich habe versucht, manuell "ip addr add 192.168.0.40/24 dev eth0 label eth0: 51" einzugeben. Das sind Müllinformationen - und es wurde in ifconfig angezeigt. ... Nehmen Sie nicht an, Sie möchten sich unterhalten, um ein bisschen mehr zu reden!?
Wilhil

2
@ Wilhil, ooh! Sie hat mich gelehrt , etwas, wenn Sie ein Label hinzufügen es nicht in ifconfig zeigen! Wenn Sie kein Etikett verwenden, ist dies nicht der Fall. Danke :)
Caesium

5
Der veröffentlichte Pastebin-Eintrag ist nicht mehr verfügbar:The Paste you are looking for does not currently exist.
saji89

1

Wenn Sie Dinge auf "traditionelle" Weise tun möchten, sollte der relevante Teil von folgendermaßen /etc/network/interfacesaussehen:

auto eth0:0
iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

stattdessen, wo Sie einen Fehler gemacht haben:

auto eth0:0 iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

Führen Sie nach dem Hinzufügen Folgendes aus: ifup eth0:0um es manuell zu starten. Sie können überprüfen, ob es funktioniert, indem Sie netstat -rn
Folgendes
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.