Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • 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
    Как ограничить скорость загрузки при полном использовании скачивания?

    Как ограничить скорость загрузки при полном использовании скачивания?

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Как ограничить скорость загрузки при полном использовании скачивания?, RouterOS
     
    zaqik
    Guest
    #1
    0
    13.04.2020 14:40:00
    Привет! У меня подключение 50М на загрузку и отдачу, но я никогда не могу одновременно достичь максимума по обеим скоростям. Возможно, дело в полудуплексе, а может быть, что-то со стороны провайдера. В любом случае, я настроил Queue Tree примерно так:

    /ip firewall mangle  
    add chain=prerouting action=mark-packet new-packet-mark=important_traffic protocol=udp port=37,53,67,68  
    add chain=prerouting action=mark-packet new-packet-mark=important_traffic protocol=tcp port=21,25,53,80,110,443,465,995,3389

    /queue tree  
    add name=QoS parent=global priority=1 max-limit=50M  
    add name=important_traffic parent=QoS priority=1 queue=ethernet-default packet-mark=important_traffic comment="Web traffic"  
    add name=other_traffic parent=QoS priority=5 queue=ethernet-default packet-mark=no-mark comment="other traffic"

    Цель и задача — чтобы при начале загрузки с браузера торренты автоматически замедлялись. Это работает, но когда загрузка торрентов на максимуме (50М), я не могу одновременно получить 50М на скачивание в браузере, потому что, как мне кажется, скрипт работает только в одном направлении. Поэтому у меня вопрос: как заставить RB-941 динамически ограничивать общий объем отдачи до 20М в тот момент, когда суммарная скорость загрузки достигает 40М?
     
     
     
    zaqik
    Guest
    #2
    0
    15.05.2020 16:14:00
    Извините, но я до сих пор не могу понять, как настроить так, чтобы загрузка влияла на отдачу. Я могу замедлить загрузку торрента, начиная загрузку в браузере с моими настройками, но не могу замедлить отдачу торрента, когда запускаю загрузку в браузере. Так что я хочу, чтобы приоритеты загрузки влияли на скорость отдачи. Это возможно? Можете помочь?
     
     
     
    sindy
    Guest
    #3
    0
    15.05.2020 20:47:00
    Я бы сказал, что ваш единственный шанс — использовать глобальную очередь как родительскую, как вы и делаете, создать дочернюю очередь от global с установленными limit и max-limit, равными сумме скоростей загрузки и выгрузки, предоставленных вашим провайдером. Внутри неё сделать две дочерние очереди — одну для загрузки, другую для выгрузки, при этом очередь загрузки должна иметь более высокий приоритет (меньшее число), чем очередь выгрузки. То есть примерно так:

    /ip firewall address-list add list=rfc1918 address=10.0.0.0/8  
    add list=rfc1918 address=172.16.0.0/12  
    add list=rfc1918 address=192.168.0.0/16  

    /queue tree add limit-at=50M max-limit=50M name=common parent=global queue=default  
    add limit-at=49M max-limit=50M name=download packet-mark=download parent=common priority=1 queue=default  
    add limit-at=1M max-limit=50M name=upload packet-mark=upload parent=common priority=2 queue=default  

    /ip firewall mangle  
    add chain=prerouting in-interface=your-wan-interface-name action=mark-packet new-packet-mark=download  
    add chain=prerouting dst-address-list=!rfc1918 action=mark-packet new-packet-mark=upload  

    Приоритеты можно ставить только у самых вложенных дочерних очередей, так что доступные 8 уровней приоритета нужно поделить между классами загрузки и выгрузки для индивидуального управления. Возможно, вам потребуется большее ограничение на очередь выгрузки (слишком сильное ограничение ACK-пакетов для загрузки может повлиять на скорость скачивания, поэтому точно стоит ставить приоритет для ACK-пакетов выгрузки выше, чем для остальных выгрузочных пакетов).
     
     
     
    zaqik
    Guest
    #4
    0
    16.05.2020 08:49:00
    Создайте очередь > дочернюю > от global с > и limit, и max-limit. Большое спасибо! Похоже, с такой настройкой всё работает, даже скрипт из первого сообщения (после того, как я добавил «Limit At» для родителя и important_traffic). По крайней мере, запуск «важной» загрузки полностью влияет на «неважную» отдачу на данном этапе. Только > самые внутренние > дочерние очереди можно приоритизировать друг относительно друга.

    Значит ли это, что если я создам двух родителей (обоих с родителем «global») с именами «Download» и «Upload», а затем добавлю к ним дочерние очереди вроде important__download_ и non_important__download_ / important_upload и non_important_upload, то я не смогу приоритизировать important__download_ по сравнению с non_important_upload? Если я не совсем ясно выразился, вот что я имел в виду в формате скрипта:

    add max-limit=50M name=Upload parent=global queue=pcq-upload-default  
    add max-limit=50M name=Download parent=global queue=pcq-download-default  
    add name=important_download packet-mark=important_dl parent=Download priority=1 queue=pcq-download-default  
    add name=non_important_download packet-mark=not_important_download parent=Download priority=5 queue=pcq-download-default  
    add name=important_upload packet-mark=important_ul parent=Upload priority=2 queue=pcq-upload-default  
    add name=non_important_upload packet-mark=not_important_upload parent=Upload priority=6 queue=pcq-upload-default
     
     
     
    sindy
    Guest
    #5
    0
    16.05.2020 10:47:00
    Ну, во‑первых, если ты создашь Download и Upload как прямые потомки global, без общего родительского очереди с лимитом между ними и global, ты потеряешь возможность ограничивать upload через download, потому что они не будут делить общий лимит этой родительской очереди. Моя изначальная иллюстрация в итоге как-то работала даже без указания приоритета, потому что сумма лимитов upload и download равна лимиту их общего родителя, и всего две дочерние очереди делят эту пропускную способность, так что приоритет абсолютный — когда одна очередь (upload) уже достигла своего предела, пакет из другой очереди предпочтительнее, если её скорость всё ещё ниже лимита, и при этом обе очереди ждут отправки пакета. Но это был (слишком) упрощённый пример; если дочерних очередей у одного родителя больше двух, скорость нескольких из них может не достигать своих лимитов, и тогда приоритет уже решает. И среди upload-пакетов нужно отдавать предпочтение тем, что подтверждают приём download-пакетов, иначе ты замедлишь загрузку и, что хуже, вызовешь повторную передачу download-пакетов. Значит, нужно больше двух приоритетов, и приоритеты работают только для очередей, которые не являются родительскими, то есть у которых нет дочерних очередей. С другой стороны, в такой необычной схеме можно назначить upload-пакетам только с ACK, которые подтверждают приём download-пакетов, тот же пакет-маркер, что и у настоящих download-пакетов, чтобы они использовали квоту загрузки общего родителя. В таком случае приоритеты не нужны для выбора между “загрузкой и связанной с ней” и “отдачей и связанной с ней” трафиком — и можно создавать дочерние очереди в обеих. В инструкции сказано, что приоритет решает между дочерними очередями; там правда явно не уточнено “одного и того же родителя”. Так что у тебя есть простор для собственных экспериментов.
     
     
     
    Zacharias
    Guest
    #6
    0
    16.05.2020 10:50:00
    @sindy разве максимальный лимит Родителя не должен быть суммой максимальных лимитов Детей? Если Upload — 50 Мбит, а Download тоже 50 Мбит, то максимальный лимит Родителя должен равняться их сумме… Ещё один момент, который мне сложно понять: если не использовать Global в качестве Родителя, то для Upload Родителем должен быть интерфейс Lan или Wan? А как быть с Download? Как правильно выбрать?
     
     
     
    zaqik
    Guest
    #7
    0
    16.05.2020 10:54:00
    Кажется, я наконец-то справился!  
    /ip firewall mangle add action=mark-packet chain=prerouting new-packet-mark=important_traffic protocol=udp port=37,53,67,68  
    add action=mark-packet chain=prerouting new-packet-mark=important_traffic protocol=tcp port=21,25,53,80,110,443,465,995,3389,8080  
    add action=mark-packet chain=forward in-interface=all-ppp new-packet-mark=important_dl packet-mark=important_traffic  
    add action=mark-packet chain=forward in-interface=!all-ppp new-packet-mark=important_ul packet-mark=important_traffic  
    add action=mark-packet chain=forward in-interface=all-ppp new-packet-mark=torrent_dl packet-mark=no-mark  
    add action=mark-packet chain=forward in-interface=!all-ppp new-packet-mark=torrent_ul packet-mark=no-mark  

    /queue tree  
    add limit-at=50M max-limit=50M name=QoS parent=global queue=default  
    add limit-at=50M max-limit=50M name=1-web-down packet-mark=important_dl parent=QoS priority=1 queue=default  
    add limit-at=50M max-limit=50M name=2-web-up packet-mark=important_ul parent=QoS priority=2 queue=default  
    add limit-at=50M max-limit=50M name=4-etc-down packet-mark=torrent_dl parent=QoS priority=4 queue=default  
    add name=8-etc-up packet-mark=torrent_ul parent=QoS queue=default  

    Не уверен, влияет ли в этом случае использование chain=forward или prerouting, но для начала я отделяю нужный трафик от прочего по портам. Потом разделяю загрузку и отдачу (направление пакетов в /, не в ppp). Создаю родительскую очередь с установленными limit-at и max-limit, как советовали, чтобы задать лимиты всем дочерним очередям, кроме самой низкоприоритетной. В итоге у меня получается 4 дочерние очереди: для важной загрузки и отдачи (выбранные порты, приоритеты 1 и 2), и так далее для всего остального трафика (все немаркированные пакеты с приоритетом 4 для загрузки и 8 для отдачи).  

    Для домашнего использования это, честно говоря, не так уж и нужно — можно просто выставить лимиты в торрент-клиенте. Также не до конца уверен по цифрам для полного дуплекса.  

    Вот как это работает на практике, судя по моим наблюдениям: при загрузке торрентов на 50M (максимум моей полудуплексной полосы), как только я запускаю скачивание торрентов, без очередей отдача начинает перекрывать загрузку. Сейчас же загрузка почти достигает максималки, а отдача сильно снижается. Потом я начинаю скачивать через браузер — он идет на максимальной скорости, а торрент отстает.
     
     
     
    sindy
    Guest
    #8
    0
    16.05.2020 12:34:00
    Нет. Названия немного сбивают с толку. limit — это на самом деле «гарантированная скорость», которая выделяется очереди даже при наличии конкурирующего трафика, а max-limit — абсолютный максимум, который очередь может получить, даже если конкурирующего трафика нет и свободная пропускная способность еще доступна. Другими словами, сначала должны быть удовлетворены гарантированные скорости всех дочерних очередей, а если остается еще трафик, его можно распределить между ними, но даже в этом случае ни одна из очередей не получит больше, чем её max-limit. У родительской очереди limit и max-limit выставлены одинаково, потому что max-limit — обязательный параметр; иначе нельзя объяснить ядру, какая пропускная способность реально доступна на восходящей линии. При этом любая из дочерних очередей может полностью использовать эту пропускную способность, если в других очередях трафика нет, поэтому у всех одинаковый max-limit, как и у родительской очереди. Если бы max-limit родительской очереди был суммой max-limit дочерних, дочерние очереди не смогли бы использовать свободную пропускную способность сверх своих max-limit. Главное здесь в том, что канал — это полудуплексный. WiFi-связь может либо передавать, либо принимать, но не одновременно (если только не использовать две пары радиомодулей, одну зарезервировать под один частотный канал для передачи в одном направлении, а другую — под другой несмешивающийся канал для другого направления). Если физическая скорость канала значительно выше, чем скорость, ограниченная механизмом управления трафиком, это не имеет значения; но если физическая пропускная способность используется без ограничений, проявляется полудуплексный режим работы. Вот почему именно глобальный интерфейс используется как родитель — если бы мы взяли какой-то конкретный интерфейс, ограничения скорости, заданные параметрами очереди, применялись бы только к трафику, проходящему через этот интерфейс, и не было бы возможности, чтобы очереди на загрузку и выгрузку имели общего родителя.
     
     
     
    sindy
    Guest
    #9
    0
    16.05.2020 12:41:00
    Это не так — правила в цепочке prerouting обрабатывают как трафик от внешнего хоста к собственным адресам роутера, так и трафик, который роутер должен переслать от одного внешнего хоста к другому. Цепочки input и forward занимаются именно первым и вторым случаями соответственно.
     
     
     
    Zacharias
    Guest
    #10
    0
    17.05.2020 17:27:00
    Но любой из дочерних очередей может полностью использовать доступную пропускную способность, если в других дочерних очередях нет трафика. Вот что я имею в виду: если дочерняя очередь Download занимает все 50 Мбит, что тогда будет с Upload? Ведь у родительской очереди ограничение в 50 Мбит. Дочерняя очередь Upload получит гарантированную скорость в 1 Мбит, но не больше, потому что у родителя уже достигнут лимит… Однако такого не случилось бы, если бы у родительской очереди был максимальный лимит в 100 Мбит, ведь наша линия симметричная 50/50. К тому же я так и не понял, как выбрать интерфейс для загрузки или выгрузки в роли родителя…
     
     
     
    sindy
    Guest
    #11
    0
    17.05.2020 17:56:00
    В этом весь смысл — линия не симметрична 50/50. Как пишет автор, на этой конкретной линии 50 Мбит/с — это сумма загрузки и отдачи, потому что линия полудуплексная. И цель в том, чтобы торрент-загрузка имела низкий приоритет, уступая дорогу обычному «человеческому» веб-серфингу, когда это необходимо, поэтому трафик на скачивание должен быть в приоритете. И, как я уже не раз говорил выше, важно различать пакеты в направлении отдачи, которые подтверждают получение пакетов с загрузкой (инициированных человеком), и пакеты отдачи, которые несут полезную нагрузку (отдача торрента). Мы не выбирали интерфейс, а глобальную — это не интерфейс, а виртуальный объект, не связанный с каким-либо интерфейсом. Так что можно создавать сколько угодно дочерних очередей, настраивать для каждой лимит и максимальный лимит, как угодно. Это не меняет того факта, что ограничивать скачивание можно только замедляя доставку трафика в сторону LAN, поэтому если приложение-отправитель не получает обратной связи, ограничение не работает. Но если доля такого трафика не слишком велика, это особо не влияет на итоговый результат.
     
     
     
    Zacharias
    Guest
    #12
    0
    18.05.2020 07:23:00
    В этом вся суть — линия не симметрична 50/50. Ладно, моя ошибка… Мы выбрали не интерфейс, а глобально — а это не интерфейс. Да, я знаю, просто спрашиваю в общем: как мы выбираем, какой интерфейс будет для загрузки, а какой — для скачивания?
     
     
     
    sindy
    Guest
    #13
    0
    18.05.2020 11:33:00
    Ну, «загрузка» (download) и «отправка» (upload) — это не роли интерфейсов, а направления потока трафика через uplink, если смотреть с точки зрения клиентов LAN. Так что, если у вас несколько uplink’ов и несколько локальных LAN, у вас получается несколько интерфейсов, у которых исходящий трафик считается «отправкой» (WAN интерфейсы), и несколько интерфейсов, у которых исходящий трафик считается «загрузкой» (LAN интерфейсы). Очереди в RouterOS ограничивают только исходящий трафик, поэтому ограничение направления «загрузки» сводится к замедлению доставки пакетов, полученных через WAN, при отправке их клиентам через LAN интерфейсы. Это работает только если отправители получают обратную связь от получателей. Если отправители не сбрасывают скоростной режим и продолжают слать с той же скоростью, то просто сбрасывать уже полученные пакеты вместо доставки их LAN-клиентам не влияет на занимаемую пропускную способность в направлении загрузки. Хотя часто полезно использовать интерфейс как родителя очереди, потому что «корневой родитель» — это один из ключей для выбора очереди (второй — это packet-mark), если нужно ограничить направление загрузки целиком и у вас несколько LAN интерфейсов, придется использовать глобальный родитель и назначать разные значения packet-mark для пакетов в направлении отправки и загрузки.
     
     
     
    Zacharias
    Guest
    #14
    0
    18.05.2020 18:25:00
    Очереди в RouterOS ограничивают только исходящий трафик. Я видел схему потока пакетов сотню раз… но пропустил это… почему, почему… Спасибо, @sindy. Значит, лучше использовать Global Parent, то есть все интерфейсы, и соответствующим образом маркировать исходящие пакеты для загрузки и отправки, так?
     
     
     
    sindy
    Guest
    #15
    0
    18.05.2020 19:31:00
    Лучше… всё всегда зависит от конкретной настройки. Использовать один и тот же packet-mark для обоих направлений и позволять выбирать нужную очередь среди тех, что соответствуют этому packet-mark по родительскому интерфейсу root, проще настроить, если у вас есть одна LAN и один WAN. К тому же, судя по всему, можно использовать простые конфигурации shaping вместе с fasttracking, если использовать интерфейсы в качестве root parent (потому что в руководстве по fasttracking явно сказано, что fasttracked пакеты обходят только очереди с root parent global).
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры