logo

Настройка туннелей EoIP на роутерах на базе irzOS

EoIP-туннель (Ethernet over IP) представляет собой специализированный тип туннельного соединения, разработанный компанией MikroTik. Данный туннель функционирует на канальном уровне (L2) модели OSI, работая поверх сетевого уровня (L3) и способен создать виртуальный мост между двумя устройствами, эмулируя прозрачную сетевую среду.

Внутри туннеля передаются кадры Ethernet, как если бы роутеры были соединены напрямую, а в качестве транспорта используется GRE.

Для работы туннелей EoIP требуется, чтобы оба участника либо находились в одной сети, либо имели внешние IP адреса без какой-либо трансляции адресов (NAT) между ними.

В базовой настройке туннели EoIP не предполагают защиту шифрованием, однако такая защита возможна с помощью IPSec.

Роутеры на базе irzOS имеют возможность автоматической настройки IPSec для туннеля EoIP, однако взаимная совместимость гарантируется только между роутерами irzOS, настройка с другими устройствами может быть затруднена.

Туннели уровня L2 поверх сетевого уровня (L3) стоит использовать только в случае крайней необходимости, когда задачу невозможно решить с помощью маршрутизации внутри L3 туннелей.

Пример объединения оборудования в один L2 сегмент через интернет:

EoIP 1
Figure 1. Схема сети

В примере оба роутера имеют внешние IP адреса 200.1.1.1 и 200.1.1.2, туннель будет построен поверх них. Оба роутера имеют локальные сети с адресами в одной подсети, их мы объединим в один сегмент с помощью L2 связности, предоставляемой туннелем EoIP. При этом, на обоих роутерах должен быть отключен DHCP сервер для тех интерфейсов, что мы хотим объединить в один сегмент.

Используется шифрование ipsec.

В данном примере интерфейсы туннеля имеют название EOIP, а wan интерфейсы - WAN

Для создания туннеля требуется проделать следующее:

  1. Перейдите в раздел /tunnel → eoip и создайте туннель кнопкой Add.

  2. Задайте новому туннелю имя, например, EOIP.

  3. В поле Local IP выберите интерфейс, через который будет работать туннель.

  4. В поле Remote IP укажите внешний IP удаленной стороны туннеля.

  5. В поле Tunnel ID укажите идентификатор туннеля, например, 1000.

  6. Остальные поля можно не заполнять, если нет необходимости.

  7. Нажмите Apply.

Если в поле Encryption был выбран вариант ipsec, то в дополнительном поле psk необходимо указать ключ для шифрования. Идентичная настройка шифрования необходима на обоих роутерах. При этом соответствующие туннели будут созданы автоматически в разделе /tunnel → ipsec.

Конфигурация на роутере R1

EoIP 2
Table 1. Параметры роутера R1

Поле

Значение

Local IP

WAN (выбирается из перечня)

Remote IP

200.1.1.2 (указывается пользователем)

Tunnel ID

1000 (указывается пользователем)

Encryption

none или ipsec (при выборе ipsec будут автоматически созданы необходимые настройки шифрования IPSec, аналогичная настройка должна быть на другом роутере iRZos)

Настройка в CLI (с шифрованием ipsec)

Для осуществления настройки через CLI необходимо зайти в роутер с помощью SSH и логина\пароля администратора и выполнить следующие команды:

/tunnel eoip add name=EOIP
    disabled -
    dscp 0
    encryption ipsec
    local-ip WAN
    macaddr auto
    mtu 1462
    psk password
    remote-ip 200.1.1.2
    ttl 64
    tunnel-id 1000
    tunnel-ip -
    apply
  /

Конфигурация на роутере R2

EoIP 3
Table 2. Параметры роутера R2

Поле

Значение

Local IP

WAN (выбирается из перечня)

Remote IP

200.1.1.1 (указывается пользователем)

Tunnel ID

1000 (указывается пользователем)

Encryption

none или ipsec (при выборе ipsec будут автоматически созданы необходимые настройки шифрования IPSec, аналогичная настройка должна быть на другом роутере iRZos)

Настройка в CLI

/tunnel eoip add name=EOIP
    disabled -
    dscp 0
    encryption ipsec
    local-ip WAN
    macaddr auto
    mtu 1462
    psk password
    remote-ip 200.1.1.1
    ttl 64
    tunnel-id 1000
    tunnel-ip -
    apply
  /

Статусы туннелей отображается в статусной панели роутеров:

EoIP 4
EoIP 5

Связь между локальными сетями

Теперь необходимо обеспечить связь между локальными сетями. Для этого необходимо объединить виртуальные интерфейсы туннелей с соответствующими бриджами.

Для этого в разделе network → bridge необходимо выбрать бридж (в нашем случае это bridge0), отвечающий за ту локальную сеть, которую мы собираемся объединить с удаленной, кликнув на него, и далее добавить порт «EOIP» (название будет соответствовать тому, что было задано при создании туннеля) из выпадающего списка Untagged и кликнуть Apply.

EoIP 6

С помощью CLI это можно сделать следующим образом:

  1. С помощью команды /ip → interface → status выведите список существующих бриджей и их параметров.

  2. Найдите в списке интерфейс бриджа, которому назначен нужный нам IP-адрес и подсеть, например, 192.168.1.1/24. В нашем примере bridge0 - нужный нам.

  3. Теперь перейдите в раздел настройки бриджа командой /network → bridge → bridge0.

  4. Выведите список портов в бридже командой port или /network → bridge → bridge0 → port. Изучите содержимое вывода, например, вывод port1.

  5. Введите в командной строке port → port1,EOIP (где EOIP - название интерфейса, данное туннелю EoIP) и нажмите ввод.

  6. Введите в командной строке apply и нажмите ввод, чтобы подтвердить новые настройки бриджа.

Сокращенный пример выполнения команды:

/ip interface status
/network bridge bridge0 port EOIP
apply
/

Аналогичную настройку необходимо провести на втором роутере.

Теперь можно проверить, работает ли туннель с локального адреса роутера на противоположной стороне и просмотра дампа трафика на ней.

Ping (/tools → Ping) R2 со стороны R1

EoIP 7

Tcpdump (/tools → Sniffer) на стороне R2

EoIP 8

Обратите внимание, что в случае использования шифрования ipsec роутер уже имеет предустановленные правила для файрволла, позволяющие ему создавать туннели EOIP. Однако если шифрование не используется, то в файрволле (/firewall → filter) необходимо создать правило, разрешающее трафик протокола GRE, и поместить это правило выше правила, запрещающего трафик из зоны Wan.

EoIP 9

В CLI это можно сделать следующим образом:

/firewall filter add chain=input
    action accept
    protocol gre
    src zone-wan
    reorder position=-1
    apply
/firewall filter status
/

Завершите настройку командой /system → config → commit.