Как добавить нового клиента в схему 1:1 NAT на MikroTik

Статьи
Если базовая инфраструктура уже настроена (шлюз провайдера, IP-forwarding, Fasttrack отключён), подключение каждого нового клиента сводится к четырём шагам: добавить IP на порт, создать NAT-правила, настроить ограничение скорости и передать клиенту его настройки.

Введение

После того как базовая инфраструктура MikroTik настроена (внешние IP провайдера
на WAN-интерфейсе, маршрут по умолчанию, Fasttrack отключён, клиентские порты
выведены из bridge), добавление каждого нового клиента занимает несколько минут
и требует всего четырёх шагов. Повторно настраивать общие параметры роутера
не нужно — они работают для всех клиентов автоматически.

В этой статье разберём подключение третьего клиента в качестве примера.
Для любого последующего клиента порядок действий идентичен — меняются только
номер порта, локальный IP и внешний IP.

Исходные данные

Предположим, провайдер выделил следующий пул адресов и первые два клиента уже подключены:

91.24.200.54 — сам MikroTik
91.24.200.55 — Клиент 1 (ether2, 192.168.4.x) — уже подключён
91.24.200.56 — Клиент 2 (ether3, 192.168.5.x) — новый клиент

Параметры нового клиента:

Порт MikroTik:  ether3
Внешний IP:     91.24.200.56
Локальная сеть: 192.168.5.0/24
Шлюз клиента:  192.168.5.1
IP клиента:     192.168.5.22
Лимит скорости: 15 Мбит/с

Шаг 1. IP-адрес на клиентский порт

Каждый клиентский порт должен иметь свою локальную подсеть. Если адрес на
ether3 ещё не добавлен — добавляем.

Через Winbox

IP → Addresses → [+]

Address:   192.168.5.1/24
Interface: ether3

Через терминал

/ip address
add address=192.168.5.1/24 interface=ether3 comment="Client2 LAN"

Если IP уже был добавлен ранее — этот шаг пропускаем и переходим сразу к Шагу 2.

Шаг 2. Правила 1:1 NAT

Для каждого клиента создаётся пара правил: srcnat транслирует
локальный IP клиента в его внешний адрес при исходящих соединениях,
dstnat перенаправляет входящий трафик с внешнего IP на внутренний
адрес клиента.

Через Winbox

IP → Firewall → NAT → [+]

Правило 1 — исходящий трафик (srcnat):

Chain:        srcnat
Src. Address: 192.168.5.22
Dst. Address: (пусто)
Action:       src-nat
To Addresses: 91.24.200.56
Comment:      Client2 out

Правило 2 — входящий трафик (dstnat):

Chain:        dstnat
Src. Address: (пусто)
Dst. Address: 91.24.200.56
Action:       dst-nat
To Addresses: 192.168.5.22
Comment:      Client2 in

Через терминал

/ip firewall nat
add chain=srcnat src-address=192.168.5.22 action=src-nat \
    to-addresses=91.24.200.56 comment="Client2 out"
add chain=dstnat dst-address=91.24.200.56 action=dst-nat \
    to-addresses=192.168.5.22 comment="Client2 in"

Важно: поле Dst. Address в правиле
srcnat и поле Src. Address в правиле
dstnat должны оставаться пустыми. Значение 0.0.0.0
в этих полях приведёт к тому, что правило не сработает.

Шаг 3. Ограничение скорости (Mangle + Queue Tree)

Для ограничения скорости используется связка Mangle (маркировка пакетов) +
Queue Tree (ограничение по меткам). Simple Queue в схеме 1:1 NAT работает
ненадёжно, поэтому используем именно этот метод.

Также необходимо убедиться что правило Fasttrack в
IP → Firewall → Filter Rules отключено — иначе Queue Tree
не будет захватывать трафик. Если Fasttrack уже был отключён при подключении
первого клиента, повторно его отключать не нужно.

Через Winbox — Mangle

IP → Firewall → Mangle → [+]

Правило 1 — маркировка upload (от клиента в интернет):

Chain:           forward
Src. Address:    192.168.5.0/24
Action:          mark packet
New Packet Mark: client2-up
Passthrough:     no

Правило 2 — маркировка download (из интернета к клиенту):

Chain:           forward
In. Interface:   ether1
Out. Interface:  ether3
Action:          mark packet
New Packet Mark: client2-down
Passthrough:     no

Через Winbox — Queue Tree

Queues → Queue Tree → [+]

Очередь upload:

Name:        client2-upload
Parent:      ether1
Packet Mark: client2-up
Max Limit:   15M

Очередь download:

Name:        client2-download
Parent:      ether3
Packet Mark: client2-down
Max Limit:   15M

Через терминал

/ip firewall mangle
add chain=forward src-address=192.168.5.0/24 \
    action=mark-packet new-packet-mark=client2-up passthrough=no
add chain=forward in-interface=ether1 out-interface=ether3 \
    action=mark-packet new-packet-mark=client2-down passthrough=no

/queue tree
add name=client2-upload parent=ether1 packet-mark=client2-up max-limit=15M
add name=client2-download parent=ether3 packet-mark=client2-down max-limit=15M

Логика направления: трафик от клиента к интернету (upload) выходит через
ether1 — ограничивается на ether1. Трафик из интернета
к клиенту (download) выходит через клиентский порт — ограничивается на
ether3.

Важно: настройка типа очереди на клиентском порту

По умолчанию все порты MikroTik работают в режиме only-hardware-queue,
который обрабатывает трафик на уровне железа и обходит программные очереди Queue Tree.
Чтобы ограничение скорости работало, тип очереди на клиентском порту необходимо
сменить на ethernet-default.

Проверить и изменить можно в Queues → Interface Queues.
В колонке Active Queue Type должно быть значение
queue-tree — это означает что Queue Tree активен для данного порта.

Через Winbox

Queues → Interface Queues — дважды кликнуть на нужный порт:

Interface:  ether3
Queue Type: ethernet-default

→ OK

После этого в колонке Active Queue Type значение изменится
с only-hardware-queue на queue-tree — ограничение
скорости начнёт работать.

Через терминал

/queue interface
set ether3 queue=ethernet-default

Важно: это нужно делать для каждого нового клиентского порта.
Например, если добавляется клиент на ether4 — аналогично меняем
тип очереди на ether4. Порт ether1 (WAN) также должен
иметь активный queue-tree — он отвечает за ограничение upload.

Шаг 4. Настройки для клиента

Клиент подключает кабель в порт ether3 на MikroTik
(строго в WAN-порт своего роутера, не в LAN) и прописывает следующие
настройки на своём роутере:

Тип подключения: Static IP
IP-адрес:        192.168.5.22
Маска подсети:   255.255.255.0
Шлюз:            192.168.5.1
DNS-сервер:      8.8.8.8

После сохранения настроек и перезагрузки роутера клиент должен получить
доступ в интернет через внешний адрес 91.24.200.56.

Проверка подключения

Со стороны MikroTik

# Убедиться что клиент виден в ARP-таблице
/ip arp print

# Проверить связь с клиентским шлюзом
/ping 192.168.5.22

# Проверить что внешний IP клиента доступен
/ping 8.8.8.8 src-address=91.24.200.56

# Посмотреть активные соединения клиента и NAT-трансляцию
/ip firewall connection print detail where src-address~"192.168.5.22"

Со стороны клиента

Открыть в браузере 2ip.ru или выполнить на роутере клиента
(если у него MikroTik):

/tool fetch url="https://api.ipify.org" mode=https output=user

Должен отобразиться адрес 91.24.200.56.

Проверка ограничения скорости

Во время теста скорости на устройстве клиента открыть в Winbox
Queues → Queue Tree и наблюдать колонку
Avg. Rate — значение не должно превышать 15 Мбит/с.

Другие услуги