Перейти к содержимому

Корпоративная сеть на RouterOS и wireguard

    Сегодня мы разберем с вами как легко и просто организовать сеть между двумя роутерами под управлением 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.