// DevOps
Настраиваем EoIP-туннель между MikroTik и Keenetic: Объединяем сети через приватные IP
Опубликовано 22.09.2026
Иногда две удалённые локальные сети нужно объединить так, чтобы они работали как одна: устройства видят друг друга по MAC-адресам, проходят широковещательные запросы. Для этого у MikroTik есть EoIP (Ethernet over IP) — туннель второго уровня поверх IP-сети.
Keenetic тоже умеет EoIP: для этого в KeeneticOS нужно установить компонент «EoIP tunneling» (Общие настройки → Обновления и компоненты → Изменить набор компонентов). Производитель прямо пишет, что EoIP разработан MikroTik и с его реализацией совместим.
С 2025 года в России роутеры этой платформы выпускаются под брендом Netcraze (ООО «Неткрейз», ранее ООО «Кинетик»), модели NC-xxxx; прошивка та же — NDMS, поэтому всё описанное применимо и к ним.
Ниже — настройка туннеля между MikroTik и Keenetic по частным адресам: так туннель работает поверх уже существующей VPN-сети между роутерами. Если EoIP нужен напрямую через интернет, у обоих роутеров должны быть публичные адреса, и между ними не должно быть NAT; в этом случае туннель стоит защитить IPsec (см. ниже).
📌 Что такое EoIP?
EoIP (Ethernet over IP) — туннельный протокол MikroTik, который использует GRE как транспорт (IP-протокол 47). Он передаёт Ethernet-кадры целиком, поэтому через туннель проходит любой трафик второго уровня: ARP, DHCP, PPPoE, IPv6, VLAN.
Важно помнить три свойства EoIP:
- нет шифрования и аутентификации — для работы через интернет нужен IPsec;
- нет NAT между концами — оба роутера должны видеть друг друга по адресам напрямую (или по адресам внутри VPN);
- туннель не хранит состояние соединения — «поднятый» интерфейс ещё не значит, что данные ходят; проверять нужно пингом.
📋 Условия для успешной работы
Прежде чем приступать к настройке, убедитесь, что соблюдены следующие ключевые условия:
- Доступность по IP без NAT между концами: роутеры должны видеть друг друга напрямую — по публичным адресам или внутри общей VPN-сети (например, оба подключены к одному VPN-серверу или между ними уже поднят site-to-site VPN). Через NAT туннель без IPsec не работает: у GRE нет портов, которые можно пробросить.
- Использование приватных IP-адресов: В нашем примере мы будем использовать приватные IP для туннелирования. Допустим:
- MikroTik:
192.168.100.1(IP, который MikroTik использует для связи с Keenetic). - Keenetic:
192.168.200.1(IP, который Keenetic использует для связи с MikroTik).
- MikroTik:
- Совпадающий Tunnel ID: идентификатор туннеля должен быть одинаковым на обоих устройствах (у Keenetic допустимы значения от 1 до 65535, в примере —
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-интерфейс: Этот интерфейс будет виртуальным каналом для нашего туннеля.
routeros/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: идентификатор туннеля, должен совпадать на обеих сторонах.
По умолчанию у EoIP-интерфейса RouterOS
mtu=auto,clamp-tcp-mss=yes(размер MSS для TCP подстраивается автоматически) иkeepalive=10s,10.Создаем мост (Bridge) и добавляем порты: Мы создадим новый мост, чтобы объединить наш EoIP-интерфейс с локальной сетью MikroTik, делая их частью одного L2-домена.
routeros/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-сети.
routeros/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 «Setting up IPIP, GRE and EoIP tunnels via CLI». Откройте командную строку роутера (веб-интерфейс → Командная строка или SSH/Telnet).
Создаём EoIP-интерфейс:
cli(config)> interface EoIP0 (config-if)> tunnel destination 192.168.100.1 (config-if)> tunnel eoip id 100 (config-if)> up (config-if)> exittunnel destination: адрес MikroTik, к которому строится туннель.tunnel eoip id: идентификатор туннеля, совпадает сtunnel-idна MikroTik.
Включаем EoIP в домашний сегмент. Чтобы объединить сети на втором уровне, EoIP-интерфейс настраивается без IP-адреса и включается в мост домашнего сегмента
Home:cli(config)> interface Home (config-if)> include EoIP0 (config-if)> exit (config)> system configuration saveПосле этого устройства за MikroTik и за Keenetic оказываются в одном широковещательном домене. Адреса двух сетей должны быть согласованы: одна общая подсеть и один DHCP-сервер (или статические адреса). Документация Keenetic прямо рекомендует при объединении сетей через EoIP использовать статические адреса на устройствах: иначе DHCP-запросы уйдут в туннель и получат адрес от сервера на другой стороне.
Вариант без моста — туннель третьего уровня. Если нужна только связь между роутерами, EoIP-интерфейсу можно дать адрес, как в примере документации:
cli(config)> interface EoIP0 (config-if)> ip address 192.168.88.2 255.255.255.0 (config-if)> security-level private (config-if)> exit (config)> system configuration saveЕсли трафик между частными интерфейсами (например,
HomeиEoIP0) должен проходить, выполнитеno isolate-private: по умолчанию KeeneticOS изолирует такие интерфейсы друг от друга.
✅ Проверка работы туннеля
После настройки обеих сторон пора убедиться, что туннель работает корректно.
На MikroTik:
- Проверьте статус EoIP-интерфейса:Флагrouteros
/interface eoip printR(running) рядом сeoip-keeneticзависит от keepalive; главный признак работы туннеля — проходящие пинги и трафик. - Пинг до IP-адреса Keenetic в EoIP-сети:Пинги должны проходить.routeros
/ping 192.168.88.2 interface=br-eoip - Трафик через туннель (torch):Это покажет проходящий через туннель трафик, если он есть.routeros
/tool torch interface=eoip-keenetic
На Keenetic:
- Проверьте состояние интерфейса:Интерфейс должен быть включён. Документация Keenetic напоминает, что EoIP не хранит состояние соединения, поэтому работу туннеля проверяют пингом; можно также настроить Ping Check на интерфейсе EoIP.cli
show interface EoIP0 - Пинг до IP-адреса MikroTik в EoIP-сети:Пинги должны проходить.cli
ping 192.168.88.1
🛠️ Возможные проблемы и их решения
- Туннель не работает (статус “down”):
- Проверьте
Tunnel ID: он должен быть одинаковым на обоих концах. - Проверьте компонент на Keenetic: без компонента «EoIP tunneling» интерфейс
EoIP0не создастся. - Проверьте
remote-addressиlocal-address: Убедитесь, что они правильно указаны и роутеры могут пинговать друг друга по этим адресам.remote-addressна MikroTik должен бытьlocal-addressKeenetic, и наоборот.
- Проверьте
- Нет связи через туннель, хотя интерфейсы UP:
- Проверьте разрешение GRE (IP-протокол 47): Убедитесь, что ваши файрволы на обоих роутерах (и любые промежуточные файрволы) разрешают прохождение IP-протокола 47.
- NAT между роутерами: EoIP без IPsec через NAT не работает. Постройте туннель поверх существующего VPN или используйте EoIP с IPsec: на Keenetic при установленном компоненте «IPsec VPN» добавляются команды
ipsec preshared-keyиipsec ikev2, а IPsec сам решает прохождение через NAT (NAT-T, UDP 500/4500). У MikroTik для EoIP есть параметрipsec-secret; совместимость автоматического IPsec двух производителей проверяйте на своих версиях прошивок.
- MTU (Maximum Transmission Unit) проблемы:
- Иногда могут возникать проблемы с фрагментацией пакетов, особенно если EoIP туннелируется через VPN или Интернет.
- Решение: оба производителя рассчитывают MTU туннеля автоматически, но его можно задать вручную, например 1400, на обоих концах:
- MikroTik:
/interface eoip set eoip-keenetic mtu=1400 - Keenetic:
interface EoIP0→ip mtu 1400 - На MikroTik для EoIP по умолчанию включён
clamp-tcp-mss=yes, поэтому отдельное правило change-mss в mangle обычно не нужно. Пошаговая диагностика туннеля — в статье EoIP не соединяется: чек-лист отладки.
- MikroTik:
🧩 Когда это полезно?
- Объединение сетей в одном L2-домене: Позволяет компьютерам в разных физических локациях находиться в одной и той же подсети, получать DHCP-адреса от одного сервера, работать с широковещательным трафиком.
- Проброс VLAN, DHCP, PPPoE между локациями: EoIP идеально подходит для расширения VLAN’ов или прозрачной работы DHCP-серверов, или даже проброса PPPoE-сессий через туннель.
- Построение резервной инфраструктуры через VPN: Можно использовать EoIP поверх VPN для создания отказоустойчивых решений.
- Простой доступ к устройствам в удаленной сети: Если вам нужно получить L2-доступ к устройствам, которые не имеют IP-адресов или которые должны быть в одной L2-сети.
💬 Заключение
EoIP между MikroTik и Keenetic позволяет объединить две сети в один домен второго уровня. Туннель прост, но не шифрует данные и не проходит через NAT, поэтому его ставят поверх VPN или защищают IPsec. Какие VPN-серверы и клиенты есть в самом Keenetic, разобрано в статьях Keenetic как VPN-сервер и Keenetic как VPN-клиент.
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related