Jump to content
Калькуляторы

DGS-3120 и CentOS 6.3 LACP - загадочные дропы..

Собрал агрегацию DGS-3120-24ТС c CentOS 6.3 (двухпортовый Intel 82576). Трафика практически нет (тест).

На DGS-3120-24ТС наблюдаю дропы на RX со стабильным периодом - 1 пакет в секунду, поровну на каждом порту в группе.

Заглянул tcpdump-ом на bond0 CentOS (предварительно отфильтровав ssh и arp).

Кроме этого с такой периодичностью ничего нет

20:39:42.487390 LACPv1, length 110
       Actor Information TLV (0x01), length 20
         System 1c:7e:e5:6c:d7:00, System Priority 1, Key 16, Port 16, Port Priority 1
         State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
         0x0000:  d700 0010 0001 0010 3f00 0000 0214 ffff
         0x0010:  001b
       Partner Information TLV (0x02), length 20
         System 00:1b:xx:xx:xx:xx, System Priority 65535, Key 17, Port 1, Port Priority 255
         State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
         0x0000:  fb60 0011 00ff 0001 3f00 0000 0310 00ff
         0x0010:  0000
       Collector Information TLV (0x03), length 16
         Max Delay 255
         0x0000:  0000 0000 0000 0000 0000 0000 0000
       Terminator TLV (0x00), length 0 (=52)
         0x0000:  0000 0000 0000 0000 0000 0000 0000 0000
         0x0010:  0000 0000 0000 0000 0000 0000 0000 0000
         0x0020:  0000 0000 0000 0000 0000 0000
20:39:42.487706 LACPv1, length 110
       Actor Information TLV (0x01), length 20
         System 1c:7e:e5:6c:d7:00, System Priority 1, Key 16, Port 18, Port Priority 1
         State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
         0x0000:  d700 0010 0001 0012 3f00 0000 0214 ffff
         0x0010:  001b
       Partner Information TLV (0x02), length 20
         System 00:1b:xx:xx:xx:xx, System Priority 65535, Key 17, Port 2, Port Priority 255
         State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
         0x0000:  fb60 0011 00ff 0002 3f00 0000 0310 00ff
         0x0010:  0000
       Collector Information TLV (0x03), length 16
         Max Delay 255
         0x0000:  0000 0000 0000 0000 0000 0000 0000
       Terminator TLV (0x00), length 0 (=52)
         0x0000:  0000 0000 0000 0000 0000 0000 0000 0000
         0x0010:  0000 0000 0000 0000 0000 0000 0000 0000
         0x0020:  0000 0000 0000 0000 0000 0000
20:39:43.487382 LACPv1, length 110
       Actor Information TLV (0x01), length 20
         System 1c:7e:e5:6c:d7:00, System Priority 1, Key 16, Port 16, Port Priority 1
         State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
         0x0000:  d700 0010 0001 0010 3f00 0000 0214 ffff
         0x0010:  001b
       Partner Information TLV (0x02), length 20
         System 00:1b:xx:xx:xx:xx, System Priority 65535, Key 17, Port 1, Port Priority 255
         State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
         0x0000:  fb60 0011 00ff 0001 3f00 0000 0310 00ff
         0x0010:  0000
       Collector Information TLV (0x03), length 16
         Max Delay 255
         0x0000:  0000 0000 0000 0000 0000 0000 0000
       Terminator TLV (0x00), length 0 (=52)
         0x0000:  0000 0000 0000 0000 0000 0000 0000 0000
         0x0010:  0000 0000 0000 0000 0000 0000 0000 0000
         0x0020:  0000 0000 0000 0000 0000 0000
20:39:43.487698 LACPv1, length 110
       Actor Information TLV (0x01), length 20
         System 1c:7e:e5:6c:d7:00, System Priority 1, Key 16, Port 18, Port Priority 1
         State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
         0x0000:  d700 0010 0001 0012 3f00 0000 0214 ffff
         0x0010:  001b
       Partner Information TLV (0x02), length 20
         System 00:1b:xx:xx:xx:xx, System Priority 65535, Key 17, Port 2, Port Priority 255
         State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
         0x0000:  fb60 0011 00ff 0002 3f00 0000 0310 00ff
         0x0010:  0000
       Collector Information TLV (0x03), length 16
         Max Delay 255
         0x0000:  0000 0000 0000 0000 0000 0000 0000
       Terminator TLV (0x00), length 0 (=52)
         0x0000:  0000 0000 0000 0000 0000 0000 0000 0000
         0x0010:  0000 0000 0000 0000 0000 0000 0000 0000
         0x0020:  0000 0000 0000 0000 0000 0000

00:1b:xx:xx:xx:xx - MAC интерфейса bond0 CentOS.

На bond0 CentOS дропов нет

ethtool -S eth2 | grep drop
    dropped_smbus: 0
    tx_dropped: 0
    rx_queue_0_drops: 0
    rx_queue_1_drops: 0
    rx_queue_2_drops: 0
    rx_queue_3_drops: 0
    rx_queue_4_drops: 0
    rx_queue_5_drops: 0
    rx_queue_6_drops: 0
    rx_queue_7_drops: 0

ethtool -S eth3 | grep drop
    dropped_smbus: 0
    tx_dropped: 0
    rx_queue_0_drops: 0
    rx_queue_1_drops: 0
    rx_queue_2_drops: 0
    rx_queue_3_drops: 0
    rx_queue_4_drops: 0
    rx_queue_5_drops: 0
    rx_queue_6_drops: 0
    rx_queue_7_drops: 0

На портах с обеих сторон по два vlan.

Саппорт длинка пока ничего вразумительного не ответил, послал на.. CentOS. Мол дело в нём.

Готов согласиться, но хочу найти, что здесь не так и вылечить.

В принципе можно было-бы и забить на эту мелочь, но порты в мониторинге, и такая "статистика" мягко говоря, несколько сбивает с толку..

Где же все-таки собака порылась?

Share this post


Link to post
Share on other sites

Набор vlan на обоих концах одинаков? На некоторых свитчах D-Link (не припомню такого именно за DGS-3120) было еще требование задавать pvid.

Share this post


Link to post
Share on other sites

lacp active на портах длинка? может оно active с обоих сторон и кому то не нравится?

Да, active. Пробовал на DGS-3120 ставить в passive - ничего не меняется. На CentOS не знаю, как это проверить/переключить.. А вот то, что DGS-у что-то не нравится, наверное подверждают те самые дропы. Только вот чтО?? Явно какая-то "служебка", т.к. "тикает", как часы - 1 дроп в секунду. И что еще примечательно - это совершенно не зависит от проходящего через линк трафика. Пробовал запускать на CentOS "закачку" (порядка 15 Мбит/с) - никаких изменений, стабильно дроп в секунду.

Набор vlan на обоих концах одинаков? На некоторых свитчах D-Link (не припомню такого именно за DGS-3120) было еще требование задавать pvid.

Да, конечно, оба порта длинка в обеих vlan, на bond0 аналогично. "Лишних" vlan ни на одной из сторон нет. Насчет pvid не в курсе, да и саппорт длинка тоже ничего об этом не упоминал..

GS-3120-24TC:admin#sh vlan ports 16
Command: show vlan ports 1:16

Port   VID   Untagged  Tagged  Dynamic  Forbidden
-----   ----  --------  ------  -------  ---------
1:16   3       -         X       -        -
1:16   7       -         X       -        -

DGS-3120-24TC:admin#sh vlan ports 18
Command: show vlan ports 1:18

Port   VID   Untagged  Tagged  Dynamic  Forbidden
-----   ----  --------  ------  -------  ---------
1:18   3       -         X       -        -
1:18   7       -         X       -        -

Edited by AlKov

Share this post


Link to post
Share on other sites

С форума D-Link было позаимствовано:

Вот список пакетов, попадающих в Drop Packets:

 

1. Packets dropped when IPMC(IP Multicast) TTL count below threshold. Number of IPMC packets dropped due to TTL threshold in MAC domain. ttl=0

2. Number of packets dropped by egress (VLAN tag removed or IPmc).

3. Transmit L3 Aborted Packet Counter. Number of L3 packets dropped.

4. Packets dropped by ACL Counter. Incremented for each packet dropped by the ACL.

5. Unknow Protocol, like Cisco CDP, Loopback Test packet.

6. 802.3x Pause frame also will count as drop packet.

Странно, в общем. Когда разберетесь - сообщите ваше решение.
Edited by passer

Share this post


Link to post
Share on other sites

Судя по всему, ежесекундные пакеты, которые я вижу, это ни что иное как LACPDU.

Но понимание этого ясности в суть проблемы пока не внесло.. :(

И есть сомнение, а работает ли вообще у меня агрегация, если свитч дропает пакеты, по которым он должен согласовать линк?

Share this post


Link to post
Share on other sites

show link_aggregation

show lacp_port

 

что говорят?

 

cat /proc/net/bonding/bond0

 

и это с линуха

Да вроде все путём там..

DGS-3120-24TC:admin#sh link_ag
Command: show link_aggregation

Link Aggregation Algorithm = IP-Source-Dest

Group ID      : 2
Type          : LACP
Master Port   : 1:16
Member Port   : 1:16,1:18
Active Port   : 1:16,1:18
Status        : Enabled
Flooding Port : 1:16
Trap          : Disabled

DGS-3120-24TC:admin#sh lacp_port
Command: show lacp_port


Port     Activity

-----    --------
1:1      Passive
1:2      Passive
1:3      Passive
1:4      Passive
1:5      Passive
1:6      Passive
1:7      Passive
1:8      Passive
1:9      Passive
1:10     Passive
1:11     Passive
1:12     Passive
1:13     Passive
1:14     Passive
1:15     Passive
1:16     Active
1:17     Passive
1:18     Active
1:19     Passive
1:20     Passive
1:21     Passive
1:22     Passive
1:23     Passive
1:24     Passive

 

cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

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
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
       Aggregator ID: 2
       Number of ports: 2
       Actor Key: 17
       Partner Key: 16
       Partner Mac Address: 1c:7e:e5:6c:d7:00

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: 00:1b:xx:xx:xx:x0
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:1b:xx:xx:xx:x1
Aggregator ID: 2
Slave queue ID: 0

 

P.S. Вот нашел похожий баг. Но он как-бы уже давно пофиксен.. На CentOS ядро 2.6.32-279.5.2.el6.x86_64.

 

P.P.S. Хотя.. Вот ещё нагуглилось и если я правильно прочел, совсем близко по моей теме (насчет vlan id). Похоже придётся тянуть фиксенное ядро...

Блин, не могу найти, откуда скачать 2.6.32-288.el6.. :(

Edited by AlKov

Share this post


Link to post
Share on other sites

Это известный баг, описанный в (сюрприз, сюрприз!) release notes:

There seems to be an issue when using 802.1q VLANing on bonded (802.3ad) interfaces and certain NICs. See this upstream bugzilla entry and this CentOS bugzilla entry for details. The CentOS-Plus Kernel released with 6.3 contains a patch to fix this issue. Starting with kernel 2.6.32-279.2.1 this issue is fixed.

Share this post


Link to post
Share on other sites

Это известный баг, описанный в (сюрприз, сюрприз!) release notes:

There seems to be an issue when using 802.1q VLANing on bonded (802.3ad) interfaces and certain NICs. See this upstream bugzilla entry and this CentOS bugzilla entry for details. The CentOS-Plus Kernel released with 6.3 contains a patch to fix this issue. Starting with kernel 2.6.32-279.2.1 this issue is fixed.

Ну я как бы "не против", но..

На CentOS ядро 2.6.32-279.5.2.el6.x86_64.

 

Или это - "Starting with kernel 2.6.32-279.2.1 this issue is fixed" = "надписи на заборе"?

Плюс ко всему, сеть у меня работает.

Кстати, версия с дропами LACPDU не подтвердилась - заменил на CentOS LACP rate на slow, LACPDU пакеты пошли с периодом в 30 сек., а дропы на DGS-е как были ежесекундно, так и остались! Вот такая мистика...

Сейчас планирую попробовать поднять бондинг без vlan, чтобы подтвердить/опровергнуть версию о баге с 802.3q.

Edited by AlKov

Share this post


Link to post
Share on other sites

Твою мааать!!! Ну как тут не вспомнить французский, дилинк и его саппорт!!

passer, а ведь Вы были правЫ насчёт

На некоторых свитчах D-Link (не припомню такого именно за DGS-3120) было еще требование задавать pvid.

Добавил на DGS-е config port_vlan 16,18 pvid 7 и.. Всё как рукой снЯло!

И ведь нигде ни звука об этом! И как выяснилось, я не первый "потерпевший" в этом деле - нарыл на форуме дилинка

Проблема не софтовая и не железная. Дело все в вашем конфиге.

 

Добавьте на 3120

config port_vlan 1:23-1:24 pvid 230

Да, чтобы LACP пакетик прошел Ingress checking, нужно чтобы PVID на порту ссылался на реально существующий влан. Можно конечно отключить Ingress Checking, но этот вариант хуже.

И что самое обидное, они же (Artem Kolpakov и Denis Evgraphov) вдвоём парили мне мозг про CentOS..

Share this post


Link to post
Share on other sites

Блин, теперь новый геморрой.. Полностью отсутствует балансировка.. Весь траф льётся через один порт, во втором только чуток входящего.

Пытался на DGS-е переводить порты в passive, на CentOS изменял ad_select с дефолтного stable (0), на bandwidth (1) - ничего не меняется..

Может что-то надо на центосе в ethtool покрутить?

Share this post


Link to post
Share on other sites

а у вас mac/ip разные в трафике?

Нет.. Тестирую запустив "закачку" на CentOS.

Я правильно Вас понимаю, что в этом случае балансировки не следует ожидать?

И как бы тогда потестировать линк до постановки его в продакшен??

Share this post


Link to post
Share on other sites

Торрент, побольше пиров. Но даже в этом случае вы сможете проверить только балансировку на DGS-3120.

Ок. Спасибо. Про "слона-то" я и позабыл. :)

Про балансировку на CentOS - в моём случае она вряд ли будет иметь существенное значение, т.к. "исходящий" на bonding CentOS-а - это ни что иное, как "исходящий" ОТ клиента.

Его в моей сети обычно не более 30%.

Share this post


Link to post
Share on other sites

Торрент, побольше пиров. Но даже в этом случае вы сможете проверить только балансировку на DGS-3120.

 

почему же? если ip-src-dst балансировка, то исходняк будет на кучу разных пиров(хотя бы служебка) и балансировка будет

Share this post


Link to post
Share on other sites

Я имел в виду, что это будет не так наглядно. Придётся что-то раздавать, что в принципе не сложно, но возможно после первого этапа: скачать что-то популярное с кучей пиров. ))))

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.