Всем привет, у меня странная проблема с некоторыми нашими шлюзами. Она уже обсуждалась (но так и не решилась) с разными вариациями:
Суть проблемы такова — допустим, у вас три mikrotik, соединённых последовательно. A <----> B <-----> C A и C — это «что угодно», а B — фаервол с включённым connection tracking и NAT. Я провожу тест пропускной способности по TCP, используя одно соединение (имитируя реальный пользовательский HTTP-трафик). С A на B скорость нормальная — около 100 Мбит, с B на C тоже примерно так же. А вот с A на C получается только 5–20 Мбит.
На B никаких очередей не настроено, ничего, что могло бы повлиять на TCP. Нет layer7, нет манглинга, только NAT и conntrack. Я также тестировал, когда A и C — Linux-маршрутизаторы, с одним соединением максимум тоже около 20 Мбит. Заметил, что ограничение скорости масштабируется напрямую с количеством TCP-соединений — если их два, скорость удваивается.
Ещё заметил зависимость от загрузки CPU (примерно 5 Мбит в вечерний пик, и до 20 Мбит утром, когда нагрузка минимальна), но пока не могу это подтвердить (графики сейчас строятся).
Проблема проявляется, когда B — rb1100ah2x, rb1200, rb1000 с чистой конфигурацией, кроме одного правила SNAT, и на последних версиях прошивок 5.14-5.16. Проблема не возникает, если B — x86 ПК, а также на некоторых RB1000.
Боюсь, что это же может касаться и моделей 711 и SXT (для меня это значило бы ремонт или замену около 2000 устройств), но пока подтвердить не удалось. Есть идеи, что может вызывать такое ограничение?
Спасибо,
-exa
P.S. Для провайдера, который (по печальной иронии) полагается на speedtest.net для демонстрации/продажи своих услуг, это полный провал.
P.P.S. Не могу подтвердить наличие проблемы при выключенном conntrack — затронутые устройства на данный момент заменить нельзя, и я пока не нашёл лабораторного стенда, где это бы воспроизводилось (у меня нет лишних 1100-х, чтобы поиграться).
Суть проблемы такова — допустим, у вас три mikrotik, соединённых последовательно. A <----> B <-----> C A и C — это «что угодно», а B — фаервол с включённым connection tracking и NAT. Я провожу тест пропускной способности по TCP, используя одно соединение (имитируя реальный пользовательский HTTP-трафик). С A на B скорость нормальная — около 100 Мбит, с B на C тоже примерно так же. А вот с A на C получается только 5–20 Мбит.
На B никаких очередей не настроено, ничего, что могло бы повлиять на TCP. Нет layer7, нет манглинга, только NAT и conntrack. Я также тестировал, когда A и C — Linux-маршрутизаторы, с одним соединением максимум тоже около 20 Мбит. Заметил, что ограничение скорости масштабируется напрямую с количеством TCP-соединений — если их два, скорость удваивается.
Ещё заметил зависимость от загрузки CPU (примерно 5 Мбит в вечерний пик, и до 20 Мбит утром, когда нагрузка минимальна), но пока не могу это подтвердить (графики сейчас строятся).
Проблема проявляется, когда B — rb1100ah2x, rb1200, rb1000 с чистой конфигурацией, кроме одного правила SNAT, и на последних версиях прошивок 5.14-5.16. Проблема не возникает, если B — x86 ПК, а также на некоторых RB1000.
Боюсь, что это же может касаться и моделей 711 и SXT (для меня это значило бы ремонт или замену около 2000 устройств), но пока подтвердить не удалось. Есть идеи, что может вызывать такое ограничение?
Спасибо,
-exa
P.S. Для провайдера, который (по печальной иронии) полагается на speedtest.net для демонстрации/продажи своих услуг, это полный провал.
P.P.S. Не могу подтвердить наличие проблемы при выключенном conntrack — затронутые устройства на данный момент заменить нельзя, и я пока не нашёл лабораторного стенда, где это бы воспроизводилось (у меня нет лишних 1100-х, чтобы поиграться).
