ГородКиев
Язык сайта
Укр
Рус
Войти в кабинет
Каталог товаров
Пассивное сетевое оборудование
Активное сетевое оборудование
Оптические компоненты
Короб, лотки, гофра, инструмент
Электропитание, электрика

Mikrotik. Как решать типичные проблемы? — 14 распространенных особенностей администрирования Микротик

19 апреля 2022

Собрали самые типичные проблемы, которые могут возникнуть у сисадмина с Микротиками и показали, как их решать. Читайте подробный гайд и пусть все работает, как надо.

 

Mikrotik. Как решать типичные проблемы? — 14 распространенных особенностей администрирования Микротик - фото 11

 

№1 Как в Микротик ходит трафик?

Это нужно знать, иначе легко запутаться во многих вещах. Итак, давайте представим компьютер, оснащенный двумя сетевыми картами. Мы назовем его шлюзом. В одну карту шлюза входит интернет, а со второй карты он выходит к коммутатору. К свитчу же подключены другие компьютеры, за которыми работают пользователи и, конечно, выходят в интернет.

Итак, трафик, который поступает от пользователей в интернет и обратно, представляет собой транзитно-проходящий трафик FORWARD для шлюза. А вот если браузер, почта и другие подобные службы запускаются на самом шлюзе, то это уже не FORWARD, а INPUT и OUTPUT, то есть не транзитный трафик. Это обусловлено тем, что конечной точкой для всех пакетов выступает сам шлюз, а не компьютеры за ним. Однако в Mikrotik такой вариант практически никогда не задействован, только FORWARD.

А INPUT-OUTPUT используется только для блокировки входящих пакетов.

  • Filter — пропускает или не пропускает пакеты, которые совпадают по условию записи в нем.
  • NAT — чтобы пользователи могли заходить в интернет, чаще всего используется правило SrcNat-Masquerade.
  • DstNat-DstNat — необходим для того, чтобы из интернета можно было получить доступ к роутерам и компьютерам в вашей сети.
  • Mangle — представляет собой маркировщик пакетов продвинутого уровня.

Допустим, у клиента в вашей сети локальный адрес — 192.168.0.2, а IP-адрес Микротика 80.80.80.1 представляет собой интернет адрес. Когда пользователь запрашивает страницу в браузере, к нему направляются пакеты. Только не на его ай пи, а на адрес Микротика, поскольку IP клиента локальный, а значит напрямую на такой адрес ничего не приходит. Другими словами, на устройство Mikrotik приходит пакет с 80.80.80.1 (Dst.Address).

Mangle Prerouting, Nat Prerouting — эти правила первыми обрабатывают пакет данных. В нем нет никаких локальных адресов, только внешний IP Микротика.

Затем срабатывает Firewall — NAT.

Из таблицы NAT осуществляется подмена для входящих пакетов внешнего ай пи адреса на локальный. Или же может сработать DstNat, если кто-то пытается из интернета достучаться до локального IP.

После этого Dst.Address пакета уже не 80.80.80.1, а локальный адрес клиента — 192.168.0.2.

Далее срабатывают правила в цепочках Mangle и Filter Forward. Здесь уже может происходить фильтрация клиентов в сети.

Потом снова активируется NAT, где создаются записи в таблице для исходящих пакетов (SRC-NAT). По ним будет осуществляться обратная замена айпи, когда придут ответные пакеты данных. То есть для исходящих пакетов локальный ай пи заменяется ай пи Микротика.

Последний этап — правила Mangle Postrouting, Nat Postrouting. В пакете нет локальных адресов, только внешний IP Микротика. Все эти данные направляются в шейпер: Queue Tree и Simple Queue.

Для транзитного трафика: сеть → mangle PREROUTING → nat PREROUTING → mangle FORWARD → filter FORWARD → mangle POSTROUTING → nat POSTROUTING → сеть

№2 Firewall Filter — блокировка и разрешение доступа

Тут создаются правила, которые блокируют трафик или разрешают его. Обратите внимание, что если никаких записей для фильтрации не создано, значит все по умолчанию разрешено. Также стоит знать, что последовательность записей важна, а сама проверка правил осуществляется сверху вниз. Если пакет соответствует правилу, то дальше он не проверяется при условии, что галочка PassTrugh не стоит.

Доступны два варианта:

  1. Мягкий. В этом случае в фильтр добавляются только правила, которые запрещают доступ. Все остальное разрешается.
  2. Жесткий. В этом случае запрет на доступ выставляется на весь трафик. А потом добавляются разрешения.

Важно! Блокируются либо входящие, либо исходящие пакеты. Одним правилом нельзя заблокировать и те, и другие одновременно. Если есть необходимость такой блокировки, нужно создать два правила: одно на входящие, а второе — на исходящие пакеты. При этом лучший вариант блокировать только исходящие пакеты с самого начала. Таким образом входящих пакетов просто не будет, да и маршрутизатор не будет нагружаться лишним входящим трафиком.

Стоит отметить, что Src.Address (отправитель, сервер в интернете) и Dst.Address (получатель) в правилах меняются друг с другом местами в зависимости от того, куда направлен пакет.

Так, если правило будет создано в цепочке:

  • PreRouting, то Dst.Address будет адресом Микротика (отправителя) а Src.Address будет адресом клиента — получателя.
  • PostRouting или Forward, то Dst.Address будет локальным адресом клиента (отправителя). А Src.Address будет интернет-адресом получателя Микротика.

В правилах всегда необходимо указывать Out. Interface или In. Interface. При этом если будет указано In. Interface — LAN1, то это будет исходящим трафиком, а значит Dst.Address должен быть адресом интернет-ресурса, а Src.Address, соответственно, будет локальным адресом. Если же вы указываете Out. Interface — LAN1, то будет входящий трафик, соответственно, адреса поменяются местами.

То же самое касается и Mangle.

№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 будет внешним ай пи адресом Микротика, и вы попадете на свой сайт, который расположен на компьютере с адресом 192.168.88.10.

№4 Mangle — маркировка трафика

Это продвинутая штука, которая дает возможность маркировать пакеты по любым правилам. При этом маркировщик Mangle подчиняется тем же правилам, что и FireWall Filter. Правда, он ничего не разрешает и не запрещает. Ведь его задача — просто маркировать трафик: маршруты, соединения, а также пакеты и т. п. Кроме того, он умеет добавлять все в AddressList, а также изменять TTL пакетов, выставлять приоритеты и т. д. Это будет полезным для обработки трафика в шейпере и фаерволе в дальнейшем.

 

№5 Как и зачем использовать Address List?

Список адресов пригодится, чтобы не прописывать для разных IP множество однотипных правил. Эти адреса можно забросить в список, а потом создать одно правило для всего Address List. Отметим, что правила маркировщика, о котором мы написали выше, могут сами добавлять адреса в определенный список. К примеру, Mangle позволяет добавить в Address List «Viber», то есть те ай пи, которые пользуются мессенджером.

 

№6 Как пользоваться Simple Queues

Это простой шейпер. Правда, необходимо помнить, что в нем правила проверяются сверху вниз. И если какое-то из правил сработало, дальше диагностики не будет. Тут все просто: можно добавить айпи или список адресов, для которых можно выставить максимальный показатель скорости — Max Limit. При этом необходимо отдельно задавать входящую и исходящую скорость. Также есть возможность установить гарантированную скорость — Limit At. Однако если у вас канал, который плавает по скорости, то лучше такую функцию выключить.

Еще есть возможность включить дополнительно колонки, отображающие показатели входящей и исходящей скорости — Total Tx и Total Rx Bytes соответственно. Для этого нужно кликнуть правой кнопкой мышки по Queue и выбрать Show columns. Также можно отобразить колонки потребляемого трафика, входящего и исходящего — Rx и Tx Avg. Rate.

Кстати, можно писать скорости как 500К, 2М, можно указывать взрывную кратковременную скорость 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: 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. Это весь диапазон, который не попал в правила выше. У него больше функциональных возможностей, да и срабатывает он раньше, чем Simple Queue.

Он особенно эффективен при PCQ и количестве клиентов от 100 и больше. В этом случае скорости, как входящая, так и исходящая, нарезаются с помощью отдельных правил. Работает эта штука только вместе с Mangle.

Порядок действий такой:

  1. Придумать несколько адрес-листов, к примеру, 1М и 5М. Это будут тарифные планы.
  2. В IP-Firewall-Address List добавить IP юзеров и вписать им 1М или 5М.
  3. В IP-Firewall-Mangle промаркировать соединения (Connection).
  4. Создать правило forward. Action — mark connection (New Connection Mark можно назвать Conn-1M или Conn-5M, включить Passtrough).
  5. Поставить Connection State — new, Out. Interface — LAN1, а также Dst. Address List — 1M или 5M.
  6. Ниже создать правило forward. Action — mark packet. (New Packet Mark можно назвать p-5M или p-1M, включить Passtrough).
  7. Connection Mark — поставить Conn-5M или Conn-1M соответственно.
  8. Создать PCQ-правило в Queue Types, например, PCQ-Download, в нем включить Dst. Address.
  9. Создать родителя в Queue Tree и назвать его Download, а как Parent — указать наш LAN1 интерфейс.
  10. Создать еще два правила в Queue Tree: назвать одно правило, например, Speed-5M, указать родителя Download, Queue Type — PCQ-Download, Packet Marks — p-5M и поставить нашу скорость Max Limit — 5M. Второе правило будет таким же, только везде надо указывать 1М.

Вот и все. Пара этих правил будет нарезать трафик всем пользователям, достаточно добавить в нужный список адресов IP клиента. Так, каждый, кто попадет в список 1М получит соответствующую скорость, то же самое для списка 5М. А чтобы изменить скорость всем 5М на 10М, нужно только изменить всего одну строчку в 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. Она отображает текущую скорость. А колонка Bytes покажет потребляемый трафик Download (Rx).

№7 Как активировать графики?

Для всех интерфейсов, а также Simple Queue доступны графики трафика, загрузки процессора, а также памяти и flash-памяти. Их можно посмотреть за 24 часа / 7 дней / 30 дней / 365 дней. Включаются графики в Tools. Там необходимо выбрать Graphing и добавить нужные страницы. Посмотреть их можно будет на веб-странице Mikrotik. При этом они сохраняются даже при перезагрузке, а вот при прошивке сбрасываются.

№8 Как настроить IPTV?

Первым делом необходимо скачать версию пакетов именно для вашего устройства Микротик, а затем поставить вашу версию RouterOS, которая должна совпадать с версией пакета. После нужно распаковать архив, перетащить multicast…npk на WinBox и перезагрузить. После нужно зайти в System-Packages и найти multicast пакет. Затем необходимо зайти в Route и отыскать там IGMP Proxy.

Дальше для локальной сети нужно добавить маршрут в IP-Route, а также разрешающее правило в IP-Firewall-Filter. Или пока что можно все отключить. Обратите внимание, что IP-Firewall-NAT — Out Interface необходимо оставить не заполненным, а также нужно включить WiFi WMM support.

№9 Как зарезервировать и сбалансировать от 2 каналов

Пакеты проходят через WAN1 по умолчанию, но если WAN1 отпадет, то все пакеты будут проходить через WAN2.

Как это сделать:

/ip route
add check-gateway=arp dst-address=0.0.0.0/0 gateway=80.80.80.1 routing-mark=r1 distance=1
add check-gateway=arp dst-address=0.0.0.0/0 gateway=90.90.90.1 routing-mark=r2 distance=2

При этом NAT — Out. Interface нужно оставить пустым, а также можно отключить в IP — DHCP Client — Add Default Route.

Балансировка двух и более каналов осуществляется через маршруты. При этом соединения будут проходить вперемешку через WAN1 или же WAN2. Такой способ хорошо работает, если каналы примерно равны в плане скорости. Сама же разница в скорости на каналах не должна отличаться больше, чем в два раза. Эти правила нужно поднять наверх в Mangle.

1.

/ip firewall mangle
add act=mark-connection ch=prerouting connection-state=new new-connection-mark=c1 nth=2,1 passthrough=yes
add act=mark-connection ch=prerouting connection-state=new new-connection-mark=c2 nth=2,2 passthrough=yes
add act=mark-routing ch=prerouting connection-mark=c1 new-routing-mark=r1 passthrough=yes
add act=mark-routing ch=prerouting connection-mark=c2 new-routing-mark=r2 passthrough=yes

2.

/ip route
add check-gateway=arp dst-address=0.0.0.0/0 gateway=80.80.80.1 routing-mark=r1 scope=255
add check-gateway=arp dst-address=0.0.0.0/0 gateway=90.90.90.1 routing-mark=r2 scope=255

Маршрут без маркировки:

add disabled=no dst-address=0.0.0.0/0 gateway=80.80.80.1 scope=255

При этом необходимо оставить пустым NAT — Out. Interface, а также можно отключить в IP — DHCP Client — Add Default Route.

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

№10 Как установить запрет определенным сайтам

Сделать это можно по имени сайта. Для этого необходимо открыть New Terminal. И вставить правило:

/ip firewall filter add act=drop chain=forward cont="Host: mikrotik.org" prot=tcp src-address=192.168.0.2 in-int=LAN1

Его необходимо поднять наверх, и сайт больше открываться не будет. Это дает возможность заблокировать исходящие запросы в самом начале. И роутеру уже не придется фильтровать пакеты, которые идут от этого сайта, ведь входящих пакетов просто не будет. А входящий трафик обычно раз в 10 больше исходящего. Вдобавок, фильтруются только исходящие TCP запросы, а GET-запросы легкие (до 200-500 байт) и помещаются в один пакет. Благодаря этому нагрузка на правило content будет минимальной.

Также отметим, что сайты, которые содержат строку Host: mikrotik.org, равно как и GET-запросы со строчкой mikrotik.org блокироваться не будут. Нужно в src-address прописать IP компьютера-жертвы и прописать блокируемый сайт в правило, то есть content=”Host: mikrotik.org”. Если понадобится заблокировать доступ к нему для каждого компьютера, то нужно просто убрать строку src-address. А если нужно заблокировать доступ только для некоторых ПК, то можно создать вкладку с айпи адресами в address-list. Записи можно назвать block-website или что-то подобное. При этом список адресов нужно указывать именно в Src.Address List, а Src-address понадобится удалить.

№11 Как найти роутеры по TTL и заблокировать порты спамеров

В этом случае каждый ай пи адрес, который находится за роутером, попадает в соответствующий список — 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=LAN1 ttl=equal:127 address-list=Router

Кроме того, сеть можно скрыть от TTL фильтра провайдера.

Делается это так:

/ip firewall mangle add action=change-ttl chain=prerouting new-ttl=increment:1 passthrough=yes

Это правило необходимо поднять на самый верх.

Чтобы заблокировать порты компьютеров, зараженных вирусами, а также спамеров, необходимо ввести команду:

/ip firewall filter
add chain=forward prot=tcp dst-port=25 src-address-list=spammer act=drop

Можно добавить спамеров в address-list=spammer на определенный период, например, на 30 дней:

/ip firewall filter
add chain=forward prot=tcp dst-port=25 connection-limit=30,32 limit=50,5 src-address-list=!spammer action=add-src-to-address-listaddress-list=spammer address-list-timeout=30d

Если соединений на 25 порт много, то ай пи адрес пользователя будет внесен в список адресов-спамеров, которые блокируются фаерволом.

№12 Как настроить Static DNS и выполнить кеширование через Web-Proxy

Статический DNS нужен, чтобы к любому компьютеру в сети обращаться по его имени, а не IP адресу.

Как это сделать?

В IP выбрать DNS, затем — Static DNS, а потом нажать на плюсик и добавить пару — айпи адрес и DNS имя, к примеру, 192.168.0.1 и myrouter.net

Теперь на роутер можно заходить по myrouter.net, а не по айпи.

Что касается кеширования, то оно пригодится для ускорения интернета, когда файлы, запрашиваемые часто, хранятся на накопителе. Если они запрашиваются повторно, то скачиваются уже не с интернета, а из кеша нашего Mikrotik. К тому же кеширование полезно, когда нужно экономить трафик, а также для контроля доступа (трафик будет проходить через proxy Микротика).

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

№13 Как установить редирект на страницу с напоминанием

Функция пригодится, если хочется не просто отключить пользователя, а напомнить ему о причине отключения.

Допустим, у вас есть компьютер в сети 192.168.0.10, где находится веб-сервер, а также страница с личным кабинетом, напоминалкой и т. п., на которую можно попасть по адресу 192.168.0.10.

Делается все следующим образом:

Необходимо добавить айпи адреса всех пользователей с записью ALLOW в IP-Firewall-Address List.

Вводим правило:

/ip firewall nat
add act=dst-nat ch=dstnat dst-port=80 in-int=LAN1 protocol=tcp src-address-list=!ALLOW to-addr=192.168.0.10 to-ports=80
Его нужно разместить выше srcnat!

В принципе, этого может хватить. Но лучше добавить в IP-Firewall-Filter еще пару правил для полной блокировки любой активности, а не только веб-серфинга.

/ip firewall filter
add act=accept ch=forward out-int=!LAN1 dst-address=192.168.0.10
add act=drop ch=forward out-int=!LAN1 src-address-list=!ALLOW

Эти правила необходимо разместить внизу.

Все, пользователи, которые не входят в список разрешенных адресов, вообще не смогут пользоваться сетью.

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

Теперь, когда пользователь захочет зайти на какой-нибудь сайт, то он автоматически попадет на страницу с напоминанием. Однако если пользователь наберет anysite.com/anypage.php, то он увидит не вашу страницу-напоминалку, а ошибку.

Чтобы это исправить, необходимо:

На веб-сервере в корне страницы с напоминанием следует добавить файл .htaccess с редиректом

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /index.html

Примечание: /index.html — это страница с напоминанием.

или

можно сделать страницу 404.php и внести ее в .htaccess, а в 404.php прописать include вашей страницы напоминалки или просто скопировать ее содержимое.

№14 Как резать торренты?

Нижеприведенный метод позволяет шейпить все, даже шифрованные торренты. При этом он не тратит много ресурсов нашего Mikrotik.

Для редких нешифрованных торрент-клиентов — p2p=all-p2p.

Маркировка входящих торрент-пакетов осуществляется по размерам, а также портам и протоколам. Вот как это делается:

/ip firewall mangle
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent p2p=all-p2p passthrough=no
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp src-port=1024-65535 packet-size=576
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp src-port=1024-65535 packet-size=1240
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp src-port=1024-65535 packet-size=1330
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp src-port=1024-65535 packet-size=1400
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp src-port=1024-65535 packet-size=1460
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=398
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=748
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1430
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1448
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1466

Если нужно обработать цепочки, которые лежат ниже, нужно везде указать passthrough=yes.

Затем можно добавить новое правило Torrent-5M в разделе Queue Tree в родителя Download. Packet Marks нужно указать как Torrent, а также прописать желаемую скорость 5М. Это будет скорость для каждого или же для всех вместе: все зависит от выбранного Queue Type в PCQ Dst. Address Mask 32 или 24.

Также можно добавить одно правило в самый верх в Simple Queue. Нужно указать Packet Marks — Torrent, а также желаемую Tx скорость 50M — общую для всех торрент-клиентах.

Кроме того, в Simple Queue можно указывать скорость на торрент для каждого клиента отдельно, т. е. создать дополнительную запись для каждого айпи. Только она должна быть выше основной записи ай пи клиента.

Обратите внимание! Сюда могут иногда попадать пакеты из онлайн-игр.

 

Это были основные моменты по настройке сети на Mikrotik. Как видно, если следовать инструкциям, все довольно просто: можно резервировать и блокировать трафик, выставлять скорость и перенаправлять пользователей на определенные страницы, а также делать еще множество вещей.