kosmich7 Posted January 25, 2019 · Report post Начиная с версии ROS 6.36 в конфиге микротика появилась такая сущность как l2mtu и эта сущность теперь учитывается микротиком, при создании интерфейсов. Внезапно обнаружилась проблема с bonding на x86 микротике, начиная с версии ROS 6.37. При создании vlan на интерфейсе bonding, получим ошибку - cold not set MTU (6). Интерфейс vlan на ROS 6.37 при этом создается. Но ! Начиная с этой версии ROS, перестанет работать бондинг. Если кто то подумал что на текущей актуальной версии ROS 6.43.8 проблема с bonding уже решена, это не так. Эта проблема затрагивает разные сетевые карты, в нашем случае это были intel i350, x520-da. На картах intel 82574L и 82571EB этой проблемы нет, но они нам не подходят, для решения наших задач. Есть просьба, у кого есть возможность проверить данную проблему, указав вывод из терминала или скрин винбокса. С информацией о сетевой карте(идентифицировал ее микротик или нет) и l2mtu, на интерфейсах ether, bonding, vlan. Как узнать что на вашем x86 проблема существует ? Очень просто. Необходимо использовать версию ROS 6.37 и выше. Необходимо посмотреть, вывод терминала или посредством утилиты winbox, параметр l2mtu интерфейса сетевой карты. Как видно из примера, l2mtu для интерфейсов ether1-2 отсутствует. Если l2mtu отсутствует, то вероятней всего что Вы воспроизведете эту проблему. Создав бондинг на интефейсах ether1-2, мы получили не работающий бондинг. К тому же если выключить-включить бондинг, интерфейсы vlan не получат флаг R. Другой вопрос что создать этот бондинг не так просто. Для этого необходимо создать вланы на ether интерфейсах, потом изменить интерфейс ether на bonding и со второй попытки, это удается сделать. Первый раз получим ошибку - cold not set MTU (6). Первый пример проблемного bonding, мак адрес изменен. /interface bonding add disabled=yes link-monitoring=none mode=802.3ad name=bonding1 slaves=ether1,ether2 transmit-hash-policy=layer-2-and-3 /interface vlan add interface=bonding1 name=vlan1 vlan-id=1 add interface=bonding1 name=vlan2 vlan-id=2 int pr Flags: D - dynamic, X - disabled, R - running, S - slave # NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS 0 R ether0 ether 1500 4080 00:00:00:00:00:00 1 R ether1 ether 1500 00:00:00:00:00:00 2 R ether2 ether 1500 00:00:00:00:00:00 5 R bonding1 bond 1500 1500 00:00:00:00:00:00 6 R vlan1 vlan 1500 1496 00:00:00:00:00:00 7 R vlan2 vlan 1500 1496 00:00:00:00:00:00 Второй пример рабочего бондинга. int print Flags: D - dynamic, X - disabled, R - running, S - slave # NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS 0 R ether1 ether 1500 00:00:00:00:00:00 1 R ether2 ether 1500 00:00:00:00:00:00 2 R ether3 ether 1500 00:00:00:00:00:00 3 R ether4 ether 1500 00:00:00:00:00:00 4 RS ether5 ether 1500 9014 00:00:00:00:00:00 5 RS ether6 ether 1500 9014 00:00:00:00:00:00 6 R bonding1 bond 1500 9014 00:00:00:00:00:00 7 R vlan1 vlan 1500 9010 00:00:00:00:00:00 8 R vlan2 vlan 1500 9010 00:00:00:00:00:00 Можно предположить что l2mtu отсутствует только на неизвестном устройстве, но это не так. 10G адаптеры в другом сервере, определились как 82599, но l2mtu у них тоже пустой, позже покажу эту информацию из терминала. system resource pci print detail 0 device="03:00.1" name="82571EB Gigabit Ethernet Controller (rev: 6)" vendor="Intel Corporation" category="Ethernet controller" vendor-id="0x8086" device-id="0x105e" irq=10 memory=0xF7E20000-0xF7E3FFFF,0xF7E00000-0xF7EFFFFF io=0xE000-0xEFFF 1 device="03:00.0" name="82571EB Gigabit Ethernet Controller (rev: 6)" vendor="Intel Corporation" category="Ethernet controller" vendor-id="0x8086" device-id="0x105e" irq=11 memory=0xF7E60000-0xF7E7FFFF,0xF7E40000-0xF7E5FFFF io=0xE020-0xE03F 2 device="01:00.3" name="unknown device (rev: 1)" vendor="Intel Corporation" category="Ethernet controller" vendor-id="0x8086" device-id="0x1521" irq=11 memory=0xF7900000-0xF7DFFFFF,0xF7D80000-0xF7D83FFF 3 device="01:00.2" name="unknown device (rev: 1)" vendor="Intel Corporation" category="Ethernet controller" vendor-id="0x8086" device-id="0x1521" irq=11 memory=0xF7A00000-0xF7AFFFFF,0xF7D84000-0xF7D87FFF 4 device="01:00.1" name="unknown device (rev: 1)" vendor="Intel Corporation" category="Ethernet controller" vendor-id="0x8086" device-id="0x1521" irq=10 memory=0xF7B00000-0xF7BFFFFF,0xF7D88000-0xF7D8BFFF 5 device="01:00.0" name="unknown device (rev: 1)" vendor="Intel Corporation" category="Ethernet controller" vendor-id="0x8086" device-id="0x1521" irq=11 memory=0xF7C00000-0xF7CFFFFF,0xF7D8C000-0xF7D8FFFF Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted January 25, 2019 · Report post И чего нового? Да, если ROS не знает l2mtu от сетевухи, она дропнет все пакеты >1500 независимо от ее фактических возможностей - это так еще с начала 6 ветки идет. Да, у бондинг-интерфейсов l2mtu пустой, соответственно, есть проблемы с накидыванием к ним VLAN, MPLS, etc - и в обновлениях идет перманентная битва бобра с козлом в этом вопросе. Поэтому на голое железо никто больше не ставит, а ставят CHR, в VMware еще и тип эмулируемого адаптера вручную правят, тоже не новость. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 25, 2019 · Report post 13 минут назад, jffulcrum сказал: Да, если ROS не знает l2mtu от сетевухи, она дропнет все пакеты >1500 независимо от ее фактических возможностей - это так еще с начала 6 ветки идет. Проблема актуальна начиная с версии ROS 6.36. Не подскажите где она описана ? Вы случайно не писали в саппорт микротика по этому поводу ? Они что то внятное отвечают ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 25, 2019 · Report post 3 часа назад, jffulcrum сказал: а ставят CHR Так ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted January 25, 2019 · Report post 6 часов назад, kosmich7 сказал: Не подскажите где она описана ? Мне о ней сказали прямо на официальных курсах, еще три года назад. Поиском легко находятся материалы еще 2013 года... 2 часа назад, kosmich7 сказал: Так ? У бондинг интерфейса l2mtu всегда 0, независимо от железа. CHR я имел ввиду в контексте ухода от проблем с l2mtu у железных карт. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 26, 2019 · Report post 13 часов назад, jffulcrum сказал: Мне о ней сказали прямо на официальных курсах, еще три года назад. Поиском легко находятся материалы еще 2013 года... Искали поиском, не нашли. Ничего кроме нескольких схожих ситуаций, на офф. форуме микротика. В основном все кто пишут про проблемы mtu, связано с туннелями. Это очень по микротиковски, не афишировать о наличии проблемы. И не сообщить что решать проблему, они не собираются. Такой вывод за 5 лет напрашивается. 13 часов назад, jffulcrum сказал: У бондинг интерфейса l2mtu всегда 0, независимо от железа. CHR я имел ввиду в контексте ухода от проблем с l2mtu у железных карт. Актуальная версия CHR 6.43.8, влан не создается на интерфейсе бондинг ! Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted January 26, 2019 · Report post Просто пора уйти от бондинга к другим технологиям. Зачем вообще он нужен и какие проблемы решает? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 26, 2019 · Report post 39 минут назад, Saab95 сказал: Просто пора уйти от бондинга к другим технологиям. Зачем вообще он нужен и какие проблемы решает? Например к каким ? Агрегирование каналов, какие еще вопросы может решать bonding ? Сегодня необходимо агрегировать несколько серверов 1Г*4 в одном месте, завтра 10Г*2 в другом. PS: Пора перейти с микротика на freebsd. :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted January 26, 2019 · Report post 1 час назад, kosmich7 сказал: Искали поиском, не нашли. Прям с сайта обители зла - https://mum.mikrotik.com/presentations/US13/kirnak.pdf , слайд 46 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 26, 2019 · Report post @jffulcrum Благодарю ! MTU issues on ROS • Even on RouterOS, there are MTU issues. • Currently, a bonding interface does NOT report Max L2MTU. • You can not use MTU >1500 if you use bonding. (no MPLS) • Bug is reported, hopefully will be fixed. (2 months in waiting) Watch our for cheap NICs • Some NICs will not report their Max L2MTU toRouterOS. • In this case, since RouterOS doesn’t know the NICs Max L2MTU, it ignores any frames that are >1500 (even if NIC actually supports jumbo). • Only a problem on x86 or if ROS is a VM. Перевод. Если Вы не хотите иметь проблем с l2mtu, на отличных сетевых картах на базе intel - переходите на другие операционные системы и больше не используйте ROS x86. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted January 26, 2019 · Report post Еще с офсайта: https://wiki.mikrotik.com/wiki/Manual:Layer2_misconfiguration Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 26, 2019 · Report post @jffulcrum спасибо Вам конечно за ликбез, но чем эта информация может помочь в проблеме c l2mtu 0 ? В "проблемных" адаптерах, l2mtu не изменяется. Микротик не мог сделать костыль ? Править l2mtu руками, сделать возможность. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 26, 2019 · Report post До 2016-03-11 всем, в том числе и микротику, не было дела, какой там отображается(считывается) или нет l2mtu. Тут еще бабка на двое сказала, карта не отдает l2mtu или микротик так выкрутился, имхо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alexmern Posted January 26, 2019 · Report post Если это CHR проще бонд на уровне гипервизора сделать. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted January 27, 2019 · Report post 23 часа назад, kosmich7 сказал: Например к каким ? Агрегирование каналов, какие еще вопросы может решать bonding ? Сегодня необходимо агрегировать несколько серверов 1Г*4 в одном месте, завтра 10Г*2 в другом. Бондинг вроде как порты агрегирует, а не сервера? Вместо бондинга, если это не L2, можно L3 OSPF или роутинг использовать - все само собой распределиться и сагрегируется. Если это L2 - то MPLS в помощь. Вообще не понятны техноголии вида - прокинуть весь L2 в центр и там рулить. Так никто из крупных операторов уже не делает - все еще на периметре собирают все L2 в MPLS и подают уже поверх L3 на BRAS. А голый L2 на BRAS подают лишь в маленьких сетях. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 27, 2019 · Report post 47 минут назад, Saab95 сказал: Бондинг вроде как порты агрегирует, а не сервера? Агрегировать 1Г*4, 10Г*2, на нескольких серверах. Порты, на нескольких серверах. В Linux и FreeBSD, агрегация каналов, работает из коробки. И только в ROS х86 сломали агрегацию, на некоторых современных адаптерах. 52 минуты назад, Saab95 сказал: Вместо бондинга, если это не L2, можно L3 OSPF или роутинг использовать - все само собой распределиться и сагрегируется. Приведите пожалуйста пример конфигурации L2+L3, в котором емкость интерфейса vlan, не будет ограничена емкостью одного из ether интерфейсов ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted January 28, 2019 · Report post MPLS нет? Трафик L3 уже можно раскидать по любому количеству портов. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kosmich7 Posted January 30, 2019 · Report post Ларчик просто открывался. На интел i350t4 и подобных где не подхватывается l2mtu. Надо на всех езернет интерфейсах, которые планируем включать в bonding, указать mtu 1504. Создать bonding и vlan_ы = профит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AciDSAS Posted February 5, 2019 · Report post В 30.01.2019 в 23:46, kosmich7 сказал: Ларчик просто открывался. На интел i350t4 и подобных где не подхватывается l2mtu. Надо на всех езернет интерфейсах, которые планируем включать в bonding, указать mtu 1504. Создать bonding и vlan_ы = профит. Сидел, читал, думал вот сейчас помогу кому-то... а тут бац и сам разобрался. Проблема актуальна не только для бонда, но и для простых ВЛАНов на интерфейсах. Если не ether не установить МТУ больше 1500, то mtu на vlan будет максимум 1496 с очень интересными последствиями. Так что ставим MTU 1600 для i350 и аналогов и получаем нормально работающую систему с блондином и вланами. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
7sergeynazarov7 Posted July 24, 2022 · Report post On 2/5/2019 at 11:09 PM, AciDSAS said: Сидел, читал, думал вот сейчас помогу кому-то... а тут бац и сам разобрался. Проблема актуальна не только для бонда, но и для простых ВЛАНов на интерфейсах. Если не ether не установить МТУ больше 1500, то mtu на vlan будет максимум 1496 с очень интересными последствиями. Так что ставим MTU 1600 для i350 и аналогов и получаем нормально работающую систему с блондином и вланами. Вроде как достаточно на физ интерфейсе поставить 1504, чтоб пакет не был фрагментирован. Но это не точно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...