MikroTik с нуля 03. Настройка роутера: WAN, LAN, DHCP и NAT
Note
Команды сверены с официальной документацией RouterOS 7 (версия руководства 7.26). Перед работой на боевом оборудовании проверьте их на тестовом стенде или сделайте резервную копию.
В этой статье мы соберём домашний или офисный роутер MikroTik «с чистого листа», без помощи мастера QuickSet. Вы создадите локальную сеть (LAN, Local Area Network) на bridge (мост, виртуальный коммутатор внутри роутера), раздадите адреса по DHCP (Dynamic Host Configuration Protocol, автоматическая выдача адресов), подключите роутер к внешней сети провайдера (WAN, Wide Area Network) одним из трёх способов, настроите DNS (систему, которая переводит имена сайтов в IP-адреса) и NAT (Network Address Translation, подмену адресов при выходе в интернет) и закроете сам роутер от внешней сети минимальным набором правил. В конце компьютеры из локальной сети выходят в интернет, а вы понимаете, за что отвечает каждая строка конфигурации и где искать причину, если что-то не заработало.
Это третья статья серии. Если вы ещё не подключались к роутеру и не меняли пароль, начните с первой статьи серии. Если командная строка RouterOS пока незнакома, загляните в шпаргалку по CLI.
Что понадобится
- Роутер MikroTik с RouterOS 7, доступный по WinBox или SSH. Для начала подойдёт подключение по MAC-адресу через WinBox.
- Компьютер, подключённый кабелем к одному из портов
ether2–ether5. Число портов зависит от модели; в примерахether1смотрит к провайдеру,ether2–ether5образуют локальную сеть. Если у вашей модели портов меньше, опустите лишние строки. - Кабель провайдера в порту
ether1. - Данные от провайдера: способ подключения (DHCP, статический адрес или PPPoE) и, для двух последних, адрес, шлюз, DNS-серверы или логин и пароль.
- Около 30–40 минут.
С чего начать: заводская конфигурация или чистый старт
Роутер MikroTik «из коробки» обычно уже настроен: в заводской конфигурации есть bridge, DHCP-сервер, NAT и firewall. Прежде чем что-то стирать, решите, какой путь ваш.
Путь 1. Роутер с заводской конфигурацией, всё работает. Шаг 0 пропустите. Проверьте, что уже есть, командами /ip address print, /ip dhcp-server print, /ip firewall nat print и /ip firewall filter print, и читайте шаги 1–7 как разбор того, что стоит в вашем роутере. Повторно вводить команды шагов 1–4 и 7 не нужно: они создадут дубли. Названия объектов в вашей конфигурации могут отличаться от статьи, сверяйтесь с /export.
Путь 2. Чистый старт. Он нужен, если конфигурация чужая, сломана или вы хотите собрать всё сами. Статья рассчитана именно на него: шаг 0 стирает настройки, и дальше мы добавляем каждый кирпичик вручную. Если вы уже выполнили статью 01, сброс отменит часть её результата; как этого избежать, описано в шаге 0 и в разделе «Что вернуть после сброса» в конце.
Почему не QuickSet
В WinBox и WebFig есть мастер QuickSet: он спрашивает режим работы, тип подключения и параметры Wi-Fi, а затем сам создаёт bridge, DHCP-сервер, NAT и базовый firewall. Для типового домашнего подключения это быстрый и рабочий путь. Но документация советует не смешивать QuickSet и ручные правки тех же настроек: мастер может перезаписать то, что вы сделали руками. Он же рассчитан на роутеры с заводской конфигурацией.
Зачем тогда разбирать ручную настройку:
- Когда что-то ломается, диагностика сводится к цепочке «порт — адрес — маршрут — DNS — NAT». Её проще проверять, если вы знаете, из чего она состоит.
- Ручная настройка воспроизводима: набор команд можно сохранить, проверить на стенде и применить на другом роутере.
- Всё остальное в серии (firewall, VLAN, два провайдера, туннели) строится на тех же кирпичиках.
Как будет устроена сеть
| Что | Значение |
|---|---|
| Порт к провайдеру | ether1 |
| Порты локальной сети | ether2–ether5 |
| Мост локальной сети | bridge |
| Адрес роутера в LAN | 192.168.88.1/24 |
| Пул DHCP | 192.168.88.10-192.168.88.254 |
| Списки интерфейсов | LAN (в нём bridge), WAN (в нём ether1) |
Порядок работы выбран так, чтобы вы не потеряли доступ и чтобы роутер не оказался в интернете без защиты:
- Создать bridge и дать роутеру адрес в LAN.
- Завести списки интерфейсов и ограничить MAC-доступ списком LAN.
- Включить DHCP-сервер.
- Включить минимальный input-firewall и отключить IPv6.
- Подключить WAN. Перед этим, при ещё отключённом кабеле провайдера, добавить правила
forwardиз статьи 04. - Настроить DNS.
- Включить NAT.
- Проверить всё сверху вниз.
Шаг 0. Чистый старт
Этот шаг только для пути 2. Команда ниже стирает настройки, не загружает заводскую конфигурацию и перезагружает роутер с пустой конфигурацией: без адресов, bridge, DHCP и правил firewall. Роутер может запросить подтверждение Dangerous! Reset anyway? [y/N]: ответьте y.
Warning
Сброс удаляет всю конфигурацию. Не выполняйте его на работающем в сети роутере, не сохранив копию. Перед сбросом выполните /export file=before-reset и /system backup save name=before-reset, затем скачайте оба файла на компьютер. Бэкапы подробно разобраны в статье про автобэкап.
Что именно пропадёт, зависит от того, делали ли вы статью 01.
Вы уже прошли статью 01. Добавьте параметр keep-users=yes: он сохранит пользователей, то есть вашего личного администратора и его пароль. Остальное из статьи 01 всё равно исчезнет: ограничения сервисов (available-from), настройки NTP, часовой пояс, имя роутера (identity). Список того, что нужно повторить, приведён в конце статьи.
/system reset-configuration no-defaults=yes skip-backup=yes keep-users=yes
После перезагрузки заходите под своим пользователем: через WinBox и вкладку Neighbors (вход по MAC-адресу). Учётка admin, если вы отключали её в статье 01, остаётся отключённой.
Вы начинаете с нуля. Выполните команду без keep-users: пароль admin тоже сбросится.
/system reset-configuration no-defaults=yes skip-backup=yes
После перезагрузки подключитесь через WinBox по MAC-адресу, логин admin, пароль пустой (или тот, что напечатан на наклейке устройства), и сразу задайте пароль администратора (подробнее в статье 01). Вместо <ПАРОЛЬ> подставьте свой длинный пароль:
/user set admin password=<ПАРОЛЬ>
Кабель провайдера пока не подключайте: до шага 4 роутер не защищён, поэтому кабель в ether1 мы вставим только после защиты.
Safe Mode перед рискованными шагами
Следующие шаги меняют адрес и состав bridge, а потом включают firewall. Любой из них может отрезать вас от роутера. Перед такими шагами включайте Safe Mode: в CLI это сочетание клавиш Ctrl+X (или F4), в WinBox кнопка Safe Mode. Если связь оборвётся, изменения, сделанные в этом режиме, будут автоматически отменены примерно через 9 минут. Выход через Ctrl+D отменяет изменения. Чтобы выйти из Safe Mode и сохранить сделанное, нажмите Ctrl+X ещё раз (в WinBox отожмите кнопку Safe Mode): это тот же переключатель. Подробности в статье 02.
Шаг 1. Bridge, порты и адрес роутера в LAN
Bridge — это виртуальный коммутатор внутри роутера. Он объединяет несколько физических портов в один сегмент сети, и адрес роутера вешается на сам bridge, а не на отдельный порт. Так проще: новые порты и Wi-Fi добавляются в bridge, и адреса менять не нужно. Дальше мы называем «мостом» само понятие, а bridge — имя интерфейса в командах.
Warning
Пока DHCP-сервер не настроен (шаг 3), компьютер сам адрес не получит. Оставайтесь в WinBox по MAC-адресу или задайте компьютеру статический адрес 192.168.88.2/24 и подключайтесь к 192.168.88.1. При добавлении порта в bridge сессия по MAC может ненадолго оборваться и переподключиться. Убедитесь, что порт, к которому подключён ваш компьютер, входит в bridge. Если связь пропала, зайдите заново через WinBox по MAC-адресу.
/interface bridge add name=bridge
/interface bridge port add bridge=bridge interface=ether2
/interface bridge port add bridge=bridge interface=ether3
/interface bridge port add bridge=bridge interface=ether4
/interface bridge port add bridge=bridge interface=ether5
/ip address add address=192.168.88.1/24 interface=bridge
ether1 в bridge мы не добавляем: он смотрит на провайдера. Добавьте именно те порты вашей модели, к которым подключаются устройства локальной сети. Wi-Fi-интерфейсы добавляются в bridge так же, об этом рассказывает статья про Wi-Fi.
Как проверить
/interface bridge port print
/ip address print
В первой таблице должны быть четыре порта в bridge. Во второй: адрес 192.168.88.1/24 на интерфейсе bridge, колонка NETWORK показывает 192.168.88.0. Флаги X (отключён) и I (недействителен) у строки отсутствуют: значит, адрес рабочий.
Шаг 2. Списки интерфейсов LAN и WAN
Список интерфейсов — это именованная группа. Вместо перечисления портов в каждом правиле firewall и NAT мы пишем in-interface-list=LAN или out-interface-list=WAN. Если провайдер сменится или подключение переедет с ether1 на PPPoE, правила править не придётся, нужно только поменять состав списка.
/interface list add name=LAN
/interface list add name=WAN
/interface list member add list=LAN interface=bridge
/interface list member add list=WAN interface=ether1
Обратите внимание: в список LAN входит сам bridge, а не порты ether2–ether5. Это разные вещи, и для firewall нужен именно bridge.
Заодно закроем доступ, который IP-firewall не видит. MAC-доступ (MAC Telnet, MAC WinBox) и обнаружение соседей (Neighbor Discovery) работают на втором уровне, и правила /ip firewall filter их не останавливают. Поэтому на роутере с кабелем провайдера их нужно ограничить отдельно, списком LAN. Это те же настройки, что в статье 01: если вы не сбрасывали конфигурацию, команды просто повторят уже заданное.
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN
/tool mac-server ping set enabled=no
/ip neighbor discovery-settings set discover-interface-list=LAN
После этого вход по MAC и анонс роутера возможны только из локальной сети. Если вы подключены через порт, которого нет в bridge, новые MAC-подключения будут отклоняться: сначала выполните шаг 1 и проверьте, что ваш порт в bridge. Главная задача этих команд проявится, когда ether1 будет подключён к сети провайдера: иначе роутер был бы доступен по MAC из сегмента провайдера.
Как проверить
/interface list member print
/tool mac-server print
Должны быть две строки в списках: LAN — bridge и WAN — ether1. В настройках MAC-сервера в allowed-interface-list указан LAN.
Шаг 3. DHCP-сервер
DHCP автоматически выдаёт устройствам адрес, шлюз и DNS. Для сервера нужны четыре вещи: адрес на интерфейсе (он уже есть на bridge), пул адресов для выдачи, сетевые параметры (DHCP network) и сам сервер.
/ip pool add name=dhcp-pool ranges=192.168.88.10-192.168.88.254
/ip dhcp-server network add address=192.168.88.0/24 gateway=192.168.88.1 dns-server=192.168.88.1
/ip dhcp-server add name=dhcp1 interface=bridge address-pool=dhcp-pool disabled=no
Что здесь важно:
- В пул не включён адрес самого роутера
192.168.88.1. Адреса с.2по.9оставлены под устройства с фиксированными адресами. - В
gatewayиdns-serverуказан сам роутер. Клиенты будут отправлять в него и трафик, и DNS-запросы. Еслиdns-serverне задан, сервер раздаёт те DNS, которыми пользуется сам роутер, но явное значение понятнее. - Время аренды по умолчанию 30 минут, при желании его меняют параметром
lease-timeу сервера. - Сервер слушает именно на
bridge, поэтому клиенты получат адрес, только если их порты входят в bridge (шаг 1).
Tip
Если какому-то устройству нужен постоянный адрес (принтер, сервер), закрепите его статической арендой, а не настройкой на самом устройстве. В статье про проброс портов таким устройством станет сервер 192.168.88.10. Адрес входит в пул, но статическая аренда гарантирует, что его получит именно этот компьютер. Создайте её до того, как сервер подключится к сети: /ip dhcp-server lease add address=192.168.88.10 mac-address=<MAC_СЕРВЕРА> server=dhcp1. Если какое-то устройство уже получило динамическую аренду на 192.168.88.10, сначала удалите её (/ip dhcp-server lease remove [find where address=192.168.88.10]) и переподключите устройство, затем создавайте статическую аренду.
Как проверить
/ip dhcp-server print
/ip dhcp-server lease print
В первой таблице у сервера dhcp1 не должно быть флага X (отключён) или I (недействителен: например, у интерфейса нет адреса). Подключите компьютер к порту ether2–ether5 и переподключите сетевой кабель. Через несколько секунд в таблице аренд появится строка с адресом из диапазона 192.168.88.10–192.168.88.254 и статусом bound. На компьютере в параметрах сетевого адаптера шлюз и DNS должны быть 192.168.88.1.
Шаг 4. Минимальный firewall для защиты роутера
Firewall нужно включить до подключения к интернету. Без него любые службы роутера (WinBox, SSH, DNS) будут доступны из внешней сети, а их постоянно сканируют автоматические боты. Сейчас мы настроим цепочку input: она отвечает за трафик, адресованный самому роутеру. Транзитный трафик (между LAN и интернетом) защищает цепочка forward, её разбирает статья 04 про firewall: без неё роутер выпускать в интернет нельзя, об этом ниже, перед шагом 5.
Логика правил читается сверху вниз, срабатывает первое подходящее:
- Пропустить пакеты уже установленных соединений. Это ответы на то, что роутер сам запросил.
- Отбросить пакеты с состоянием
invalid, то есть не принадлежащие ни одному известному соединению. - Разрешить ICMP (Internet Control Message Protocol): ping и служебные сообщения.
- Разрешить всё, что пришло из списка
LAN. - Отбросить всё остальное.
Warning
Последнее правило закрывает доступ к роутеру отовсюду, кроме списка LAN. Если вы подключены к роутеру не через порт в bridge (например, через ether1), доступ по IP будет потерян. Перед этим шагом включите Safe Mode (Ctrl+X). Добавляйте правила в указанном порядке: правило-запрет должно оказаться последним.
/ip firewall filter add chain=input action=accept connection-state=established,related,untracked comment="accept established,related,untracked"
/ip firewall filter add chain=input action=drop connection-state=invalid comment="drop invalid"
/ip firewall filter add chain=input action=accept protocol=icmp comment="accept ICMP"
/ip firewall filter add chain=input action=accept in-interface-list=LAN comment="accept all from LAN"
/ip firewall filter add chain=input action=drop comment="drop everything else"
В серии настраивается только IPv4, а фильтров /ipv6 firewall у нас нет. Поэтому IPv6 лучше отключить, иначе он останется без защиты: параметр выключает IPv6 в системе целиком. Если позже он понадобится, верните disable-ipv6=no и добавьте свой набор правил /ipv6 firewall.
/ipv6 settings set disable-ipv6=yes
Как проверить
/ip firewall filter print
/ipv6 settings print
В таблице пять правил цепочки input в указанном порядке, в настройках IPv6 disable-ipv6: yes. Ваша SSH-сессия или WinBox-сессия не оборвалась, а ping роутера с компьютера продолжает идти. Если связь осталась, выходите из Safe Mode с сохранением (Ctrl+X ещё раз, подробнее в разделе «Safe Mode перед рискованными шагами» выше и в статье 02).
Important
Эти правила защищают только сам роутер. Цепочка forward пока пуста, а NAT этого не исправляет: транзитный трафик из внешней сети в локальную ничем не ограничен. Пока кабель провайдера не подключён, это безопасно. Не вставляйте его в ether1 и не переходите к шагу 5, пока не добавлены правила forward.
Перед шагом 5: добавьте цепочку forward
Откройте статью 04, добавьте блок правил цепочки forward (с fasttrack и запретом новых соединений из WAN) и вернитесь сюда. Правила разобраны там подробно, повторно вводить их в этой статье не нужно. Блок списков интерфейсов и правил input из статьи 04 повторять тоже не надо: он совпадает с шагами 2 и 4. Если вы делаете паузу между статьями, держите кабель провайдера отключённым.
Warning
Не подключайте кабель провайдера, пока в /ip firewall filter print не видны правила цепочки forward. Иначе роутер окажется в интернете с защитой только на input.
Шаг 5. Подключение к провайдеру (WAN)
Теперь подключайте кабель провайдера в ether1. Узнайте у провайдера, как устроено подключение, и выберите один из трёх вариантов. Настраивать нужно только один.
| Способ | Что даёт провайдер | Когда встречается |
|---|---|---|
| DHCP-клиент | Ничего: всё приходит автоматически | Большинство домашних и многие офисные подключения |
| Статический адрес | Адрес с маской, шлюз, DNS-серверы | Выделенные каналы, бизнес-тарифы |
| PPPoE | Логин и пароль | Часть DSL и оптических провайдеров |
Если не уверены, начните с DHCP: он самый распространённый. Некоторые провайдеры привязывают подключение к MAC-адресу оборудования. Если после замены роутера адрес не выдаётся, сообщите провайдеру MAC-адрес порта ether1 (виден в /interface ethernet print).
Вариант А. DHCP-клиент
Роутер сам запросит у провайдера адрес, шлюз и DNS. Параметр add-default-route=yes создаёт маршрут по умолчанию через шлюз провайдера, а use-peer-dns=yes добавляет DNS-серверы провайдера в список серверов роутера.
/ip dhcp-client add interface=ether1 add-default-route=yes use-peer-dns=yes disabled=no
Оба значения (yes) стоят по умолчанию, но запись параметров явно делает команду понятнее. Отдельный нюанс: если провайдер присылает бесклассовые (classless) маршруты, option 121, клиент добавляет именно их, а шлюз из option 3 игнорирует, поэтому маршрут по умолчанию должен быть среди них. На практике у домашних провайдеров всё работает без правок.
Как проверить
/ip dhcp-client print
/ip route print where dst-address=0.0.0.0/0
Статус клиента bound, в колонке адреса виден выданный провайдером адрес. В таблице маршрутов есть динамический маршрут 0.0.0.0/0 через шлюз провайдера с флагом A (активный). Если статус searching..., ответа от сервера провайдера нет: проверьте кабель, порт и привязку по MAC.
Вариант Б. Статический адрес
В примерах используется «адрес провайдера» из диапазона для документации. Подставьте свои значения из договора или письма провайдера. Для канала /30 это три шага: адрес на порту, маршрут по умолчанию и DNS.
/ip address add address=203.0.113.2/30 interface=ether1
/ip route add dst-address=0.0.0.0/0 gateway=203.0.113.1
/ip dns set servers=192.0.2.53,192.0.2.54
В последней строке записаны условные DNS-серверы: замените их на выданные вам. Интерфейс ether1 уже в списке WAN (шаг 2), поэтому NAT на шаге 7 сработает без дополнительных настроек.
Как проверить
/ip address print
/ip route print where dst-address=0.0.0.0/0
/ping 203.0.113.1 count=3
Адрес 203.0.113.2/30 на ether1, маршрут по умолчанию активен (флаг A), а шлюз провайдера отвечает на ping. Если шлюз не отвечает, а кабель и порт в порядке, перепроверьте адрес и маску: ошибка в одну цифру превращает шлюз в «чужой» адрес вне сети.
Вариант В. PPPoE
PPPoE (Point-to-Point Protocol over Ethernet) даёт адрес после авторизации по логину и паролю поверх обычного Ethernet. Для него создаётся отдельный интерфейс поверх ether1. Сам ether1 адреса получать не должен: не добавляйте на него DHCP-клиент или статический адрес.
Значения по умолчанию для add-default-route и use-peer-dns у PPPoE-клиента в документации не указаны, поэтому задаём их явно. Вместо реального пароля в примере заглушка:
/interface pppoe-client add name=pppoe-out1 interface=ether1 user=<ЛОГИН> password=<ПАРОЛЬ> add-default-route=yes use-peer-dns=yes disabled=no
Теперь «внешним» интерфейсом становится pppoe-out1, а не ether1. Его нужно добавить в список WAN, иначе NAT (шаг 7) его не заметит:
/interface list member add list=WAN interface=pppoe-out1
ether1 в списке WAN можно оставить: он несёт PPPoE-сессию, и это безвредно.
Как проверить
/interface pppoe-client monitor pppoe-out1 once
/ip route print where dst-address=0.0.0.0/0
В выводе монитора статус connected, виден выданный локальный адрес и адрес удалённой стороны. Маршрут по умолчанию идёт через интерфейс pppoe-out1. Статусы dialing или verifying password... после минуты ожидания значат проблему: неверный логин и пароль либо провайдер ждёт других условий.
Note
У PPPoE меньше MTU (Maximum Transmission Unit, максимальный размер пакета): в сессии IP-пакет не должен превышать 1492 байта (1500 минус 8 байт заголовков PPPoE и PPP). Если после подключения часть сайтов не открывается или загружается наполовину, переходите к разделу «Что делать, если интернета нет», пункт 7.
Шаг 6. DNS на роутере
DNS переводит имена сайтов в IP-адреса. Роутер умеет быть кэширующим DNS-сервером для локальной сети: он принимает запросы клиентов, спрашивает вышестоящие серверы и запоминает ответы. Мы уже сказали DHCP раздавать клиентам адрес роутера в качестве DNS, а теперь нужно разрешить роутеру отвечать на такие запросы:
/ip dns set allow-remote-requests=yes
Откуда роутер берёт вышестоящие серверы:
- динамические: приходят от провайдера через DHCP-клиент или PPPoE (при
use-peer-dns=yes) и показываются какdynamic-servers; - статические: вы указываете их сами в параметре
servers. Роутер пробует их раньше динамических.
Если нужно использовать свои вышестоящие серверы, например потому, что DNS провайдера работает нестабильно, задайте их так. Адреса условные из диапазона для документации: подставьте адреса выбранного вами DNS (провайдера или публичного):
/ip dns set servers=192.0.2.53,192.0.2.54
У некоторых провайдеров часть общедоступных DNS-серверов заблокирована или фильтруется, и запросы к ним не проходят. Если запросы не отвечают, вернитесь к DNS-серверам провайдера.
Important
При allow-remote-requests=yes роутер отвечает на запросы порта 53 по всем своим адресам, в том числе внешнему. Он не должен стать открытым DNS-резолвером для интернета. В нашей конфигурации эту проблему закрывает последнее правило цепочки input («drop everything else»): запросы из WAN отбрасываются. Не удаляйте его.
Как проверить
Для проверок здесь и далее нужны реально существующие узлы: адреса из диапазонов для документации (192.0.2.0/24 и другие) в интернете не отвечают. Поэтому в командах стоят заглушки.
<ИМЯ_САЙТА>— имя любого сайта, который у вас открывается.<ВНЕШНИЙ_АДРЕС>— любой заведомо работающий публичный IP. Проще всего узнать его на компьютере командойnslookup <ИМЯ_САЙТА>: адрес из ответа и есть нужный. Некоторые узлы не отвечают на ping: тогда возьмите адрес другого сайта или публичного DNS-сервера, которым вы пользуетесь.
/ip dns print
:put [:resolve <ИМЯ_САЙТА>]
В выводе /ip dns print виден allow-remote-requests: yes и серверы. Команда :resolve печатает IP-адрес сайта. Если вместо адреса ошибка, у роутера нет рабочего вышестоящего DNS. Заодно проверьте с компьютера: nslookup <ИМЯ_САЙТА> 192.168.88.1 должен вернуть адрес. Если DNS «залип» на старом ответе после смены настроек, очистите кэш: /ip dns cache flush.
Шаг 7. NAT: выход локальной сети в интернет
Адреса 192.168.88.x частные, в интернете они не маршрутизируются. Чтобы ответы вернулись, роутер подменяет адрес источника в исходящих пакетах на собственный внешний адрес. Это и есть source NAT (srcnat). Вариант masquerade выбирает внешний адрес сам по интерфейсу, через который уходит пакет, поэтому он подходит, когда адрес от провайдера динамический: DHCP или PPPoE. В правиле мы указываем не конкретный порт, а список: out-interface-list=WAN.
/ip firewall nat add chain=srcnat action=masquerade out-interface-list=WAN comment="masquerade LAN to internet"
В примерах из руководства MikroTik к такому правилу иногда добавляют ipsec-policy=out,none. Этот параметр связан с IPsec, в серии IPsec не используется, поэтому в нашем правиле его нет.
Note
По документации после добавления или изменения NAT-правил таблицу отслеживаемых соединений (connection tracking) стоит очистить, иначе правило может «не работать», пока старые записи не истекут. На только что настроенном роутере это почти не нужно. Если вы правите NAT на действующем роутере, очистите таблицу, например в WinBox: IP → Firewall → вкладка Connections, выделить все записи и удалить. Все текущие соединения разорвутся и поднимутся заново, включая вашу сессию управления. На удалённом роутере делайте это в Safe Mode или из локальной сети.
Как проверить
/ip firewall nat print stats
В таблице одно правило srcnat / masquerade. После проверок из следующего раздела столбцы BYTES и PACKETS у него растут: именно по ним видно, что трафик клиентов проходит через правило.
Проверка сверху вниз
Теперь пройдите всю цепочку: от роутера наружу, затем с клиента.
1. С роутера: адрес и шлюз.
/ping <ВНЕШНИЙ_АДРЕС> count=3
Три ответа, потерь нет. Это значит, что порт, адрес, маршрут по умолчанию и связь с провайдером работают. Если вы в варианте Б, дополнительно пингуйте шлюз провайдера.
2. С роутера: DNS.
/ping <ИМЯ_САЙТА> count=3
Если имя разрешилось в адрес и пошли ответы, DNS роутера работает.
3. С клиента в локальной сети. На компьютере откройте командную строку и выполните (заглушки замените теми же значениями, что и выше):
ping 192.168.88.1
ping <ВНЕШНИЙ_АДРЕС>
nslookup <ИМЯ_САЙТА> 192.168.88.1
ping <ИМЯ_САЙТА>
Первая команда проверяет связь с роутером, вторая выход в интернет по адресу (значит, работает NAT), третья DNS через роутер, четвёртая интернет по имени. Затем откройте любой сайт в браузере.
4. На роутере: кто что получил.
/ip dhcp-server lease print
/ip firewall nat print stats
В арендах виден ваш компьютер, у NAT-правила растут счётчики.
Что делать, если интернета нет
Идите по цепочке и остановитесь на первом сбое. Каждый пункт убирает целый класс причин.
-
Физическое соединение. Проверьте индикатор порта и состояние:
/interface ethernet monitor ether1 onceСтатус
link-okзначит, что кабель и порт в порядке.no-link— кабель, порт или оборудование провайдера. -
Адрес и шлюз. Для DHCP-клиента:
/ip dhcp-client printпоказывает статусbound. Для статического адреса:/ip address printи/ip route print where dst-address=0.0.0.0/0. Маршрут по умолчанию есть и активен (флагA). Шлюз отвечает:/ping <шлюз провайдера> count=3. -
Связь с интернетом по адресу.
/ping <ВНЕШНИЙ_АДРЕС> count=3с роутера. Работает с роутера, но не с клиентов — смотрите NAT и DHCP (пункты 5 и 6). Не работает и с роутера — проблема на стороне провайдера или в маршруте. -
DNS. Ping по адресу идёт, а по имени нет:
:put [:resolve <ИМЯ_САЙТА>]на роутере. Ошибка значит, что у роутера нет рабочего DNS: проверьте/ip dns print,use-peer-dns=yesи задайтеserversвручную. Работает на роутере, но не на клиентах — проверьтеallow-remote-requests=yesи параметрdns-serverв/ip dhcp-server network print. -
NAT и списки.
/ip firewall nat printпоказывает правилоmasqueradeбез флагаX./interface list member print: внешний интерфейс (ether1илиpppoe-out1) состоит в спискеWAN. Для PPPoE это частая ошибка: интерфейс забыт, и NAT не срабатывает. Счётчики правила в/ip firewall nat print statsдолжны расти при открытии сайтов. -
Клиент. Адрес из диапазона
192.168.88.x, шлюз и DNS192.168.88.1. Адрес вида169.254.x.xзначит, что DHCP-сервер клиенту ничего не выдал: проверьте/ip dhcp-server printи порты в bridge. -
MTU и PPPoE. Если у вас не PPPoE и сайты открываются целиком, этот пункт можно пропустить. Если же ping работает, а часть сайтов не открывается или файлы обрываются, подозревайте размер пакетов. Параметр
sizeв команде ping задаёт размер всего IP-пакета, аdo-not-fragmentзапрещает его дробить, поэтому слишком большой пакет не пройдёт, а не раздробится. Начните с размера, который должен проходить на вашем типе подключения (1500 для Ethernet по DHCP или статике, 1492 для PPPoE), и уменьшайте его, пока ответы не пойдут:/ping <ВНЕШНИЙ_АДРЕС> size=1500 do-not-fragment count=2 /ping <ВНЕШНИЙ_АДРЕС> size=1492 do-not-fragment count=2 /ping <ВНЕШНИЙ_АДРЕС> size=1400 do-not-fragment count=2Первая команда для Ethernet-WAN (DHCP или статика), вторая для PPPoE-интерфейса, третья показывает, проходит ли заведомо меньший пакет. Если пакет нужного размера проходит, с MTU всё в порядке. Если он не проходит, а меньший проходит, где-то на пути есть звено с меньшим MTU. Размер, на котором ответы пошли, и есть MTU пути. Типовое решение: ограничить размер TCP-сегмента (MSS, Maximum Segment Size) правилом в разделе mangle. Готовое правило для WAN и пояснение, почему нужно парное правило для входящих соединений, приведены в статье 08 про диагностику: правило MSS описано только там, чтобы не плодить дубли. Добавлять его стоит, только если проверка выше подтвердила проблему с MTU.
Что вернуть после сброса
Этот раздел нужен, если вы шли по пути 2 после статьи 01 и сделали сброс. Заводской путь (путь 1) его пропускает. Вернитесь к статье 01 и повторите то, что сброс стёр:
- личного администратора и отключение
admin(приkeep-users=yesпользователи сохранились, проверьте/user print); - закрытие служб в
/ip service: отключите telnet, ftp, www, api, api-ssl и задайтеavailable-fromдля оставшихся; - NTP-клиент и часовой пояс;
- имя роутера (identity);
- обновление RouterOS, затем
/system routerboard upgrade, и только после него новая бинарная копия и/export.
MAC-доступ и Neighbor Discovery вы уже ограничили в шаге 2. Пользователей и закрытие служб удобно вернуть сразу после шага 4, пока кабель провайдера отключён. NTP и обновление RouterOS требуют выхода в интернет, поэтому делайте их после успешной проверки.
Типичные ошибки
- Адрес роутера повесили на порт, а не на bridge. Порт, входящий в bridge, перестаёт быть самостоятельным интерфейсом: в таблице адресов такая запись получает флаг
S(slave) и не работает как нужно. Адрес всегда вешается наbridge. - В список
LANдобавили порты вместо bridge. Правила firewall тогда не срабатывают так, как ожидается. В списке должен быть самbridge. - Забыли добавить
pppoe-out1в списокWAN. Клиенты не выходят в интернет, хотя роутер сам пингует внешние узлы. NAT применяется только к исходящему интерфейсу из списка. - Включили firewall до проверки доступа. Последнее правило
inputблокирует всё, что не изLAN. Если вы подключены через порт вне bridge, доступ по IP пропадёт. Используйте Safe Mode и подключайтесь через порт в bridge. - Подключили кабель провайдера без правил
forward. Роутер с однимinput-firewall и NAT пропускает транзитный трафик из внешней сети. Сначала правила из статьи 04, потом кабель. - Пул DHCP пересекается с адресами, заданными вручную. Если сервер, принтер или камера получили статический адрес внутри пула, возможен конфликт. Закрепляйте адрес статической арендой (как для сервера
192.168.88.10) или держите устройства с фиксированными адресами за пределами пула (192.168.88.2–192.168.88.9). - Два способа WAN сразу. DHCP-клиент и статический адрес на одном порту дают два маршрута по умолчанию и непредсказуемое поведение. Выберите одно.
Что дальше
Роутер раздаёт адреса и выпускает локальную сеть в интернет, а сам закрыт на уровне input. Дальше логично:
- MikroTik с нуля 04. Firewall для начинающих — полная защита: цепочка
forward, fasttrack и запрет входящих соединений из интернета. - MikroTik с нуля 05. Проброс портов и hairpin NAT — как открыть доступ к серверу в локальной сети.
- MikroTik с нуля 06. Wi-Fi на RouterOS 7 — подключение беспроводных клиентов к тому же bridge.
- MikroTik с нуля 08. Диагностика и мониторинг — инструменты для поиска причин, когда что-то перестало работать.