Настраиваем EoIP-туннель между MikroTik и Keenetic: Объединяем сети через приватные IP
Опубликовано 17.07.2025
В мире сетевых технологий часто возникает задача объединить две удаленные локальные сети так, чтобы они ощущались как единое целое, даже если находятся за разными маршрутизаторами. Для владельцев оборудования MikroTik знакома концепция EoIP (Ethernet over IP) — фирменного туннельного протокола, позволяющего создавать виртуальный Ethernet-интерфейс (Layer 2) поверх IP-сети.
Хорошие новости для пользователей Keenetic: начиная с прошивки NDMS v2.10, роутеры Keenetic также поддерживают EoIP! Это открывает двери для интересных сетевых конфигураций.
В этом кейсе мы подробно разберем, как настроить полноценный EoIP-туннель между роутерами MikroTik и Keenetic, используя приватные IP-адреса. Такой подход идеально подходит для использования туннеля внутри существующей VPN-сети или в сценариях, где вы можете обеспечить корректный проброс GRE-протокола через NAT.
📌 Что такое EoIP?
EoIP (Ethernet over IP) — это проприетарный туннельный протокол, разработанный MikroTik. Он работает поверх GRE (Generic Routing Encapsulation), который, в свою очередь, инкапсулируется в IP (использует IP-протокол 47). По сути, EoIP создает виртуальный Ethernet-кабель между двумя удаленными устройствами, позволяя им обмениваться Ethernet-кадрами, как если бы они были подключены напрямую по локальной сети. Это означает, что вы можете “пробросить” L2-трафик (VLAN, DHCP, ARP, PPPoE) через туннель.
📋 Условия для успешной работы
Прежде чем приступать к настройке, убедитесь, что соблюдены следующие ключевые условия:
- Доступность по IP: Маршрутизаторы Keenetic и MikroTik должны иметь возможность “видеть” друг друга по IP-адресам. Это может быть достигнуто, если они находятся в одной VPN-сети (например, оба являются клиентами VPN-сервера или между ними уже настроен Site-to-Site VPN) или если GRE-протокол (IP Protocol 47) корректно проброшен через NAT на обоих концах (для этого требуется проброс портов на роутерах, находящихся перед MikroTik/Keenetic).
- Использование приватных IP-адресов: В нашем примере мы будем использовать приватные IP для туннелирования. Допустим:
- MikroTik:
192.168.100.1
(IP, который MikroTik использует для связи с Keenetic). - Keenetic:
192.168.200.1
(IP, который Keenetic использует для связи с MikroTik).
- MikroTik:
- Совпадающий Tunnel ID: Критически важно, чтобы
Tunnel ID
был одинаковым на обоих устройствах (например,100
). - Отсутствие блокировки GRE (IP Protocol 47): Убедитесь, что ни один файрвол или провайдер не блокирует GRE-протокол.
🖧 Схема нашей сети
Представим следующую топологию:
[Локальная сеть A] <--- Ethernet ---> MikroTik (IP для туннеля: 192.168.100.1)
↑
| EoIP Tunnel (Tunnel ID: 100)
↓
[Локальная сеть B] <--- Ethernet ---> Keenetic (IP для туннеля: 192.168.200.1)
Мы создадим общую EoIP-сеть для прямого L2-взаимодействия между роутерами, например: 192.168.88.0/24.
⚙️ Настройка MikroTik (RouterOS)
Подключитесь к вашему MikroTik роутеру (через Winbox или SSH/WebFig) и выполните следующие команды:
Создаем EoIP-интерфейс: Этот интерфейс будет виртуальным каналом для нашего туннеля.
/interface eoip add name=eoip-keenetic \ remote-address=192.168.200.1 \ local-address=192.168.100.1 \ tunnel-id=100 comment="EoIP tunnel to Keenetic"
remote-address
: IP-адрес Keenetic, который он использует для туннеля.local-address
: IP-адрес MikroTik, который он использует для туннеля.tunnel-id
: Уникальный идентификатор туннеля (должен совпадать на обеих сторонах).
Создаем мост (Bridge) и добавляем порты: Мы создадим новый мост, чтобы объединить наш EoIP-интерфейс с локальной сетью MikroTik, делая их частью одного L2-домена.
/interface bridge add name=br-eoip comment="Bridge for EoIP tunnel" /interface bridge port add bridge=br-eoip interface=eoip-keenetic comment="Add EoIP interface to bridge" /interface bridge port add bridge=br-eoip interface=ether2 comment="Add MikroTik LAN port (or VLAN) to bridge"
- Замените
ether2
на имя вашего LAN-порта или VLAN-интерфейса, который вы хотите объединить в L2-домен с Keenetic.
- Замените
Назначаем IP-адрес на мост (опционально, для L3-доступа): Если вам нужен IP-адрес для управления мостом или для маршрутизации L3-трафика через него, назначьте его. Это будет IP-адрес вашего MikroTik в общей EoIP-сети.
/ip address add address=192.168.88.1/24 interface=br-eoip comment="IP for EoIP bridge"
192.168.88.1/24
— это IP-адрес MikroTik в нашей новой общей L2-сети.
⚙️ Настройка Keenetic (NDMS)
Подключитесь к веб-интерфейсу вашего Keenetic роутера и перейдите в Система → Командная строка (CLI).
Создаем EoIP-интерфейс:
interface EoIP0 tunnel source 192.168.200.1 tunnel destination 192.168.100.1 tunnel id 100 no shutdown exit
tunnel source
: IP-адрес Keenetic, который он использует для туннеля.tunnel destination
: IP-адрес MikroTik, который он использует для туннеля.tunnel id
: Идентификатор туннеля (должен совпадать с MikroTik).
Добавляем EoIP в мост: На Keenetic по умолчанию существует
Bridge0
. Мы добавим наш новый EoIP-интерфейс и локальный LAN-порт Keenetic в этот мост.interface Bridge0 bridge-group Bridge0 bridge-ports EoIP0 Ethernet0 # Добавьте ваш локальный LAN-порт Keenetic exit
- Замените
Ethernet0
на имя вашего локального LAN-порта, который вы хотите объединить в L2-домен. - Внимание: Убедитесь, что вы добавляете именно тот интерфейс, который относится к вашей локальной сети, а не к WAN.
- Замените
(Опционально) Назначаем IP-адрес для L3-доступа: Если вам нужен IP-адрес для управления или маршрутизации L3-трафика через мост на Keenetic.
interface Bridge0 ip address 192.168.88.2/24 exit system configuration save
192.168.88.2/24
— это IP-адрес Keenetic в нашей новой общей L2-сети.- Обязательно сохраните конфигурацию командой
system configuration save
.
✅ Проверка работы туннеля
После настройки обеих сторон пора убедиться, что туннель работает корректно.
На MikroTik:
- Проверьте статус EoIP-интерфейса:
Убедитесь, что статус/interface eoip print
running
иR
(running) рядом с интерфейсомeoip-keenetic
. - Пинг до IP-адреса Keenetic в EoIP-сети:
Пинги должны проходить./ping 192.168.88.2 interface=br-eoip
- Трафик через туннель (torch):
Это покажет проходящий через туннель трафик, если он есть./tool torch interface=eoip-keenetic
На Keenetic:
- Проверьте состояние интерфейсов:
Убедитесь, чтоshow interfaces
EoIP0
активен (UP). - Пинг до IP-адреса MikroTik в EoIP-сети:
Пинги должны проходить.ping 192.168.88.1
🛠️ Возможные проблемы и их решения
- Туннель не работает (статус “down”):
- Проверьте
Tunnel ID
: Он должен быть абсолютно одинаковым на обоих концах. - Проверьте
remote-address
иlocal-address
: Убедитесь, что они правильно указаны и роутеры могут пинговать друг друга по этим адресам.remote-address
на MikroTik должен бытьlocal-address
Keenetic, и наоборот.
- Проверьте
- Нет связи через туннель, хотя интерфейсы UP:
- Проверьте разрешение GRE (IP-протокол 47): Убедитесь, что ваши файрволы на обоих роутерах (и любые промежуточные файрволы) разрешают прохождение IP-протокола 47.
- NAT мешает работе EoIP: Если один из роутеров находится за NAT, и вы не используете VPN, необходимо пробросить IP-протокол 47 (GRE) на роутере, выполняющем NAT, к вашему MikroTik/Keenetic. Гораздо надежнее использовать туннель поверх уже установленного VPN-соединения.
- MTU (Maximum Transmission Unit) проблемы:
- Иногда могут возникать проблемы с фрагментацией пакетов, особенно если EoIP туннелируется через VPN или Интернет.
- Решение: Установите
MTU
вручную на~1400
на обоих EoIP-интерфейсах.- MikroTik:
/interface eoip set eoip-keenetic mtu=1400
- Keenetic: В CLI
interface EoIP0 mtu 1400
- Также, если проблема сохраняется, можно попробовать уменьшить
MSS (Maximum Segment Size)
на файрволе MikroTik для туннельного трафика:/ip firewall mangle add chain=forward \ action=change-mss new-mss=1360 \ passthrough=yes \ protocol=tcp \ tcp-flags=syn \ out-interface=eoip-keenetic \ comment="Adjust MSS for EoIP"
- MikroTik:
🧩 Когда это полезно?
- Объединение сетей в одном L2-домене: Позволяет компьютерам в разных физических локациях находиться в одной и той же подсети, получать DHCP-адреса от одного сервера, работать с широковещательным трафиком.
- Проброс VLAN, DHCP, PPPoE между локациями: EoIP идеально подходит для расширения VLAN’ов или прозрачной работы DHCP-серверов, или даже проброса PPPoE-сессий через туннель.
- Построение резервной инфраструктуры через VPN: Можно использовать EoIP поверх VPN для создания отказоустойчивых решений.
- Простой доступ к устройствам в удаленной сети: Если вам нужно получить L2-доступ к устройствам, которые не имеют IP-адресов или которые должны быть в одной L2-сети.
💬 Заключение
Настройка EoIP-туннеля между MikroTik и Keenetic — отличный пример того, как проприетарные, но хорошо реализованные протоколы могут быть использованы для создания мощных и гибких сетевых решений. Возможность объединять локальные сети в один L2-домен через EoIP, особенно используя приватные IP-адреса поверх VPN, дает огромные возможности для расширения инфраструктуры и создания сложных топологий.