Como adiciono um endereço IP adicional ao / etc / network / interfaces?

42

Eu tenho um endereço IP extra disponível para o meu servidor e, portanto, preciso atribuí-lo ao arquivo de interfaces. No momento, eu tenho isso:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address aaa.aaa.aaa.aaa
netmask 255.255.254.0
gateway bbb.bbb.bbb.bbb
dns-nameservers ccc.ccc.ccc.ccc ddd.ddd.ddd.ddd eee.eee.eee.eee
dns-search vps-number.com

O que eu adiciono para atribuir meu novo endereço IP (fff.fff.fff.fff)? E como eu o reinicio para aceitar a nova configuração?

babbaggeii
fonte
Que conjunto de caracteres é esse? Onde você encontrou aquilo?
Verde

Respostas:

55
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address aaa.aaa.aaa.aaa
  netmask 255.255.254.0
  gateway bbb.bbb.bbb.bbb
  dns-nameservers ccc.ccc.ccc.ccc ddd.ddd.ddd.ddd eee.eee.eee.eee
  dns-search vps-number.com

auto eth0:0
iface eth0:0 inet static
  address fff.fff.fff.fff
  netmask 255.255.254.0

Então você pode correr sudo ifup eth0:0para trazê-lo e sudo ifdown eth0:0trazê-lo para baixo.

Eric Carvalho
fonte
4
Esta é uma variante desatualizada com aliases. Use abaixo um com "ip addr".
Alexander Kim
5
Pode ser antigo (e talvez desatualizado), mas não há nada de errado em usar esse método, pois não foi marcado como 'obsoleto' e não há nenhum plano para ser removido em um futuro próximo. IMHO este método é mais limpo e seguro do que os outros (veja a resposta de Wilmer e seus comentários).
Eric Carvalho
PS Se o uso auto eth1(não na AWS) não funcionar, use como no exemplo auto eth0:0.
precisa saber é o seguinte
A solução legada não funcionou para mim no Debian Stretch, acabei com apenas o segundo IP. Veja o iproute2método , funcionou.
x-yuri
24

Para um endereço IP extra, eu costumo adicionar:

up ip addr add fff.fff.fff.fff/prefixlen dev eth0

na parte inferior da iface eth0 inet staticsub - rotina para futuras reinicializações e, em seguida, execute o comando sudo ip addr add fff.fff.fff.fff/prefixlen dev eth0novamente manualmente para ativá-lo diretamente.

Se sua máscara de rede é, 255.255.254.0então prefixlendeve ser 23para você.

Eu adoraria saber se existe uma maneira melhor, no entanto.

Robie Basak
fonte
muito obrigado, a abordagem aceita não funciona para a ligação ( ifenslave ), mas isso funciona!
mekkanizer
upé problemático, pois o network-online.target não espera por isso. serviços systemd como o nginx falharão ao vincular o IP adicionado pelo uptempo de inicialização
sdaffa23fdsf 17/03
Para o Debian Stretch / Ubuntu 16.04 Xenial ou posterior, existe a solução oficial .
x-yuri
22

Como Heihachi aponta, o uso de aliases ethx: x está desatualizado. No entanto, a ip addrsolução é pior. É feio e incompleto, pois você também precisará adicionar uma downvariante ou ifdownnão funcionará muito bem.

Consulte https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface para obter uma solução melhor: Agora você pode apenas repetir as estrofes iface para a mesma interface. Portanto, apenas a solução acima, mas solte o :xsufixo.

Wilmer
fonte
2
Na documentação do seu link, falando sobre o método mais moderno para fazer as coisas (chamado iproute2): Observe no entanto que esse método é perigoso ! Algumas combinações de driver / hardware podem, algumas vezes, falhar em ativar o link se nenhum rótulo for atribuído às interfaces de alias. Considerando que é a documentação oficial dizendo que a nova maneira não é tão confiável, eu preferiria ficar com a que está obsoleta.
reallynice
1
Voto positivo por causa da referência oficial e precisa da documentação, mas não por "uma solução melhor", pois está marcado como perigoso na documentação oficial.
reallynice
2
@reallynice Ponto razoável, embora IMHO, se isso causa problemas em um sistema que me soa como um kernel / driver de buggy. Eu tenho usado vários endereços IP em uma única interface sem os pseudônimos feios: 0 /: 1 / etc por anos (também tenho certeza de que a solução do Wiki é funcionalmente equivalente à solução de Robbie acima.)
Wilmer
@ Wilmer Eu tenho um dispositivo vmxnet3 (VMware ESXi 6.5) no Ubuntu 16.04, e só consegui a nova maneira de abrir o primeiro dispositivo. Descartar o sufixo: x claramente não era melhor para mim. A documentação esclareceu um erro que eu estava recebendo com o sufixo: x.
jbo5112
O último problema conhecido com o iproute2método foi em 2015 . E o método legado (você notou o nome?) Não funcionou para mim no Debian Stretch. Parecia que as opções posteriores (de eth0:0) substituíram as anteriores ( from eth0). Ou seja, depois systemctl restart networkingque acabei com apenas o segundo IP (o primeiro IP foi desanexado).
x-yuri