EoIP и GRE туннели — сравнение и практика
EoIP и GRE туннели на MikroTik — сравнение и практика
GRE (Generic Routing Encapsulation) и EoIP (Ethernet over IP) — два наиболее распространённых туннельных протокола на MikroTik. Оба инкапсулируют трафик в IP-пакеты для передачи через интернет или корпоративную сеть, но работают на разных уровнях и предназначены для разных задач. GRE — стандартный протокол (RFC 2784), совместимый с Cisco, Linux, Juniper и другим оборудованием. EoIP — проприетарный протокол MikroTik, работающий на уровне L2 и позволяющий прозрачно объединять удалённые Ethernet-сегменты. В этом руководстве разберём оба протокола, сравним их и покажем практическую настройку каждого.
Описание
GRE — стандартный IP-туннель
GRE инкапсулирует IP-пакеты (или пакеты других протоколов) в IP. Это L3-туннель: он передаёт маршрутизируемый трафик, но не Ethernet-фреймы. GRE описан в RFC 2784 и поддерживается практически всем сетевым оборудованием.
Характеристики GRE:
- Уровень: L3 (IP-over-IP)
- Протокол: IP protocol 47
- Overhead: 24 байта (4 GRE header + 20 IP outer header)
- Шифрование: нет (нужен IPsec для защиты)
- Keepalive: поддерживается в RouterOS
- Bridge support: нет (L3-туннель, нельзя добавить в bridge)
- Совместимость: Cisco, Juniper, Linux, MikroTik, любой RFC 2784
Типичное применение GRE:
- Site-to-site L3-связность между MikroTik и Cisco/Linux
- Передача трафика динамической маршрутизации (OSPF, BGP) через туннель
- Инкапсуляция multicast-трафика
- Базовый транспорт для IPsec (GRE + IPsec = шифрованный L3 туннель)
EoIP — проприетарный L2-туннель MikroTik
EoIP инкапсулирует полные Ethernet-фреймы в IP-пакеты. Это L2-туннель: удалённый EoIP-интерфейс можно добавить в bridge, и устройства на обоих концах окажутся в одном broadcast-домене.
Характеристики EoIP:
- Уровень: L2 (Ethernet-over-IP)
- Протокол: IP protocol 47 (GRE) с MikroTik-специфичным tunnel-id
- Overhead: ~42 байта
- Шифрование: нет (нужен IPsec)
- Keepalive: поддерживается
- Bridge support: да (основное назначение)
- Совместимость: только MikroTik
Типичное применение EoIP:
- Объединение двух MikroTik-сетей в один L2-сегмент
- Расширение VLAN между площадками
- Работа с legacy-приложениями, требующими L2
- Прозрачный bridge между офисами (один DHCP, один broadcast-домен)
Сравнительная таблица
| Критерий | GRE | EoIP |
|---|---|---|
| Уровень OSI | L3 (IP) | L2 (Ethernet) |
| RFC/стандарт | RFC 2784 | Проприетарный MikroTik |
| Совместимость | Cisco, Linux, Juniper, MikroTik | Только MikroTik |
| Добавление в Bridge | Нет | Да |
| Шифрование | Нет (IPsec отдельно) | Нет (IPsec отдельно) |
| MTU overhead | ~24 байта | ~42 байта |
| Keepalive | Да | Да |
| IP protocol | 47 (GRE) | 47 (GRE с tunnel-id) |
| Идентификатор туннеля | Нет (по IP endpoints) | tunnel-id (0–65535) |
| Multicast | Поддерживает | Поддерживает (через bridge) |
| Масштабируемость | Высокая | Средняя (broadcast storm) |
| Производительность | Выше (меньше overhead) | Ниже (L2 overhead) |
Когда выбирать GRE
- Связь MikroTik с оборудованием других вендоров (Cisco, Juniper, Linux)
- Нужна только L3-связность (маршрутизация между подсетями)
- Динамическая маршрутизация (OSPF, BGP) через туннель
- Максимальная совместимость и стандартизация
- Большое количество туннелей (меньше overhead на каждый)
Когда выбирать EoIP
- Оба конца — MikroTik
- Нужен L2 bridge между площадками
- Расширение VLAN через WAN
- Один DHCP-сервер на несколько площадок
- Legacy-приложения, работающие только в L2
Настройка GRE
Схема
codeОфис A Офис B LAN: 192.168.10.0/24 LAN: 192.168.20.0/24 WAN: 203.0.113.1 WAN: 198.51.100.1 GRE: 10.255.255.1/30 GRE: 10.255.255.2/30
Офис A (MikroTik)
[admin@MikroTik] ># Создаём GRE-интерфейс /interface/gre add name=gre-tunnel-b \ remote-address=198.51.100.1 \ local-address=203.0.113.1 \ keepalive=10s,10 # Назначаем IP-адрес на GRE-интерфейс /ip/address add address=10.255.255.1/30 interface=gre-tunnel-b # Маршрут в удалённую LAN через GRE /ip/route add dst-address=192.168.20.0/24 gateway=gre-tunnel-b # Firewall: разрешить GRE-протокол (IP protocol 47) /ip/firewall/filter add chain=input protocol=gre \ src-address=198.51.100.1 action=accept \ comment="Allow GRE from Office B" place-before=0 # Firewall: forward через GRE /ip/firewall/filter add chain=forward in-interface=gre-tunnel-b \ action=accept comment="Allow GRE forward" place-before=0 /ip/firewall/filter add chain=forward out-interface=gre-tunnel-b \ action=accept comment="Allow GRE forward out" place-before=0
Офис B (MikroTik)
[admin@MikroTik] >/interface/gre add name=gre-tunnel-a \ remote-address=203.0.113.1 \ local-address=198.51.100.1 \ keepalive=10s,10 /ip/address add address=10.255.255.2/30 interface=gre-tunnel-a /ip/route add dst-address=192.168.10.0/24 gateway=gre-tunnel-a /ip/firewall/filter add chain=input protocol=gre \ src-address=203.0.113.1 action=accept \ comment="Allow GRE from Office A" place-before=0 /ip/firewall/filter add chain=forward in-interface=gre-tunnel-a \ action=accept comment="Allow GRE forward" place-before=0 /ip/firewall/filter add chain=forward out-interface=gre-tunnel-a \ action=accept comment="Allow GRE forward out" place-before=0
GRE между MikroTik и Cisco
На стороне Cisco (IOS):
codeinterface Tunnel0 ip address 10.255.255.2 255.255.255.252 tunnel source 198.51.100.1 tunnel destination 203.0.113.1 tunnel mode gre ip keepalive 10 10 ip route 192.168.10.0 255.255.255.0 Tunnel0
MikroTik-конфигурация остаётся без изменений — GRE стандартизирован.
GRE между MikroTik и Linux
На стороне Linux:
baship tunnel add gre-mkt mode gre remote 203.0.113.1 local 198.51.100.1 ttl 255 ip addr add 10.255.255.2/30 dev gre-mkt ip link set gre-mkt up ip route add 192.168.10.0/24 dev gre-mkt
GRE + IPsec
GRE сам по себе не шифрует трафик. Для защиты данных добавьте IPsec:
[admin@MikroTik] ># IPsec Profile /ip/ipsec/profile add name=gre-ipsec-profile \ hash-algorithm=sha256 enc-algorithm=aes-256 \ dh-group=modp2048 lifetime=1d # IPsec Proposal /ip/ipsec/proposal add name=gre-ipsec-proposal \ auth-algorithms=sha256 enc-algorithms=aes-256-cbc \ lifetime=8h pfs-group=modp2048 # IPsec Peer /ip/ipsec/peer add name=peer-office-b \ address=198.51.100.1/32 profile=gre-ipsec-profile \ exchange-mode=ike2 # IPsec Identity (Pre-Shared Key) /ip/ipsec/identity add peer=peer-office-b \ auth-method=pre-shared-key \ secret="VeryStr0ngPSK!2024" # IPsec Policy — шифровать GRE-трафик /ip/ipsec/policy add peer=peer-office-b \ src-address=203.0.113.1/32 dst-address=198.51.100.1/32 \ protocol=gre action=encrypt level=require \ ipsec-protocols=esp proposal=gre-ipsec-proposal
После настройки IPsec весь GRE-трафик будет зашифрован. Проверка:
[admin@MikroTik] >/ip/ipsec/installed-sa print /ip/ipsec/policy print detail
Настройка EoIP
Схема
codeОфис A Офис B LAN: 192.168.100.0/24 (общий L2) LAN: 192.168.100.0/24 (общий L2) WAN: 203.0.113.1 WAN: 198.51.100.1 Bridge: bridge1 Bridge: bridge1 ├── ether2-ether5 ├── ether2-ether5 └── eoip-tunnel (tunnel-id=100) └── eoip-tunnel (tunnel-id=100)
Офис A
[admin@MikroTik] ># Создаём EoIP-туннель /interface/eoip add name=eoip-tunnel-b \ remote-address=198.51.100.1 \ local-address=203.0.113.1 \ tunnel-id=100 \ keepalive=10s,10 # Добавляем EoIP в bridge (вместе с локальными портами) /interface/bridge add name=bridge1 protocol-mode=none /interface/bridge/port add bridge=bridge1 interface=ether2 /interface/bridge/port add bridge=bridge1 interface=ether3 /interface/bridge/port add bridge=bridge1 interface=ether4 /interface/bridge/port add bridge=bridge1 interface=eoip-tunnel-b # IP-адрес на bridge /ip/address add address=192.168.100.1/24 interface=bridge1 # Firewall: разрешить GRE (EoIP использует IP protocol 47) /ip/firewall/filter add chain=input protocol=gre \ src-address=198.51.100.1 action=accept \ comment="Allow EoIP from Office B" place-before=0
Офис B
[admin@MikroTik] >/interface/eoip add name=eoip-tunnel-a \ remote-address=203.0.113.1 \ local-address=198.51.100.1 \ tunnel-id=100 \ keepalive=10s,10 /interface/bridge add name=bridge1 protocol-mode=none /interface/bridge/port add bridge=bridge1 interface=ether2 /interface/bridge/port add bridge=bridge1 interface=ether3 /interface/bridge/port add bridge=bridge1 interface=ether4 /interface/bridge/port add bridge=bridge1 interface=eoip-tunnel-a /ip/address add address=192.168.100.2/24 interface=bridge1 /ip/firewall/filter add chain=input protocol=gre \ src-address=203.0.113.1 action=accept \ comment="Allow EoIP from Office A" place-before=0
Важно: tunnel-id должен совпадать на обоих концах. Это уникальный идентификатор туннеля (0–65535), позволяющий создать несколько EoIP-туннелей между одной и той же парой роутеров.
EoIP + IPsec
Аналогично GRE, EoIP не шифрует трафик. Добавьте IPsec:
[admin@MikroTik] ># IPsec Profile /ip/ipsec/profile add name=eoip-ipsec-profile \ hash-algorithm=sha256 enc-algorithm=aes-256 \ dh-group=modp2048 # IPsec Proposal /ip/ipsec/proposal add name=eoip-ipsec-proposal \ auth-algorithms=sha256 enc-algorithms=aes-256-cbc \ pfs-group=modp2048 # IPsec Peer /ip/ipsec/peer add name=peer-eoip \ address=198.51.100.1/32 profile=eoip-ipsec-profile \ exchange-mode=ike2 # IPsec Identity /ip/ipsec/identity add peer=peer-eoip \ auth-method=pre-shared-key secret="EoIPSecretKey!2024" # IPsec Policy /ip/ipsec/policy add peer=peer-eoip \ src-address=203.0.113.1/32 dst-address=198.51.100.1/32 \ protocol=gre action=encrypt level=require \ ipsec-protocols=esp proposal=eoip-ipsec-proposal
EoIP с расширением VLAN
EoIP можно использовать для расширения конкретного VLAN между площадками:
[admin@MikroTik] ># На обеих сторонах: EoIP для VLAN 50 /interface/eoip add name=eoip-vlan50 \ remote-address=198.51.100.1 \ tunnel-id=50 # Создаём VLAN на EoIP (или добавляем EoIP в VLAN-bridge) /interface/bridge/port add bridge=bridge-vlan50 interface=eoip-vlan50 # Или тегированный трафик: /interface/vlan add name=vlan50-eoip vlan-id=50 interface=eoip-vlan50
Проверка
Проверка GRE
[admin@MikroTik] ># Статус GRE-интерфейса /interface/gre print detail # Должен быть running (флаг R) /interface print where name~"gre" # Пинг через GRE /ping 10.255.255.2 count=5 # Трафик через GRE /interface/monitor-traffic gre-tunnel-b once # Маршруты через GRE /ip/route print where gateway~"gre"
Проверка EoIP
[admin@MikroTik] ># Статус EoIP /interface/eoip print detail # Должен быть running /interface print where name~"eoip" # MAC-таблица bridge (удалённые MAC через EoIP) /interface/bridge/host print where bridge=bridge1 # Трафик через EoIP /interface/monitor-traffic eoip-tunnel-b once
Проверка IPsec (для обоих)
[admin@MikroTik] ># Установленные SA (Security Associations) /ip/ipsec/installed-sa print # Статус политик /ip/ipsec/policy print stats # Счётчики шифрования /ip/ipsec/statistics print
WireGuard как замена GRE и EoIP
В современных сетях WireGuard часто является лучшей альтернативой:
| Критерий | GRE/EoIP | WireGuard |
|---|---|---|
| Шифрование | Нет (нужен IPsec) | Встроенное (ChaCha20) |
| Настройка шифрования | Сложная (IPsec: profile, proposal, peer, identity, policy) | Простая (ключи + peer) |
| Производительность | GRE: высокая, EoIP: средняя | Высокая (hardware offload на некоторых моделях) |
| NAT traversal | Нет (GRE = IP protocol 47, не проходит NAT) | Да (UDP) |
| L2 support | EoIP: да, GRE: нет | Нет (нужен VXLAN для L2) |
| Стандартизация | GRE: RFC, EoIP: проприетарный | Стандарт (Linux kernel) |
Рекомендация: для новых проектов используйте WireGuard. GRE оставьте для совместимости с Cisco/Juniper. EoIP — только если нужен L2 bridge исключительно между MikroTik и WireGuard + VXLAN не подходит.
[admin@MikroTik] ># Замена GRE + IPsec на WireGuard (гораздо проще): /interface/wireguard add name=wg0 listen-port=13231 /ip/address add address=10.255.255.1/30 interface=wg0 /interface/wireguard/peers add interface=wg0 \ public-key="<PEER_KEY>" \ allowed-address=10.255.255.2/32,192.168.20.0/24 \ endpoint-address=198.51.100.1 endpoint-port=13231 /ip/route add dst-address=192.168.20.0/24 gateway=wg0
Одна команда peers вместо пяти команд IPsec.
Типичные ошибки
1. GRE не проходит через NAT
Причина: GRE использует IP protocol 47 (не TCP и не UDP). Обычный NAT не может транслировать GRE-пакеты, так как у них нет номеров портов.
Симптомы: интерфейс создан, но не переходит в состояние running.
Решение:
- Используйте публичные IP на обоих концах (без NAT)
- Или переключитесь на WireGuard (UDP, проходит NAT)
- Или настройте GRE с IPsec в transport mode (IPsec NAT-T использует UDP 4500)
2. Разные tunnel-id на EoIP
Причина: на одной стороне tunnel-id=100, на другой tunnel-id=200. Туннель не устанавливается.
Решение:
[admin@MikroTik] ># Проверьте tunnel-id на обеих сторонах /interface/eoip print # Исправьте: /interface/eoip set eoip-tunnel-b tunnel-id=100
3. Broadcast storm через EoIP bridge
Причина: EoIP в bridge создаёт единый L2-домен. Весь broadcast-трафик проходит через WAN. При большом количестве устройств (> 50) broadcast может перегрузить канал.
Решение:
[admin@MikroTik] ># Ограничьте broadcast /interface/bridge set bridge1 \ multicast-flood=no # Или используйте RSTP для предотвращения петель /interface/bridge set bridge1 protocol-mode=rstp
Для больших сетей рассмотрите L3-маршрутизацию вместо L2 bridge.
4. MTU fragmentation
Причина: GRE добавляет 24 байта overhead, EoIP — 42 байта. При стандартном MTU 1500 на WAN полезная нагрузка уменьшается.
Решение:
[admin@MikroTik] ># Для GRE: MTU = 1500 - 24 = 1476 /interface/gre set gre-tunnel-b mtu=1476 # Для EoIP: MTU = 1500 - 42 = 1458 /interface/eoip set eoip-tunnel-b mtu=1458 # MSS clamping для TCP /ip/firewall/mangle add chain=forward \ out-interface=gre-tunnel-b protocol=tcp tcp-flags=syn \ action=change-mss new-mss=clamp-to-pmtu passthrough=yes
5. Firewall блокирует GRE/EoIP
Причина: правило drop в цепочке input блокирует IP protocol 47 (GRE).
Решение:
[admin@MikroTik] ># Разрешите GRE до правил drop /ip/firewall/filter add chain=input protocol=gre \ src-address=<remote_IP> action=accept \ comment="Allow GRE/EoIP" place-before=0
Обратите внимание: нужно разрешить именно protocol=gre (IP protocol 47), а не TCP/UDP порт.
6. Keepalive не работает — туннель "зависает"
Причина: keepalive не настроен, и при обрыве связи интерфейс остаётся в состоянии running, хотя связности нет.
Решение:
[admin@MikroTik] ># Настройте keepalive (интервал 10 секунд, 10 попыток) /interface/gre set gre-tunnel-b keepalive=10s,10 /interface/eoip set eoip-tunnel-b keepalive=10s,10
С keepalive интерфейс перейдёт в not running через 100 секунд (10 * 10) после потери связности. Это важно для корректной работы маршрутизации (маршрут через неработающий интерфейс будет деактивирован).
Итоги
GRE и EoIP — проверенные временем туннельные протоколы на MikroTik, каждый для своей задачи. GRE — стандартный L3-туннель для мультивендорных сетей. EoIP — проприетарный L2-туннель для bridge между MikroTik.
Оба протокола не шифруют трафик — для защиты нужен IPsec, что значительно усложняет конфигурацию. В современных проектах WireGuard (для L3) или WireGuard + VXLAN (для L2) часто являются лучшим выбором: встроенное шифрование, проход через NAT, простая настройка. GRE стоит использовать при интеграции с Cisco/Juniper, EoIP — только в чисто MikroTik-средах, где нужен быстрый L2 bridge без сложных overlay-решений.
Офис A Офис B LAN: 192.168.10.0/24 LAN: 192.168.20.0/24 WAN: 203.0.113.1 WAN: 198.51.100.1 GRE: 10.255.255.1/30 GRE: 10.255.255.2/30 # Создаём GRE-интерфейс /interface/gre add name=gre-tunnel-b \ remote-address=198.51.100.1 \ local-address=203.0.113.1 \ keepalive=10s,10 # Назначаем IP-адрес на GRE-интерфейс /ip/address add address=10.255.255.1/30 interface=gre-tunnel-b # Маршрут в удалённую LAN через GRE /ip/route add dst-address=192.168.20.0/24 gateway=gre-tunnel-b # Firewall: разрешить GRE-протокол (IP protocol 47) /ip/firewall/filter add chain=input protocol=gre \ src-address=198.51.100.1 action=accept \ comment="Allow GRE from Office B" place-before=0 # Firewall: forward через GRE /ip/firewall/filter add chain=forward in-interface=gre-tunnel-b \ action=accept comment="Allow GRE forward" place-before=0 /ip/firewall/filter add chain=forward out-interface=gre-tunnel-b \ action=accept comment="Allow GRE forward out" place-before=0 /interface/gre add name=gre-tunnel-a \ remote-address=203.0.113.1 \ local-address=198.51.100.1 \ keepalive=10s,10 /ip/address add address=10.255.255.2/30 interface=gre-tunnel-a /ip/route add dst-address=192.168.10.0/24 gateway=gre-tunnel-a /ip/firewall/filter add chain=input protocol=gre \ src-address=203.0.113.1 action=accept \ comment="Allow GRE from Office A" place-before=0 /ip/firewall/filter add chain=forward in-interface=gre-tunnel-a \ action=accept comment="Allow GRE forward" place-before=0 /ip/firewall/filter add chain=forward out-interface=gre-tunnel-a \ action=accept comment="Allow GRE forward out" place-before=0 interface Tunnel0 ip address 10.255.255.2 255.255.255.252 tunnel source 198.51.100.1 tunnel destination 203.0.113.1 tunnel mode gre ip keepalive 10 10 ip route 192.168.10.0 255.255.255.0 Tunnel0 ip tunnel add gre-mkt mode gre remote 203.0.113.1 local 198.51.100.1 ttl 255 ip addr add 10.255.255.2/30 dev gre-mkt ip link set gre-mkt up ip route add 192.168.10.0/24 dev gre-mkt # IPsec Profile /ip/ipsec/profile add name=gre-ipsec-profile \ hash-algorithm=sha256 enc-algorithm=aes-256 \ dh-group=modp2048 lifetime=1d # IPsec Proposal /ip/ipsec/proposal add name=gre-ipsec-proposal \ auth-algorithms=sha256 enc-algorithms=aes-256-cbc \ lifetime=8h pfs-group=modp2048 # IPsec Peer /ip/ipsec/peer add name=peer-office-b \ address=198.51.100.1/32 profile=gre-ipsec-profile \ exchange-mode=ike2 # IPsec Identity (Pre-Shared Key) /ip/ipsec/identity add peer=peer-office-b \ auth-method=pre-shared-key \ secret="VeryStr0ngPSK!2024" # IPsec Policy — шифровать GRE-трафик /ip/ipsec/policy add peer=peer-office-b \ src-address=203.0.113.1/32 dst-address=198.51.100.1/32 \ protocol=gre action=encrypt level=require \ ipsec-protocols=esp proposal=gre-ipsec-proposal /ip/ipsec/installed-sa print /ip/ipsec/policy print detail Офис A Офис B LAN: 192.168.100.0/24 (общий L2) LAN: 192.168.100.0/24 (общий L2) WAN: 203.0.113.1 WAN: 198.51.100.1 Bridge: bridge1 Bridge: bridge1 ├── ether2-ether5 ├── ether2-ether5 └── eoip-tunnel (tunnel-id=100) └── eoip-tunnel (tunnel-id=100) # Создаём EoIP-туннель /interface/eoip add name=eoip-tunnel-b \ remote-address=198.51.100.1 \ local-address=203.0.113.1 \ tunnel-id=100 \ keepalive=10s,10 # Добавляем EoIP в bridge (вместе с локальными портами) /interface/bridge add name=bridge1 protocol-mode=none /interface/bridge/port add bridge=bridge1 interface=ether2 /interface/bridge/port add bridge=bridge1 interface=ether3 /interface/bridge/port add bridge=bridge1 interface=ether4 /interface/bridge/port add bridge=bridge1 interface=eoip-tunnel-b # IP-адрес на bridge /ip/address add address=192.168.100.1/24 interface=bridge1 # Firewall: разрешить GRE (EoIP использует IP protocol 47) /ip/firewall/filter add chain=input protocol=gre \ src-address=198.51.100.1 action=accept \ comment="Allow EoIP from Office B" place-before=0 /interface/eoip add name=eoip-tunnel-a \ remote-address=203.0.113.1 \ local-address=198.51.100.1 \ tunnel-id=100 \ keepalive=10s,10 /interface/bridge add name=bridge1 protocol-mode=none /interface/bridge/port add bridge=bridge1 interface=ether2 /interface/bridge/port add bridge=bridge1 interface=ether3 /interface/bridge/port add bridge=bridge1 interface=ether4 /interface/bridge/port add bridge=bridge1 interface=eoip-tunnel-a /ip/address add address=192.168.100.2/24 interface=bridge1 /ip/firewall/filter add chain=input protocol=gre \ src-address=203.0.113.1 action=accept \ comment="Allow EoIP from Office A" place-before=0 # IPsec Profile /ip/ipsec/profile add name=eoip-ipsec-profile \ hash-algorithm=sha256 enc-algorithm=aes-256 \ dh-group=modp2048 # IPsec Proposal /ip/ipsec/proposal add name=eoip-ipsec-proposal \ auth-algorithms=sha256 enc-algorithms=aes-256-cbc \ pfs-group=modp2048 # IPsec Peer /ip/ipsec/peer add name=peer-eoip \ address=198.51.100.1/32 profile=eoip-ipsec-profile \ exchange-mode=ike2 # IPsec Identity /ip/ipsec/identity add peer=peer-eoip \ auth-method=pre-shared-key secret="EoIPSecretKey!2024" # IPsec Policy /ip/ipsec/policy add peer=peer-eoip \ src-address=203.0.113.1/32 dst-address=198.51.100.1/32 \ protocol=gre action=encrypt level=require \ ipsec-protocols=esp proposal=eoip-ipsec-proposal # На обеих сторонах: EoIP для VLAN 50 /interface/eoip add name=eoip-vlan50 \ remote-address=198.51.100.1 \ tunnel-id=50 # Создаём VLAN на EoIP (или добавляем EoIP в VLAN-bridge) /interface/bridge/port add bridge=bridge-vlan50 interface=eoip-vlan50 # Или тегированный трафик: /interface/vlan add name=vlan50-eoip vlan-id=50 interface=eoip-vlan50 # Статус GRE-интерфейса /interface/gre print detail # Должен быть running (флаг R) /interface print where name~"gre" # Пинг через GRE /ping 10.255.255.2 count=5 # Трафик через GRE /interface/monitor-traffic gre-tunnel-b once # Маршруты через GRE /ip/route print where gateway~"gre" # Статус EoIP /interface/eoip print detail # Должен быть running /interface print where name~"eoip" # MAC-таблица bridge (удалённые MAC через EoIP) /interface/bridge/host print where bridge=bridge1 # Трафик через EoIP /interface/monitor-traffic eoip-tunnel-b once # Установленные SA (Security Associations) /ip/ipsec/installed-sa print # Статус политик /ip/ipsec/policy print stats # Счётчики шифрования /ip/ipsec/statistics print # Замена GRE + IPsec на WireGuard (гораздо проще): /interface/wireguard add name=wg0 listen-port=13231 /ip/address add address=10.255.255.1/30 interface=wg0 /interface/wireguard/peers add interface=wg0 \ public-key="<PEER_KEY>" \ allowed-address=10.255.255.2/32,192.168.20.0/24 \ endpoint-address=198.51.100.1 endpoint-port=13231 /ip/route add dst-address=192.168.20.0/24 gateway=wg0 # Проверьте tunnel-id на обеих сторонах /interface/eoip print # Исправьте: /interface/eoip set eoip-tunnel-b tunnel-id=100 # Ограничьте broadcast /interface/bridge set bridge1 \ multicast-flood=no # Или используйте RSTP для предотвращения петель /interface/bridge set bridge1 protocol-mode=rstp # Для GRE: MTU = 1500 - 24 = 1476 /interface/gre set gre-tunnel-b mtu=1476 # Для EoIP: MTU = 1500 - 42 = 1458 /interface/eoip set eoip-tunnel-b mtu=1458 # MSS clamping для TCP /ip/firewall/mangle add chain=forward \ out-interface=gre-tunnel-b protocol=tcp tcp-flags=syn \ action=change-mss new-mss=clamp-to-pmtu passthrough=yes # Разрешите GRE до правил drop /ip/firewall/filter add chain=input protocol=gre \ src-address=<remote_IP> action=accept \ comment="Allow GRE/EoIP" place-before=0 # Настройте keepalive (интервал 10 секунд, 10 попыток) /interface/gre set gre-tunnel-b keepalive=10s,10 /interface/eoip set eoip-tunnel-b keepalive=10s,10