Настройка туннелей 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 сегмент через интернет:
В примере оба роутера имеют внешние IP адреса 200.1.1.1 и 200.1.1.2, туннель будет построен поверх них. Оба роутера имеют локальные сети с адресами в одной подсети, их мы объединим в один сегмент с помощью L2 связности, предоставляемой туннелем EoIP. При этом, на обоих роутерах должен быть отключен DHCP сервер для тех интерфейсов, что мы хотим объединить в один сегмент.
Используется шифрование ipsec.
В данном примере интерфейсы туннеля имеют название EOIP, а wan интерфейсы - WAN
Для создания туннеля требуется проделать следующее:
-
Перейдите в раздел /tunnel → eoip и создайте туннель кнопкой Add.
-
Задайте новому туннелю имя, например, EOIP.
-
В поле Local IP выберите интерфейс, через который будет работать туннель.
-
В поле Remote IP укажите внешний IP удаленной стороны туннеля.
-
В поле Tunnel ID укажите идентификатор туннеля, например, 1000.
-
Остальные поля можно не заполнять, если нет необходимости.
-
Нажмите Apply.
Если в поле Encryption был выбран вариант ipsec, то в дополнительном поле psk необходимо указать ключ для шифрования. Идентичная настройка шифрования необходима на обоих роутерах. При этом соответствующие туннели будут созданы автоматически в разделе /tunnel → ipsec.
Конфигурация на роутере 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
Поле |
Значение |
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
/
Статусы туннелей отображается в статусной панели роутеров:
Связь между локальными сетями
Теперь необходимо обеспечить связь между локальными сетями. Для этого необходимо объединить виртуальные интерфейсы туннелей с соответствующими бриджами.
Для этого в разделе network → bridge необходимо выбрать бридж (в нашем случае это bridge0), отвечающий за ту локальную сеть, которую мы собираемся объединить с удаленной, кликнув на него, и далее добавить порт «EOIP» (название будет соответствовать тому, что было задано при создании туннеля) из выпадающего списка Untagged и кликнуть Apply.
С помощью CLI это можно сделать следующим образом:
-
С помощью команды /ip → interface → status выведите список существующих бриджей и их параметров.
-
Найдите в списке интерфейс бриджа, которому назначен нужный нам IP-адрес и подсеть, например, 192.168.1.1/24. В нашем примере bridge0 - нужный нам.
-
Теперь перейдите в раздел настройки бриджа командой /network → bridge → bridge0.
-
Выведите список портов в бридже командой port или /network → bridge → bridge0 → port. Изучите содержимое вывода, например, вывод port1.
-
Введите в командной строке port → port1,EOIP (где EOIP - название интерфейса, данное туннелю EoIP) и нажмите ввод.
-
Введите в командной строке apply и нажмите ввод, чтобы подтвердить новые настройки бриджа.
Сокращенный пример выполнения команды:
/ip interface status
/network bridge bridge0 port EOIP
apply
/
Аналогичную настройку необходимо провести на втором роутере.
Теперь можно проверить, работает ли туннель с локального адреса роутера на противоположной стороне и просмотра дампа трафика на ней.
Ping (/tools → Ping) R2 со стороны R1
Tcpdump (/tools → Sniffer) на стороне R2
Обратите внимание, что в случае использования шифрования ipsec роутер уже имеет предустановленные правила для файрволла, позволяющие ему создавать туннели EOIP. Однако если шифрование не используется, то в файрволле (/firewall → filter) необходимо создать правило, разрешающее трафик протокола GRE, и поместить это правило выше правила, запрещающего трафик из зоны Wan.
В CLI это можно сделать следующим образом:
/firewall filter add chain=input
action accept
protocol gre
src zone-wan
reorder position=-1
apply
/firewall filter status
/
Завершите настройку командой /system → config → commit.