¿Cómo puedo (desde CLI) asignar múltiples direcciones IP a una interfaz?

43

En mi servidor quiero asignar varias direcciones IP a una NIC, pero sin usar la ifconfignotación de "alias" obsoleta u obsoleta (como eth0:0) /etc/network/interfacesporque en Alias ​​IP (en www.kernel.org) puede leer

Los alias de IP son una forma obsoleta de administrar múltiples direcciones IP / máscaras por interfaz

Guntbert
fuente
ifconfig está en desuso? No lo sabia
Mahesh
@Mahesh Sí, ifconfig es un artefacto de la era SysV. 'iproute2' es la herramienta más moderna. ifconfig estará disponible por un tiempo en varias distribuciones, pero sí, está en desuso; "obsoleto" es solo un coloquialismo que solíamos denotar "buscar algo más nuevo para usar".
David Betz

Respuestas:

48
  1. Si necesita una dirección IP adicional por el momento, puede agregarla a cualquier interfaz de su máquina con

     sudo ip address add <ip-address>/<netmask> dev <interface>
    

    por ejemplo

     sudo ip address add 172.16.100.17/24 dev eth0
    

    agregaría 172.16.100.17usando una máscara de red de 24 bits a la lista de direcciones configuradas para su eth0.

    Puedes consultar el resultado con

    ip address show eth0
    

    y puedes borrar esta dirección nuevamente con

    sudo ip address del 172.16.100.17/24 dev eth0
    

    Por supuesto, estos cambios se pierden cuando reinicia su máquina.

  2. Para que las direcciones adicionales sean permanentes, puede editar el archivo /etc/network/interfacesagregando tantas estrofas del formulario

    iface eth0 static
        address 172.16.100.17/24
    

    para que parezca

    iface eth0 inet dhcp
    
    iface eth0 inet static
        address 172.16.100.17/24
    
    iface eth0 inet static
        address 172.16.24.11/24
    

    Incluso puede conservar la dhcpdirección principal.

    Para activar estas configuraciones sin reiniciar, use ifdown/ifupcomo

    sudo ifdown eth0 && sudo ifup eth0
    

    ¡Es esencial poner esos dos comandos en una línea si se está conectando remotamente al servidor porque el primero cortará su conexión! Dado de esta manera, la sesión ssh sobrevivirá.

Guntbert
fuente
Tal vez pueda hacer un VPN con más de una dirección IP mediante la instalación desde el administrador de software.
Michael
No se requiere reiniciar en Ubuntu 16.04.3 LTS después de agregar o eliminar una IP
Daniel F
1
parece que ifdown está en desuso en las nuevas versiones de Ubuntu.
Sajuuk
20

Con el nuevo kit de herramientas, es tan fácil como con el antiguo agregar nuevas direcciones IP:

ip addr add 192.168.1.1/24 dev eth0

Al mirar de ip addr shownuevo, verá la segunda dirección IP asignada a la interfaz:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0
    inet 192.168.1.1/24 scope global eth0
    inet6 fe80::223:54ff:fe45:f307/64 scope link
       valid_lft forever preferred_lft forever

Elimine esa dirección IP con:

ip addr del 192.168.1.1/24 dev eth0

La suite iproute2:

El paquete iproute2 es el paquete de comunicación para la comunicación entre procesos entre el núcleo y el espacio del usuario a través del protocolo netlink. Debe reemplazar todas las herramientas de red estándar. Esto es lo que reemplazan:

  • ifconfig-> ip addryip link
  • route -> ip route
  • arp -> ip neigh
  • iptunnel -> ip tunnel
  • ipmaddr -> ip maddr
  • netstat -> ss
caos
fuente
Thx para proporcionar los comandos coincidentes.
Guntbert
gracias @chaos, ¿puedo tener más IP que mi no de interfaces en mi sistema?
Lázaro
@jazzz sí, como puede ver en el resultado de mi interfaz anterior, hay 2 direcciones IP asignadas (192.168.0.100 y 192.168.1.1). Puede agregar otro si lo desea.
caos
@chaos, pero ¿cómo puedo usarlos? Para una instancia, quiero crear un grupo para multidifusión, ¿puedo formar un grupo a partir de ellos ?, ¿puede consultar mi pregunta askubuntu.com/questions/547105/…
lazarus
1
@chaos Estoy aceptando mi propia respuesta en lugar de su excelente porque la suya carece de la "permanencia" que espero en la configuración de un servidor.
Guntbert 03 de
0

Una forma es:

sudo ip addr add 192.168.0.2/24 dev eth1
Bert
fuente