EOIP в Mikrotik

По сути, EoIP является L2-каналом, который строится поверх L3-среды. Главное условие – адреса обеих сторон должны быть известны. Это может быть просто два маршрутизируемых IP или VPN (EOIP не обеспечивает шифрование). EoIP – штука пропиетарная (хотя попытки запилить поддержку этого типа тоннелей в LINUX/BSD предпринимались, но, в лучшем случае, это userspace-софт, а тут мы имеем ядерную (а значит, очень дешевую в плане ресурсов) технологию, позволяющую прокидывать действительно прозрачный L2.

Суть проста – два микротика связываются между собой, идентифицируясь по айпишникам (адреса обеих точек должны быть статическими и доступными друг для друга) и т.н. tunnel-id – идентификатору тоннеля.
После создания eoip-интерфейс объединяется с другим l2-интерфейсом при помощи моста. Т.о. получаем возможность прокидывать L2-трафик через всяческие помехи вроде других операторов, НАТы (тут нужна будет инкапсуляция в PPTP/L2TP) или просто провести несколько вланов через один l2-канал.

Главное, что нужно помнить:
1. EoIP не работает через NAT. IP обеих сторон должны быть маршрутизируемы
2. EoIP использует GRE в качестве транспорта, так что нужно следить за MTU.
3. Каждому l2-каналу, который вы хотите пробросить с помощью eoip, должен соответствовать свой тоннель. Один влан – один eoip-интерфейс.
4. Tunnel-id должен совпадать на обоих концах тоннеля и быть уникальным в рамках одного устройства (использование двух eoip-тоннелей с один tunnel–id, но разными соседними точками недопустимо).

Создать eoip-тоннель просто:

[admin@MikroTik] > interface eoip add name="eoip10" tunnel-id=10 remote-address=10.0.0.2 disable=no
[admin@MikroTik] > interface bridge add name="bridge10"
[admin@MikroTik] > interface bridge port add interface="eoip10" bridge="bridge10"
[admin@MikroTik] > interface bridge port add interface="vlan10" bridge="bridge10"

Сначла мы создаем, собственно, сам тоннель.
Потом создаем бридж, через который будет ходить наш трафик. Один бридж – один влан – один тоннель.
Ну и добавляем в этот бридж сами интерфейсы – eoip, и второй l2-интерфейс, который, собственно, нам нужно прокинуть через l3.

Аналогичные действия производим на другой стороне.

После этого EoIP-туннель можно считать работающим.

9 Comments

  1. “3. Каждому l2-каналу, который вы хотите пробросить с помощью eoip, должен соответствовать свой тоннель. Один влан — один eoip-интерфейс.”
    Ничего подобного! Для любого количества vlan’ов можно использовать всего один EoIP тонель, просто по обеим сторонам создаём вланы на интерфейсе EoIP и эти вланы бриджуем уже с вланами которые приходят из локальной сети на микротик. Или ещё один вариант. Весь EoIP бриджуем с физическим интерфейсом на микротике и соответственно все вланы (весь L2 трафик) будет уходить в сквозную на физический интерфейс, а там уже лиюо управляемый свитч либо линух сервер.

    1. Действительно, можно делать вланы на самом eoip и соединять их бриджами – мне это как-то в голову не пришло.
      Что касается просто бриджевания eoip и физического интерефейса, то, во-первых, не всегда нужно именно это, а во-вторых я пару раз сталкивался с проблемами с такими конфигурациями – например, если у вас на этом же порту/бридже висит управление.

  2. Только при такой схеме, мы на том же коммутаторе видим mac адреса назначенные на bridge интерфейсы. А это не правильно.

    1. А почему это может быть неправильно? мак-адрес bridge-интерфейса у вас будет фигурировать в любом случае, т.к. мы имеем не полноценный свич (который в микротике тоже есть), а именно софтовое бриджевание

      1. Типичная ситуация, клиент заказывает L2 канал между двумя территориально разнесенными точками. При этом сеть L3. Решение либо EoIP либо VPLS. В обоих случаях нам придется добавлять интерфейс в бридж и в обоих случаях клиент будет ловить mac адреса моего bridge-интерфеса, а ему они нужны в выделенном L2? Собственно уже просят эти mac убрать. Причем, при реализации vpls на cisco – такого не возникает.

        1. В целом да, ситуация понятна. Но ведь EoIP и не позиционируется как способ организации L2VPN для провайдеров =) Нужно понимать, что это, в первую очедрь, SOHO-железка. С другой стороны, микротик умеет вполне себе честный VPLS.

  3. Все хорошо, только вот почему то не удается поднять EoIP если его ID отличается от нуля. Подскажите, почему? Потребовалось пробросить 1eth используя eoIP over PPTP, на два других роутера. Подымаю Туннель с ID=0 все поднимается на первый роутер, теперь хочу добавить то же самое на второй роутер – ID туннеля ставлю 1, но он уже не работает. Причем не работают и любые другие ИД, только с нулевым поднимается. В чем причина?

Leave a Reply