web-dev-qa-db-fra.com

Plusieurs adresses IP avec des interfaces liées

J'ai un serveur avec deux ports Ethernet et je les ai liés avec la configuration suivante dans /etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0

auto bond0
iface bond0 inet static
address 192.168.0.300
gateway 192.168.0.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8 8.8.4.4
bond-mode balance-rr
bond-miimon 100
bond-slaves eth0 eth1

Donc, actuellement, toutes les connexions sont routées via bond0. J'ai besoin d'une autre interface telle que bond1 pouvant fonctionner sur une adresse IP distincte telle que 192.168.0.301.

Je sais que pour y parvenir avec uniquement l'interface eth0, j'ai besoin d'ajouter:

auto eth0:0
iface eth0:0 inet static
(and so on)

mais comment pourrais-je m'y prendre avec un lien réseau? Quelque chose comme bond0:0 et bond0:1 peut-être? Ou bond0 et bond1 mais créez 4 interfaces réseau au total, telles que: eth0:0eth1:0 et eth0:1 et eth1:1, et les utiliser comme esclaves respectifs pour les deux liaisons distinctes? Un peu déroutant, mais toute aide serait la bienvenue!

6
Michael Morrow

Comme j'avais moi-même ce problème et qu'il y avait peu d'informations à ce sujet, voici donc la solution "correcte" pour le fichier/etc/network/interfaces:

auto bond0
iface bond0 inet static
    address 192.168.0.5
    netmask 255.255.255.0
    gateway 192.168.0.1
    bond-mode 802.3ad
    bond-miimon 100
    bond-updelay 200
    bond-downdelay 200
    bond-lacp-rate 1
    bond-slaves eth0 eth1

auto bond0:1
iface bond0:1 inet static
    address 192.168.10.160
    netmask 255.255.255.0

Cela fonctionne presque comme avec les interfaces ordinaires comme eth0, mais vous ne devez pas répéter la configuration de liaison - cela ne devrait être que dans la configuration de bond0. Vous pouvez ensuite ajouter autant d'adresses IP supplémentaires que nécessaire, telles que bond0: 2, bond0: 3, etc.

Si vous souhaitez également ajouter des adresses IPv6, c'est un peu différent, car vous devez ajouter ceci (à titre d'exemple):

iface bond0 inet6 static
    address 2eee:354:3a3::745
    netmask 64
    gateway 2eee:354:3a3::1

IPv6 n'a pas besoin de solution de contournement bond0: 1 ou similaire - utilisez simplement bond0 pour chaque adresse. Il utilise les paramètres de liaison de l'adresse IPv4, comme une deuxième adresse IPv4. Et vous n'avez pas besoin de répéter la partie passerelle pour d'autres adresses IPv6, utilisez simplement address et netmask pour la deuxième adresse IPv6.

Après avoir modifié le fichier d'interface, vous devez exécuter les commandes suivantes pour redémarrer complètement le réseau et charger ces modifications:

ip address flush eth0
ip address flush eth1
systemctl restart networking

Cela supprime toutes les adresses IP de eth0 et eth1, puis redémarre la mise en réseau avec la nouvelle configuration. Assurez-vous que vous êtes connecté localement à la machine, car vous devez complètement désactiver le réseau avant de le redémarrer, de sorte que toutes les connexions seront perdues.

2
iquito

J'utilise une configuration que vous voulez mais sur CentOS. Je crois que vous pouvez comprendre comment le traduire en ubuntu config si je vous montre simplement comment cela fonctionne dans CentOS. Ma configuration est la suivante:

ifcfg-eth4

DEVICE=eth4
BOOTPROTO=none
HWADDR=00:0F:FE:E4:A4:CF
ONBOOT=yes
HOTPLUG=no
SLAVE=yes
MASTER=bond2

ifcfg-bond2

DEVICE=bond2
BOOTPROTO=none
IPADDR=192.168.20.1
NETMASK=255.255.0.0
ONBOOT=yes
TYPE=bonding
MASTER=yes
BONDING_OPTS="miimon=100 mode=1" 

ifcfg-bond2: 1

DEVICE=bond2:1
BOOTPROTO=none
IPADDR=192.168.41.1
NETMASK=255.255.0.0
ONBOOT=yes
TYPE=bonding
MASTER=yes
BONDING_OPTS="miimon=100 mode=1" 

Je voudrais donc essayer de cette façon dans votre cas:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0

auto bond0
iface bond0 inet static
address 192.168.0.300
gateway 192.168.0.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8 8.8.4.4
bond-mode balance-rr
bond-miimon 100
bond-slaves eth0 eth1

auto bond0:1
iface bond0 inet static
address 192.168.1.300
gateway 192.168.1.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8 8.8.4.4
bond-mode balance-rr
bond-miimon 100
bond-slaves eth0 eth1

Essaye le.

0
nobody