// 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).
  • Совпадающий 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) и выполните следующие команды:

  1. Создаем 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.

  2. Создаем мост (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.
  3. Назначаем 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).

  1. Создаём EoIP-интерфейс:

    cli
    (config)> interface EoIP0
    (config-if)> tunnel destination 192.168.100.1
    (config-if)> tunnel eoip id 100
    (config-if)> up
    (config-if)> exit
    • tunnel destination: адрес MikroTik, к которому строится туннель.
    • tunnel eoip id: идентификатор туннеля, совпадает с tunnel-id на MikroTik.
  2. Включаем 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-запросы уйдут в туннель и получат адрес от сервера на другой стороне.

  3. Вариант без моста — туннель третьего уровня. Если нужна только связь между роутерами, 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 print
    Флаг R (running) рядом с eoip-keenetic зависит от keepalive; главный признак работы туннеля — проходящие пинги и трафик.
  • Пинг до IP-адреса Keenetic в EoIP-сети:
    routeros
    /ping 192.168.88.2 interface=br-eoip
    Пинги должны проходить.
  • Трафик через туннель (torch):
    routeros
    /tool torch interface=eoip-keenetic
    Это покажет проходящий через туннель трафик, если он есть.

На Keenetic:

  • Проверьте состояние интерфейса:
    cli
    show interface EoIP0
    Интерфейс должен быть включён. Документация Keenetic напоминает, что EoIP не хранит состояние соединения, поэтому работу туннеля проверяют пингом; можно также настроить Ping Check на интерфейсе EoIP.
  • Пинг до IP-адреса MikroTik в EoIP-сети:
    cli
    ping 192.168.88.1
    Пинги должны проходить.

🛠️ Возможные проблемы и их решения

  • Туннель не работает (статус “down”):
    • Проверьте Tunnel ID: он должен быть одинаковым на обоих концах.
    • Проверьте компонент на Keenetic: без компонента «EoIP tunneling» интерфейс EoIP0 не создастся.
    • Проверьте remote-address и local-address: Убедитесь, что они правильно указаны и роутеры могут пинговать друг друга по этим адресам. remote-address на MikroTik должен быть local-address Keenetic, и наоборот.
  • Нет связи через туннель, хотя интерфейсы 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 не соединяется: чек-лист отладки.

🧩 Когда это полезно?

  • Объединение сетей в одном 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)

Или оставьте заявку здесь:

Подтвердите, что вы не бот.

Написать и получить быстрый ответ