akademic.name

  • Учёба
  • Роутер Mikrotik 951G-2HnD

    Надоели мне глюки TP-Link’а и приобрёл я себе роутер фирмы Mikrotik, название которого приведено в заголовке. За него выступали операторский бэкграунд производителя, советы коллег, широта настроек и цена.

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

    Можно было бы подумать, что простые домашние пользователи потеряны для этого устройства. Но это не так. И сейчас я поесню почему. А главным козырем является страница по-умолчанию доступная сразу при подключении к устройству. Называется она QuickSet и выглядит вот так (фотку взял из интернета - лень скриншот делать и что-то там замазывать):

    Быстрые настройки роутера

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

    Дальше, правда я поменял больше настроек, но это уже необходимо было для моих специфичных нужд. Я сменил сеть, раздаваемую по dhcp, на принятую в моей сети, уменьшил диапазон выдаваемых IP. Настроил port-forwarding, добавил static-arp и static-dhcp для сервера, настроил доступ к интерфейсу администрирования.

    Краткие итоги обновки:

    1. Всё заработало сразу и без проблем
    2. Wifi работает лучше, чем было. Это было основной целью замены роутера. Но всё равно забавно, потому что у микротика две встроенные антенны, а у TP-Link’а три внешние. Вот картинки для сравнения: MikroTik RB951G-2HnD TP-Link TL-WR1043nd

      При этом с TP-Link′ом раньше были мёртвые зоны, где wifi не работал, а теперь и в них тоже уверенный приём.

    3. На столе стало больше свободного места.

    4. Думаю, чего бы ещё интересного понастраивать.

    Форвардинг DNS

    Также настроил форвардинг DNS по условию. Это просто классная штука!

    Суть в следующем: Проблема в том, что провайдерский DNS-сервер выдаёт неправильные адреса для некоторых доменов. И поэтому я хочу, чтобы DNS-запросы о некоторых доменных именах попадали на определённый DNS-сервер, который отличается от предоставляемого провайдером. Делается это при помощи настройки файрвола на роутере, который умеет работать в том числе на 7м уровне.

    Реализацию хотелки я нашёл в этой статье: DNS Conditional forwarders with Mikrotik RouterOS Чтобы информация не пропала, продублирую настройки и здесь.

    Итак, допустим у нас есть роутер Mikrotik с адресом 10.0.0.254. И мы хотим, чтобы DNS-запрос для домена example.com был направлен на DNS-сервер с адресом 10.0.1.11.

    Достичь этого можно, выполнив следующие команды на роутере:

    [admin@RouterOS] > /ip firewall layer7-protocol add name=example.com regexp=example.com
    [admin@RouterOS] > /ip firewall mangle add chain=prerouting dst-address=10.0.0.254 layer7-protocol=example.com action=mark-connection new-connection-mark=example.com-forward protocol=tcp dst-port=53
    [admin@RouterOS] > /ip firewall mangle add chain=prerouting dst-address=10.0.0.254 layer7-protocol=example.com action=mark-connection new-connection-mark=example.com-forward protocol=udp dst-port=53
    [admin@RouterOS] > /ip firewall nat add action=dst-nat chain=dstnat connection-mark=example.com-forward to-addresses=10.0.1.11
    [admin@RouterOS] > /ip firewall nat add action=masquerade chain=srcnat connection-mark=example.com-forward
    

    Разберу по порядку, что здесь происходит:

    1. Заводим “новый протокол седьмого уровня”, которым считаем все пакеты, в которых встречается подстрока example.com. Подстрока для проверки вставляется после regexp=
    2. В следующих двух строках маркируем пакеты приходящие на 53й порт протоколов tcp и udp нашего роутера, относящиеся к нашему “новому протоколу”. Это DNS-запросы о домене example.com
    3. Перенаправляем эти помеченные DNS-запросы на желаемый DNS-сервер.
    4. Ответы от этого DNS-сервера подставляем как ответы роутера.

    Как это работает:

    1. Компьютеры, подключенные к роутеру, получают в качестве адреса DNS-сервера адрес роутера.
    2. Роутер распознаёт DNS-запросы об определённом домене и перенаправляет их на заданный DNS-сервер.
    3. Ответ от того DNS-сервера, передаёт клиентам, подменяя его обратный адрес был тот же, что и у роутера.
    4. Таким образом красиво получается сделать правильный доступ к заданным сайтам для всех устройств подключенных через данный роутер.
    Codeception: Тест отправки формы с массивом чекбоксов