Comment puis-je (à partir de la CLI) attribuer plusieurs adresses IP à une interface?

43

Sur mon serveur, je souhaite attribuer plusieurs adresses IP à une carte réseau, mais sans utiliser la ifconfignotation obsolète ou "alias" obsolète (comme eth0:0) /etc/network/interfacescar dans l' alias IP (sur www.kernel.org), vous pouvez lire

Les alias IP sont un moyen obsolète de gérer plusieurs adresses IP / masques par interface.

Guntbert
la source
ifconfig est obsolète? Je ne savais pas.
Mahesh
@Mahesh Ouais, ifconfig est un artefact de l'ère SysV. "iproute2" est l'outil le plus moderne. ifconfig sera présent pendant un certain temps sur différentes distributions, mais oui, il est obsolète. "obsolète" n'est qu'un langage familier que nous désignions par le mot "rechercher quelque chose de plus récent à utiliser".
David Betz

Réponses:

48
  1. Si vous avez besoin d’une adresse IP supplémentaire juste pour le moment, vous pouvez l’ajouter à n’importe quelle interface de votre machine avec

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

    par exemple

     sudo ip address add 172.16.100.17/24 dev eth0
    

    ajouterait l’ 172.16.100.17utilisation d’un masque de réseau 24 bits à la liste des adresses configurées pour votre application eth0.

    Vous pouvez vérifier le résultat avec

    ip address show eth0
    

    et vous pouvez supprimer cette adresse à nouveau avec

    sudo ip address del 172.16.100.17/24 dev eth0
    

    Bien sûr, ces modifications sont perdues lorsque vous redémarrez votre ordinateur.

  2. Pour rendre les adresses supplémentaires permanentes, vous pouvez éditer le fichier /etc/network/interfacesen ajoutant autant de strophes du formulaire.

    iface eth0 static
        address 172.16.100.17/24
    

    pour qu'il ressemble

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

    Vous pouvez même garder le dhcppour l'adresse principale.

    Pour activer ces paramètres sans redémarrage, utilisez la commande suivante ifdown/ifup:

    sudo ifdown eth0 && sudo ifup eth0
    

    Il est essentiel de mettre ces deux commandes sur une seule ligne si vous vous connectez au serveur car le premier supprimera votre connexion! Ainsi donnée, la session ssh survivra.

Guntbert
la source
Vous pouvez peut-être créer un vpn avec plus d'une adresse IP en effectuant l'installation à partir du gestionnaire de logiciels.
Michael
Aucun redémarrage n'est requis sur Ubuntu 16.04.3 LTS après l'ajout ou la suppression d'une IP
Daniel F
1
Il semble que ifdown soit obsolète dans les nouvelles versions d'Ubuntu.
Sajuuk
20

Avec le nouveau toolkit, il est aussi simple que l'ancien d'ajouter de nouvelles adresses IP:

ip addr add 192.168.1.1/24 dev eth0

Lorsque vous regardez à ip addr shownouveau, vous voyez la deuxième adresse IP attribuée à l'interface:

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

Supprimer cette adresse IP avec:

ip addr del 192.168.1.1/24 dev eth0

La suite iproute2:

La suite iproute2 est la suite de communications pour la communication interprocessus entre le noyau et l’espace utilisateur via le protocole netlink. Il devrait remplacer l’ensemble des outils réseau standard. Voici ce qu'ils remplacent:

  • ifconfig-> ip addretip link
  • route -> ip route
  • arp -> ip neigh
  • iptunnel -> ip tunnel
  • ipmaddr -> ip maddr
  • netstat -> ss
le chaos
la source
Thx pour fournir les commandes correspondantes.
Guntbert
thx @chaos, puis-je avoir plus d'ip que mon nombre d'interfaces sur mon système ??
lazarus
@jazzz oui, comme vous pouvez le voir dans la sortie de mon interface ci-dessus, 2 adresses IP lui sont attribuées (192.168.0.100 et 192.168.1.1). Vous pouvez en ajouter un autre si vous le souhaitez.
Chaos
@chaos, mais comment puis - je les utiliser, pour une instance que je veux créer un groupe pour ,, multicasting puis - je former un groupe d'eux ,, pouvez - vous s'il vous plaît se référer à ma question askubuntu.com/questions/547105/...
lazarus
1
@chaos J'accepte ma propre réponse à la place de votre excellente, car la vôtre manque de la "permanence" que j'attends d'une configuration de serveur.
Guntbert
0

Une façon est:

sudo ip addr add 192.168.0.2/24 dev eth1
Bert
la source