Ubuntu: интерфейс ethX не подключен после отключения и повторного подключения кабеля
Я пытаюсь настроить восстановление после сбоя при соединении, но я не могу обойти конфигурацию интерфейса. Мой интерфейс выглядит следующим образом:
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
для аварийного переключения, если одно из соединений NIC терпит неудачу:
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
Надеюсь это поможет!