AlKov Posted September 5, 2012 Собрал агрегацию 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. Мол дело в нём. Готов согласиться, но хочу найти, что здесь не так и вылечить. В принципе можно было-бы и забить на эту мелочь, но порты в мониторинге, и такая "статистика" мягко говоря, несколько сбивает с толку.. Где же все-таки собака порылась? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
martin74 Posted September 5, 2012 lacp active на портах длинка? может оно active с обоих сторон и кому то не нравится? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
passer Posted September 5, 2012 Набор vlan на обоих концах одинаков? На некоторых свитчах D-Link (не припомню такого именно за DGS-3120) было еще требование задавать pvid. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted September 5, 2012 (edited) 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 September 5, 2012 by AlKov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
passer Posted September 5, 2012 (edited) С форума 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 September 5, 2012 by passer Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted September 6, 2012 Судя по всему, ежесекундные пакеты, которые я вижу, это ни что иное как LACPDU. Но понимание этого ясности в суть проблемы пока не внесло.. :( И есть сомнение, а работает ли вообще у меня агрегация, если свитч дропает пакеты, по которым он должен согласовать линк? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
martin74 Posted September 6, 2012 show link_aggregation show lacp_port что говорят? cat /proc/net/bonding/bond0 и это с линуха Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted September 6, 2012 (edited) 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 September 6, 2012 by AlKov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
snark Posted September 6, 2012 Это известный баг, описанный в (сюрприз, сюрприз!) 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. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted September 6, 2012 (edited) Это известный баг, описанный в (сюрприз, сюрприз!) 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 September 6, 2012 by AlKov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted September 6, 2012 Твою мааать!!! Ну как тут не вспомнить французский, дилинк и его саппорт!! 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.. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
passer Posted September 7, 2012 Благодарю, буду тоже знать теперь. Оказывается, D-Link и в этом свитче отличился. )))) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted September 7, 2012 Блин, теперь новый геморрой.. Полностью отсутствует балансировка.. Весь траф льётся через один порт, во втором только чуток входящего. Пытался на DGS-е переводить порты в passive, на CentOS изменял ad_select с дефолтного stable (0), на bandwidth (1) - ничего не меняется.. Может что-то надо на центосе в ethtool покрутить? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted September 7, 2012 а у вас mac/ip разные в трафике? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted September 7, 2012 а у вас mac/ip разные в трафике? Нет.. Тестирую запустив "закачку" на CentOS. Я правильно Вас понимаю, что в этом случае балансировки не следует ожидать? И как бы тогда потестировать линк до постановки его в продакшен?? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
passer Posted September 7, 2012 Торрент, побольше пиров. Но даже в этом случае вы сможете проверить только балансировку на DGS-3120. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted September 7, 2012 Торрент, побольше пиров. Но даже в этом случае вы сможете проверить только балансировку на DGS-3120. Ок. Спасибо. Про "слона-то" я и позабыл. :) Про балансировку на CentOS - в моём случае она вряд ли будет иметь существенное значение, т.к. "исходящий" на bonding CentOS-а - это ни что иное, как "исходящий" ОТ клиента. Его в моей сети обычно не более 30%. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted September 7, 2012 Торрент, побольше пиров. Но даже в этом случае вы сможете проверить только балансировку на DGS-3120. почему же? если ip-src-dst балансировка, то исходняк будет на кучу разных пиров(хотя бы служебка) и балансировка будет Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
passer Posted September 8, 2012 Я имел в виду, что это будет не так наглядно. Придётся что-то раздавать, что в принципе не сложно, но возможно после первого этапа: скачать что-то популярное с кучей пиров. )))) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...