Ubuntu: интерфейс ethX не подключается после отключения и повторного подключения кабеля

Ubuntu: интерфейс ethX не подключается после отключения и повторного подключения кабеля

Я пытаюсь настроить конфигурацию fail-back в bonding, но не могу обойти конфигурацию интерфейса. Мой интерфейс выглядит следующим образом:

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

Мой файл /etc/modprobe.d/bonding.conf выглядит так:

alias bond0 bonding
options bonding mode=3

Я тестирую его, запуская ping из другой системы. Мой статус облигаций следующий:

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

Когда я отключаю кабель eth1, срабатывает аварийное переключение, и eth3 передает данные (пинг все еще продолжается).

Если я снова подключаюсь к eth1 и удаляю eth3, пинг останавливается, а статус связывания не содержит никаких интерфейсов. Статус связывания:

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

Я пробовал все режимы в бондинге (от 0 до 6). Но ни одна из конфигураций не обеспечивает поддержку восстановления после сбоя. Где я ошибаюсь?

решение1

ИЗМЕНИТЬ 2019-01-10:Эти инструкции предназначены для Ubuntu 16.04 и старше. Я постараюсь обновиться инструкциями для 18.04.

В этом ответе мы используем active-backupсвязывание с bond-primaryнабором интерфейсов, который позволяет при отказе вернуться к основному, когда он доступен. Более подробную информацию можно найти:https://wiki.linuxfoundation.org/networking/bonding


Связывание в Ubuntu отличается от настройки в других дистрибутивах Linux, таких как RedHat. Я сделал несколько конфигураций связывания в Ubuntu и я изложу их ниже как можно лучше.

Судя по всему, у вас уже ifenslaveустановлено, но если нет, установите ifenslave:

sudo apt-get install ifenslave

Далее, взгляните /etc/modulesи убедитесь, что в нем есть следующие строки:

loop
lp
rtc
bonding

В /etc/network/interfacesфайле задайте интерфейсы loopback, eth1, и 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

Теперь настройте bond0интерфейс на active-backupотказоустойчивость в случае сбоя одного из подключений сетевой карты:

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

Сохраните изменения в /etc/network/interfacesфайле и перезапустите сетевую службу:

sudo /etc/init.d/networking restart

Теперь вы можете проверить настройки связывания. Убедитесь, что ваши bond0, eth1и eth3верны:

sudo ethtool bond0
sudo ethtool eth1
sudo ethtool eth3

Проверьте, работает ли теперь отказоустойчивость, удалив eth1из bond0:

sudo ifenslave -d bond0 eth1

Проверьте, можете ли вы по-прежнему пинговать шлюз:

ping -c2 192.168.1.1

Добавить eth1обратно в bond0:

sudo ifenslave bond0 eth1

Надеюсь это поможет!

Связанный контент