web-dev-qa-db-fra.com

Ubuntu: l'interface ethX n'est pas collée après avoir débranché et rebranché son câble

J'essaie de configurer la configuration de reprise en arrière dans la liaison, mais je ne parviens pas à contourner la configuration de l'interface. Mon interface est la suivante:

auto bond0
iface bond0 inet static
       address 192.168.1.39
       netmask 255.255.255.0
       up /sbin/ifenslave bond0 eth1 eth3
       down /sbin/ifenslave -d bond0 eth1 eth3

Mon fichier /etc/modprobe.d/bonding.conf est:

alias bond0 bonding
options bonding mode=3

Je le teste en exécutant ping depuis un autre système. Mon statut de lien est le suivant:

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (broadcast)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 44:a8:42:03:68:2c
Slave queue ID: 0

Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 44:a8:42:03:68:2c
Slave queue ID: 0

Lorsque je retire le câble eth1, le basculement fonctionne et eth3 exécute les données (le ping continue toujours).

Si je me reconnecte à eth1 et que je supprime eth3, le ping s’arrête et l’état de la liaison ne contient aucune interface. Le statut de la caution est:

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (broadcast)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

J'ai essayé avec tous les modes de la liaison (0 à 6). Mais aucune de la configuration ne fournit le support de reprise en ligne. Où vais-je mal?

2
Paul Justin

EDIT 2019-01-10: Ces instructions concernent Ubuntu 16.04 et les versions plus anciennes. Je vais essayer de mettre à jour avec des instructions pour 18.04.

Dans cette réponse, nous utilisons active-backup en liaison avec un jeu d'interfaces bond-primary permettant au basculement de revenir au primaire lorsqu'il est disponible. Plus d'informations peuvent être trouvées: https://wiki.linuxfoundation.org/networking/bonding


La liaison dans Ubuntu est une configuration différente, comme dans d'autres distributions de Linux comme RedHat. J'ai fait quelques configurations de liaison sous Ubuntu et je l'exposerai ci-dessous le mieux possible.

Comme il semble, vous avez déjà installé ifenslave, mais sinon, installez ifenslave:

Sudo apt-get install ifenslave

Ensuite, jetez un oeil à /etc/modules et assurez-vous qu'il comporte les lignes suivantes:

loop
lp
rtc
bonding

Dans le fichier /etc/network/interfaces, définissez vos interfaces loopback, eth1 et eth3:

auto lo
    iface lo inet loopback

auto eth1
    iface eth1 inet manual
    bond-master bond0
    bond-primary eth1

auto eth3
    iface eth3 inet manual
    bond-master bond0

Maintenant, configurez votre bond0 interface avec active-backup pour le basculement si l'une des connexions NIC échoue:

auto bond0
    iface bond0 inet static
    address 192.168.1.39
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    bond-mode active-backup
    bond-miimon 100
    bond-slaves none

Enregistrez les modifications dans le fichier /etc/network/interfaces et redémarrez votre service de réseau:

Sudo /etc/init.d/networking restart

Maintenant, vous pouvez vérifier votre configuration de liaison. Assurez-vous que vos bond0, eth1 et eth3 sont corrects:

Sudo ethtool bond0
Sudo ethtool eth1
Sudo ethtool eth3

Vérifiez si le basculement fonctionne maintenant en supprimant eth1 de bond0:

Sudo ifenslave -d bond0 eth1

Vérifiez si vous pouvez toujours envoyer une requête ping à la passerelle:

ping -c2 192.168.1.1

Ajoutez eth1 à bond0:

Sudo ifenslave bond0 eth1

J'espère que cela t'aides!

6
Terrance