Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Реализация SFQ

    Реализация SFQ

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Реализация SFQ, RouterOS
     
    GJS
    Guest
    #1
    0
    23.07.2004 16:00:00
    У меня настроены следующие простые очереди: [admin@mt] queue simple> print
    Flags: X - disabled, I - invalid, D - dynamic
    0    name="LAPTOP 2" target-address=192.168.0.103/32 dst-address=0.0.0.0/0 interface=all queue=red priority=8 limit-at=0/0 max-limit=128000/512000
    1    name="LAPTOP 1" target-address=192.168.0.102/32 dst-address=0.0.0.0/0 interface=all queue=pfifo priority=8 limit-at=0/0 max-limit=128000/512000
    2    name="All" target-address=192.168.0.0/24 dst-address=0.0.0.0/0 interface=all queue=pfifo priority=8 limit-at=0/0 max-limit=100/100
    3    name="Public Traffic Mon" target-address=0.0.0.0/0 dst-address=0.0.0.0/0 interface=all queue=pfifo priority=8 limit-at=0/0 max-limit=0/0
    4    name="queue1" target-address=0.0.0.0/0 dst-address=0.0.0.0/0 interface=all queue=sfq priority=8 limit-at=0/0 max-limit=0/0

    Первые две очереди, похоже, нормально ограничивают пропускную способность для двух клиентов, хотя, как вы увидите, я настроил очередь 0 как RED. Это, кажется, немного сильнее ограничивает трафик, чем тип pfifo. Почему так и какой тип очереди правильный в этом сценарии? Третья очередь (2) предназначена для ограничения всего трафика с других адресов в сети 192.168.0.0/24, и она, похоже, работает нормально. Четвертая очередь просто для мониторинга общего трафика на публичном интерфейсе, и она также, похоже, работает нормально. Я добавил пятую очередь (4), потому что хотел бы реализовать sfq для всего трафика с и на клиентов, так как представляю, что апстрим до публичного (до Интернета) иногда будет загружен. Однако эта очередь, похоже, не делает ничего внизу таблицы, а если ее переместить в начало таблицы, то она позволяет всему трафику проходить без ограничений. Что я делаю не так? Какой правильный способ реализовать sfq для всего трафика, проходящего к и от интерфейса?

    Спасибо,
    Guy
     
     
     
    Eugene
    Guest
    #2
    0
    23.07.2004 16:12:00
    Для информации о различных типах простых очередей обратитесь к: http://www.mikrotik.com/docs/ros/2.8/root/queue.main.1.4.1 Как выглядит определение очереди SFQ в /queue type?
     
     
     
    GJS
    Guest
    #3
    0
    23.07.2004 16:46:00
    Юджин, я перечитал раздел контроля полосы пропускания в руководстве не один раз, а также множество других документов о типах очередей без классов в Linux. Вот вывод "queue type>print" для типа очереди sfq: 7 name=“sfq” kind=sfq bfifo-limit=15000 pfifo-limit=10 red-limit=60 red-min-threshold=10 red-max-threshold=50 red-burst=20 sfq-perturb=5 sfq-allot=1514 pcq-rate=0 pcq-limit=50 pcq-classifier=“”

    Спасибо, Гай.
     
     
     
    Eugene
    Guest
    #4
    0
    23.07.2004 17:06:00
    Если у тебя есть свободные ресурсы ЦП и памяти (в данном случае, у тебя они точно есть), RED работает лучше, чем pfifo. Ни один пакет не может попасть в две простые очереди одновременно. Если пакет попал в одну очередь, он выйдет из всех остальных. Следовательно, твоя третья очередь будет "затмевать" последующие.
     
     
     
    GJS
    Guest
    #5
    0
    23.07.2004 22:14:00
    В чем разница в производительности RED по сравнению с pfifo? Более точный? Когда LAPTOP2 скачивает, и очередь 0, и очередь 3 сообщают о проходящем трафике. Почему очередь 0 не "затеняет" очередь 3? Спасибо за помощь. Guy
     
     
     
    lastguru
    Guest
    #6
    0
    23.07.2004 23:49:00
    Не существует "лучших" или "худших" типов очередей – они просто разные. Очереди без класса (планировщики), которые по своей природе не ограничивают скорость передачи данных (FIFO, SFQ, RED, но не PCQ), не могут быть более или менее точными, так как они вообще не могут быть точными. Единственное сравнение, которое можно сделать, это насколько они эффективны в определенных случаях. Например, RED хорош для TCP, поскольку TCP может адаптироваться к потерям пакетов и снижать скорость передачи данных до того, как будет достигнут фактический предел, что позволяет более эффективно использовать канал. Но тот же алгоритм RED не так хорош для UDP или ICMP, поскольку для них потеря пакета — это потеря пакета. Для такого трафика, возможно, лучше использовать SFQ или FIFO. Также стоит отметить, что нет никакой разницы между PFIFO и BFIFO, кроме единиц измерения, которые они используют для ограничения своего буфера ожидания (очереди). Это нормально, поскольку простые очереди размещаются в двух местах одновременно — в global-in (прямая очередь) и в global-out (обратная очередь). По-моему, я уже упоминал об этом эффекте на форуме несколько недель назад – пожалуйста, поищите. В любом случае, наличие очереди #0, соответствующей src-address=192.168.0.103/32 в global-in, и очереди #3, соответствующей всему в global-out, дает хорошее объяснение наблюдаемому эффекту. Но если две записи соответствуют одному и тому же в одном и том же месте, то сработает только первая из них.
     
     
     
    GJS
    Guest
    #7
    0
    26.07.2004 22:42:00
    Спасибо за ответ, lastguru. Чтобы сформулировать мой исходный вопрос по-другому, когда я устанавливаю для двух клиентов одинаковую пропускную способность для скачивания, равную общей доступной загрузочной пропускной способности, laptop2 всегда доминирует, т.е. доступная загрузочная пропускная способность составляет 1024kbs, оба клиента установлены с максимальным лимитом скачивания 1024kbs, когда оба скачивают, laptop1 получает примерно 250kbs, а laptop2 — примерно 750kbs. Я хочу, чтобы оба клиента получили равную долю доступной пропускной способности, т.е. примерно 512kbs каждый, когда они оба скачивают. Это кажется поведением очереди SFQ, но какие очереди мне нужно настроить на Mikrotik? Спасибо, Guy.
     
     
     
    Dave
    Guest
    #8
    0
    27.07.2004 11:40:00
    Попробуй настроить для обоих (правило 0 и 1): установи 0,1 limit-at=0/512000 max-limit=0/1024000 interface=local_interface queue=sfq отключи 2,3,4. Это ограничит только скорость загрузки. Должно работать так: когда оба скачивают, они получают 512 кбит/с, но если один без дела, другой может разогнаться до 1024 кбит/с.
     
     
     
    GJS
    Guest
    #9
    0
    27.07.2004 15:16:00
    Спасибо за ответ, Дэйв. Попробую это сегодня, но уверен, что сработает. Однако, это подходит для всего двух клиентов (пока что у меня именно такая тестовая настройка), но что, если у меня будет, скажем, 50 клиентов, и их число постоянно меняется? Каждый раз, когда я добавляю или удаляю клиента, приходится сбрасывать значение limit-at до bandwidth/number-clients для всех клиентов. Конечно, это становится гораздо сложнее, если скорость каждого клиента отличается, например, 10 клиентов на 512 кбит/с, 20 клиентов на 768 кбит/с, 20 клиентов на 1024 кбит/с. Это единственный способ? Спасибо, Гай.
     
     
     
    GJS
    Guest
    #10
    0
    27.07.2004 23:11:00
    Окей, попробовал твой совет, Дэйв, но результат не изменился: [admin@pad001X] queue simple> print Flags: X - disabled, I - invalid, D - dynamic 0 name=“LAPTOP 1” target-address=192.168.0.102/32 dst-address=0.0.0.0/0 interface=all queue=sfq priority=8 limit-at=128000/512000 max-limit=128000/1024000 1 name=“LAPTOP 2” target-address=192.168.0.103/32 dst-address=0.0.0.0/0 interface=all queue=sfq priority=8 limit-at=128000/512000 max-limit=128000/1024000 2 X name=“All” target-address=192.168.0.0/24 dst-address=0.0.0.0/0 interface=all queue=sfq priority=8 limit-at=0/0 max-limit=100/100 3 X name=“Public Traffic Mon” target-address=0.0.0.0/0 dst-address=0.0.0.0/0 interface=all queue=sfq priority=8 limit-at=0/0 max-limit=0/0 [admin@pad001X] queue simple> laptop2 показывает около 750, а laptop1 — около 250. Что здесь может происходить? Спасибо, Гай.
     
     
     
    Eugene
    Guest
    #11
    0
    29.07.2004 05:53:00
    В этом случае лучше использовать дерево очередей, например: [admin@ID] ip firewall mangle> print
    Флаги: X - отключено, I - недействительно, D - динамическое
    0   src-address=1.1.1.2/32 action=accept mark-flow=test2

    1   src-address=1.1.1.3/32 action=accept mark-flow=test3

    [admin@ID] ip firewall mangle> /queue tree print
    Флаги: X - отключено, I - недействительно, D - динамическое
    0    name="queue1" parent=global-out flow=test1 limit-at=0 queue=default
         priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0
         burst-time=0

    1    name="queue2" parent=queue1 flow=test2 limit-at=512000 queue=default
         priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0
         burst-time=0

    2    name="queue3" parent=queue1 flow=test3 limit-at=512000 queue=default
         priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0
         burst-time=0
    [admin@ID] ip firewall mangle>
     
     
     
    GJS
    Guest
    #12
    0
    29.07.2004 20:09:00
    Юджин, я попробовал твое предложение, вот как это выглядит:
    [admin@pad001X] ip firewall mangle> print
    Flags: X - disabled, I - invalid, D - dynamic
    0   src-mac-address=00:04:25:9E:00:81 action=passthrough mark-connection=CN02_conn
    1   connection=CN02_conn action=accept mark-flow=CN02
    2   src-mac-address=00:02:2D:A4:E0:21 action=passthrough mark-connection=CN01_conn
    3   connection=CN01_conn action=accept mark-flow=CN01
    [admin@pad001X] ip firewall mangle>
    [admin@pad001X] queue tree> print
    Flags: X - disabled, I - invalid, D - dynamic
    0    name=“CN02 Upload” parent=Master Upload flow=CN02 limit-at=0 queue=default priority=8 max-limit=128000 burst-limit=0 burst-threshold=0 burst-time=0
    1    name=“CN02 Download” parent=Master Download flow=CN02 limit-at=0 queue=default priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0 burst-time=0
    2    name=“Master Upload” parent=public flow=“” limit-at=0 queue=default priority=8 max-limit=128000 burst-limit=0 burst-threshold=0 burst-time=0
    3    name=“Master Download” parent=private flow=“” limit-at=0 queue=default priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0 burst-time=0
    4    name=“CN01 Download” parent=Master Download flow=CN01 limit-at=0 queue=default priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0 burst-time=0
    5    name=“CN01 Upload” parent=Master Upload flow=CN01 limit-at=0 queue=default priority=8 max-limit=128000 burst-limit=0 burst-threshold=0 burst-time=0
    [admin@pad001X] queue tree>
    Никаких изменений нет, CN02 получает около 128 кбит/с, CN01 – около 51 кбит/с.
    Какие есть идеи, почему это не работает?
    Спасибо, Гай
     
     
     
    lastguru
    Guest
    #13
    0
    29.07.2004 23:17:00
    Как ты измеряешь реальную скорость? И сколько длится тест? Чем отличаются загрузки с laptop1 и laptop2? У этой настройки есть неопределенное поведение в краткосрочной перспективе. В долгосрочной перспективе с случайным трафиком сессии пользователей сойдутся, но никаких гарантий этому нет. Особенно это актуально, если ты используешь длинные буферы (попробуй уменьшить буфер очереди) или разные очереди на разных клиентах (pfifo может быть более агрессивным, чем red). Вот почему был сделан PCQ — попробуй его на всех твоих клиентах сразу (не один PCQ для каждого клиента, а один для всех).
     
     
     
    GJS
    Guest
    #14
    0
    29.07.2004 23:38:00
    Я использую http://www.giganews.com/comps/test_connect.mhtml и http://www.adslguide.org/tools/speedtest.asp для проверки загрузки и выгрузки, а потом смотрю статистику очередей в Winbox, чтобы увидеть, какая скорость передачи действительно происходит. Обычно я скачиваю одно и то же, но даже если скачиваю с двух разных сайтов, результаты очень похожи. Получается, мне стоит настроить родительскую очередь PCQ на максимальную доступную скорость выгрузки, а дочерние очереди стандартного типа, чтобы ограничить скорость для каждого конкретного клиента? Я пробовал это, и ничего не меняется. Я думаю, что делаю что-то принципиально не так. Особенно меня сбивает с толку раздел в руководстве, где говорится, что sfq вообще не может ограничивать скорость передачи данных, но я как раз это и делаю, так что очевидно, я что-то не понимаю. Не могли бы вы привести пример использования PCQ для выравнивания скорости для каждого клиента? Спасибо за всю вашу помощь. Guy
     
     
     
    Dave
    Guest
    #15
    0
    30.07.2004 07:34:00
    /queue simple add target-address=192.168.0.102/31 interface=local limit-at=0/512000 max-limit=0/1024000 :lol:
     
     
     
    Dave
    Guest
    #16
    0
    30.07.2004 07:57:00
    Ну что, SFQ, xFIFO, RED вообще трафик не ограничивает, а HTB — да!
     
     
     
    Dave
    Guest
    #17
    0
    30.07.2004 08:00:00
    PCQ пример: изменяем пакеты, предназначенные для вашей сети: /ip firewall mangle add dst-address=Your_Network mark-flow=download изменяем пакеты, выходящие из вашей сети: /ip firewall mangle add src-address=Your_Network mark-flow=upload создаём 2 новых типа очередей PCQ: /queue type add name=“download-queue” kind=pcq pcq-classifier=dst-address pcq-rate=Download_rate_for_each_client /queue type add name=“upload-queue” kind=pcq pcq-classifier=src-address pcq-rate=Upload_rate_for_each_client добавляем очереди: /queue tree add parent=Local_Interface queue=download-queue flow=download /queue tree add parent=Public_Interface queue=upload-queue flow=upload но установить MIR здесь невозможно, pcq-rate — это максимальная доступная скорость, и только это!
     
     
     
    lastguru
    Guest
    #18
    0
    30.07.2004 08:38:00
    Для данной задачи лучше изменить этот пример так:
    3. не включайте pcq-rade в обе записи (т.е. pcq-rate будет “0”).
    4. используйте max-limit здесь со значениями максимального общего объема скачивания и загрузки.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры