Рассмотрим ситуацию, когда провайдер выдал нам один шнурок и несколько ip в нем (например, /29 подсеть). И за нашим роутером находится несколько разных подсетей, которые надо выпускать наружу с разными src-ip; также среди них есть сервер, к которому необходимо сделать прозрачный проброс всех портов, будто белый ip настроен на нём, а не на роутере.
Вводные данные:
Провайдерский шнурок приходит в ether1, в нем подсеть 1.1.1.0/29 (где 1.1.1.6 — провайдерский шлюз).
На Микротике уже настроен один внешний ip и выход в интернет (маршрут и маскарадинг), а также внутренние подсети:
br0 — с сетью 192.168.1.0/24
br1 — c сетью 10.0.0.0/24
br2 — с сетью 172.16.0.0/25
Все внутренние подсети уже имеют выход в интернет и их src-ip при этом — 1.1.1.1, единственный настроенный ip на внешнем интерфейсе:
Задача:
Подсеть 192.168.1.0/24 (br0) продолжает выходить наружу с src-ip 1.1.1.1
Подсеть 10.0.0.0/24 (br1) должна выходить наружу с src-ip 1.1.1.2
Хост 172.16.0.2 (br2) должен выходить наружу с src-ip 1.1.1.3
Сначала добавим на внешний интерфейс адреса 1.1.1.2 и 1.1.1.3 (IP — Adresses):
В IP — Firewall — NAT сделаем проброс с внешнего 1.1.1.3 на 172.16.0.2:
Теперь займемся маркировкой исходящих пакетов. Нам нужно, чтобы через mark-routing присваивалась метка маршрута на основе src-ip (кроме случаев, когда трафик идет к не-локальным сетям). Меток понадобится две (для 10.0.0.0/24 и 172.16.0.2), т.к. остальной трафик по умолчанию пойдет через существующий маршрут с src-ip 1.1.1.1. Поэтому сначала добавим в ip — firewall — adress list локальные подсети, а затем создадим два правила в ip — firewall — mangle:
Далее — создаем в ip — routes маршруты для этих routing mark, в pref.source не забываем указывать необходимый src-ip адрес.
И последний штрих: в ip — firewall — nat создадим два правила с action=src-nat для подстановки нужного белого адреса на основании метки.
Созданные правила следует поставить выше остальных.
Добрый день! Подскажите пожалуйста, по этой статье все работает отлично, но есть одно но.
Добавляю все IP адреса провайдера к примеру
1.1.1.1
1.1.1.2
1.1.1.3
1.1.1.3 — является так скажем главным, через него идет весь остальной трафик что не маркирован. С него же я отправляю логи на zabbix сервер, но после перезагрузки микротика, все запросы начинают отправляться с наименьшего по числу IP, то есть с 1.1.1.1, если я отключу 1.1.1.1, то будет оправляться с 1.1.1.2 и так пока я не отключу оба IP, только после отключения отправка идет с 1.1.1.3 и потом можно эти 2 IP снова включать, будет работать до перезагрузки микрота, спасибо за ответ заранее!
Добрый день.
Предположу, что указание 1.1.1.3 в качестве pref.source в дефолтном маршруте должно помочь. Или можно создать правило и маркировать весь остальной трафик под 1.1.1.3.
Добрый день. Не подскажете подробнее как это сделать? В дефолтном маршруте нельзя изменить pref.source (в IP-Routes)
Или нужно создать дополнительный маршрут?
Во втором случае, подскажите пожалуйста как правильно сделать маркировку всего остального трафика?
Создал по аналогии маркировку трафика как тут в инструкции, но все так же выходит с адресом 1.1.1.2 вместо 1.1.1.3
Спасибо заранее за ответ!
Добрый день.
А как привязать к ip адресам mac адрес ?
У провайдера привязка ип к мак.
добрый день , не могу понять, почему нельзя сделать чуток по другому: для хоста сделать маршрут с маркировкой: dst adress:172.16.0.2 Gateway 1.1.1.3 routing mark from_server
без pref source так же и для сетки 10.0.0.0/24 c Gateway 1.1.1.2. Можно вообще не заморачиваться , а просто на 172.16.0.2 два правила srcnat, dstnat netmap 1.1.1.3