Настройка EOIP-туннеля MikroTik: пошаговая инструкция

EoIP (Ethernet over IP) — один из самых удобных способов объединить две удалённые локальные сети через MikroTik так, чтобы устройства в них видели друг друга как в одном сегменте. Дальше разберём, что из себя представляет EoIP-туннель, когда его стоит применять, и дадим пошаговую инструкцию настройки через терминал и WinBox с реальными примерами конфигурации.

Что такое EoIP-туннель в MikroTik

EoIP (Ethernet over IP) — проприетарный протокол компании MikroTik, который позволяет создать виртуальный Ethernet-канал между двумя маршрутизаторами поверх IP-сети. Технически EoIP инкапсулирует полные Ethernet-фреймы (Layer 2) внутри GRE-туннеля (Generic Routing Encapsulation, IP-протокол 47).

Ключевые особенности протокола:

  • Работает на канальном уровне (L2), а не на сетевом (L3). Это значит, что через туннель проходят широковещательные кадры, ARP-запросы и VLAN-теги.
  • Каждый туннель идентифицируется параметром Tunnel ID. Значение Tunnel ID должно совпадать на обоих концах — иначе туннель не поднимется.
  • Поддерживается только между устройствами MikroTik RouterOS. Стандартный GRE-туннель Cisco или Linux не поймёт формат EoIP.
  • Не обеспечивает шифрование «из коробки». Для защиты данных нужно дополнительно настроить IPsec.

EoIP-интерфейс создаётся как виртуальный сетевой адаптер на роутере. Его можно добавить в bridge наравне с физическим Ethernet-портом, и тогда устройства по обе стороны туннеля окажутся в одном широковещательном домене.

Когда применяется EoIP

Объединение офисов в единую локальную сеть

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

Прозрачный L2-мост между площадками

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

Передача VLAN через интернет

Через EoIP-туннель можно прозрачно пробросить тегированные VLAN-кадры (802.1Q) между площадками. Это удобно, когда на обоих концах работает единая VLAN-структура и менять её нет возможности.

Подготовка к настройке

Схема сети и исходные данные

Для примера возьмём типовую схему из двух офисов:

  • Роутер A (главный офис): WAN IP — 203.0.113.1, локальная сеть — 192.168.10.0/24
  • Роутер B (филиал): WAN IP — 198.51.100.1, локальная сеть — 192.168.10.0/24

Обратите внимание: при использовании EoIP + bridge обе локальные сети будут в одной подсети. Это принципиальное отличие от маршрутизируемых VPN (PPTP, L2TP, IPsec site-to-site), где подсети обычно разные.

Tunnel ID выберем равным 1. Это произвольное число от 0 до 65535, главное — одинаковое на обеих сторонах.

Требования к оборудованию и RouterOS

  • Любой маршрутизатор MikroTik с RouterOS версии 5.x и выше (протокол поддерживается с версии 2.x, но актуальные функции доступны в современных версиях).
  • Белый (публичный) IP-адрес на каждом роутере. Если один из роутеров находится за NAT, EoIP работать не будет — GRE не проходит через NAT без специальных ухищрений.
  • Открытый протокол GRE (IP protocol 47) на промежуточных файрволах и у провайдера.

Настройка EoIP-туннеля через терминал (CLI)

Шаг 1. Создание EoIP-интерфейса на роутере A

Подключитесь к роутеру A через SSH или терминал WinBox и выполните:

/interface eoip add name=eoip-tunnel1 remote-address=198.51.100.1 tunnel-id=1 disabled=no

Разберём параметры:

  • name=eoip-tunnel1 — имя интерфейса (произвольное, но лучше давать осмысленные названия).
  • remote-address=198.51.100.1 — WAN IP-адрес удалённого роутера B.
  • tunnel-id=1 — идентификатор туннеля, должен совпадать на обеих сторонах.
  • disabled=no — интерфейс сразу активен.

Шаг 2. Создание EoIP-интерфейса на роутере B

На роутере B выполните зеркальную команду, указав IP роутера A:

/interface eoip add name=eoip-tunnel1 remote-address=203.0.113.1 tunnel-id=1 disabled=no

Обратите внимание: tunnel-id=1 одинаковый, а remote-address указывает на противоположную сторону.

Шаг 3. Проверка состояния туннеля

На любом из роутеров выполните:

/interface eoip print

Пример вывода:

Flags: X - disabled; R - running
 0  R  name="eoip-tunnel1" mtu=auto actual-mtu=1458 l2mtu=65535
      mac-address=FE:45:B0:31:4A:34 arp=enabled
      local-address=0.0.0.0 remote-address=198.51.100.1
      tunnel-id=1 keepalive=10s,10 dscp=inherit
      clamp-tcp-mss=yes allow-fast-path=yes

Флаг R (running) означает, что туннель поднялся и работает. Если вместо R стоит X — интерфейс отключен. Если нет флага R — проблема на одной из сторон (подробнее в разделе об ошибках).

Для быстрой проверки связности через туннель можно назначить временные IP и выполнить ping:

# На роутере A:
/ip address add address=10.255.255.1/30 interface=eoip-tunnel1

# На роутере B:
/ip address add address=10.255.255.2/30 interface=eoip-tunnel1

# Ping с роутера A:
/ping 10.255.255.2

Если пинг проходит — туннель работает корректно. После проверки эти адреса можно удалить, если планируется использование bridge.

Настройка EoIP через WinBox

Создание интерфейса

  1. Откройте WinBox и подключитесь к роутеру.
  2. Перейдите в меню Interfaces.
  3. Нажмите кнопку + (Add New) и выберите EoIP Tunnel.
  4. В открывшемся окне заполните поля:
  • Name — eoip-tunnel1
  • Remote Address — IP-адрес удалённого роутера
  • Tunnel ID — 1
  1. Нажмите OK.

Повторите процедуру на втором роутере, указав IP первого роутера в поле Remote Address и тот же Tunnel ID.

Проверка статуса

После создания интерфейса на обоих роутерах вернитесь в раздел Interfaces. Напротив eoip-tunnel1 должен появиться флаг R (running). Если интерфейс отображается серым цветом — он отключен, нажмите правой кнопкой и выберите Enable.

Объединение сетей через bridge и EoIP

Сам по себе EoIP-туннель — это просто виртуальный Ethernet-кабель между роутерами. Чтобы устройства в локальных сетях обоих офисов оказались в одном сегменте, нужно объединить EoIP-интерфейс и физический порт в bridge.

Создание bridge и добавление портов

На роутере A (аналогично на роутере B):

# Создание bridge-интерфейса
/interface bridge add name=bridge-eoip

# Добавление локального порта (например, ether2) в bridge
/interface bridge port add bridge=bridge-eoip interface=ether2

# Добавление EoIP-туннеля в тот же bridge
/interface bridge port add bridge=bridge-eoip interface=eoip-tunnel1

После этих команд всё, что приходит на ether2 роутера A, будет прозрачно передаваться через EoIP на роутер B, и наоборот.

Важно: если на роутере уже есть bridge с локальными портами (например, стандартный bridge1 после быстрой настройки), можно просто добавить EoIP-интерфейс в существующий bridge:

/interface bridge port add bridge=bridge1 interface=eoip-tunnel1

Назначение IP-адреса bridge-интерфейсу

IP-адрес назначается на bridge, а не на физический порт и не на EoIP-интерфейс:

# На роутере A:
/ip address add address=192.168.10.1/24 interface=bridge-eoip

# На роутере B:
/ip address add address=192.168.10.2/24 interface=bridge-eoip

DHCP-сервер, если он используется, тоже должен работать на bridge-интерфейсе. При этом рекомендуется запускать DHCP только на одном из роутеров, чтобы избежать конфликтов.

Настройка MTU для EoIP-туннеля

MTU (Maximum Transmission Unit) — важный параметр, влияющий на производительность. Стандартный Ethernet MTU составляет 1500 байт, но EoIP добавляет накладные расходы: заголовок GRE (4 байта) + заголовок EoIP (8 байт) + внешний IP-заголовок (20 байт). Итого 32 байта.

Фактический MTU EoIP-туннеля по умолчанию составляет 1458 байт (при стандартном канальном MTU 1500 на WAN-интерфейсе). RouterOS автоматически рассчитывает actual-mtu, если параметр mtu выставлен в auto.

Рекомендации:

  • Оставляйте MTU в значении auto — RouterOS сама подстроит значение.
  • Включите clamp-tcp-mss=yes (по умолчанию включено) — это автоматически уменьшает MSS в TCP-пакетах, предотвращая фрагментацию.
  • Если через туннель проходят пакеты с DF-битом (Don’t Fragment) и связь обрывается на крупных пакетах, проверьте MTU на всём пути. Полезная команда:
/ping 198.51.100.1 size=1472 do-not-fragment

Если пинг не проходит с размером 1472, уменьшайте значение, пока не найдёте рабочий размер. Затем вычтите из него 32 байта — это и будет оптимальный MTU для EoIP.

Для ручной установки MTU:

/interface eoip set eoip-tunnel1 mtu=1400

Безопасность EoIP: шифрование через IPsec

EoIP передаёт данные в открытом виде. Любой, кто перехватит GRE-пакеты на промежуточном узле, сможет прочитать содержимое. Для защиты трафика используйте встроенную поддержку IPsec.

Самый простой способ — указать параметр ipsec-secret при создании туннеля:

/interface eoip add name=eoip-tunnel1 remote-address=198.51.100.1 tunnel-id=1 ipsec-secret=MyStr0ngP@ssw0rd disabled=no

Ту же команду (с тем же паролем) выполните на втором роутере. RouterOS автоматически создаст IPsec-политики и SA (Security Association). Трафик внутри туннеля будет зашифрован.

Для уже созданного туннеля можно добавить шифрование:

/interface eoip set eoip-tunnel1 ipsec-secret=MyStr0ngP@ssw0rd

Проверка IPsec-соединения:

/ip ipsec installed-sa print

Вы должны увидеть активные SA с адресами обоих роутеров.

Рекомендации по безопасности:

  • Используйте сложный пароль длиной не менее 16 символов.
  • В продуктивной среде настраивайте IPsec вручную с использованием сертификатов вместо PSK (Pre-Shared Key).
  • Учитывайте, что шифрование увеличивает нагрузку на процессор. На младших моделях (hAP lite, hEX lite) это может снизить пропускную способность туннеля до 10-30 Мбит/с.

Настройка Firewall для EoIP

Для работы EoIP между роутерами должен быть открыт протокол GRE. Если на роутерах настроен файрвол, добавьте разрешающие правила.

На роутере A:

/ip firewall filter add chain=input protocol=gre src-address=198.51.100.1 action=accept comment="Allow GRE from Router B" place-before=0

На роутере B:

/ip firewall filter add chain=input protocol=gre src-address=203.0.113.1 action=accept comment="Allow GRE from Router A" place-before=0

Если используется IPsec, дополнительно откройте:

/ip firewall filter add chain=input protocol=udp dst-port=500 src-address=198.51.100.1 action=accept comment="Allow IKE" place-before=0
/ip firewall filter add chain=input protocol=ipsec-esp src-address=198.51.100.1 action=accept comment="Allow IPsec ESP" place-before=0
/ip firewall filter add chain=input protocol=udp dst-port=4500 src-address=198.51.100.1 action=accept comment="Allow NAT-T" place-before=0

Параметр place-before=0 размещает правило в начале цепочки, чтобы оно обрабатывалось до запрещающих правил.

Типичные ошибки и их решение

Туннель создан, но статус not running

Это самая распространённая проблема. Возможные причины:

  1. Tunnel ID не совпадает на обоих роутерах. Проверьте командой /interface eoip print detail на каждом устройстве.
  2. Неверный remote-address. Убедитесь, что указан именно WAN-адрес противоположного роутера, а не его локальный IP.
  3. GRE заблокирован провайдером. Некоторые провайдеры блокируют протокол GRE (IP 47). Проверьте, проходит ли трафик: на удалённом роутере выполните /tool sniffer с фильтром по протоколу GRE.
  4. Файрвол блокирует GRE. Проверьте правила в chain=input на обоих роутерах.
  5. Роутер за NAT. EoIP не работает через NAT без дополнительных мер. Если один из роутеров за NAT — используйте IPIP, GRE с IPsec (NAT-T) или WireGuard вместо EoIP.

Пакеты уходят, но не возвращаются

  • Проверьте маршруты: /ip route print. Убедитесь, что обратный трафик уходит через правильный WAN-интерфейс.
  • Проверьте, нет ли асимметричной маршрутизации. Если на роутере несколько WAN, убедитесь, что ответные GRE-пакеты идут через тот же интерфейс, откуда пришли.
  • Используйте Torch для диагностики: Tools → Torch, выберите WAN-интерфейс и отфильтруйте протокол GRE.

Низкая скорость через EoIP

  • Шифрование IPsec существенно нагружает процессор. На моделях без аппаратного ускорения шифрования (hAP, hEX) пропускная способность может упасть до 20-50 Мбит/с. Решение — использовать модели с аппаратным AES (RB4011, CCR, RB5009).
  • MTU и фрагментация. Если MTU настроен некорректно, пакеты фрагментируются, что резко снижает скорость. Убедитесь, что clamp-tcp-mss включён.
  • Broadcast-штормы. При объединении через bridge широковещательный трафик идёт в обе стороны. Если в одной из сетей много broadcast (например, от Windows-сервисов), это может забить канал. Решение — включить фильтрацию broadcast в настройках bridge или использовать STP.
  • Keepalive. По умолчанию keepalive отправляется каждые 10 секунд, 10 попыток. Если канал нестабильный, туннель может часто «падать» и «подниматься». Настройте keepalive под ваши условия:
/interface eoip set eoip-tunnel1 keepalive=30s,5

Заключение

EoIP-туннель в MikroTik — простой и эффективный способ объединить удалённые сети на канальном уровне. Настройка занимает буквально несколько команд: создать EoIP-интерфейс с одинаковым Tunnel ID на обоих роутерах, добавить его в bridge — и сети работают как одна. Протокол отлично подходит для связи офисов, проброса VLAN и организации L2-мостов.

При этом не забывайте о безопасности — обязательно включайте IPsec-шифрование для защиты данных, настраивайте файрвол и контролируйте MTU для стабильной работы. Если роутер находится за NAT или провайдер блокирует GRE — рассмотрите альтернативы: WireGuard, L2TP/IPsec или VXLAN (доступен в RouterOS 7).

Оцените статью
uchet-jkh.ru
Добавить комментарий