Я пытаюсь установить связь на моем сервере proxmox 4.4.
Я выбрал активную резервную копию, потому что связь будет связана с мостом Linux, который не будет использовать Протокол Spanningtree.
связь (bond1) будет иметь 2 подчиненных устройства: Bond0, который представляет собой LACP из 3 ссылок (eth0, eth1, eth2) на 1 коммутатор и eth3 на другой коммутатор. Я отсоединяю все кабели от (eth0 eth1 eth2)
Bond1 сохраняет bond0 как активный канал и как следствие: сервер недоступен из локальной сети.
Я думаю, это потому, что Bond0 остается в рабочем состоянии, даже когда его 3 подчиненных устройства работают down.
, потому что когда я делаю ifconfig bond0 down.
Bond1 использует другую ссылку (eth3) для подключения. и сервер снова в локальной сети.
именно так он и должен работать.
Итак, я попробовал несколько параметров в bond0, чтобы заставить его иметь состояние DOWN, когда eth0 eth1 и eth2 находятся в DOWN.
Я не мог узнать.
Я даже использовал параметры post-down, post-up, .... на eth0, eth1 и eth2 в / etc / network / interface, чтобы запустить скрипт, который выполняет ifdown bond0 когда эти порты в DOWN и ifup bond0, когда один из них снова работает.
Но это не работает, я попытался отключить bond0. bond1 по-прежнему использует bond0 как активную ссылку. Скрипт не запущен.
В этот момент я хотел вырвать себе волосы ....
Скрипт не запускается, потому что. они выполняются только тогда, когда я выполняю ifdown eth0 ifdown eth1 или ifdown eth2 ...
(post-down, post-up): теперь я знаю, что эти параметры запускают команду только тогда, когда мы запускаем ifdown или ifup, но не когда отключаем вилку. (серьезно, в чем смысл этой функциональности).
Я хочу выполнить действие, когда интерфейс не работает, и оно не работает, когда я отсоединяю кабель Ethernet .....
это не то, что я хочу в все.
Я перезапустился между изменениями.
Я сейчас в каком-то отчаянии, я потратил на это 9 часов.
поэтому прошу вашей помощи.
Я нашел пакет debian "ifplugd" "который будет выполнять действия, когда интерфейсы отключены. Спасибо.
update
Вот / etc / network / interface:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
post-down do_i_bring_bond0_down.sh
post-up do_i_bring_bond0_up.sh
auto eth1
iface eth1 inet manual
post-down do_i_bring_bond0_down.sh
post-up do_i_bring_bond0_up.sh
auto eth2
iface eth2 inet manual
post-down do_i_bring_bond0_down.sh
post-up do_i_bring_bond0_up.sh
iface eth3 inet manual
auto bond0
iface bond0 inet manual
slaves eth0 eth1 eth2
bond_miimon 100
bond_mode 802.3ad
bond_xmit_hash_policy layer3+4
bond_min_links 1
auto bond1
iface bond1 inet manual
slaves bond0 eth3
bond_miimon 100
bond_mode active-backup
bond_primary bond0
bond_updelay 100
bond_downdelay 100
auto vmbr0
iface vmbr0 inet static
address 10.4.2.4
netmask 255.255.255.192
gateway 10.4.2.1
bridge_ports bond1.20
bridge_stp off
bridge_fd 0
auto vmbr1
iface vmbr1 inet manual
bridge_ports bond1
bridge_stp off
bridge_fd 0
bridge_vlan_aware yes
/ proc / net / bonding / bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: bond0 (primary_reselect always)
Currently Active Slave: bond0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 100
Down Delay (ms): 100
Slave Interface: bond0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: c8:1f:66:c2:dc:3b
Slave queue ID: 0
Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:15:17:3a:a9:bf
Slave queue ID: 0
/ proc / net / bonding / bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: c8:1f:66:c2:dc:3b
Active Aggregator Info:
Aggregator ID: 2
Number of ports: 3
Actor Key: 9
Partner Key: 67
Partner Mac Address: 80:2a:a8:df:42:b1
Slave Interface: eth0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: c8:1f:66:c2:dc:3b
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
system priority: 65535
system mac address: c8:1f:66:c2:dc:3b
port key: 0
port priority: 255
port number: 1
port state: 61
details partner lacp pdu:
system priority: 32768
system mac address: 80:2a:a8:df:42:b1
oper key: 67
port priority: 128
port number: 8
port state: 61
Slave Interface: eth1
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: c8:1f:66:c2:dc:3c
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
system priority: 65535
system mac address: c8:1f:66:c2:dc:3b
port key: 0
port priority: 255
port number: 2
port state: 61
details partner lacp pdu:
system priority: 32768
system mac address: 80:2a:a8:df:42:b1
oper key: 67
port priority: 128
port number: 7
port state: 61
Slave Interface: eth2
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: 00:15:17:3a:a9:be
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
system priority: 65535
system mac address: c8:1f:66:c2:dc:3b
port key: 0
port priority: 255
port number: 3
port state: 61
details partner lacp pdu:
system priority: 32768
system mac address: 80:2a:a8:df:42:b1
oper key: 67
port priority: 128
port number: 9
port state: 61
Похоже, проблема в этом: "Мин связи": 0". Из документации по связи для параметра min_linkks
min_linkks
Это позволяет установить минимальное количество портов-членов, которое должно быть увеличено (состояние соединения) перед маркировкой связующего устройства как "вверх" (несущая на)
Значение по умолчанию равно 0. Это приведет к утверждению несущей (для 802.3ad режим) при наличии активного агрегатора, независимо от количества доступных ссылок в этом агрегаторе.
Однако, эта часть несколько запутанная:
Обратите внимание, что, поскольку агрегатор не может быть активным без наличия хотя бы одного доступная ссылка, установка этого параметра в 0 или в 1 имеет точно такое же значение Эффект.
В вашем примере bond0 все три эти интерфейса имеют статус MII (link-state) нисходящего, но отягчающее обстоятельство, в котором они находятся (2), является активным, что, кажется, противоречит документации. Посмотрим на источник.
Код для функции bond_3ad_set_carrier() вызывает __agg_active_ports(), которая просто проверяет значение флага "is_enabled" каждого дэва и, кажется, не имеет никакого отношения к статусу связи.
Этот патч, похоже, указывает на то, что это так:
Пока патч использует количество активных ведомых устройств, чтобы сравнить с min_ссылки, чтобы узнать, когда включить/выключить носитель облигаций. Предлагаемая настройка min_linkks равен 1, а не нулю по умолчанию. Использование min_ссылок=1 говорит, что, по крайней мере, 1 раб должен быть активен в пределах связи, чтобы связь была На основе того, что я могу сказать, что патч не был интегрирован в основную линию или, может быть, он был в модифицированной форме, которую я не смог разглядеть.
Попробуйте установить min_linkks на 1 или 2 и посмотрите, что произойдет. Если это не сработает, можно переключиться с miimon на arp мониторинг (установка arp_interval apr_ip_target и т.д.)
P.S. Если вы закончите использовать LACP, я изменю значение lacp_rate со стандартного (медленные LACPDU каждые 30 секунд - т.е. время на обнаружение сбоя 30 секунд) на быстрое или на 1 (Запрос партнера на передачу LACPDU каждые 1 секунду).
Редактирование: Заглядывая в код больше, я задаюсь вопросом. Функция bond_3ad_handle_link_change() должна отключать dev при изменении статуса ссылки. Может быть, вы не ждали 30+ секунд, пока заработает машина состояния LACP? Тем не менее, я оставлю ответ, так как потратил на него столько времени. :)
.
Вы не можете связать облигации, эта конфигурация неправильная.
Смотрите мой другой ответ на вопрос о том, как добиться "обхода отказа между облигациями" только с помощью LACP, что является правильной конфигурацией: https://unix.stackexchange.com/questions/82569/bonds-vs-aggregators/172232#172232