У меня есть виртуальная машина Red Hat Enterprise Linux 6.3 (VMware vsphere).
Я создал связку из двух интерфейсов, и она работает, но только когда eth0
активна. Когда я использую ifdown eth0
или echo -eth0 > /sys/class/net/bond0/bonding/slaves
я теряю сетевое подключение к связке.
Я видел на cat /proc/net/bond0
, что оба интерфейса соединены, и когда eth1
он активен, он не работает.
Если я eth0
снова добавлю, то все равно не работает, потому что eth1 активный. Только если я удалю и снова добавлю eth1
в бонды, то работает (делаю eth0
активным)
Разумеется, связь находится в режиме отказоустойчивости.
Самое странное, что если я уберу eth1
связь и определю ее как простой интерфейс, то все будет работать просто отлично!
Я пробовал перезагружать (много раз), но не смог найти никакой помощи в Интернете. Я даже пробовал удалить интерфейс (со стороны VMware) и добавить новый, но это не помогло. Есть у кого-нибудь идеи?
Некоторые команды могут быть неточными, поскольку я пишу это с телефона, используя память, но я думаю, вы понимаете, что я имел в виду, просто не думайте, что проблема была в опечатке или синтаксической ошибке.
заранее спасибо
решение1
Я решил эту проблему. На стороне Linux все было в порядке.
Проблема была на стороне VMware: настройки безопасности группы портов отклоняли изменения MAC-адресов. Как только я изменил их на принимающие, все заработало.
После установки этого параметра на значение «Отклонить» виртуальная машина не сможет использовать MAC-адрес, отличный от предоставленного vSphere.
При работе с bond MAC остается прежним даже при отказе на другой NIC. Так что в моем случае bond MAC был установлен таким же, как eth0, и после того, как он переключился на eth1, MAC остался прежним, который отличался от «физического» MAC eth1 и поэтому был отклонен vswitch.