Сегодня мы разберем с вами как легко и просто организовать сеть между двумя роутерами под управлением Mikrotik RouterOS.
В качестве роутеров могут выступать как физические устройства так и виртуальные сервера. О том как установить RouterOS на виртуальный сервер мы разбирали ранее, советуем вам ознакомиться с данной инструкцией.
Наша сеть будет состоять из двух роутеров под управлением RouterOS, роутеры будут связаны между собой с помощью Wireguard. После настройки такой связки, все подключенные клиенты к RouterOS 1 будут иметь доступа к ресурсам и клиентам подключенным к RouterOS 2 и наоборот, все клиенты подключенные к RouterOS 2 будут иметь доступ к клиентам и ресурсам подключенным к Router OS 1.
Дополнительно мы настроим маршрутизацию таким образом, чтобы все клиенты подключенные к RouterOS 1 выходили в интернет не через RouterOS 2.
В связи с тем, что последняя, на данный момент, версия routerOS v7.1rc7 не поддерживает маркировку трафика, мы не будем разделять клиентов на тех которые будут выходить в интернет через локальный сервер либо через удаленной. С выходом финальной версии поддержку маркировки трафика исправят и разделение клиентов будет возможно.
Настройка Wireguard
Подробную настойку мы уже разбирали в статье ранее Подробное руководство по настройке и использованию Wireguard в RouteOS советуем вам с ней ознакомиться.
RouterOS 1 настраиваем wireguard сервер
/interface/wireguard add listen-port=13231 name=wireguard
Получаем публичный и приватный ключ wireguard
/interface/wireguard print
После выполнения команды мы получим следующий вывод
Flags: X - disabled; R - running
0 R name="wireguard" mtu=1420 listen-port=13231
private-key="QJJOQDLiJihnsZXGgqPTL2Rkduzp8E0JDAv3IPYTaXQ="
public-key="FSIu0oX0VfHjY/sLz5oVUqEqq7QxReybhrWbcUPs/U0="
Данные ключи мы и будем использовать в последующей настройке.
RouterOS 2 настраиваем wireguard сервер
Выполняем такие же команды как и на RouterOS 1
/interface/wireguard add listen-port=13231 name=wireguard
/interface/wireguard print
Flags: X - disabled; R - running
0 R name="wireguard" mtu=1420 listen-port=13231
private-key="+EokeR+ungoZ5/wI884eq15d/MPbRghCWvq8rBbS+2k="
public-key="i9m7MAFvbYZS7hdI/oL4iG7/m46wfaeShYJekdcaxFM="
RouterOS 1 настраиваем Peer
Настраиваем Peer подключение к RouterOS 2 выполнив команду в которой в public-key укажем public-key от RouterOS 2, а вместо 91.280.10.10 укажите внешний адрес от RouterOS 2
/interface/wireguard/peers/add allowed-addr
ess=0.0.0.0/0 interface=wireguard public-key="i9m7MAFvbYZS7hdI/oL4iG7/m46wfaeShYJekdcaxFM=" endpoint-address=91.280.10.10 endpoint-port=13231 persistent-keepalive=00:00:10
Назначим IP адрес 10.0.10.2 для интерфейса wireguard. Мы будем использовать подсеть 10.0.10.0/24 для внутренних подключений.
/ip address add address=10.0.10.2/24 interface=wireguard network=10.0.10.0
RouterOS 2 настраиваем Peer
Для того чтобы RouterOS 1 смог подключиться к RouterOS 2 нам необходимо добавить новый Peer. По аналогии с настройкой RouterOS 1 добавляем Peer и в public-key укажем public-key от RouterOS 1, а в allowed-address укажем IP адрес 10.0.10.2 данный IP мы задали в качестве IP интерфейс wireguard на RouterOS 1
/interface/wireguard/peers/add allowed-address=10.0.10.2/32 interface=wireguard public-key="FSIu0oX0VfHjY/sLz5oVUqEqq7QxReybhrWbcUPs/U0=" persistent-keepalive=00:00:10
Назначим IP адрес 10.0.10.1 для wireguard интерфейса.
/ip address add address=10.0.10.1/24 interface=wireguard network=10.0.10.0
Добавляем правило в NAT которое позволит принимать трафик от RouterOS1
/ip/firewall/nat/add chain=srcnat action=masquerade
Настраиваем Route на RouterOS 1
Добавим новый маршрут
ip/route/add dst-address=0.0.0.0/0 gateway=wireguard distance=2
ip/route/add dst-address=91.280.10.10 gateway=192.168.1.1 distance=1
Теперь если вы командой ping попробуете пропинговать сервера, вы увидите, что они доступны и видят друг друга , но если попробуете проверить IP адрес который вам выдается, то будете получать адрес RouterOS 1. Чтобы получать IP адрес RouterOS 2 необходимо повысить значение distance маршрута с шлюзом wireguard и установить его значение равное 1 , а distance у маршрута с шлюзом вашей локальной сети, в нашем примере это 192.168.1.1, установить равное 2.