Я хотел бы установить бондинг с 4 ссылками в режиме 4. но с бондигом работает только "загрузка / получение". для передачи система выбирает одну ссылку.
ifconfig
bond0 Link encap:Ethernet HWaddr 90:E2:BA:0F:76:B4
inet addr:ip Bcast:ip Mask:255.255.255.248
inet6 addr: fe80::92e2:baff:fe0f:76b4/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:239187413 errors:0 dropped:10944 overruns:0 frame:0
TX packets:536902370 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:14688536197 (13.6 GiB) TX bytes:799521192901 (744.6 GiB)
eth2 Link encap:Ethernet HWaddr 90:E2:BA:0F:76:B4
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:54969488 errors:0 dropped:0 overruns:0 frame:0
TX packets:2537 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3374778591 (3.1 GiB) TX bytes:314290 (306.9 KiB)
eth3 Link encap:Ethernet HWaddr 90:E2:BA:0F:76:B4
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:64935805 errors:0 dropped:1 overruns:0 frame:0
TX packets:2532 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3993499746 (3.7 GiB) TX bytes:313968 (306.6 KiB)
eth4 Link encap:Ethernet HWaddr 90:E2:BA:0F:76:B4
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:57352105 errors:0 dropped:2 overruns:0 frame:0
TX packets:536894778 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3524236530 (3.2 GiB) TX bytes:799520265627 (744.6 GiB)
eth5 Link encap:Ethernet HWaddr 90:E2:BA:0F:76:B4
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:61930025 errors:0 dropped:3 overruns:0 frame:0
TX packets:2540 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3796021948 (3.5 GiB) TX bytes:314274 (306.9 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:62 errors:0 dropped:0 overruns:0 frame:0
TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5320 (5.1 KiB) TX bytes:5320 (5.1 KiB)
это мои конфиги:
DEVICE="eth2"
BOOTPROTO="none"
MASTER=bond0
SLAVE=yes
USERCTL=no
NM_CONTROLLED="no"
ONBOOT="yes"
DEVICE="eth3"
BOOTPROTO="none"
MASTER=bond0
SLAVE=yes
USERCTL=no
NM_CONTROLLED="no"
ONBOOT="yes"
DEVICE="eth4"
BOOTPROTO="none"
MASTER=bond0
SLAVE=yes
USERCTL=no
NM_CONTROLLED="no"
ONBOOT="yes"
DEVICE="eth5"
BOOTPROTO="none"
MASTER=bond0
SLAVE=yes
USERCTL=no
NM_CONTROLLED="no"
ONBOOT="yes"
DEVICE=bond0
IPADDR=<ip>
BROADCAST=<ip>
NETWORK=<ip>
GATEWAY=<ip>
NETMASK=<ip>
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
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 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
802.3ad info
LACP rate: slow
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
Aggregator ID: 1
Number of ports: 4
Actor Key: 17
Partner Key: 11
Partner Mac Address: 00:24:51:12:63:00
Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:e2:ba:0f:76:b4
Aggregator ID: 1
Slave queue ID: 0
Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:e2:ba:0f:76:b5
Aggregator ID: 1
Slave queue ID: 0
Slave Interface: eth4
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:e2:ba:0f:76:b6
Aggregator ID: 1
Slave queue ID: 0
Slave Interface: eth5
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:e2:ba:0f:76:b7
Aggregator ID: 1
Slave queue ID: 0
/etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond0 mode=4 miimon=100 updelay=200
#downdelay=200 xmit_hash_policy=layer3+4 lacp_rate=1
Linux:
Linux 3.0.0+ #1 SMP Fri Oct 26 07:55:47 EEST 2012 x86_64 x86_64 x86_64 GNU/Linux
что я пробовал:
downdelay = 200 xmit_hash_policy = layer3 + 4 lacp_rate = 1
mode 6
http://wiki.mikrotik.com/wiki/Manual:Interface/Bonding говорит:
LACP балансирует исходящий трафик по активным портам на основе хешированной информации заголовка протокола и принимает входящий трафик с любого активного порта. [...] Способ вычисления хеша зависит от параметра политики передачи хеширования.
Transmit-hash-policy: layer-2 - Использует XOR аппаратных MAC-адресов для генерации хэша. Этот алгоритм разместит весь трафик к определенному сетевому узлу на том же ведомом.
Итак, если вы передаете из bond0
только в один пункт назначения, то есть в не замужем MAC-адрес, все кадры идут только с одного из ваших интерфейсов. Это ожидаемое поведение. Если вы перейдете на какой-либо другой MAC, скорее всего, алгоритм хеширования выберет один из 3 других интерфейсов из ваших 4 интерфейсов (вероятность 75%, если быть точным). Это обеспечивает порядок доставки рам.
PS: Если ваша передача проходит через шлюз (маршрутизатор), это тоже считается передачей с одним MAC. Довольно распространенный сценарий.
Вам следует прочитать этот документ: Связь с Linux
Перед тем, как начать отладку конфигурации связывания, проверили ли вы, что каждая сетевая ссылка может работать сама по себе? Если ничего не работает при выключении eth4 (ifdown eth4
) то, скорее всего, проблема с вашей проводкой.
Кроме того, вам, вероятно, сначала следует попробовать более простые режимы склеивания. Попробуйте balance-rr (mode=0
) и посмотрите, видите ли вы трафик на всех интерфейсах. Также загляните в /proc/net/bonding/bond0
чтобы проверить текущий статус вашей конфигурации.