Все самое необходимое для настройки Mikrotik RouterOS Вы сможете найти в нашем пособии "Микротик. Базовая
настройка". Настройка от А до Я с разбором функций и проблем, которые могут возникнут у простого
пользователя в процессе внедрения Mikrotik под свои задачи. На сайт руководство Mikrotik будет выкладываться по
частям, которые сведены в плане. С нашим руководством настройка Mikrotik RouterOS не станет помехой для
достижения поставленных целей.
Сюда вошли наиболее типичные проблемы и их решения.
Теперь они собраны в одном месте, а не разбросаны по крупицам по все му интернету.
Есть что добавить? - оставляйте Ваши комментарии.
Это нужно знать наизусть. Иначе можно многое напутать...
Представьте комп с двумя сетевыми картами. Будем называть его ШЛЮЗ.
В одну карту входит интернет. Со второй выходит к свичу.
А к свичу подключены другие компы.
За этими компами люди в интернете лазяют.
Так вот. Трафик идущий от людей в интернет и обратно - это для шлюза транзитный-проходящий
трафик FORWARD
Это левая диаграмма. Как раз наш случай с Микротик.
А если на самом шлюзе запускаются браузер, почта и пр.
То это уже Входящий и Исходящий трафик для шлюза. Не транзитный. INPUT и OUTPUT.
Т.к. конечная точка всех пакетов - это сам шлюз, а не компы за шлюзом.
Это левая и правая диаграмма, только без центрального блока FORWARD.
В Микротике правая практически никогда не задействована.
Так что про INPUT-OUTPUT забудьте.
Только для блокировки входящих пакетов.
"И на кой черт мне это нужно?" Спросите Вы.
Все просто. Зайдите в IP - Firewall.
Там есть 3 вкладки Filter, NAT и Mangle.
В Filter и Mangle есть все 3 цепочки - Prerouting, Forward и Postrouting. И еще 2 цепочки
Input Output.
В NAT есть только цепочки DstNat и SrcNat.
Filter - разрешает-запрещает пакеты, совпадающие по условию записи в Filter.
NAT - это чаще всего правило SrcNat-Masquerade - чтоб люди могли ходить в интернет.
И DstNat-DstNat - чтоб с интернета можно было добраться до компьютеров и роутеров в вашей сети.
Mangle - продвинутый маркировщик пакетов.
Предположим клиент вашей сети имеет адрес локальный 192.168.0.2
а IP Микротика 80.80.80.1 - это интернет адрес.
Когда клиент запрашивает веб-страницу, к нему сыплятся пакеты.
Но не на его адрес, а на адрес Микротика. Потому как адрес 192.168.0.2 локальный, и само собой напрямую на этот
адрес прийти ничего не может.
Т.е. Микротику приходит пакет с Dst.Address - 80.80.80.1
1. Mangle Prerouting, Nat Prerouting - правила в этих 2 цепочках Самые первые обрабатывают
пакет.
Никаких локальных адресов в пакете нет, только внешний адрес Микротика!
2. Далее срабатывает Firewall - NAT.
Происходит подмена (из таблицы NAT) для входящих пакетов внешнего IP на локальный.
или DstNat (это для тех, кто пытается достучаться до локальных IP-адресов из интернета)
Т.е. теперь Dst.Address пакета не 80.80.80.1, а уже локальный адрес клиента - 192.168.0.2.
3. Теперь срабатывают правила в цепочках Mangle Forward и Filter Forward.
Тут уже можно фильтровать клиентов вашей сети.
4.Далее снова срабатывает NAT.
Здесь создаются записи в таблице NAT для исходящих пакетов. Т.е. срабатывает SRC-NAT.
По этим записям будет происходить обратная замена IP, когда придут ответные пакеты.
И для исходящих пакетов происходит подмена локального IP 192.168.0.2 на IP Микротика 80.80.80.1.
5. И последний этап - Mangle Postrouting, Nat Postrouting.
Никаких локальных адресов в пакете нет, только внешний адрес Микротика!
Далее все это направляется в шейпер. Queue Tree и Simple Queue.
Для Транзитного траффика: сеть -> mangle PREROUTING -> nat PREROUTING -> mangle FORWARD -> filter
FORWARD -> mangle POSTROUTING -> nat POSTROUTING -> сеть
6.2. Firewall Filter — блокируем и разрешаем.
Здесь создаются блокирующие и разрешающие правила.
Если записей никаких нет - то все разрешено.
Порядок записей имеет значение.
Проверка правил происходит сверху вниз.
Если пакет соответствует правилу, то дальнейшая проверка не происходит, если конечно не стоит галка PassTrugh
Есть 2 варианта.
Мягкий - Добавлять только запрещающие правила. Все остальное разрешать.
Жесткий - поставить запрещающее правило на все. А сверху добавлять разрешающие.
Блокируется или входящие пакеты или исходящие.
Важно!
1. Никогда не пытайтесь одним правилом блокировать входящие и исходящие пакеты одновременно.
Это ошибка.
Просто создайте при необходимости 2 правила - на входящие и исходящие пакеты.
А лучше блокировать только исходящие пакеты еще на взлете. Входящих пакетов само собой уже не будет.
Да и Роутер разгрузится от лишнего входящего траффика.
2. Есть 2 типа пакетов - входящие и исходящие. Важно! Src.Address и Dst.Address в правилах меняются местами. В
зависимости от направления движения пакета. Входящие - это из интернета к нам.
Src.Address - это интернет-адрес отправителя (сервера в интернете).
Dst.Address - это интернет-адрес Микротика (получателя). Если это правило в цепочке PreRouting. или
Dst.Address - это локальный адрес клиента (получателя). Если это правило в цепочке Forward или PostRouting.
Исходящие - это от нас в интернет.
Src.Address - это интернет-адрес отправителя (Микротика) . Если это правило в цепочке
PostRouting. или
Src.Address - это локальный адрес клиента (отправителя). Если это правило в цепочке Forward или Prerouting.
Dst.Address - это интернет-адрес получателя (сервера в интернете).
3. В правилах всегда указывайте Out. Interface или In. Interface.
Причем, если указываете In. Interface - LAN1, то это исходящий трафик.
Значит Dst.Address - это должен быть адрес интернет-ресурса. А Src.Address - это адрес вашей локалки или
Микротика.
если указываете Out. Interface - LAN1, то это входящий трафик.
Значит Dst.Address - это должен быть адрес вашей локалки или Микротика. А Src.Address - адрес интернет-ресурса.
Это очень важно!
То же самое (п. 1 и 2) касается и Mangle.
6.3. NAT. Проброс портов
/ip firewall nat add action=dst-nat chain=dstnat disabled=no dst-port=10010 protocol=tcp to-addresses=192.168.88.10 to-ports=80
В данном случае на компе с адресом 192.168.88.10 запущен веб сервер.
Если внутри вашей сети набрать в браузере 192.168.88.10 - то откроется локальный сайт.
А если с другого компа в интернете набрать в браузере 80.80.80.1:10010
80.80.80.1 - это Ваш внешний_IP_адрес_Микротика, то Вы попадете на свой сайт, который находится на
компьютере 192.168.88.10.
6.4. Маркировщик Mangle. Следим и помечаем трафик
Это очень мощное средство. Позволяет маркировать пакеты по любым правилам.
Подчиняется тем же правилам, что описаны в разделе 6.2. FireWall Filter.
Но Мангле ничего не запрещает и не разрешает. Он просто помечает трафик.
Соединения, пакеты, маршруты и пр.
Умеет также добалять в AddressList, Менять TTL пакетов, приоритет, порядок цепочек и пр. пр.
Это для дальнейшей обработки в файрволле или шейпере.
6.5. Address List. Для чего он?
Это в основном для того, чтоб не указывать кучу однотипных правил для разных IP, а кинуть эти IP в один Address List.
И затем создать только одно правило на этот Address List.
Кроме того, правила Mangle - сами могут добавлять IP адреса в определенный Address List.
Например, добавить в Address List "ICQ" - те IP, которые пользуются ICQ.
Чрезвычайно удобная штука!
6.6. Нарезаем скорость. Simple Queues
Простой шейпер. Важно! Проверка правил шейпера происходит сверху вниз.
Если какое-то правило шейпа сработало, то дальнейшая проверка уже не производится!
Добавляем IP или список IP, для которых в сумме можно выставить максимальну скорость Max Limit.
Отдельно входящую и исходящую скорость.
Можно также выставить гарантированную скорость - Limit At.
Но с этим будьте осторожны! Если у Вас канал плавающий по скорости - лучше отключить.
Также можно включить дополнительные колонки, которые показывают входящую и исходящую скорости (Total Tx Bytes,
Total Rx Bytes). (Правой кнопкой мыши по окну Queue. Затем Showcolumns и крутим ниже... )
А также потребленный входящий и исходящий трафик. (Rx Avg. Rate и Tx Avg. Rate )
Начиная с момента последней перезагрузки роутера.
Можно скорости писать в виде 500K, 2M, а также можно указать скорости Burst Limit (с Burst TreshHold, Burst Time)
Это взрывная кратковременная скорость.
Очень эффективно при низкоскоростных тарифах и если Вас качальщики задрали.
Веб сайты открываются тогда моментом на Burst скорости, а закачки идут на обычной скорости.
Если у Вас Dual Access, то можно для каждого клиента создать еще одну дополнительную запись с высокой
скоростью на локальные ресурсы.
Только нужно дополнительно указать Dst. Address 10.0.0.0/8 - это Ваши локальные ресурсы.
Эту запись нужно поставить выше основной записи клиента.
Если Вы скорость на локальные ресурсы не хотите подрезать вообще, то можно создать только одну общую
запись с Dst. Address - 10.0.0.0/8, Target Address - пустой, скорость Tx, Rx указать по максимуму - например
1G и поместить ее на самый верх.
Важно! Очень советую в самый конец добавлять правило END.
Все, что не сработало по любому из шейпером - будет шейпится в правиле END.
На этом правиле будет учитываться, подрезаться или блокироваться весь неучтенный трафик.
Ну, например, Вы по невнимательности забыли кого-то добавить в шейпер.
И человек получит всю доступную скорость без любых огранечиний! Тем самым может положить канал!
Правило END для учета и подрезки неучтенного траффика:
add interface=all max-limit=100k/100k name=END target-addresses=192.168.0.0/16
Для учета без подрезки - ставим max-limit=100M/100M
Для подрезки под 0 - ставим max-limit=10/10
192.168.0.0/16 - Весь диапазон, не попавший в верхние правила.
6.7. Нарезаем скорость. Tree Queues
По функциональности он гораздо продвинутее. Этот шейпер срабатывает раньше Simple Queue.
Эффективен особенно при методе PCQ. И большом количестве клиентов 100 и более.
В нем входящая и исходящая скорости нарезаются отдельными правилами.
Он работает только в связке с Мангле.
Итак. 6 шагов.
Придумаем несколько Адрес листов - например 1M и 5M. Это тарифные планы.
1. В IP-Firewaal-Address List Добавляем IP юзеров - и вписываем им 1М или 5М.
2. Далее в IP-Firewall-Mangle маркируем Connection-ы.
Создаем правило forwad. Action - mark connection (New Connection Mark называем к примеруConn-5M или Conn-1M, Passtrough - включаем),
Ставим Connection State - new, Out. Interface - LAN1, а также наш Dst. Address List - 1M или 5M.
3. Затем ниже создаем правило forward. Action - mark packet. (New Packet Mark называем к примеру p-5M или p-1M, Passtrough - включаем) Connection Mark - ставим Conn-5M или Conn-1M соответственно.
4. Далее в Queue Types создаем PCQ-правило к примеру PCQ-Download, в нем Dst. Address - включаем.
5. Затем в Queue Tree - создаем родителя, называем его Download, а Parent - наш LAN1 интерфейс.
6. Создаем еще два правила в Queue Tree - называем правило к примеру Speed-5M,
указываем родителя Download, Queue Type - PCQ-Download, Packet Marks - p-5M и указываем нашу скорость Max Limit - 5M
(а второе правило то же самое, только имя правила Speed-1M, Packet Marks - p-1M, а скорость Max Limit - 1M )
Все.
Эти два правила будут будут нарезать трафик всем клиентам.
Достаточно адрес IP клиента добавить в нужный Adrress List.
Все кто в Адрес лист 1M - получат скорость 1M
Все кто в Адрес лист 5M - получат скорость 5M
Чтобы изменить скорость всем 5M на 10M - достаточно только в QueueTree поменять одну строчку - Max Limit.
Т.е. скоростя каждому в отдельности не прописываются, а прописываются тарифные планы - т.е. Packet Mark
На исходящий тарафик нужно создать нового родителя с parent - наш WAN1. Также создать в Queue Type - PCQ-Upload, в нем Src. Address - включаем.
Все остальное аналогично.
Графики для Queue Tree - недоступны.
А как же смотреть, кто сколько скачал и на какой скорости и кто качает?
Все просто. Добавляем в IP-Firewall-Mangle - на каждый IP - свою запись: Chain - forward. Out. Interface - LAN1. Dst. Address - наш IP. Action -Passtrouh.
Эти записи ставим ниже записей mark-connection и mark-packet. Включаем дополнительную колонку - Rate.
Это и есть текущая скорость. (Правой кнопкой мыши по окну Mangle. Затем Showcolumns и крутим в самый
низ, пока не найдем Rate )
Колонка Bytes - это потребленный трафик Download (Rx).
6.8. Включаем Графики
Графики траффика доступны для всех интерфейсов, и Simple Queue. А
также доступны графики загрузки процессора, памяти, флеш-памяти. За сутки, за неделю, за месяц, за год.
Графики включаются в Tools - Graphing.
Просто добавьте нужные позиции.
Посмотреть графики можно на Веб-странице Микротика.
При перезагрузке графики сохраняются.
При перепрошивке графики обнуляются.
Скачиваем версию пакетов под ваш Микротик.
Вместо 5.16 ставим - вашу версию Router OS. Важно! Версия пакета должна совпадать с версией вашей Router OS! http://www.mikrotik.com/download
Распаковываем. Перетаскиваем multicast...npk на WinBox.
Перезагружаемся.
Далее идем в System-Packages. Там должен быть multicast пакет.
Идем в Route - там должен быть IGMP Proxy.
1-2. Route - IGMP Proxy - 2 записи.
3. IP-Route - добавляем маршрут на локалку
4. IP-Firewall-Filter - разрешающее правило на локалку. Или пока все отключить.
5. IP-Firewal-NAT - Out Interface пустой
6. WiFi - WMM support включить
6.10. Резервирование 2 и более каналов
По умолчанию пакеты идут через WAN1.
Если WAN1 отвалится - все пакеты пойдут на WAN2.
В NAT - Out. Inteface - пустой.
В IP - DHCP Client - Add Default Route - можно отключить
6.11. Балансировка 2+ каналов
Балансировка через маршруты. Соединения вперемешку будут идти через WAN1 или WAN2
Метод хорошо работает при каналах приблизительно равных по скорости.
Разница по скорости каналов не должна отличаться более чем в 2 раза.
В Мангле - эти правила поднимите наверх.
Можно добавить еще маршрут без маркировки на всякий пожарный:
add disabled=no dst-address=0.0.0.0/0 gateway=80.80.80.1 scope=255
В NAT - Out. Inteface - пустой.
В IP - DHCP Client - Add Default Route - можно отключить
Важно! При каналах сильно отличающихся по скорости он мало эффективен.
В таком случае советую использовать резервирование каналов по п. 6.10.
Слабый канал погоды все-равно не сделает. А скоростному мешать будет.
Interface-Bonding - Балансировка Round-Robin...
Балансировка через скрипты...
6.12. Запрет определенных сайтов по имени
Открываем New Terminal. И вставляем наше правило. Не забудьте поднять его наверх.
Можете также вручную кнопкой [+] создать это правило.
Все. сайт mikrotik.org больше не откроется. Тем самым Вы блокируете только исходящие запросы еще на взлете.
Роутеру уже на нужно фильтровать входящие пакеты от этого сайта, потому как Входящих пакетов само собой дальше
уже не будет.
А исходящий трафик обычно в 10-20 раз меньше входящего. Да и фильтруются только исходящие TCP запросы.
Кроме того сами исходящие GET-запросы копеечные по траффику - до 200-500 байт. Они помещаются
в один пакет. Т.к. что нагрузка на правило content - мизерная.
Кроме того не будут блокироваться сайты, содержащие строчку Host: mikrotik.org
и будут проходить get-запросы содержащие строчку mikrotik.org.
Что есть очень хорошо.
src-address - ставим IP компьютера-жертвы.
content="Host: mikrotik.org" - блокируемый сайт
Если нужно блокировать доступ к сайту для всех компов, убираем эту строчку src-address.
Если нужно блокировать только определенным компьютерам - то создайте во вкладке address-list, записи с IP
блокируемых компьютеров. И назовите эти записи к примеру block-website.
А вот Этот адрес-лист укажите уже в записи Src.Address List. Src-address - удалите
6.13. Определяем у кого стоят роутеры по TTL
Все IP адреса, которы сидят за роутерами, попадут в Address-List Router
Как это применить - есть куча вариантов.
/ip fi ma
add ac=add-src-to-address-list ch=prerouting in-i=LAN1 ttl=equal:63 address-list=Router
add ac=add-src-to-address-list ch=prerouting in-i=LAN1ttl=equal:127address-list=Router
И наоборот, можно спрятать вашу сеть от фильтра TTL провайдера.
1. Блокируем порты спамеров и зараженных троянами-вирусами компов.
/ ip firewall filter add chain=forward prot=tcp dst-port=25 src-address-list=spammer act=drop
2. Добавляем в address-list=spammer наших спамеров на 30 дней :
/ ip firewall filter add chain=forward prot=tcp dst-port=25 connection-limit=30,32 limit=50,5src-address-list=!spammeraction=add-src-to-address-listaddress-list=spammeraddress-list-timeout=30d
При большом количестве соединиений на 25 порт - IP юзера заносится в address-list=spammer
А Этот address-list=spammer - блокируется файрволлом.
Вы ж не хотите, что б Ваш провайдер Вам позакрывал порты? Или хотите?
6.15. Настройка Static DNS
Static DNS нужен чтобы к любому компу в сети обращаться не по IP адресу, а по придуманному
имени. Что очень удобно.
IP - DNS - Static DNS - [+] Добавляем пару к примеру IP-адрес - и DNS-имя. 192.168.0.1 - myrouter.net
Таперь на наш роутер можно заходить по myrouter.net
6.16.Кешируем с помощью Web-Proxy
Кеширование используется для:
1. Ускорения интернет. Особенно Эффективно при медленном интернете.
Часто запрашиваемые файлы хранятся на флеш-памяти или винте.
При повторном запросе - эти файлы не закачиваются с интернета, а берутся из кеша Микротика
2. Для экономии траффика. Хорошо при платном траффике.
3. Для котроля - кому какие сайты разрешать и пр.
Весь трафик проходит через прокси микротика. На прокси ставиться порт 8080 и затем включается прозрачный прокси.
6.17. Редирект на страницу-напоминалку
Очень эффективно не просто отключать пользователей, а напоминать им - почему они отключены!
К примеру, у Вас есть комп в сети 192.168.0.10. Там находится Веб-сервер и страница-напоминалка-пополнялка-личный
кабинет. Она доступна по адресу 192.168.0.10
Итак 4 шага.
1. Сначала добавляем в IP-Firewall-Address List - IP всех юзеров с записью ALLOW .
Эти правила кинуть вниз. Это для полной блокировки любой активности (а не только ВЕБ-серфиннг) юзеров, которые
не в ALLOW.
Затем юзеров - которых нужно перенаправить - просто отключаем крестом в Address List, вручную или скриптом
при отрицательном баллансе из биллинга. Один клик и готово.
Теперь, когда юзер наберет anysite.com - он автоматом попадет на Вашу странцу.
Но когда он наберет - anysite.com/anypage.php - он увидит ошибку, а не Вашу страницу!
Поэтому:
4. на вебсервере в корне страницы-напоминалки добавляем файл .htaccess с редиректом:
где - /index.html - это Ваша страница напоминалка.
Или вариант №2 - сделать страницу 404.php и включить ее в .htaccess, а в 404.php сделать include вашей страницы напоминалки
или просто скопировать ее содержимое.
Все.
Теперь куда бы пользователь не зашел - он всегда увидит Вашу страницу.
Вот так все просто.
6.18. Шейпим торренты
Торренты задрали? Тогда Вам сюда. Блокировка torrent на mikrotik.
Данный метод режет все торренты. И шифрованные в том числе. И он нересурсоемкий для Микротика.
Хотя его можно еще ускорить. Знаю как. Но не скажу
p2p=all-p2p - работает только для редких нешифрованных торрент-клиентов.
Маркируем входящие торрент-пакеты по размерам, портам и протоколам:
Если нужна обработка нижележащих цепочек - Укажите всюду passthrough=yes. Далее можно
добавить новое правило Torrent-5M в раздел Queue Tree в родителя Download. Указав Packet Marks - Torrent. И желаемую скорость 5M.
5M - это скорость для каждого или для всех в сумме, в зависимости от выбора Queue Type в PCQ Dst. Address Mask 32 или 24.
Или добавить одно правило на самый верх в Simple Queue. Указав Packet Marks - Torrent. И
желаемую Tx скорость 50M.
50M - это скорость общая на всех торрентов-клиентов. В Simple Queue можно каждому указать скорость
на торрент в отдельности. Т.е. для каждого IP создать дополнительную запись. Эта запись должна быть выше
основной записи IP клиента.
Или уже решайте на свое усмотрение, что с этими маркированными пакетами делать.
Учитывайте, что сюда также могут иногда попасть пакеты из онлайн игр...
Других более эффективных методов маркировки торрентов нет. По крайней мере я не знаю таких...