Como defino um IP extra para uma interface existente?

Como defino um IP extra para uma interface existente?

Eu tenho uma interface eth0e desejo fornecer a ela um IP virtual extra. Eu consigo isso da seguinte maneira:

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

Isso funciona bem, no entanto, quando eu reinicio, isso é perdido.

Eu tentei editar /etc/network/interfacespara adicionar o seguinte:

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

No entanto, após a reinicialização, o IP estático para eth0 é carregado corretamente, mas o IP virtual eth0:0 não é carregado.

Então, como posso adicionar permanentemente o eth0:0IP virtual?

Responder1

Em vez desse eth0:0negócio, você deve fazer o seguinte:

  • Configure seu (um) endereço IP estático /etc/network/interfacescomo faria normalmente:

    # 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
    
  • Adicione outro IP aoesseinterface adicionando isso logo após o acima:

    up /sbin/ip addr add 192.168.0.203/24 dev eth0
    down /sbin/ip addr del 192.168.0.203/24 dev eth0
    
  • O arquivo completo deveolharcomoesse

Agora, se você verificar quais endereços IP estão configurados executando ip addr show, ambos aparecerão:

2: eth0: mtu 1500 qdisc pfifo_fast estado UP qlen 1000
    link/éter 08:00:27:1d:fa:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.201/24brd 192.168.0.255 escopo global eth0
    inet 192.168.0.203/24escopo global secundário eth0

Meus agradecimentos a Lekensteyn por me indicar a direção certa. Cada site na internet apenas fala eth0:0de um endereço IP secundário.Esseparece a maneira correta de fazer isso.

Responder2

Se você quiser fazer as coisas da maneira "tradicional", a parte relevante /etc/network/interfacesdeverá ser semelhante a:

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

em vez disso, onde você cometeu um erro:

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

informação relacionada