[sisyphus] bond + bridge

Sergey Vlasov vsu на altlinux.ru
Пт Фев 5 15:43:15 UTC 2010


On Fri, Feb 05, 2010 at 03:52:43PM +0200, Вячеслав wrote:
> > > bond0: received packet with  own address as source address
> >
> > А какой именно режим используется для bond0, и как настроен
> > коммутатор, в который включены соответствующие кабели?
> >
> > mode=5 и mode=6 точно не работают совместно с bridge; mode=4 (802.3ad)
> > работает, но требует соответствующей настройки и со стороны
> > коммутатора.
> 
> `cat options`
> TYPE=bond
> HOST='eth0 eth1'
> BONDOPTIONS="mode=0 miimon=100"
> DISABLED=no
> BOOTPROTO=static
> NM_CONTROLLED=no
> ONBOOT=yes

mode=0 требует настройки статического агрегирования на коммутаторе без
использования протокола LACP; без этой настройки будут как раз такие
ошибки (пакеты, переданные в один из портов, будут возвращаться назад
через другой).

Кроме того, при использовании mode=0 возможно изменение порядка
пакетов в пределах одного соединения, что может вызывать проблемы,
например, повторные передачи в TCP, если такое переупорядочивание
будет обработано как признак перегрузки в сети.  Этой проблемы можно
избежать, если использовать mode=2 и xmit_hash_policy=layer2 или
layer2+3 (вариант layer3+4 может приводить к изменению порядка пакетов
в редких случаях, когда используется фрагментация на уровне IP).
Настройки коммутатора для mode=2 требуются те же, что и для mode=0 -
статическое агрегирование без использования LACP.

При использовании bonding в комбинации с bridge и виртуальными
машинами нужно учитывать, что при обработке xmit_hash_policy код
bonding не использует MAC-адрес отправителя в исходящих пакетах; в
результате, если несколько разных ВМ отправляют пакеты на один и тот
же MAC-адрес (например, на маршрутизатор), все эти пакеты при
использовании xmit_hash_policy=layer2 будут попадать в один канал.
Для борьбы с этим можно использовать xmit_hash_policy=layer2+3 (в этом
случае учитываются оба IP-адреса в пакете, в результате пакеты от
разных ВМ могут быть распределены по разным интерфейсам даже при
обмене с одним и тем же MAC и IP).

Режима, поддерживающего балансировку нагрузки, совместимого с
использованием bridge, и при этом не требующего специальных настроек
коммутатора, в модуле bonding в настоящее время нет (в режимах
balance-alb и balance-tlb модуль bonding меняет MAC-адреса в исходящих
пакетах, не учитывая того, что эти пакеты могут исходить от ВМ со
своими собственными MAC).  В Citrix XenServer добавляли режим
balance-slb, который якобы умеет разносить трафик от разных ВМ по
разным интерфейсам (заявлена динамическая балансировка нагрузки по
алгоритмам, аналогичным balance-alb, но с использованием source MAC в
качестве ключа), однако этот патч придётся искать где-то внутри общей
свалки исходников:

  http://www.citrix.com/lang/English/lp/lp_1688623.asp

Хотя сейчас ещё есть http://openvswitch.org/ (причём в Xen Cloud
Platform перешли именно на него, так что пропихивать куда-то поддержку
balance-slb разработчики, похоже, уже не будут).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20100205/7c11851c/attachment.bin>


Подробная информация о списке рассылки Sisyphus