Перейти к содержимому
Калькуляторы

Баллансировка траффика LACP не могу подружить железки

Здравствуйте, коллеги, очень нужна Ваша помощь. Не могу подружить цепочку cisco->FreeBSD->Dlink DGS-3100 для аггрегации канала до 2Гбит/c.

От кошки приходит 2 кабеля по 1Гбит/c, выставлен LACP. Дальше мне неважно как соединить FreeBSD а потом Dlink или Dlink потом FreeBSD.

Я соединяю Dlink dgs-3100 с FreeBSD. У длинка настроек методов вообще нет, я так понял что там вшит MAC_source_destination

http://forum.dlink.ru/viewtopic.php?t=114497

Провайдер пробовал выставить MAC_source_destination на Cisco, но балансировки не происходит. По одному каналу льется(и входящий и исходящий) под 200 М/c, а по другому 100 Кб/c(запускаю где-то в 10 потоков траффик). А на FreeBSD я вообще не вижу где можно выставить методы балансировки для LACP.

man lagg

Также я пробовал соединяться по кошкинскому fec, но в этом случае исходящий траффик идет по одному каналу, а входящий по другому.

В общем и целом, я уже перепробовал все возможные конфигурации, но получить полноценную аггрегацию мне не удалось. Подскажите, где во FreeBSD выставляется алгоритм аггрегирования для LACP или я все делаю не так?

PS FreeBSD 7.2 Release.

Изменено пользователем freelsd

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

от 3100 вы балансировки не добьетесь. не умеет он ее толком.

максимум что можно сделать : цепочка cisco -> 3100->freebsd

и с циски подавать port-channel load-balance src-dst-mac.

и прошейте 3100 последним софтом.

 

с фрей не подскажу, опыта поднятия lacp на ней нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

от 3100 вы балансировки не добьетесь. не умеет он ее толком.

максимум что можно сделать : цепочка cisco -> 3100->freebsd

и с циски подавать port-channel load-balance src-dst-mac.

и прошейте 3100 последним софтом.

 

с фрей не подскажу, опыта поднятия lacp на ней нет.

Прошил, port-channel load-balance src-dst-mac пробовали. Линк поднимается, но траффик идет только по одному порту. Вопрос про FreeBSD очень актуален

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

руками разбалансируйте канал на 2 влана от провайдера к вам, и пустите их по разным портам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на dgs 3100 не получится балансировка. меняйте свич

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

для freebsd можно сделать EtherChannel:

ifconfig lagg0 laggproto fec laggport em0 laggport em1

на cisco: channel-group 1 mode on

 

на linux можно lacp:

bond0 mode=4 miimon=100 xmit_hash_policy=layer2+3

на cisco: channel-group 1 mode active

 

между d-link и freebsd можно попробовать lb:

ifconfig lagg1 laggproto loadbalance laggport em2 laggport em3

у меня подружить freebsd и d-link не получилось(что-бы входящий и исходящий трафик верно балансировался)... а вот с linux и 802.3ad все хорошо завилось(только d-link плохо балансит tx по xor mac-ов)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на dgs 3100 не получится балансировка. меняйте свич

Почему не получится? Между 3100 и 3627 работает без особых нареканий. 2 линка. Прошивка на 3100 старая - 2.00.47

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а вы чем канал нагружаете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Провайдер пробовал выставить MAC_source_destination на Cisco, но балансировки не происходит. По одному каналу льется(и входящий и исходящий) под 200 М/c, а по другому 100 Кб/c(запускаю где-то в 10 потоков траффик). А на FreeBSD я вообще не вижу где можно выставить методы
Чем нагрузку генерите?

НУ если у вас стык один роутер с айпи-> Агрегация -> один роутер с айпи, то как вообще у вас будет распределятся нагрузка по макам то, маков всего два, ксор от них один и тот же, надо использовать агрегацию по апйпишникам, алгоритм агрегации на вашей стороне никак не связана с агрегацией на стороне провайдера?

Чтобы правильно работала агрегация по макам надо использовать схему много клиенты с айпи->агрегация -> один роутер с айпи или же схему где много роутер, чтобы связок по макам было много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как используется FreeBSD? Это две отдельных машины с шейпингом? Если да, то настраивать LACP нужно только на концах (на Cisco и D-Link), а машины с FreeBSD сделать мостами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

FreeBSD - BGP маршрутизатор. Поэтому весь траффик, идущий в AS будет проходить через него.

 

Связка DGS-3100 === Cisco 3750

Балансировка наблюдается только для входящего траффика при выставлении IP_source_destination на 3750(нам это не подходит никак). В остальных случаях исходящий по одному каналу, входящий по второму, либо весь траффик по одному каналу.

DGS-3100 === FreeBSD 7.2

Не смог добиться балансировки ни входящего, ни исходящего

Cisco 3750 === FreeBSD 7.2

Не смог добиться балансировки ни входящего, ни исходящего

 

Основной вопрос, на который мне хочется получить ответ - как во FreeBSD или Linux(мне неважно) выставить алгоритм балансировки. И какой алгоритм сейчас используется что во FreeBSD, что в dgs-3100 я тоже не могу посмотреть

 

руками разбалансируйте канал на 2 влана от провайдера к вам, и пустите их по разным портам.
Не понял.
на dgs 3100 не получится балансировка. меняйте свич
Невозможно, их 8 штук.
а вы чем канал нагружаете?
Iperf. Стараюсь с разных хостов нагрузку давать. Но 2Гб нужно BGP шлюзу, поэтому мне самому до конца непонятно как будет делаться балансировка по IP или маку, если источник и получатель пакетов мой BGP-маршрутизатор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[martin@router ~]$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 80
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: fast
...

 

[martin@router ~]$ cat /etc/modprobe.conf

alias bond0 bonding
options bond0 miimon=80 mode=4 lacp_rate=fast xmit_hash_policy=1

 

Это в линухе. 3100 сможет балансировать нагрузку только в варианте свич-свич. Т.е. когда через него идет много пар маков ;) Свич-сервер - со стороны сервер мак один, поэтому балансировать он не сможет. У него только на маках балансировка есть, а вам нужна на ip адресах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы показали алгоритм транка, а не балансировки. На cisco можно выбрать ip-dst, mac-dst, ip-src-to-dst алгоритм балансировки для lacp. Где подобное у Вас?

[martin@router ~]$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 80
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: fast
...

 

[martin@router ~]$ cat /etc/modprobe.conf

alias bond0 bonding
options bond0 miimon=80 mode=4 lacp_rate=fast xmit_hash_policy=1

 

Это в линухе. 3100 сможет балансировать нагрузку только в варианте свич-свич. Т.е. когда через него идет много пар маков ;) Свич-сервер - со стороны сервер мак один, поэтому балансировать он не сможет. У него только на маках балансировка есть, а вам нужна на ip адресах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На длинке, для 3526:

config link_aggregation algorithm mac_source_dest

create link_aggregation group_id 1 type lacp

config link_aggregation group_id 1 master_port 1 ports 1-2 state enable

config lacp_port 1-2 mode active

config lacp_port 3-26 mode passive

 

На FreeBSD:

ifconfig_lagg0="laggproto lacp laggport fxp1 laggport fxp2 192.168.90.254/23"

 

Полной балансировки добиться не удалось, исходящий трафик делится поровну, а вот входящий ~1:2

 

ifstat -i fxp1,fxp2 -b -t

Time fxp1 fxp2

HH:MM:SS Kbps in Kbps out Kbps in Kbps out

14:34:48 1273.37 2649.83 1279.38 2242.79

14:34:49 2174.03 2428.82 951.61 2182.90

14:34:50 1830.17 2346.24 784.85 2584.12

14:34:51 1594.98 2270.32 794.42 2783.51

14:34:52 1313.03 2475.10 733.84 3081.71

14:34:53 1400.38 2260.83 1088.17 2935.06

 

Работает в тестовом режиме, глюков пока не замечено.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На 3100 config link_aggregation algorithm mac_source_dest, к сожалению, выбрать невозможно

На длинке, для 3526:

config link_aggregation algorithm mac_source_dest

create link_aggregation group_id 1 type lacp

config link_aggregation group_id 1 master_port 1 ports 1-2 state enable

config lacp_port 1-2 mode active

config lacp_port 3-26 mode passive

 

На FreeBSD:

ifconfig_lagg0="laggproto lacp laggport fxp1 laggport fxp2 192.168.90.254/23"

 

Полной балансировки добиться не удалось, исходящий трафик делится поровну, а вот входящий ~1:2

 

ifstat -i fxp1,fxp2 -b -t

Time fxp1 fxp2

HH:MM:SS Kbps in Kbps out Kbps in Kbps out

14:34:48 1273.37 2649.83 1279.38 2242.79

14:34:49 2174.03 2428.82 951.61 2182.90

14:34:50 1830.17 2346.24 784.85 2584.12

14:34:51 1594.98 2270.32 794.42 2783.51

14:34:52 1313.03 2475.10 733.84 3081.71

14:34:53 1400.38 2260.83 1088.17 2935.06

 

Работает в тестовом режиме, глюков пока не замечено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробуй ng_one2many в режиме раундробин.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На длинке, для 3526:

config link_aggregation algorithm mac_source_dest

create link_aggregation group_id 1 type lacp

config link_aggregation group_id 1 master_port 1 ports 1-2 state enable

config lacp_port 1-2 mode active

config lacp_port 3-26 mode passive

 

На FreeBSD:

ifconfig_lagg0="laggproto lacp laggport fxp1 laggport fxp2 192.168.90.254/23"

 

Полной балансировки добиться не удалось, исходящий трафик делится поровну, а вот входящий ~1:2

 

ifstat -i fxp1,fxp2 -b -t

Time fxp1 fxp2

HH:MM:SS Kbps in Kbps out Kbps in Kbps out

14:34:48 1273.37 2649.83 1279.38 2242.79

14:34:49 2174.03 2428.82 951.61 2182.90

14:34:50 1830.17 2346.24 784.85 2584.12

14:34:51 1594.98 2270.32 794.42 2783.51

14:34:52 1313.03 2475.10 733.84 3081.71

14:34:53 1400.38 2260.83 1088.17 2935.06

 

Работает в тестовом режиме, глюков пока не замечено.

У вас на линке между бордером и провайдером будет только 1 (одна) пара MAC-адресов:

1) MAC вашего бордера

2) MAC роутера провайдера

 

Соотвественно балансировкой по MAC вы ничего не добьетесь.

 

Как вариант, выкинуть Dlink и включить аплинк от провайдера напрямую в бордер (через конвертеры). Тогда можно будет делать балансировку с вашей стороны по SRC IP.

Провайдеру со своей стороны тоже нужно выставить алгоритм балансировки по IP (лучше по паре SRC_IP-DST_IP, а еще лучше SRC_IP:SRC_PORT - DST_IP:DST_PORT)

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На длинке, для 3526:

config link_aggregation algorithm mac_source_dest

create link_aggregation group_id 1 type lacp

config link_aggregation group_id 1 master_port 1 ports 1-2 state enable

config lacp_port 1-2 mode active

config lacp_port 3-26 mode passive

 

На FreeBSD:

ifconfig_lagg0="laggproto lacp laggport fxp1 laggport fxp2 192.168.90.254/23"

 

Полной балансировки добиться не удалось, исходящий трафик делится поровну, а вот входящий ~1:2

 

ifstat -i fxp1,fxp2 -b -t

Time fxp1 fxp2

HH:MM:SS Kbps in Kbps out Kbps in Kbps out

14:34:48 1273.37 2649.83 1279.38 2242.79

14:34:49 2174.03 2428.82 951.61 2182.90

14:34:50 1830.17 2346.24 784.85 2584.12

14:34:51 1594.98 2270.32 794.42 2783.51

14:34:52 1313.03 2475.10 733.84 3081.71

14:34:53 1400.38 2260.83 1088.17 2935.06

 

Работает в тестовом режиме, глюков пока не замечено.

У вас на линке между бордером и провайдером будет только 1 (одна) пара MAC-адресов:

1) MAC вашего бордера

2) MAC роутера провайдера

 

Соотвественно балансировкой по MAC вы ничего не добьетесь.

 

Как вариант, выкинуть Dlink и включить аплинк от провайдера напрямую в бордер (через конвертеры). Тогда можно будет делать балансировку с вашей стороны по SRC IP.

Провайдеру со своей стороны тоже нужно выставить алгоритм балансировки по IP (лучше по паре SRC_IP-DST_IP, а еще лучше SRC_IP:SRC_PORT - DST_IP:DST_PORT)

Верно. Другой 100% рабочий вариант, который уже предлагал terrible - можно обойтись без чанела, просто для каждого линка поднять свою бгп сессию в своем влане и назначить отдельные вланы на линки. Если очень смущает две сессии - можно поднять одну, используя лупбак адреса рутеров и две подсети для двух линков, указав статикой на каждой строне маршруты до лупбака нейбэра через каждый ип.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Настроил балансировку по LACP (803.ad) для linux-nat c D-Link DGS-3627G.

Коммутатор:

config lacp_port 17-20 mode active

create link_aggregation group_id 1 type lacp
config link_aggregation group_id 1 master_port 17 ports 17-18 state enable
create link_aggregation group_id 2 type lacp
config link_aggregation group_id 2 master_port 19 ports 19-20 state enable

config link_aggregation algorithm ip_source_dest

 

Linux-nat (openSUSE 12.2) (bond1 аналогично):

root@emerald:~# cat /etc/sysconfig/network/ifcfg-bond0
BONDING_MASTER='yes'
BONDING_MODULE_OPTS='mode=802.3ad miimon=100 lacp_rate=fast xmit_hash_policy=2'
BONDING_SLAVE0='eth0'
BONDING_SLAVE1='eth1'
BOOTPROTO='none'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME=''
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'

 

 

root@emerald:~# cat /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: layer2+3 (2)

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

 

802.3ad info

LACP rate: fast

Min links: 0

Aggregator selection policy (ad_select): stable

Active Aggregator Info:

Aggregator ID: 1

Number of ports: 2

Actor Key: 17

Partner Key: 17

Partner Mac Address:

 

 

Коммутатор балансирует входящий (для сервера) трафик по ip_source_dest. Сервер балансирует исходящий трафик по Transmit Hash Policy: layer2+3 (2) (что есть тоже самое).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.