Thursday, November 17, 2016

Mikrotik Отключаем fasttrack


Перед настройкой ограничений скорости в MikroTik необходимо убедиться, что на роутере в фаерволе отключен fasttrack. Эта технология появилась начиная с RouterOS 6.29 и позволяет увеличить производительность путем пересылки данных без их дополнительной обработки. Однако если она включена, то ограничения скорости не сработают. Поэтому fasttrack необходимо отключить.
  1. Откройте меню IP - Firewall.
  2. На вкладке Filter Rules выберите правило fasttrack connection.
  3. Нажмите красный крестик Disable, чтобы деактивировать правило.
Отключаем правило fasttrack connection в фаерволе MikroTik


Ограничение скорости всем пользователям подсети

Допустим у нас есть входной интернет канал 20 Мбит/с. Мы хотим каждому пользователю подсети сделать ограничение скорости 2 Мбит/с на загрузку и отдачу.
Добавим pcq очередь на загрузку с ограничением 2 Мбит/с.
  1. Откройте меню Queues.
  2. Перейдите на вкладку Queue Types.
  3. Нажмите синий плюсик.
  4. В поле Type Name укажите название очереди на загрузку pcq-download-2M.
  5. В списке Kind выберите pcq.
  6. В поле Rate укажите ограничение скорости на загрузку 2M (2 Мбит/с).
  7. Проверьте, что напротив Dst. Address стоит галочка.
  8. Нажмите кнопку OK.
Настройка pcq очереди на загрузку с ограничением 2 Мбит/с в MikroTik

Добавим pcq очередь на отдачу с ограничением 2 Мбит/с.
  1. Нажмите синий плюсик.
  2. В поле Type Name укажите название очереди на загрузку pcq-upload-2M.
  3. В списке Kind выберите pcq.
  4. В поле Rate укажите ограничение скорости на отдачу 2M (2 Мбит/с).
  5. Поставьте галочку напротив Src. Address.
  6. Уберите галочку напротив Dst. Address.
  7. Нажмите кнопку OK.
Настройка pcq очереди на отдачу с ограничением 2 Мбит/с в MikroTik

Теперь добавим правило с ограничениями скоростей.
  1. Перейдите на вкладку Simple Queues.
  2. Нажмите синий плюсик.
  3. На вкладке General в поле Name укажите название правила queue-limit-2M.
  4. В поле Target укажите нашу подсеть 192.168.88.0/24
  5. В поле Max Limit в колонке Target Upload укажите максимальную скорость отдачи 18M (18 Мбит/с), которую мы выделяем на всю подсеть.
    Если ваш интернет канал равен 20 Мбит/с, то значение нужно указать на 5-20% меньше, например, 18 Мбит/с, чтобы правила сработали. Иначе скорость будет упираться в шейпер провайдера и правила срабатывать не будут.
  6. В поле Max Limit в колонке Target Download укажите максимальную скорость загрузки 18M (18 Мбит/с), которую мы выделяем на всю подсеть.
    Настройка ограничения скорости в MikroTik
     
  7. Перейдите на вкладку Advanced.
  8. В списке Queue Type в колонке Target Upload выберите pcq-upload-2M.
  9. В списке Queue Type в колонке Target Download выберите pcq-download-2M.
  10. Нажмите кнопку OK.
Выбор pcq очереди в MikroTik

Теперь проверьте на компьютере скорость с помощью сайта www.speedtest.net или аналогичного мобильного приложения на смартфоне.
Проверка скорости загрузки и отдачи в гостевой Wi-Fi сети


Ограничение скорости по IP адресу определенному пользователю

Если вам нужно определенному пользователю, например, директору сделать скорость выше чем у остальных, то выполните следующее:
  1. Откройте меню Queues.
  2. На вкладке Simple Queues нажмите синий плюсик.
  3. В появившемся окне на вкладке General в поле Name укажите название ограничения boss.
  4. В поле Target пропишите IP адрес компьютера, для которого будет действовать ограничение.
  5. В поле Max Limit в колонке Target Upload укажите необходимую скорость отдачи.
  6. В поле Max Limit в колонке Target Download укажите необходимую скорость загрузки.
  7. Нажмите кнопку OK.
Ограничение скорости MikroTik по IP адресу

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

Теперь запустите на компьютере директора speedtest и проверьте скорость. Если на компьютере запустить закачку, то скорость в MikroTik можно посмотреть на вкладке Traffic:
  1. Откройте правило и перейдите на вкладку Traffic.
  2. В поле Rate в колонке Target Upload видим скорость отдачи.
  3. В поле Rate в колонке Target Download видим скорость загрузки.
MikroTik - проверяем работу ограничения скорости

DHCP сервер через какое-то время может назначить компьютеру другой IP адрес, если истечет время его аренды. Поэтому для указанного IP адреса перестанут действовать необходимые ограничения. Чтобы этого не произошло, нужно привязать IP адрес к MAC адресу конкретного устройства. Как это сделать, написано ниже.


Ограничение скорости по MAC адресу

В MikroTik нельзя ограничить скорость, указав только MAC адрес устройства. Вам нужно сначала настроить ограничение скорости по IP адресу, а потом привязать IP адрес к MAC адресу конкретного устройства.
Привязка IP адреса к MAC адресу выполняется следующим образом:
  1. Подключите устройство к роутеру, чтобы оно получило IP адрес.
  2. В настройках роутера откройте меню IP - DHCP Server.
  3. Перейдите на вкладку Leases.
  4. Нажмите правой кнопкой мыши на устройстве, которому нужно привязать MAC адрес к IP адресу.
  5. Выберите в выпадающем меню Make Static.
Как привязать MAC адрес к IP адресу в MikroTik


Ограничение скорости всем «качальщикам»

Роутер MikroTik позволяет сделать настройку так, что при просмотре интернет страничек каждый клиент получит максимальную скорость, а как только начнет качать большие файлы, его скорость уменьшится. Для этого настраивается взрывная скорость Burst.
Допустим у нас есть входной интернет канал 20 Мбит/с. Мы хотим, чтобы каждый пользователь по возможности просматривал интернет странички с максимальной скоростью 20 Мбит/с. Но как только он начнет качать большие файлы, его скорость уменьшилась до 3 Мбит/с.
Добавим pcq очередь на загрузку с параметрами Burst.
  1. Откройте меню Queues.
  2. Перейдите на вкладку Queue Types.
  3. Нажмите синий плюсик.
  4. В поле Type Name укажите название очереди на загрузку pcq-burst-download.
  5. В списке Kind выберите pcq.
  6. В поле Rate укажите скорость на загрузку 3M (3 Мбит/с), которая будет действовать, если пользователь начнет качать файлы. Значение Rate должно быть меньше значения Burst Rate.
  7. В поле Burst Rate укажите максимальную скорость на загрузку 18M (18 Мбит/с), которая будет по возможности действовать для просмотра интернет страничек, пока пользователь не начнет качать файлы. Если два пользователя будут одновременно просматривать интернет странички, то 18 Мбит/с поделятся между ними. Каждый получит скорость по 9 Мбит/с. Если скорость вашего интернет-канала 20 Мбит/с, то скорость Burst Rate нужно ставить немного меньше, например, 18 Мбит/с, чтобы правила не уперлись в шейпер провайдера и сработали.
  8. В поле Burst Threshold укажите скорость 2M (2 Мбит/с), при превышении которой начнет действовать ограничение скорости Rate 3M. Значение Burst Threshold должно быть меньше значения Rate.
  9. В поле Burst Time укажите время для подсчета средней скорости загрузки 64. Роутер будет вычислять скорость каждую 1/16 периода. Например, при Burst Time=16 роутер будет вычислять каждую 1 сек, а при Burst Time=32 будет вычислять каждые 2 сек.
    Фактическое время, через которое сработает ограничение на загрузку вычисляется по формуле Real Time = Burst Threshold * (Burst Time / Burst Rate). В нашем случае ограничение сработает через Real Time = 2 * (64 / 20) = 6,4 секунды.
    Для тестирования работы Burst рекомендую сначала поставить большим значение Burst Time. Например, для данного случая лучше поставить Burst Time=192. При этом значении ограничение скорости сработает через 19,2 секунды. Это позволит запустить торрент на компьютере и посмотреть, как будет срабатывать Burst.
  10. Проверьте, что напротив Dst. Address стоит галочка.
  11. Нажмите кнопку OK.
Настройка pcq burst очереди на загрузку в MikroTik

Добавим pcq очередь на отдачу с параметрами Burst.
  1. Нажмите синий плюсик.
  2. В поле Type Name укажите название очереди на отдачу pcq-burst-upload.
  3. В списке Kind выберите pcq.
  4. В поле Rate укажите скорость на отдачу 3M (3 Мбит/с), которая будет действовать, если пользователь начнет передавать файлы в интернет. Значение Rate должно быть меньше значения Burst Rate.
  5. В поле Burst Rate укажите максимальную скорость на отдачу 18M (18 Мбит/с), которая будет по возможности действовать для просмотра интернет страничек, пока пользователь не начнет передавать файлы в интернет.
  6. В поле Burst Threshold укажите скорость 2M (2 Мбит/с), при превышении которой начнет действовать ограничение скорости Rate 3M. Значение Burst Threshold должно быть меньше значения Rate.
  7. В поле Burst Time укажите время для подсчета средней скорости отдачи 64.
    Для тестирования работы рекомендую сначала поставить большим значение Burst Time=192. При этом значении ограничение скорости сработает через 19,2 секунды. Это позволит запустить торрент на компьютере и посмотреть, как будет срабатывать Burst.
  8. Поставьте галочку напротив Src. Address.
  9. Уберите галочку напротив Dst. Address.
  10. Нажмите кнопку OK.
Настройка pcq burst очереди на отдачу в MikroTik

Теперь добавим в Simple Queues правило с ограничениями.
  1. Перейдите на вкладку Simple Queues.
  2. Нажмите синий плюсик.
  3. На вкладке General в поле Name укажите название правила queue-burst-limit.
  4. В поле Target укажите нашу подсеть 192.168.88.0/24
    Настройка Burst ограничения для подсети в MikroTik
     
  5. Перейдите на вкладку Advanced.
  6. В списке Queue Type в колонке Target Upload выберите pcq-burst-upload.
  7. В списке Queue Type в колонке Target Download выберите pcq-burst-download.
  8. Нажмите кнопку OK.
Выбор pcq burst очередей в MikroTik

Теперь проверьте на компьютере скорость с помощью сайта www.speedtest.net. Она должна стремиться к максимальной 18 Мбит/с. После этого поставьте на закачку торрент и посмотрите, как измениться скорость. Если вы использовали Burst Time=192, то через 20 секунд после старта закачки торрента скорость упадет до 3 Мбит/с.


Ограничение скорости определенному «качальщику» по IP адресу

MikroTik позволяет по IP адресу ограничить скорость определенному пользователю, который качает большие файлы из интернета. Пока пользователь будет смотреть интернет странички, скорость будет высокой, но как только начнет качать файлы, то скорость уменьшится. Для этого настраивается взрывная скорость Burst.
Допустим, мы хотим, чтобы пользователь просматривал интернет странички с максимальной скоростью 20 Мбит/с. Но как только он начнет качать большие файлы, его скорость уменьшилась до 3 Мбит/с.
  1. Откройте меню Queues.
  2. На вкладке Simple Queues нажмите на синий плюсик.
  3. В поле Name укажите имя ограничения dima-burst-limit-3M.
  4. В поле Target укажите IP адрес пользователя 192.168.88.254, для которого будет действовать ограничение.
  5. В поле Max Limit в столбце Target Upload укажите скорость отдачи файлов в интернет 3M (3 Мбит/с). Она должна быть меньше Burst Limit.
  6. В поле Max Limit в столбце Target Download укажите скорость загрузки файлов из интернета 3M (3 Мбит/с). Она должна быть меньше Burst Limit.
  7. В поле Burst Limit в столбце Target Upload укажите максимальную скорость отдачи 20M при просмотре интернет страничек. Она должна быть больше скорости Max Limit.
  8. В поле Burst Limit в столбце Target Download укажите максимальную скорость загрузки 20M при просмотре интернет страничек. Она должна быть больше скорости Max Limit.
  9. В поле Burst Threshold в столбце Target Upload укажите скорость отдачи 2M, при превышении которой, сработает ограничение скорости Max Limit. Значение Burst Threshold должно быть меньше скорости Max Limit.
  10. В поле Burst Threshold в столбце Target Download укажите скорость загрузки 2M, при превышении которой, сработает ограничение скорости Max Limit. Значение Burst Threshold должно быть меньше скорости Max Limit.
  11. В поле Burst Time в столбце Target Upload укажите время для подсчета средней скорости отдачи 64.
    Роутер будет вычислять скорость каждую 1/16 периода. Например, при Burst Time=16 роутер будет вычислять каждую 1 сек, а при Burst Time=32 будет вычислять каждые 2 сек.
    Фактическое время, через которое сработает ограничение вычисляется по формуле Real Time = Burst Threshold * (Burst Time / Burst Rate). В нашем случае ограничение сработает через Real Time = 2 * (64 / 20) = 6,4 секунды.
    Для тестирования работы Burst рекомендую сначала поставить большие значения Burst Time. Например, для данного случая лучше поставить Burst Time=192. При этом значении ограничение скорости сработает через 19,2 секунды. Это позволит запустить торрент на компьютере и посмотреть, как будет срабатывать Burst.
  12. В поле Burst Time в столбце Target Download укажите время для подсчета средней скорости загрузки 64.
  13. Нажмите кнопку OK.
Ограничение скорости в MikroTik для качальщика

На практике это правило будет работать следующим образом. Пользователь будет просматривать странички в интернете с максимальной скоростью 20 Мбит/с. Когда он начнет качать торренты и средняя скорость превысит 2 Мбит/с, то отключится ограничение 20 Мбит/с, и включится ограничение 3 Мбит/с.
Если у вас есть Burst правило для всей подсети, то правило для определенного пользователя нужно поднять выше него. Для этого перетащите его левой кнопкой мыши.
Подымаем вверх Burst правило в MikroTik


Ограничение скорости по часам и дням недели

Если вы хотите, чтобы ограничение скорости в MikroTik работало в определенные дни недели и часы, то выполните следующее:
  1. Нажмите раскрывающийся список Time.
  2. В первом поле Time укажите, с какого времени будут действовать ограничения.
  3. Во втором поле Time укажите, до какого времени будут действовать ограничения.
  4. Выберите по каким дням недели будет действовать правило.
  5. Нажмите кнопку OK.
MikroTik - ограничение скорости по времени и дням недели


Определяем, какой IP адрес больше всех потребляет трафик

Если у вас в сети начал тормозить интернет, тогда необходимо посмотреть, кто больше всех потребляет трафик. Может для кого-то вы не правильно настроили правила, и он торрентами занял весь интернет-канал.
  1. Открываем меню Interfaces.
  2. Выбираем в списке интерфейс, к которому подключены компьютеры локальной сети. Это может быть ethernet порт ether2 или Wi-Fi интерфейс wlan0. В нашем случае мы объединили ethernet и Wi-Fi порты в интерфейс brige, поэтому выбираем его.
  3. Правой кнопкой мыши кликаем на необходимом интерфейсе и выбираем в меню Torch.
    MikroTik - определяем IP с наибольшим потреблением трафика

     
  4. В появившемся окне нажимаем кнопку Start.
  5. Нажимаем на заголовок столбца TxRate, чтобы отсортировать и отобразить первыми IP адреса, которые больше всех потребляют трафик.

Как видим, больше всего потребляет трафик IP адрес 192.168.88.254, он качает файлы со скоростью 16 Mbps.
MikroTik - сортировка IP адресов по потреблению трафика


Распределение скорости интернета поровну

Этот способ подходит для использования на домашнем роутере или в небольшом офисе.
Допустим у вас есть входной интернет канал 20 Мбит/с. В доме есть компьютер сына, ноутбук отца и планшет у мамы. Когда сын начнет качать торренты, нужно чтобы он не занял весь интернет канал. При этом отец смог смотреть фильм онлайн, а мама открывать интернет странички. Но если в сети работает только компьютер сына, то он получит всю доступную скорость интернета 20 Мбит/с.
В данном примере скорость будет делиться поровну, только если все трое начнут качать на максимальной скорости. В этом случае каждый получит скорость около 6,7 Мбит/с (20/3).
Но если отец будет качать файл на скорости 4 Мбит/с, а мать на скорости 2 Мбит/с, то сын получит остальные 14 Мбит/с. Т.е. скорость распределится пропорционально загрузке.
Добавим правило с ограничением скорости.
  1. Откройте меню Queues.
  2. Перейдите на вкладку Simple Queues.
  3. Нажмите синий плюсик.
  4. На вкладке General в поле Name укажите название правила queue-limit.
  5. В поле Target укажите IP адрес подсети 192.168.88.0/24. Если адрес вашей подсети отличается, то укажите необходимый.
  6. В поле Max Limit в колонке Target Upload укажите максимальную скорость отдачи 18M (18 Мбит/с), которую мы выделяем на всю подсеть.
    Значение Max Limit нужно указывать на 5-10% меньше, чем скорость интернета. Если ваша скорость интернета равна 20 Мбит/с, то значение Max Limit нужно указать 18 Мбит/с, чтобы правила сработали. Иначе скорость будет упираться в шейпер провайдера и правила не будут срабатывать.
  7. В поле Max Limit в колонке Target Download укажите максимальную скорость загрузки 18M (18 Мбит/с), которую мы выделяем на всю подсеть.
    Деление скорости интернета на всех поровну в MikroTik
     
  8. Перейдите на вкладку Advanced.
  9. В списке Queue Type в колонке Target Upload выберите очередь pcq-upload-default.
    Эти очереди используют алгоритм PCQ, который позволяет равномерно распределить скорость между всеми пользователями вне зависимости от количества открытых подключений.
  10. В списке Queue Type в колонке Target Download выберите очередь pcq-download-default.
  11. Нажмите кнопку OK.
Равномерное распределение скорости интернета на роутере MikroTik

Теперь запустите закачки на компьютерах в сети и посмотрите, как будет распределяться скорость.
Данный способ настройки очень простой, но имеет один недостаток. Если сын включит закачку торрентов, то на его компьютере станут плохо открываться интернет странички или будут задержки в онлайн играх. Чтобы это не происходило, необходимо трафику присваивать различные приоритеты. Например, интернет страничкам и онлайн играм дать более высокий приоритет, чем закачке файлов. Как это сделать, читайте ниже.


Распределение скорости интернета поровну с приоритезацией трафика

Этот способ позволит распределить интернет поровну между всеми пользователями, и дать более высокий приоритет для просмотра интернет страничек, Youtube, ICQ и других сервисов. Поэтому они не будут тормозить, даже если вы поставили на закачку торренты.
Весь трафик разделим по приоритетам на 4 группы:
  • LOW - низкий (торренты, p2p и т.д.)
  • NORMAL - нормальный (интернет странички (HTTP), видео на Youtube (HTTPS) и т.д.)
  • HIGH - высокий (ICQ, Jabber, SSH, Telnet и т.д.)
  • SUPER-HIGH - очень высокий (онлайн-игра Counter Strike, DNS, PING и т.д.)

Алгоритм работы будет такой:
  1. Маркируем все неизвестные соединения LOW.
  2. В соединениях пакеты на загрузку помечаем LOW-DOWNLOAD
  3. В соединениях пакеты на отдачу помечаем LOW-UPLOAD.
     
  4. Известные соединения маркируем в зависимости от сервиса: NORMAL, HIGH или SUPER-HIGH.
  5. В соединениях пакеты на загрузку помечаем NORMAL-DOWNLOAD, HIGH-DOWNLOAD или SUPER-HIGH DOWNLOAD.
  6. В соединениях пакеты на отдачу помечаем NORMAL-UPLOAD, HIGH-UPLOAD или SUPER-HIGH-UPLOAD.
     
  7. Создаем PCQ очереди, которые позволят равномерно делить скорость между всеми пользователями. Мы их будем использовать в правилах ограничения скорости.
     
  8. Создаем правила ограничения скорости в дереве Queue Tree.
    В правилах используем помеченные пакеты, которым задаем приоритет и PCQ очереди.
    Максимальную скорость указываем с помощью родителей DOWNLOAD - 18Мбит/с и UPLOAD - 18Мбит/с.
    Помеченным пакетам присваиваем следующие приоритеты:
  • DOWNLOAD - 18M
    • SUPER-HIGH-DOWNLOAD - приоритет 1
    • HIGH-DOWNLOAD - приоритет 2
    • NORMAL-DOWNLOAD - приоритет 3
    • LOW-DOWNLOAD - приоритет 4
  • UPLOAD - 18M
    • SUPER-HIGH-UPLOAD - приоритет 1
    • HIGH-UPLOAD - приоритет 2
    • NORMAL-UPLOAD - приоритет 3
    • LOW-UPLOAD - приоритет 4

Приступим к настройке.
Добавим пару Layer7 наборов для определения http трафика.
Данные наборы анализируют трафик, пытаются найти в нем указанные последовательности и определить, что это http трафик, gif файл, png файл или jpg файл.
Откройте меню New Terminal и выполните следующие команды:
/ip firewall layer7-protocol
add name=HTTP regexp="http/(0\\.9|1\\.0|1\\.1) [1-5][0-9][0-9]|post [\\x09-\\x0d -~]* http/[01]\\.[019]"
add name=GIF_FILE regexp=gif
add name=PNG_FILE regexp=png
add name=JPG_FILE regexp=jpg
Для определения HTTP трафика я специально не маркирую трафик на 80 порту, а применяю Layer7, поскольку кроме браузера другие программы могут использовать 80-й порт. Если маркировать трафик по 80 порту, то все получат одинаковый приоритет, и интернет странички не будут быстро грузиться.
Много наборов Layer7 лучше не использовать, т.к. они существенно нагружают роутер.
В меню IP - Firewall на вкладке Layer7 Protocols отобразятся добавленные типы трафика.
Наборы Layer7 для определения типа трафика в MikroTik

По умолчанию промаркируем весь незнакомый трафик, как низкий - LOW.
/ip firewall mangle
add action=accept chain=forward comment="############## LOW #############" disabled=yes
add action=mark-connection chain=forward comment=ALL-TRAFFIC disabled=no new-connection-mark=LOW passthrough=yes
add action=mark-packet chain=forward comment=LOW-DOWNLOAD connection-mark=LOW disabled=no dst-address-list=LAN new-packet-mark=LOW-DOWNLOAD passthrough=yes src-address-list=!LAN-EXCEPTION
add action=mark-packet chain=prerouting comment=LOW-UPLOAD connection-mark=LOW disabled=no dst-address-list=!LAN-EXCEPTION new-packet-mark=LOW-UPLOAD passthrough=yes src-address-list=LAN
add action=accept chain=forward comment="############## END LOW #########" disabled=yes

Добавим маркировку трафика NORMAL.
/ip firewall mangle
add action=accept chain=forward comment="############## NORMAL #########" disabled=yes
add action=mark-connection chain=forward comment=HTTP disabled=no layer7-protocol=HTTP new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=HTTPS disabled=no port=443 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=Proxy disabled=no port=3128,8080 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=FTP disabled=no port=20,21 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SFTP disabled=no port=22 new-connection-mark=NORMAL packet-size=1400-1500 passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SMTP disabled=no port=25 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SMTPS disabled=no port=465 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=IMAP disabled=no port=143 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=POP3 disabled=no port=110 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=POP3S disabled=no port=995 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=IMAPS disabled=no port=993 new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=GIF_FILE disabled=no layer7-protocol=GIF_FILE new-connection-mark=NORMAL passthrough=yes
add action=mark-connection chain=forward comment=PNG_FILE disabled=no layer7-protocol=PNG_FILE new-connection-mark=NORMAL passthrough=yes
add action=mark-connection chain=forward comment=JPG_FILE disabled=no layer7-protocol=JPG_FILE new-connection-mark=NORMAL passthrough=yes
add action=mark-connection chain=forward comment="100Kb Connections" connection-bytes=0-100000 disabled=no new-connection-mark=NORMAL passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment=NORMAL-DOWNLOAD connection-mark=NORMAL disabled=no dst-address-list=LAN new-packet-mark=NORMAL-DOWNLOAD passthrough=yes src-address-list=!LAN-EXCEPTION
add action=mark-packet chain=prerouting comment=NORMAL-UPLOAD connection-mark=NORMAL disabled=no dst-address-list=!LAN-EXCEPTION new-packet-mark=NORMAL-UPLOAD passthrough=yes src-address-list=LAN
add action=accept chain=forward comment="############## END NORMAL ############" disabled=yes


Добавим маркировку трафика HIGH:
/ip firewall mangle
add action=accept chain=forward comment="############## HIGH ############" disabled=yes
add action=mark-connection chain=forward comment=ICQ disabled=no port=5190 new-connection-mark=HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=Jabber disabled=no port=5222,5223 new-connection-mark=HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=IRC disabled=no port=6667-6669 new-connection-mark=HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SSH disabled=no port=22 new-connection-mark=HIGH packet-size=0-1400 passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=TELNET disabled=no port=23 new-connection-mark=HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SNMP disabled=no port=161-162 new-connection-mark=HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=PPTP disabled=no port=1723 new-connection-mark=HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=L2TP disabled=no port=1701 new-connection-mark=HIGH passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=GRE disabled=no new-connection-mark=HIGH passthrough=yes protocol=gre
add action=mark-connection chain=forward comment="50Kb Connections" connection-bytes=0-50000 disabled=no new-connection-mark=HIGH passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment=HIGH-DOWNLOAD connection-mark=HIGH disabled=no dst-address-list=LAN new-packet-mark=HIGH-DOWNLOAD passthrough=yes src-address-list=!LAN-EXCEPTION
add action=mark-packet chain=prerouting comment=HIGH-UPLOAD connection-mark=HIGH disabled=no dst-address-list=!LAN-EXCEPTION new-packet-mark=HIGH-UPLOAD passthrough=yes src-address-list=LAN
add action=accept chain=forward comment="############## END HIGH ##########" disabled=yes

Добавим маркировку трафика SUPER-HIGH:
/ip firewall mangle
add action=accept chain=forward comment="############## SUPER-HIGH ##########" disabled=yes
add action=mark-connection chain=forward comment=CounterStrike disabled=no port=27005,27014-27025,27035,52046-52048,52146 new-connection-mark=SUPER-HIGH passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=DNS disabled=no port=53 new-connection-mark=SUPER-HIGH passthrough=yes protocol=tcp src-port=53
add action=mark-connection chain=forward comment=DNS disabled=no port=53 new-connection-mark=SUPER-HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=DNS disabled=no port=53 new-connection-mark=SUPER-HIGH passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=NNTP disabled=no port=119 new-connection-mark=SUPER-HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=Winbox disabled=no port=8291 new-connection-mark=SUPER-HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=ntp disabled=no port=123 new-connection-mark=SUPER-HIGH passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=VNC disabled=no port=5900-5901 new-connection-mark=SUPER-HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=RDP disabled=no port=3389 new-connection-mark=SUPER-HIGH passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=PING disabled=no new-connection-mark=SUPER-HIGH passthrough=yes protocol=icmp
add action=mark-connection chain=forward comment="5Kb Connections" connection-bytes=0-5000 disabled=no new-connection-mark=SUPER-HIGH passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment=SUPER-HIGH-DOWNLOAD connection-mark=SUPER-HIGH disabled=no dst-address-list=LAN new-packet-mark=SUPER-HIGH-DOWNLOAD passthrough=yes src-address-list=!LAN-EXCEPTION
add action=mark-packet chain=prerouting comment=SUPER-HIGH-UPLOAD connection-mark=SUPER-HIGH disabled=no dst-address-list=!LAN-EXCEPTION new-packet-mark=SUPER-HIGH-UPLOAD passthrough=yes src-address-list=LAN
add action=accept chain=forward comment="############## END SUPER-HIGH ##########" disabled=yes
Чтобы в онлайн игре CounterStrike не было лагов (запаздываний), я добавил ее порты 27005,27014-27025,27035,52046-52048,52146, протокол udp и пометил соединения, как SUPER-HIGH. Если вам нужно добавить другую онлайн игру, узнайте какие порты и протокол она использует, и добавьте свое правило.
В меню IP - Firewall на вкладке Mangle отобразятся добавленные правила маркировки трафика.
Правила маркировки трафика в MikroTik

Добавим IP адрес нашей подсети и адреса соседних локальных сетей в список Address List:
/ip firewall
address-list add address=192.168.88.0/24 disabled=no list=LAN
address-list add address=192.168.0.0/16 disabled=no list=LAN-EXCEPTION
address-list add address=10.0.0.0/8 disabled=no list=LAN-EXCEPTION
LAN - это список с IP адресами нашей сети 192.168.88.0/24. Укажите другой, если адрес вашей подсети отличается. Этот адрес нужен, чтобы правила маркировали трафик пользователей нашей сети.
LAN-EXCEPTION - список сетей, при обмене данными с которыми не будут работать ограничения скорости.
Например, вы находитесь с другим компьютером в подсети одного провайдера, и хотите скачать с него файл. Ограничивать скорость такой загрузки нет смысла, поскольку компьютер находится не где-то в интернете, а в одной с вами кабельной сети. Поэтому целесообразно, чтобы файл с него качался на максимальной скорости.
192.168.0.0/16 - это адреса локальных подсетей класса С.
10.0.0.0/8 - это подсеть провайдера.
Проверьте на вкладке Address Lists, что подсети добавились.

Добавим PCQ очереди на загрузку и отдачу.
Они используют алгоритм PCQ, который позволяет равномерно распределить скорость между всеми пользователями вне зависимости от количества открытых подключений.
/queue type
add kind=pcq name=PCQ-DOWNLOAD pcq-rate=0 pcq-limit=50 pcq-total-limit=2000 pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-classifier=dst-address pcq-src-address-mask=32 pcq-dst-address-mask=32 pcq-src-address6-mask=128 pcq-dst-address6-mask=128
add kind=pcq name=PCQ-UPLOAD pcq-rate=0 pcq-limit=50 pcq-total-limit=2000 pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-classifier=src-address pcq-src-address-mask=32 pcq-dst-address-mask=32 pcq-src-address6-mask=128 pcq-dst-address6-mask=128
Посмотрите созданные очереди в меню Queues на вкладке Queue Types.
Добавляем PCQ очереди на загрузку и отдачу в MikroTik

Построим дерево Queue Tree и присвоим приоритеты промаркированным пакетам.
  • DOWNLOAD - 18M
    • SUPER-HIGH-DOWNLOAD - приоритет 1
    • HIGH-DOWNLOAD - приоритет 2
    • NORMAL-DOWNLOAD - приоритет 3
    • LOW-DOWNLOAD - приоритет 4
  • UPLOAD - 18M
    • SUPER-HIGH-UPLOAD - приоритет 1
    • HIGH-UPLOAD - приоритет 2
    • NORMAL-UPLOAD - приоритет 3
    • LOW-UPLOAD - приоритет 4
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=18M name=DOWNLOAD parent=global priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=SUPER-HIGH-DOWNLOAD packet-mark=SUPER-HIGH-DOWNLOAD parent=DOWNLOAD priority=1 queue=PCQ-DOWNLOAD
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=HIGH-DOWNLOAD packet-mark=HIGH-DOWNLOAD parent=DOWNLOAD priority=2 queue=PCQ-DOWNLOAD
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=NORMAL-DOWNLOAD packet-mark=NORMAL-DOWNLOAD parent=DOWNLOAD priority=3 queue=PCQ-DOWNLOAD
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=LOW-DOWNLOAD packet-mark=LOW-DOWNLOAD parent=DOWNLOAD priority=4 queue=PCQ-DOWNLOAD
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=18M name=UPLOAD parent=global priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=SUPER-HIGH-UPLOAD packet-mark=SUPER-HIGH-UPLOAD parent=UPLOAD priority=1 queue=PCQ-UPLOAD

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=HIGH-UPLOAD packet-mark=HIGH-UPLOAD parent=UPLOAD priority=2 queue=PCQ-UPLOAD
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=NORMAL-UPLOAD packet-mark=NORMAL-UPLOAD parent=UPLOAD priority=3 queue=PCQ-UPLOAD
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=LOW-UPLOAD packet-mark=LOW-UPLOAD parent=UPLOAD priority=4 queue=PCQ-UPLOAD
max-limit=18M - это максимальная скорость 18 Мбит/с на всю подсеть. Укажите свою скорость.
Значение max-limit нужно указывать на 5-10% меньше, чем скорость интернета. Если ваша скорость интернета равна 20 Мбит/с, то значение max-limit нужно указать 18 Мбит/с, чтобы правила сработали. Иначе скорость будет упираться в шейпер провайдера и правила не будут срабатывать.
Посмотрите созданное дерево на вкладке Queue Tree. Здесь видно, с какой скоростью в данный момент передается и принимается каждый вид трафика.

Теперь весь интернет канал будет равномерно распределяться между пользователями, а при запуске торрентов, вы будете комфортно открывать интернет странички в браузере, смотреть видео на Youtube, общаться по ICQ и т.д.

Configure Mikrotik as a Hotspot Server

 mikrotik as hotspot
There are many posts on how to configure Mikrotik as hotspot. But I am sure this is not the result of a cheat sheet. Even if some of section are the same, it was fate. Mikrotik is a friendly operation system, and is very easy to configured. Enough to know the concept of network, plus with a Winbox, then you will easily configure the Mikrotik, in accordance with your wishes. I configured wireless outdoor of mikrotik, as a hotspot. I forget the type of the mikrotik. It's been a long time. And now for the post on this blog, I configure the mikrotik hotspot again, but this time, the mikrotik is installed inside vmware.
Let’s begin.



Setup IP Address Ethernet.
In my case, the Mikrotik to connect to the internet, simply by setting IP address dhcp. Open winbox, Click IP – DHCP Client. In the open dialog box, click plus (+)
winbox mikrotik - dhcp client

The new Open dialog box will be appear again, like below. Select ether1 interface, and check peer dns, ntp peer and the default route. Then click Ok.
winbox mikrotik - new dhcp client

Click new Terminal.  Make sure Mikrotik connect to internet. Use command ping.  Look at picture below.
winbox mikrotik - new terminal

Setting DNS
Click IP – DNS. In the open dialog box, click Settings. New open dialog will be appear. Input IP DNS in the box Servers, for example 8.8.8.8.  and check Allow Remote Requests. Then click OK.
winbox mikrotik - dns settings

Setting NTP (Network Time Protocol)
Click System – NTP Client. Continue to check enable and select Unicast mode, and then input IP address for Primary NTP Server & Secondary NTP Server, as shown below. Then click OK.
winbox mikrotik - setting ntp client

Setting Mikrotik Hotspot
Continue to setting Hotspot. Click IP – Hotspot
winbox mikrotik - IP hotspot

In the Hotspot dialog box, Click Hotspot Setup.
winbox mikrotik - hotspot setup

Then Mikrotik Hotspot Setup wizard, will be appear. This is easiest way to setup Hotspot interface in Mikrotik. IP address for Ethernet, DHCP Server, routing and firewall will be configured automatically. In the Mikrotik Hotspot Setup wizard, select ether2 as hotspot interface.  Then click Next.
winbox mikrotik - hotspot setup 2

Set hotspot IP address.  Then click Next
winbox mikrotik - hotspot setup 3

Set Pool dhcp, then click Next
winbox mikrotik - hotspot setup 4

For SSL certificate, select none. Then Klik Next
winbox mikrotik - hotspot setup 5

Because we don’t have SMTP server, enter 0.0.0.0. Click Next
winbox mikrotik - hotspot setup 6

In the wizard Setup DNS, input IP DNS, then click Next
winbox mikrotik - hotspot setup 7

For DNS name, leave blank, then click Next.
winbox mikrotik - hotspot setup 8

Create users, and password,  then click Next
winbox mikrotik - hotspot setup 9

Done. Setup has completed successfully.
winbox mikrotik - hotspot setup complete

Back to the Mikrotik Hotspot dialog box. Click tab Server Profiles, then click twice to hsprof1 (look at example picture below). New open dialog box will appear about Hotspot Server Profile.
winbox mikrotik - hotspot server profiles

And then in tab Login, make sure in the section “Login By”, uncheck cookie, then click OK.
winbox mikrotik - hotspot server profiles settings

Until here, Mikrotik has been successfully configured as a hotspot. For testing of the client, create a voucher for the user / client. In the Mikrotik Hotspot dialog box, select tab Users – plus (+)
winbox mikrotik - hotspot users

In the new open dialog box, input  name & password. You can customize how the speed, duration of use, the mac address, and so on. It depends on your desire. Then click OK.
winbox mikrotik - hotspot users settings

In the computer client, browsing to any site, If the login page appears, it means mikrotik hotspot is working properly. Input username and password, that have been created. If everything is normal, the browser will be redirect to destination site.
mikrotik - hotspot page login


For security, don’t forget to make new password for user admin. Click system – password, fill new password in dialog box, and then click change.

mikrotik - change password

Saturday, November 5, 2016

How to block facebook in Mikrotik using L7 Protocols (Layer 7)

In Some Scenarios , We May need to Block FacebookSocial Website or some others …In this tutorial, I will show you, how to achieve this goal using L7 (Layer7).

This tutorial consists of two parts:

1- Block facebook website for everyone on local network.

2- Allow facebook for specific host(s) and block for others on local network.

1- Block facebook website for everyone on local network.

First we check that Facebook is currently working on our local network or not?

Check the IP address of our client?

We need to create new Regexp rule at Layer7 Protocols, in order to block the facebook for our local network.

To achieve this goal, please follow these steps:

^.+(facebook.com).*$

Now, we need to create Filter Rule, using these steps:

Now test the rule, that we just created:

Try also on 2nd client (172.16.10.199/24):

Check that it only block facebook or other websites also?

Oh yes, our rule is working perfectly

2- Allow facebook for specific host(s) and block for others on local network.

Now, we want to allow facebook for 2nd client (172.16.10.199/24) but still want to block it for other host(s).

To accomplish this goal, we need to create a second Filter rule, to do this, please follow these steps:

Move this rule at the top:

Test this rule on 2nd client (172.16.10.199/24):

Verify the rule on Mikrotik:

Verify that, facebook is still blocked for other host(s) on the local network:

Verify the rule(s) on Mikrotik:

Drop packets rate are incremented!

We can do the same for youtube or any other website!

Hope this will help you

Wednesday, November 2, 2016

What features does RouterOS" have?

RouterOS features
RouterOS is MikroTik’s stand-alone operating system based on linux v2.6 kernel. The following list shows features found in the latest RouterOS release:
Hardware Support
* i386 compatible architecture
* SMP – multi-core and multi-CPU compatible
* Minimum 32MB of RAM (maximum supported 2GB)
* IDE, SATA, USB and flash storage medium with minimum of 64MB space
* Network cards supported by linux v2.6 kernel (PCI, PCI-X)
* Partial hardware compatibility list (user maintained)
* Switch chip configuration support
Installation
* Netinstall: Full network based installation from PXE or EtherBoot enabled network card
* Netinstall: Installation to a secondary drive mounted in Windows
* CD based installation
Configuration
* MAC based access for initial configuration
* WinBox – standalone Windows GUI configuration tool
* Basic web interface configuration tool
* Powerful command-line configuration interface with integrated scripting capabilities, accessible via local terminal, serial console, telnet and ssh
* API – the way to create your own configuration and monitoring applications.
Backup/Restore
* Binary configuration backup saving and loading
* Configuration export and import in human readable text format
Firewall
* Statefull filtering
* Source and destination NAT
* NAT helpers (h323, pptp, quake3, sip, ftp, irc, tftp)
* Internal connection, routing and packet marks
* Filtering by IP address and address range, port and port range, IP protocol, DSCP and many more
* Address lists
* Custom Layer7 matcher
* IPv6 support
* PCC – per connection classifier, used in load balancing configurations
Routing
* Static routing
* Virtual Routing and Forwarding (VRF)
* Policy based routing
* Interface routing
* ECMP routing
* IPv4 dynamic routing protocols: RIP v1/v2, OSPFv2, BGP v4
* IPv6 dynamic routing protocols: RIPng, OSPFv3, BGP
* Bidirectional Forwarding Detection (BFD)
MPLS
* Static Label bindings for IPv4
* Label Distribution protocol for IPv4
* RSVP Traffic Engineering tunnels
* VPLS MP-BGP based autodiscovery and signaling
* MP-BGP based MPLS IP VPN
* complete list of MPLS features
VPN
* Ipsec – tunnel and transport mode, certificate or PSK, AH and ESP security protocols. Hardware encryption support on RouterBOARD 1000.
* Point to point tunneling (OpenVPN, PPTP, PPPoE, L2TP)
* Advanced PPP features (MLPPP, BCP)
* Simple tunnels (IPIP, EoIP)
* 6to4 tunnel support (IPv6 over IPv4 network)
* VLAN – IEEE802.1q Virtual LAN support, Q-in-Q support
* MPLS based VPNs
Wireless
* IEEE802.11a/b/g wireless client and access point
* Full IEEE802.11n support
* Nstreme and Nstreme2 proprietary protocols
* Wireless Distribution System (WDS)
* Virtual AP
* WEP, WPA, WPA2
* Access control list
* Wireless client roaming
* WMM
* HWMP+ Wireless MESH protocol
* MME wireless routing protocol
DHCP
* Per interface DHCP server
* DHCP client and relay
* Static and dynamic DHCP leases
* RADIUS support
* Custom DHCP options
Hotspot
* Plug-n-Play access to the Network
* Authentication of local Network Clients
* Users Accounting
* RADIUS support for Authentication and Accounting
QoS
* Hierarchical Token Bucket (HTB) QoS system with CIR, MIR, burst and priority support
* Simple and fast solution for basic QoS implementation – Simple queues
* Dynamic client rate equalization (PCQ)
Proxy
* HTTP caching proxy server
* Transparent HTTP proxy
* SOCKS protocol support
* DNS static entries
* Support for caching on a separate drive
* Parent proxy support
* Access control list
* Caching list
Tools
* Ping, traceroute
* Bandwidth test, ping flood
* Packet sniffer, torch
* Telnet, ssh
* E-mail and SMS send tools
* Automated script execution tools
* CALEA
* File Fetch tool
Other features
* Bridging – spanning tree protocol (STP, RSTP), bridge firewall and MAC natting.
* Dynamic DNS update tool
* NTP client/server and synchronization with GPS system
* VRRP
* SNMP
* M3P – MikroTik Packet packer protocol for wireless links and ethernet
* MNDP – MikroTik neighbor discovery protocol, supports CDP (Cisco discovery protocol)
* RADIUS authentication and accounting
* TFTP server
* Synchronous interface support (Farsync cards only)
* Asynchronous – serial PPP dial-in/dial-out, dial on demand
* ISDN – dial-in/dial-out, 128K bundle support, Cisco HDLC, x75i, x75ui, x75bui line protocols, dial on demand

Mikrotik DoS attack Protection


  • Limit incoming connections
Address with too much connections can be added to address list for blocking.
 
 
/ip firewall filter add chain=input protocol=tcp connection-limit=LIMIT,32 action=add-src-to-address-list  address-list=blocked-addr address-list-timeout=1d 
/ip firewall filter add chain=input protocol=tcp src-address-list=blocked-addr connection-limit=3,32 action=tarpit 
 
 

where LIMIT is max. number of connection per IP. LIMIT should be 100 or higher as many services use multiple connection (HTTP, Torrent, other P2P programs).
  • Action tarpit
Instead of simply droping attackers packets(action=drop) router can capture and hold connections and with enough powerfull router is can kill the attacker.