¿Cómo agrego una dirección IP adicional a / etc / network / interfaces?

42

Tengo una dirección IP adicional disponible para mi servidor, por lo que necesito asignarla en el archivo de interfaces. Por el momento, tengo esto:

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

¿Qué agrego para asignar mi nueva dirección IP (fff.fff.fff.fff)? ¿Y cómo lo reinicio para aceptar la nueva configuración?

babbaggeii
fuente
¿Qué conjunto de personajes es ese? ¿Dónde encontraste eso?
Verde

Respuestas:

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

Entonces puedes correr sudo ifup eth0:0para subirlo y sudo ifdown eth0:0bajarlo.

Eric Carvalho
fuente
44
Esta es una variante desactualizada con alias. Use debajo de uno con "ip addr" en su lugar.
Alexander Kim
55
Puede ser antiguo (y tal vez desactualizado), pero no hay nada de malo en usar este método, ya que no se marcó como 'obsoleto' y no hay ningún plan para que se elimine en el futuro cercano. En mi humilde opinión, este método es más limpio y seguro que los otros (ver la respuesta de Wilmer y sus comentarios).
Eric Carvalho
PD Si el uso auto eth1(no funcionó en AWS) no funciona, use como en el ejemplo auto eth0:0.
IvRRimUm
La solución heredada no funcionó para mí en Debian Stretch, terminé con solo la segunda IP. Ver el iproute2método , funcionó.
x-yuri
24

Para una dirección IP adicional, generalmente agrego:

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

al final de la iface eth0 inet staticestrofa para futuros reinicios y luego ejecute el comando sudo ip addr add fff.fff.fff.fff/prefixlen dev eth0nuevamente manualmente para activarlo directamente.

Si tu máscara de red es, 255.255.254.0entonces prefixlendebería ser 23para ti.

Sin embargo, me encantaría saber si hay una mejor manera.

Robie Basak
fuente
muchas gracias, el enfoque aceptado no funciona para la vinculación ( ifenslave ), ¡pero esto sí!
mekkanizer
upes problemático ya que network-online.target no lo espera. servicios de systemd como nginx no lograrán unen en IP añadida por upel tiempo de inicio
sdaffa23fdsf
Para Debian Stretch / Ubuntu 16.04 Xenial o posterior, existe la solución oficial .
x-yuri
22

Como señala Heihachi, el uso de alias ethx: x no está actualizado. Sin embargo, la ip addrsolución es peor. Es feo e incompleto, ya que también tendrá que agregar una downvariante o ifdownno funcionará de manera muy limpia.

Vea https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface para una mejor solución: ahora puede repetir las estrofas iface para la misma interfaz. Entonces, solo la solución anterior, pero suelte el :xsufijo.

Wilmer
fuente
2
De la documentación en su enlace, hablando sobre el método más moderno para hacer cosas (llamado iproute2): ¡ Sin embargo, tenga en cuenta que este método es peligroso ! Algunas combinaciones de controladores / hardware a veces pueden fallar al abrir el enlace si no se asignan etiquetas a las interfaces de alias. Teniendo en cuenta que es documentación oficial que dice que la nueva forma no es tan confiable, preferiría seguir con la obsoleta que funciona.
realmente agradable
1
Vota a favor debido a la referencia de documentación oficial y precisa, pero no por "una mejor solución", ya que está marcado como peligroso en la documentación oficial.
realmente agradable
2
@reallynice Punto razonable, aunque en mi humilde opinión, si esto causa problemas en un sistema que me parece un núcleo / controlador con errores. He estado usando varias direcciones IP en una sola interfaz sin el alias feo: 0 /: 1 / etc. durante años (también estoy bastante seguro de que la solución de Wiki es funcionalmente equivalente a la solución de Robbie anterior).
Wilmer
@Wilmer Tengo un dispositivo vmxnet3 (VMware ESXi 6.5) en Ubuntu 16.04, y solo pude obtener la nueva forma de abrir el primer dispositivo. Dejar caer el sufijo: x claramente no fue mejor para mí. Sin embargo, la documentación borró un error que recibía con el sufijo: x.
jbo5112
El último problema conocido con el iproute2método fue en 2015 . Y el método heredado (¿has notado el nombre?) No funcionó para mí en Debian Stretch. Parecía que las opciones posteriores (desde eth0:0) anulaban las anteriores ( from eth0). Es decir, después de systemctl restart networkingque terminé con solo la segunda IP (la primera IP se desconectó).
x-yuri