Пятница, 19.04.2024, 12:43
Приветствую Вас Гость | RSS
Мой сайт
Главная
Регистрация
Вход
Форма входа

Меню сайта

Категории раздела
Об ОС Windows [137]
В категории размещаются статьи, касающщиеся операционных систем от Microsoft.
Об ОС *Nix [198]
В данной категории собраны статьи об ОС семейства Unix/Linux/FreeBSD/...
Справочные материалы [351]
Справка по всему разделу.
Виртуализация и Облака [46]
Networks & Routing [86]
DataBases [22]

Наш опрос
Оцените мой сайт
Всего ответов: 209

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Системное администрирование » Справочные материалы

Динамический шейпинг для MikroTik

Динамический шейпинг для MikroTik

Роутеры MikroTik идеальны для небольших сетей. Они стоят недорого (относительно Cisco), настраивать их просто (относительно FreeBSD), кроме того, они ещё и обладают отличным функционалом (относительно обычных SOHO роутеров).

Итак, наша сеть доросла до состояния в котором D-link не справляется, но к установке FreeBSD мы не готовы морально.

Идем в магазин, покупаем что-то вроде RB450G, RB750 или подобную железку. Включаем ее в сеть и диву даёмся. Для человека привыкшего к суровой простоте DIR'ов обилие кнопок Win-Box`а вызывает мысль «А что тут можно нажать, чтоб ничего не сломать?».

Ну да ладно, к счастью, данные девайсы идут преднастроенными на работу в режиме роутера. Если их подключить в сеть и прописать адрес, то он даже заработает.

Однако есть одно но: работать то он работает, но по выполняемым функциям недалеко ушел от DIR-a.

Что я хочу от роутера? – Счастья всем, поровну, и пусть никто не уйдет обиженным (с).

Я хочу, чтобы каждый пользователь сети получал скорость полной ширины канала. И чтобы при этом, если несколько человек одновременно качают фильмы, скорость поделилась между ними поровну. И чтобы при этом третий мог спокойно искать информацию в сети. И чтобы четвёртый мог играть в линейку и у него были нормальные пинги. В общем, такой себе победивший коммунизм в маленькой локалке. Детальное изучение возможностей показывает, что данную задачу можно решить при помощи PCQ очередей.

 

Принцип деления скорости

Рис.1. Принцип деления скорости.

 

Задача простая: нужно промаркировать пакеты и загнать их в PCQ очередь. Для начала разберёмся, что маркировать.

Итак, включаем получение адресов через DHCP, подключаем патч в порт 2-5 нового роутера. Запускаем WinBox. Идём в IP -> DHCP Server -> Leases.

 

WinBox

Рис.2. WinBox.

 

Вверху списка будет наша единственная запись с выданным адресом. Открываем её, нажимаем  «Make static» и закрываем. Открываем еще раз. У нас появилась закладка General на которой можно поменять IP-адрес, можно назначить пользователю Adress List. Вот Adress List сейчас нам больше всего и нужен, здесь запишем, как мы хотим назвать эту группу пользователей.

 

Назначаем пользователю Adress List

Рис.3. Назначаем пользователю Adress List.

 

После этого повторяем действия для всех новых компьютеров. Получил адрес – сделал его статическим – прописал Address List. После первого раза можно не писать, а воспользоваться выпадающим меню. Можно конечно не использовать DHCP, а указывать диапазоны вручную, но это не наш метод.

Теперь, когда у нас есть адреса «от кого маркировать», можно приступить к маркировке.

Маркировка – это небольшое текстовое поле, которое добавляется к пакету по нужному нам правилу и позволяет поймать этот пакет в Query Tree.

Итак, в IP Firewall Mangle.

 

IP Firewall Mangle

Рис.4. IP Firewall Mangle.

 

Создаём два правила.

Первое маркирует все входящие пакеты.

 

Динамический шейпинг

Рис.5. Маркируем входящие пакеты.

 

Заполняем: Chain – forward, Dist address list – наш список пользователей, выбираем по стрелочке вниз. Action - mark packet, New packet mark – наше имя пакета.

Dist address list – это адрес назначения. Т.е. это те пакеты, которые уходят из роутера и в которых зазначен адрес получателя в нашем Adress List.

 

Динамический шейпинг

Рис.6. Действия для исходящего трафика.

 

Для исходящего трафика все точно так же, только наоборот. Dist Address у нас пустой, а Src address – наш список.

Пакеты промаркировали, теперь их нужно запихнуть в очередь.

Для начала создадим два PCQ.

 

Создаём два PCQ

Рис.7. Создаём два PCQ.

 

Из того, что здесь важно.  Rate – ограничение скорости на каждого пользователя. Можно использовать буквы k (килобиты) и М (мегабиты). У исходящих пакетов (для нас исходящие, а для пользователя входящие – download) классификатор dist address. Т.е. пакеты уходят, а мы делим между ними скорость, классифицируя их по адресу пользователя. Другими словами, доступная скорость будет делится между всеми активными в данным момент адресами.

У входящих пакетов (а для пользователя это upload) мы ставим классификатор SRC. Т.е. источник.

Теперь создадим само дерево. Дерево можно делать по разному, в зависимости от требуемой задачи.

Для начала создадим один корневой элемент. Назовем его Global, parent выберем global-out.

Добавим еще два элемента. Один – Download, второй – Upload. Parent у них будет общий – наш Global.

Такая схема удобна, если входящий канал у нас полудуплексный, например, wi-fi канал. В Global нужно выставить ограничение суммарной скорости канала. Например у нас канал 25 мбит. Мы хотим разрешить скачивать с максимальной скоростью, а закачивать не более 3м.

Мы в ветку Global ставим max limit 50m, а в ветку Download не ставим ограничения (то есть, ставим 0), в ветку Upload ставим 10m.

 

Динамический шейпинг

Рис.8. Создаём само дерево.

 

Вот собственно и все. С этого момента скорость будет динамически распределяться между всеми пользователями. Между всеми, кому мы назначили Adress list.

Дальше, просто копированием элементов можно создать несколько групп и в каждой установить свои ограничения скорости.

Контроль над ошибками. Мало где пишут, но правильность работы PCQ очередей нужно проверить.

 

Контроль над ошибками

Рис.9. Контроль над ошибками.

 

Похоже, что сейчас 6 человек в сети. Похоже на правду :)

В три клика мышкой мы включаем отображение колонки PCQ queries. Число в этой колонке должно показывать реальное число клиентов. Если это число явно большое, то скорее всего мы напутали с классификаторами.

 

Рис.10. Пример неправильно выбранного классификатора.

 

Как пример неправильно выбранного классификатора. У меня нет 150 компьютеров, а в строчке k38 150 pcq очередей.

Ключевым правилом для работы шейпера является правильная установка ограничения в global.

MikroTik выделят скорость очередям до тех пор, пока не упрется в ограничение. Как только ограничение достигнуто (иконки на скринах сейчас зелёные, при ограничении они становятся красными), MikroTik начинает делить скорость.

Рассмотрим такой пример: у нас в действительности канал прокачивает 50 мбит, а мы выставим лимит в 60 мбит. Тогда получится так, что первый пользователь запустил торрент и занял все 50 мбит. MikroTik ему скорость не ограничивает, он качает и доволен. Второй пользователь решил поиграть. Запустил себе BF3. С точки зрения MikroTikа канал еще не забит, он ничего не предпринимает. Но внешний канал забит и второй пользователь увидит пинги под 1000 и получить удовольствия от игры не сможет.

Эта же ситуация, только мы выставим лимит в 40 Мбит. Первый клиент поставил фильмы на закачку. Торрент качает. Скорость поднимается до 40 Мбит, микротик кричит: «Ага, попался!» и задерживает пакеты сверх нормы.

Второй пользователь запускает BF3. MikroTik видит, что их двое, что один качает много, а второй – мало. Все пакеты второго пользователя идут без очереди, а первый отдыхает.

И получается: первый качает 39 мбит, а второй спокойно играет с нормальными пингами.

Поэтому ключевым моментом является установка лимита, который может гарантированно выдать внешний канал.

 

Артём Смирнов специально для ASP24.



Хотите поделиться своими фотографиями или статьями? Отправляйте их на hertyweb@asp24.com.ua. Мы обязательно разместим их у нас на сайте!

Комментарии

*****

Оценка: 5.0    Голосов: 3   Комментарии: 6
Автор: Артем
Добавлено: 07.07.2012, 11:32
Вроде как Limit и Total Limit относятся к количеству пакетов которые могут быть поставлены в очередь. Эти числа нужно рассчитывать исходя из количества оперативной памяти на роутере. Если у вас 20 пользователей, * 500 кб, это до 10 мб оперативки.
Т. е. При превышении скорости пакеты пользователя который достиг лимита становятся в очередь. Если очередь переполнена пакеты дропаются.
Пакеты пользователя, который не привысил лимит идут без очереди.

Сам по себе PCQ обеспечивает равномерное распределение скорости между клиентами не зависимо от количества сессий, пакетов, активности.

Если у вас при полной загрузке канала растут пигни, экспериментируйте с Max Limit.
У того, у кого запущена закачка пинги будут расти до 100 и выше мс.
У того, к кого не запуена закачка пинги не должны заметно вырости, +5..10 мс возможно, не больше.
Автор: Александр
Добавлено: 06.07.2012, 18:34

*****

1. Для фуллдуплеса канала 51 Мбит указал в Queue Tree Max Limit=50M для вх. и исх. трафика (у обоих Parent=global-out);
в Queue Types Rate=50M, Limit=500, Total Limit=100000 (для вх.) и 20000 (для исх.).
Пользователей (одновременно работающих) порядка 20. Эти настройки корректны?
Правильно ли я понял: при канале 50Мбит (6.25 Мбайт/сек) и размере буфера для каждого пользователя (Limit) 500 Кб задержка пакетов для одного пользователя равна 0.5/6.25 = 0.08 сек. Если пользователя два и они одновременно чтото качают по максимуму: 0.5/3.125 = 0.16 cек. и т.д. - чем больше пользователей по максимуму грузят канал - тем у них выше пинги будут?
Автор: Артем
Добавлено: 02.07.2012, 10:49
Потребление трафика в текущий момент можно посмотреть через
tool torch
Суммарный объем трафика по умолчанию не учитывается ни где.
Можно создать правило в simple queue.
Автор: Смирнов Артем
Добавлено: 02.07.2012, 10:46
Лимит должен выставятся на том уровне, на котором пинги еще не начали увеличиваться.
Если вашего провайдера при загрузке 50 мбит пинги еще не растут, то можно ставить и 50.
Автор: Александр
Добавлено: 02.07.2012, 07:58

*****

Почему при ширине канала в 50мб, предлагаете сделать лимит в 40? почему не эти же 50? Пноимаю что в этом должен быть смысл, но пока не очень понимаю какой, кроме того чтобы в запасе были еще 10 метров на какие то цели.
Автор: гость
Добавлено: 30.06.2012, 09:45

*****

А как посмотреть конкретного абонента и потребление им трафика?


Источник: http://asp24.com.ua/obzor/mikrotik-statji/queues/dinamicheskij-sheiping-v-mikrotik/
Категория: Справочные материалы | Добавил: admin (28.07.2012)
Просмотров: 3814 | Комментарии: 1 | Теги: mikrotik, Шейпинг | Рейтинг: 0.0/0
Всего комментариев: 1
1 angrywind angrywind  
Даже не знаю, что тут и сказать то можно http://angrywindows.ru/35-autocad-dlya-windows-8.html - скачать AutoCAD для Windows 8

Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024