- QoS (quality of service) - это искусство управления ресурсами полосы пропускания, а не просто "слепое" ограничение полосы пропускания определенными узлами.
- QoS может определять приоритетность трафика на основе метрик. Полезно для
- Критически важных приложений
- Чувствительному трафику, такой как голосовые и видеопотоки
- Простые очереди-это... простой ... способ ограничить пропускную способность до
- Загрузки клиента (исходящей)
- Закачки клиента (входящей)
- Совокупно для клиента (загрузка и закачка)
-
Цель, к которой применяется простая очередь
-
Цель должна быть определена. Это может быть
- IP-адрес
- Подсеть
- Взаимодействие
-
Порядок очередей очень важен. Каждый пакет должен пройти через каждую простую очередь, пока не произойдет совпадение
- IP-адрес, на который направлен целевой трафик, или
- Интерфейс, через который будет проходить целевой трафик;
- Не обязательно, как поле "цель"
- Может использоваться для ограничения очереди
- Параметр "max-limit" - это максимальная скорость передачи данных, которую может достичь цель
- Рассматривается как MIR (maximum information rate - максимальная скорость передачи)
- лучший вариант развития событий
- Параметр "limit-at" является гарантированной минимальной скоростью передачи данных для цели
- Рассматривается как CIR (committed information rate - совершенная скорость передачи информации)
- Худший вариант развития событий
-
Bursting позволяет пользователям на короткое время получить большую пропускную способность, чем позволяет параметр "max-limit".
-
Полезно для увеличения трафика, который не использует пропускную способность слишком часто. Например, HTTP. Получите быструю загрузку страницы, затем прочитайте ее за несколько секунд.
-
Определения
- Burst-limit : максимальная скорость передачи данных, в то время как burst разрешен.
- Burst-time : время в секундах, в течение которого производится выборка. Это НЕ период, в течение которого трафик будет burst.
- Burst-threshold : значение, которое определит, будет ли пользователю разрешен burst
- Average-rate : среднее значение передачи данных, рассчитанное в 1/16 части "burst-time".
- Actual-rate : Текущая (реальная) скорость передачи данных.
-
Как это работает.
- Bursting разрешен, пока average-rate остается ниже burst-threshold.
- Bursting будет ограничен по скорости, указанной burst-limit.
- Average-rate вычисляется путем усреднения 16 выборок (actual-rate) в течение burst-time секунд.
- Если burst-time составляет 16 секунд, то образец берется каждую секунду.
- Если burst-time составляет 8 секунд, то образец берется каждые ½ секунды. И так далее…
- Когда начнется bursting, он будет разрешен на longest-burst-time секунд, что составляет
- (burst-threshold x burst-time) / burst-limit.
С burst-time 16 секунд
С burst-time 8 секунд
- Простая очередь
add max-limit=2M/2M name=queue1 target=192.168.3.0/24
- The same queue with bursting
add burst-limit=4M/4M burst-threshold=1500k/1500k burst-time=8s/8s limit-at=\
1M/1M max-limit=2M/2M name=queue1 target=192.168.3.0/24
Подсказка
- Возможно, вы заметили, что значки очереди меняют цвет в зависимости от использования. Цвет имеет значение.
- Зеленый: 0-50% от используемой полосы пропускания
- Желтый: 51-75% используется от доступной полосы пропускания используется
- Красный: 76-100% от доступной полосы пропускания
Зачем иметь очередь на всех?
- Per Connection Queue (PCQ) - это динамический способ формирования трафика для нескольких пользователей с использованием более простой конфигурации.
- Определите параметры, тогда каждый подпоток (например, определенные IP-адреса) будет иметь те же ограничения.
Конфигурация Pcq-rate
- Параметр pcq-rate ограничивает допустимую скорость передачи данных типа очереди.
- Классификатор - это то, что маршрутизатор проверяет, чтобы увидеть, как он будет применять это ограничение. Это может быть адрес источника или назначения, или порт источника или назначения. Таким образом, можно ограничить трафик пользователей или приложений (например, HTTP).
Конфигурации Pcq-limit
-
Этот параметр измеряется в пакетах.
-
Большое значение pcq-limit
- Создаст больший буфер, таким образом уменьшая отброшенные пакеты
- Увеличится задержка
-
Малое значение pcq-limit
- Увеличит количество отбрасываемых пакетов (так как буфер меньше) и заставит источник повторно отправить пакет, тем самым сократив задержку
- Приведет к корректировке размера окна TCP, сообщая источнику уменьшить скорость передачи
-
Какое значение я должен использовать? Здесь нет простого ответа.
- Если часто начинается на основе "проб и ошибок" для каждого приложения
- Если пользователи жалуются на задержку, уменьшите значение pcq-limit (длина очереди)
- Если пакеты должны проходить через сложный брандмауэр, то вам, возможно, придется увеличить длину очереди, так как это может привести к задержкам
- Быстрые интерфейсы (как Gig) требуют меньших очередей, поскольку они уменьшают задержки
- Предположим, что у нас есть пользователи, совместно использующие ограниченное WAN-соединение. Мы дадим им следующие скорости передачи данных:
- Скачивание: 2 Мбит/с
- Отдача : 1 Мбит/с
- WAN находится на ether1
- Подсеть локальной сети 192.168.3.0/24
/ip firewall mangle
add action=mark-packet chain=forward new-packet-mark=client_upload \
out-interface=ether1 src-address=192.168.3.0/24
add action=mark-packet chain=forward dst-address=192.168.3.0/24 \
in-interface=ether1 new-packet-mark=client_download
/queue type
add kind=pcq name=PCQ_download pcq-classifier=dst-address pcq-rate=2M \
add kind=pcq name=PCQ\_upload pcq-classifier=src-address pcq-rate=1M
queue tree
add name=queue_upload packet-mark=client_upload parent=global queue=\
PCQ_upload
add name=queue_download packet-mark=client_download parent=global queue=\
PCQ_download
Наш пример объяснил
-
Mangle: мы говорим маршрутизатору помечать пакеты с помощью "client_upload" или "client_download", в зависимости от того, если
- Пакеты поступают из локальной сети и уходят из ether1 (upload - отдача) или,
- Пакеты поступают из ether1 и отправляются в локальную сеть (загрузка).
-
Queue types: мы определяем скорости передачи данных и классификаторы, используемые для дифференциации подпотоков (источник или назначение)
-
Queue tree: комбинации, которые проверяются, чтобы увидеть, подходят ли пакеты для формирования трафика и что применять.
- Например, в случае загруженного трафика мы проверяем входные и выходные интерфейсы (global) для пакетов с "client_upload" и применяем тип очереди "PCQ_upload".
Мониторинг траффика интерфейса
Средство мониторинга трафика используется для запуска сценариев, когда трафик интерфейса достигает определенного порогового значения.
Пример
/tool traffic-monitor
add interface=ether1 name=TrafficMon1 on-event=script1 threshold=1500000 \
traffic=received
/system script
add name=script1 policy=ftp,read,test,winbox,api source="/tool e-mail send to=\"\
[email protected]\" subject=([/system identity get name] . \"Log \
\" . [/system clock get date\]\) body=\"Hello World. You're going too fast!\""
- Torch is a real-time traffic monitoring tool that can be used to monitor the traffic going through an interface.
- Although CLI is VERY flexible, the Torch interface in Winbox is very intuitive.
Torch, CLI
[admin@Pod3] /tool> torch interface=ether2 | port=winbox | ||||||
---|---|---|---|---|---|---|---|
SRC-PORT | DST-PORT | TX | RX TX-PACKETS RX-PACKETS | ||||
53217 | 8291 (winbox) | 12.0kbps | 4.7kbps | 7 | 6 | ||
12.0kbps | 4.7kbps | 7 | 6 | ||||
[admin@Pod3] /tool> torch interface=ether2 | port=any | ||||||
SRC-PORT | DST-PORT | TX | RX TX- | ||||
PACKETS RX-PACK | |||||||
53217 | 8291 (winbox) | 15.2kbps | 5.1kbps | ||||
7 | |||||||
62414 | 53 | (dns) | 728bps | 600bps | |||
1 | |||||||
53538 | 80 | (http) | 92.8kbps | 5.3kbps | |||
12 | |||||||
62437 | 53 | (dns) | 744bps | 616bps | |||
1 | |||||||
53540 | 80 | (http) | 182.2kbps | 8.4kbps | |||
18 | |||||||
53541 | 80 | (http) | 191.1kbps | 8.6kbps | |||
19 | |||||||
59150 | 53 | (dns) | 760bps | 632bps | |||
1 | |||||||
53542 | 80 | (http) | 112.9kbps | 7.0kbps | |||
12 | |||||||
53543 | 443 (https) | 34.8kbps | 6.3kbps |
Torch, Winbox
Graphs
- Graphing is a tool used to monitor various RouterOS parameters over time and put the collected data in graphs.
- The following parameters can be captured.
– Voltage and temperature
– CPU, memory and disk usage
– Interface traffic
– Queue traffic
- Graphs can be accessed by typing http://<router-IP-address>/graphs
Graphs
First steps
[admin@Pod3] /tool graphing> set store-every=5min page-refresh=300 [admin@Pod3] /tool graphing> print
store-every: 5min
page-refresh: 300
[admin@Pod3] /tool graphing>
Then we add values to be graphed.
[admin@Pod3] /tool graphing> interface add allow-address=0.0.0.0/0 interface=all [admin@Pod3] /tool graphing> queue add allow-address=0.0.0.0/0 simple-queue=test-queue1 [admin@Pod3] /tool graphing> resource add
Graphs
SNMP
- SNMP, which stands for Simple Network Management Protocol, is an Internet-standard protocol used for managing devices on IP networks.
- Many tools, both open source and commercial, are available to manage your networks and automate many tasks.
- Like all things, configuration must be thought out since one could use SNMP to hack your network.
SNMP
First steps.
[admin@Pod3] /snmp> set enabled=yes
[admin@Pod3] /snmp> set contact=YOU
[admin@Pod3] /snmp> set location=OFFICE
[admin@Pod3] /snmp> print
enabled: yes
contact: YOU
location: OFFICE
engine-id:
trap-target:
trap-community: (unknown)
trap-version: 1
trap-generators:
[admin@Pod3] /snmp>
SNMP
- Special attention should be given to communities.
- They dictate privileges.
[admin@Pod3] /snmp community> print detail
Flags: * - default
0 * name="public" addresses=0.0.0.0/0 security=none read-access=yes write-access=no authentication-protocol=MD5 encryption-protocol=DES authentication-password="" encryption-password=""
[admin@Pod3] /snmp community>
SNMP
Time for a practical exercise
End of module 7
Laboratory
- Goals of the lab
– Setting up and testing a simple queue.
– Setting up and testing a PCQ based queuing configuration.
– Being able to tell the pros and cons of both.
– Test out monitoring tools and see how they can help in everyday situations.
Laboratory : Setup
Laboratory : step 1
- Before going any further, install a MIB browser of your computers.
- Also, pods should pair up for this lab as many steps will require that more than one computer be connected to the routers.
Laboratory : step 2
- Test throughput using a speed testing web site. Note the results.
- Configure a simple queue (call it "lab7") that will limit your entire LAN to 4Mbps download and 2Mbps upload.
- Test throughput again.
- Ask a fellow student to plug into your router and repeat the speed test. What do you get? Does your fellow student get the same results when you connect to his router?
Laboratory : step 3
- Add bursting in the "lab7" queue. Parameters are :
– Burst limit 4M (upload), 6M (download)
– Burst-threshold 3M (upload), 5M (download)
– Burst-time 16 seconds for both
- Repeat the same tests as before and view results.
- Once done, disable the simple queue.
Laboratory : step 4
- Create a PCQ based system so that all computers on the same LAN have a limit of 4Mbps for downloads and 2Mbps for uploads.
- Make sure that the names that you use are meaningful!
- Test throughput using a speed testing web site. Note the results.
- Ask a fellow student to plug into your router and repeat the speed test. What do you get? Does your fellow student get the same results when you connect to his router?
Laboratory : step 5
- Configure traffic monitoring in such a way that it will send you an e-mail if inbound traffic exceeds 3Mbps on your wireless interface.
Laboratory : step 6
- Use the torch tool in such a way that you can see the source address of nodes doing any IP traffic on any port through the wireless interface.
– Experiment with the CLI and Winbox approaches.
Laboratory : step 7
- Enable graphs on :
– Wireless interface
– Hardware resources
- View them on your browser
Laboratory : step 8
- Enable SNMP, and supply these parameters :
– Your name as contact info.
– Your pod number as location (Podx).
– Keep the rest at default value.
- Using a MIB Browser, walk through your router's MIBs. Can you see your name and location?
Laboratory : step 9
- As usual, save the current configuration in binary and text format using the same name format that has been used in previous labs.