В прошлый статье остановились на том что, мы собрали MikroTik в единую сеть, обойдя NAT с помощью "облачного" сервера. Далее, в данной статье, мы настроим связность между нашими площадками, да так чтобы казалось, как будто мы их подключили прямым кабелем (L2). Мы должны получить L2VPN. Должно получиться, что-то вроде этого:

Все настройки буду показывать, по возможности, через Web интерфейс, так как считаю, что это более нагляднее и позволяет повторить их даже неопытному пользователю. Поэтому будет много картинок, и как их правильно разместить их в статье, чтобы не потерять нить - я не знаю. Поэтому прошу понять и простить.

Настройка MikroTik

Легкий способ, без trunk порта.

Если вам не нужно соединять MikroTik с другим оборудованием с помощью trunk порта, а просто, грубо говоря, соединить два компьютера вместе, то пользуйтесь настройками от Mik_1.

Mik_1

Заходим в Web интерфейс

Создадим, тот самый L2 туннель, с целью объединения двух сетей (site-to-site VPN). В MikroTik это EoIP - очень удобная штука и легко настраивается.

Основная информация, это что протокол EoIP инкапсулирует кадры Ethernet в пакеты GRE (IP-протокол номер 47) (как и PPTP) и отправляет их на удаленную сторону туннеля EoIP - не забываем это!

И так приступим:

Слева выбираем Interface, далее вкладка EoIP Tunnel, нажимаем Add New

В строке Name, присваиваем произвольное имя (тут мы сделаем как показано в схеме). В строке Remote Address, указываем IP адрес клиента MikroTik, который подключен у нас в головном офисе. В строке Tunnel ID, произвольный ID номер (в данном примере был взят данный номер, для удобства, и схож с VLAN), ну и конечно же OK (далее я это не буду упомянуть, я думаю и так понятно, что нужно подтверждать, то что мы делаем)

Далее нам необходимо связать интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, ...), с созданным туннелем. Для этого создаем сетевой мост (Bridge).

И так приступим:

Далее слева выбираем Bridge, после вкладка Bridge, и нажимаем Add New

Задаем ему произвольное имя в строке Name.

Далее, привязываем интерфейс и туннель с данным Bridge. Для этого выбираем вкладку Ports и нажимаем Add New.

Привязываем туннель с Bridge. В строке Interface выбираем EoIP_1, туннель который ранее был создан. В строке Bridge выбираем bridge_eoip.

Далее по такому же принципу необходимо связать интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, ...)

Привязываем интерфейс с Bridge. В строке Interface выбираем интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, ...), в данной схеме подключение осуществляется в интерфейсе ether3. В строке Bridge выбираем bridge_eoip.

Получаем что-то вроде этого, как показано выше на рисунке.

С настройками MikroTik, который находиться на удаленной площадке, закончили. По аналогии настраиваем все другие, которые будут подключаться к нашему центральному офису

Переходим к настройке MikroTik, который находиться в центральном офисе.

Mik_OFFICE

По аналогии с Mik_1, настраиваем EoIP туннели.

В строке Name, присваиваем произвольное имя (тут мы сделаем как показано в схеме). В строке Remote Address, указываем IP адрес клиента MikroTik, который подключен у нас в удалённом офисе. В строке Tunnel ID, указываем тот ID номер, тот который был указан у нас в удалённом офисе (в данном примере был взят данный номер, для удобства, он схож с VLAN).

Для других удалённых офисов делаем по аналогии.

В данном примере, для OFFICE_2, где MikroTik под именем Mik_2, мы указываем: Name: EoIP_2, Remote Address: 10.7.0.4, Tunnel ID: 222.

В итоге должно получиться, что-то вроде этого, как показано на рисунке выше.

Далее нам необходимо связать интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, ...), с созданными туннелями. Так как у нас удаленных точек будет много, мы все их заведем на маршрутизатор CISCO и свяжем с MikroTik - trunk портом. Для этого создаем сетевой мост (Bridge) с возможностью "пропускания" VLAN'ов.

И так приступим:

Cлева выбираем Bridge, после вкладка Bridge, и нажимаем Add New. Далее задаем ему произвольное имя в строке Name. И после обязательно ставим галочку VLAN Filtering, что означает, что данный сетевой мост будет пропускать VLAN.

Далее, привязываем интерфейс и туннели (с удаленных офисов) с данным Bridge. Для этого выбираем вкладку Ports и нажимаем Add New. В строке Interface выбираем EoIP_1, туннель который ранее был создан. В строке Bridge выбираем bridge_trunk. И после обязательно в строке PVID указываем номер VLAN.

Для других удалённых офисов делаем по аналогии.

В данном примере, для OFFICE_2, где MikroTik под именем Mik_2, мы указываем: Interface: EoIP_2, Bridge: bridge_trunk, PVID: 222.

Далее по такому же принципу необходимо связать интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, ...)

Далее привязываем интерфейс с Bridge. В строке Interface выбираем интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, ...), в данной схеме подключение осуществляется на интерфейсе ether3. В строке Bridge выбираем bridge_trunk. Так интерфейсе ether3 - trunk, в строке PVID указываем 1.

В итоге должно получиться, что-то вроде этого, как показано на рисунке выше.

Теперь нам необходимо правильно настроить access trunk порты (в MikroTik это - tagged и untagged), так как при добавлении по умолчанию, они настроены не правильно.

Заходим в вкладке VLANs, и нажимаем Add New.

Далее, для VLAN: 111. Строка VLAN IDs: 111, строка Tagged: bridge_trunk и ether3, в строке Untagged: EoIP_1

Для VLAN: 222. Строка VLAN IDs: 222, строка Tagged: bridge_trunk и ether3, в строке Untagged: EoIP_2

В итоге должно получиться, что-то вроде этого, как показано на рисунке выше.

Все, настройка данного MikroTik закончена.

FireWall на всех MikroTik

Теперь, как я и писал выше, мы знаем, что протокол EoIP инкапсулирует кадры Ethernet в пакеты GRE (IP-протокол номер 47), нам необходимо на FireWall открыть данный порт на интерфейсе, на котором "висит" WireGuard. Этого нужно для того, чтобы бы у нас EoIP туннели заработали.

Для этого, заходим в IP -> Firewall -> Add New.

У меня, данное правило, через Web интерфейс не удалось добавить, поэтому пришлось его добавлять, через консоль:

ip firewall filter add chain=input comment=Tunnels protocol=gre in-interface=wg0

Мин. настройка оборудования в цен. офисе (на базе CISCO)

Теперь настроим маршрутизатор (R_OFFICE) и коммутатор (SW_OFFICE) согласно схемы:

Маршрутизатор (R_OFFICE) CISCO:

Зададим имя:

hostname R_OFFICE

Настроим trunk порт смотрящий в сторону наших офисов, т.е. в сторону нашего MikroTik:

!
interface Ethernet0/3.111
 encapsulation dot1Q 111
 ip address 192.168.2.1 255.255.255.0
!
interface Ethernet0/3.222
 encapsulation dot1Q 222
 ip address 192.168.3.1 255.255.255.0
!

Далее, настроим trunk порт смотрящий в сторону сети нашего офиса, т.е. в сторону нашего коммутатора (SW_OFFICE):

!
interface Ethernet0/0.5
 encapsulation dot1Q 5
 ip address 192.168.4.1 255.255.255.0
!

Коммутатор (SW_OFFICE) CISCO:

Зададим имя:

hostname SW_OFFICE

Заведем VLAN:

!
vlan 5
name HOST
!

Настроим trunk порт смотрящий в сторону маршрутизатора (R_OFFICE):

!
interface Ethernet0/0
 switchport trunk allowed vlan 5
 switchport trunk encapsulation dot1q
 switchport mode trunk
!

Настроим access порт для абонента:

!
interface Ethernet0/3
 switchport access vlan 5
 switchport mode access
!

Итог

Ну что же, теперь давайте подключим абонентов к оборудованию со всех сторон, зададим им IP адреса, согласно схемы и проверим!

Ура! Все заработало!

В итоге мы получили L2VPN, на базе WireGuard, который позволил нам связать наши удаленные точки. Так же это можно использовать, если вы используете СИМ карты, которые находятся за NAT и получают динамические IP адреса.

Комментарии (14)


  1. ammo
    11.09.2021 01:24
    +2

    А чего циску не через веб конфигурите? Неопытные пользователи (которым, кстати, понадобился eoip over wireguard на ros 7) же дойдут до места с терминалом и убегут из статьи, испугаются.


    1. stensilart Автор
      11.09.2021 11:40

      Согласен. Так и думал будет укор в мою сторону. Каюсь. В следующий раз постараюсь совместить и консоль и web.


  1. sergeysakirkin
    11.09.2021 03:57
    +3

    Рекомендовать EoIP для повседневного использования, такое себе решение. Гонять L2 трафик по WAN сетям не особо продуктивно и оправданно. Есть конечно уникальные случаи когда это необходимо.


    1. SinnerLike
      11.09.2021 08:37

      Даже в рамках одного здания стараюсь разделить сети...

      А тут предлагают гонять бродкаст через "сим карты".


      1. stensilart Автор
        11.09.2021 11:38

        Просто нормальную реализацию L2 я на просторах интернета не нашел, который бы так просто настаивался. И да L2 нужен.


  1. resetsa
    11.09.2021 10:01

    И какой MTU у канала L2 получился? Я честно все части не читал, но интересно.
    Про зачем — не спрашиваю, понятно, чисто академический интерес.
    Только тогда не понятно, почему Web морда, а не тот же Winbox или уж консоль.


    1. stensilart Автор
      11.09.2021 11:37

       MTU у EoIP - выставился по умолчанию, и он равен 1378. Честно, для меня загадка, зачем использовать Winbox (ну наверно с точки безопасности) если есть Web, также резонный вопрос, а есть ли Winbox под какой нибудь Debian, Alt Linux и т.д.?


      1. St_Sinner
        11.09.2021 12:09

        Работает через Wine. Каких-то дополнительных настроек в wine делать не требуется. Просто apt install wine

        Потом качаете Winbox, запускаете и ждёте, когда wine сам поставит пару пакетов и настроит среду. Собственно все, используете Winbox в Linux


        1. stensilart Автор
          11.09.2021 12:17
          +2

          Ну по мне, легче web открыть.


          1. be52
            12.09.2021 13:57

            winbox это килерфича routeros/ глупо от нее отказываться


      1. alpik
        11.09.2021 16:48

        yay -S winbox

        Можно открыть много окон в интерфейсе, и переключаться между ними. Настройки расположения окон сохраняются при повторном соединении.


      1. DaemonGloom
        13.09.2021 07:37

        Winbox позволяет чуть больше вещей делать удобно. Я, например, периодически пользуюсь возможностью копировать существующее правило файрволла. Через веб такой функции нет.


  1. iddqda
    13.09.2021 12:38
    +1

    Очень кривое решение задачи

    Вам с самого начала Л2 тут не вперся

    Задача решается просто прописыванием статических маршрутов на нужные сети за wg0 интерфейсами + allowed IPs (на всех WG пирах)

    Ну или пойти дальше и поднять frr/bird на хабе и запулить OSPF


    1. stensilart Автор
      13.09.2021 13:38

      Ну как бы это и так понятно, что можно сделать и так. Статья написана из-за того что нормальной реализации L2VPN я на просторах интернета не нашел. Вы же, как хотите, так и делайте. Я не претендую на то что это одно единственное решение. Я только описал, что так можно сделать.