Туннель ethernet over ip что это
Mikrotik EoIP: настройка туннеля на примере двух роутеров
Всем доброго времени суток, мои сетевые друзья! Сегодня я расскажу вам как создать и настроить EoIP туннель с помощью двух роутеров MikroTik. Давайте разберемся сначала, что такое EoIP?
EoIP (Ethernet over IP) – это специально созданный туннель для передачи информации между локальными сетями, находящимися в разных местах интернет подключения. В итоге создается туннель канального уровня поверх сетевого: L2 Для чего это нужно? – для подключения через интернет двух (или более) локальных сетей по зашифрованному каналу VPN. Достаточно удобная вещь для того, чтобы объединить несколько офисов, которые находятся в разных точках города или даже страны. Далее я расскажу про настройку этого подключения.
Пример
Для настройки я подготовил вам достаточно простой пример – смотрим на картинку ниже.
У нас есть два офиса, которые через внешние роутеры подключены к сети интернет. Что мы видим? В обоих сетях используется один и тот же диапазон локальных IP адресов (192.168.15.1/24). У роутеров есть два локальных IP адреса: 192.168.15.1 и 192.168.15.2. Ну и есть два внешних WAN адреса. Все достаточно просто.
ШАГ 1: Настройка 1-го роутера
ШАГ 2: Настройка второго роутера
Делается аналогичным образом, только в качестве «Remote Address» нужно указать адрес первого роутера (10.). Также в качестве названия туннеля я бы использовал что-то другое. Также не забудьте, что при создании туннеля «Tunnel-ID» должен быть одинаковым на обоих роутерах.
ШАГ 3: Запрет DHCP Broadcast запросов через туннель EoIP
После всех предыдущих настроек все локальные устройства двух сетей уже должны видеть друг друга, а также легко их пинговать. Но есть небольшая проблема, дело в том, что при подключении нового устройства он отправляет запрос к DHCP серверу. Проблема в том, что при этом запросы могут попасть во вторую сеть через наш EoIP, а нам это не нужно. Лучше всего ограничить пул адресов в одной и другой сети.
Итак, все эти запросы от клиента к DHCP серверу происходят по протоколу UDP, используя 67 порт при отправке на сервер, и 68 порт при отправке к клиенту. Нам нужно запретить использовать наш ранее созданный мост, конечно, логичнее это сделать в «IP Firewall» роутера, но, оказывается, такой способ не работает. А проблема кроется в том, что у моста, который мы создали ранее, есть свой собственный «Firewall», вот там и нужно ставить блокировку. В разделе «Bridge» во вкладке «Filters» создаем новое правило.
В строке «Chain» указываем «forward» в «Out Interface» укажите наш EoIP туннель. Далее все настройки смотрите на картинке ниже.
И задаем действие для правила, чтобы запросы не утекали в наш туннель. Тоже самое нужно сделать и на втором маршрутизаторе.
MikroTik: L2VPN = EoIP + WireGuard (часть 2)
В прошлый статье остановились на том что, мы собрали MikroTik в единую сеть, обойдя NAT с помощью «облачного» сервера. Далее, в данной статье, мы настроим связность между нашими площадками, да так чтобы казалось, как будто мы их подключили прямым кабелем (L2). Мы должны получить L2VPN. Должно получиться, что-то вроде этого:
Настройка MikroTik
Если вам не нужно соединять MikroTik с другим оборудованием с помощью trunk порта, а просто, грубо говоря, соединить два компьютера вместе, то пользуйтесь настройками от Mik_1.
Mik_1
Заходим в Web интерфейс
Слева выбираем Interface, далее вкладка EoIP Tunnel, нажимаем Add New
В строке Name, присваиваем произвольное имя (тут мы сделаем как показано в схеме). В строке Remote Address, указываем IP адрес клиента MikroTik, который подключен у нас в головном офисе. В строке Tunnel ID, произвольный ID номер (в данном примере был взят данный номер, для удобства, и схож с VLAN), ну и конечно же OK (далее я это не буду упомянуть, я думаю и так понятно, что нужно подтверждать, то что мы делаем)
Далее слева выбираем Bridge, после вкладка Bridge, и нажимаем Add New
Задаем ему произвольное имя в строке Name.
Далее, привязываем интерфейс и туннель с данным Bridge. Для этого выбираем вкладку Ports и нажимаем Add New.
Привязываем туннель с Bridge. В строке Interface выбираем EoIP_1, туннель который ранее был создан. В строке Bridge выбираем bridge_eoip.
Получаем что-то вроде этого, как показано выше на рисунке.
С настройками MikroTik, который находиться на удаленной площадке, закончили. По аналогии настраиваем все другие, которые будут подключаться к нашему центральному офису
Переходим к настройке MikroTik, который находиться в центральном офисе.
Mik_OFFICE
По аналогии с Mik_1, настраиваем EoIP туннели.
В строке Name, присваиваем произвольное имя (тут мы сделаем как показано в схеме). В строке Remote Address, указываем IP адрес клиента MikroTik, который подключен у нас в удалённом офисе. В строке Tunnel ID, указываем тот ID номер, тот который был указан у нас в удалённом офисе (в данном примере был взят данный номер, для удобства, он схож с VLAN).
Для других удалённых офисов делаем по аналогии.
В данном примере, для OFFICE_2, где MikroTik под именем Mik_2, мы указываем: Name: EoIP_2, Remote Address: 10.7.0.4, Tunnel ID: 222.
В итоге должно получиться, что-то вроде этого, как показано на рисунке выше.
Cлева выбираем Bridge, после вкладка Bridge, и нажимаем Add New. Далее задаем ему произвольное имя в строке Name. И после обязательно ставим галочку VLAN Filtering, что означает, что данный сетевой мост будет пропускать VLAN.
Далее, привязываем интерфейс и туннели (с удаленных офисов) с данным Bridge. Для этого выбираем вкладку Ports и нажимаем Add New. В строке Interface выбираем EoIP_1, туннель который ранее был создан. В строке Bridge выбираем bridge_trunk. И после обязательно в строке PVID указываем номер VLAN.
Для других удалённых офисов делаем по аналогии.
В данном примере, для OFFICE_2, где MikroTik под именем Mik_2, мы указываем: Interface: EoIP_2, Bridge: bridge_trunk, PVID: 222.
В итоге должно получиться, что-то вроде этого, как показано на рисунке выше.
Заходим в вкладке VLANs, и нажимаем Add New.
Далее, для VLAN: 111. Строка VLAN IDs: 111, строка Tagged: bridge_trunk и ether3, в строке Untagged: EoIP_1
Для VLAN: 222. Строка VLAN IDs: 222, строка Tagged: bridge_trunk и ether3, в строке Untagged: EoIP_2
В итоге должно получиться, что-то вроде этого, как показано на рисунке выше.
Все, настройка данного MikroTik закончена.
FireWall на всех MikroTik
Теперь, как я и писал выше, мы знаем, что протокол EoIP инкапсулирует кадры Ethernet в пакеты GRE (IP-протокол номер 47), нам необходимо на FireWall открыть данный порт на интерфейсе, на котором «висит» WireGuard. Этого нужно для того, чтобы бы у нас EoIP туннели заработали.
У меня, данное правило, через Web интерфейс не удалось добавить, поэтому пришлось его добавлять, через консоль:
Мин. настройка оборудования в цен. офисе (на базе CISCO)
Теперь настроим маршрутизатор (R_OFFICE) и коммутатор (SW_OFFICE) согласно схемы:
Маршрутизатор (R_OFFICE) CISCO:
Настроим trunk порт смотрящий в сторону наших офисов, т.е. в сторону нашего MikroTik:
Далее, настроим trunk порт смотрящий в сторону сети нашего офиса, т.е. в сторону нашего коммутатора (SW_OFFICE):
Коммутатор (SW_OFFICE) CISCO:
Настроим trunk порт смотрящий в сторону маршрутизатора (R_OFFICE):
Настроим access порт для абонента:
Ну что же, теперь давайте подключим абонентов к оборудованию со всех сторон, зададим им IP адреса, согласно схемы и проверим!
Ура! Все заработало!
В итоге мы получили L2VPN, на базе WireGuard, который позволил нам связать наши удаленные точки. Так же это можно использовать, если вы используете СИМ карты, которые находятся за NAT и получают динамические IP адреса.
Настройка FullMesh сети на Mikrotik через EoIP туннели
Начальная ситуация такая: есть 8 офисов в разных частях страны, надо их свести в единую сеть так, чтобы доступность каждого офиса была максимальной при любых катаклизмах. В качестве роутеров во всех офисах стоят Mikrotik. На основной площадке — CCR CCR1036-12G, на остальных — 1100 AHx2
Во избежание проблем с интернетом было протянуто по 2 канала от разных провайдеров, питание тоже зарезервировали и пришли к вопросу “а какую сеть-то строить?”. Как видно из названия статьи, в итоге решили строить FullMesh.
Эта схема полностью удовлетворяет требованиям руководства — при выходе из строя любого интернет-канала или даже любого офиса сеть остается связной. Остался только вопрос с маршрутизацией. Из вариантов был всеобщий бридж с RSTP, OSPF и статические маршруты. Естественно я в итоге выбрал OSPF — меньше проблем, чем на статике и меньше нагрузки для маршрутизаторов, чем при RSTP.
Сама настройка и готовый конфиг под катом.
Соединять маршрутизаторы решил с помощью EoIP туннелей, по 2 на каждую пару — с основного провайдера на основной и с резервного на резервный. Конфигурацию опишу для одной пары, так как остальные настраиваются идентично.
На первом маршрутизаторе создаем 2 туннеля:
Поднимаем туннели со второй стороны:
Настраиваем OSPF, маршрутами будем обмениваться через зону backbone.
На первом маршрутизаторе:
На втором маршрутизаторе:
И наконец добавляем адреса для созданных туннелей:
На первом маршрутизаторе:
На втором маршрутизаторе:
Получаем 2 маршрутизатора, которые обмениваются маршрутами на свои зоны по OSPF. Повторяем данную процедуру для всех пар маршрутизаторов.
В итоге получаем вот такую FullMesh сеть (заранее прошу прощения за качество схемы — не нашел чем адекватно рисовать схему сети на Linux, потому использовал онлайн рисовалку Gliffy):
Все маршрутизаторы входят в общую backbone area с id 0.0.0.0 + каждый из них является пограничным для своей собственной зоны с ID равным локальному IP маршрутизатора.
Сразу после того, как маршрутизаторы обнаруживают друг друга, они обмениваются известными им маршрутами, и на основании стоимости линка выбирают лучшие. В данной конфигурации лучшим маршрутом всегда будет самый прямой (точнее 2 прямых маршрута — основной и резервный), в случае отказа которого трафик, идущий через отказавший маршрут будет доставлен через все маршрутизаторы, оставшиеся доступными.
Таким образом нас перестали пугать технические работы у провайдера, а также периодические проблемы с проходимостью GRE пакетов по определенным направлениям — для полной связности сети достаточно функционирования менее чем половины существующих туннелей. Ну, а бонусом мы получили балансировку трафика между туннелями — так как стоимости у основных и резервных туннелей одинаковые, OSPF автоматически отправляет трафик в оба туннеля, балансируя нагрузку между ними примерно поровну.
Если у вас возникнут вопросы или предложения по оптимизации данной конфигурации — добро пожаловать в комментарии.
Как и обещал, готовый конфиг одного из маршрутизаторов (все имена и IP изменены по соглашению со службой безопасности):
UPD: данный конфиг слит с тестовой лабы, а не с прода. С момента написания данной статьи в проде от данной схемы успели отказаться в пользу L2VPN от провайдеров с OSPF для маршрутизации.
Админская фамилия
Моя фамилия Бубнов. А блог про админство, шаманство и прочие радости
17.01.2016
Почему за EoIP over OpenVPN нужно отрубать руки. И почему обе.
54 комментария:
Спасибо, очень полезно.
Пожалуйста! Рад, что читаете.
eoip нужен банально для туннелирования PPPoE.
И в таких случаях он используется очень часто.
Спасибо за статью! Так как лучше настроить туннели между филиалами при помощи Mikrotik, одновременно с минимальной загрузкой канала и максимальной защитой данных.
Это очень философский вопрос. Нужно плясать от конкретных целей и условий. Чаще всего я рекомендую проприентарный SSTP.
А рассматривая варинаты L2TP/IPsec и SSTP что будет предпочтительнее по вашему мнению?
У меня на всех туннелях с обоих сторон микроты, а дальше как придётся. l2tp/IPsec был взят из за самого доходчивого тутора на то время. Но с течением времени задаюсь вопросом «а то ли я выбрал», потому что какой-либо обзорной статьи класса «для таких целей делай это, а для таких то» для сравнительно однотипных решений просто нет в природе. Приходится наобум.
Согласен, сложно определиться с выбором туннеля, когда нет опыта в этом вопросе. Надо бы статью на эту тему запилить.
Про EoIP.
2 гипервизора в разных местах (центральный офис и Датацентр).
Выбран был Proxmox.
ВМы бекапятся с одного гипервизора на другой и и со второго на первый сразу же попадая в сторедж, где лежат бекапы и которые видны в веб-морде.
Микротики в этих же гипервизорах.
Основной задачей была прозрачная миграция ВМ между площадками без! перенастройки сети (как транспортной сети так и настроек сети в самих ВМ) и простой удобный веб-интерфейс.
Так вот из-за того, что ограничен бюджет и отсутствуют серьезные ИТ-специалисты решение с ЕоИП очень помогло для бекапа и восстановления ВМ на любом гипервизоре. Из-за того, что 1 бкаст домен и 1 ИТ-подсеть рестор проходит прозрачно без pre- и post- настройки, не говоря уже о роутинге и DNS.
Но GUI микрота и простейшая конфигурация в виде Winbox сделали свое дело. В итоге вся инфраструктура (до серьезных проблем) управляется среднего уровня ИТ-спецом через браузер с любой платформы и точки, где есть Интернет. Да, филиалы имеют железные микротики и канал в каждую площадку (OpenVPN-туннель), где гипервизоры.
PS: Если решение есть, значит оно кому-то нужно.
Техническая поддержка
Чем мы можем вам сегодня помочь?
Изменено: Вт, 18 Апр, 2017 at 6:25 PM
Иногда требуется связь между двумя или более удаленными точками, а также доступ к локальным ресурсам этих удаленных объектов.
В решении данной задачи может помочь туннелирование или по другому VPN! Всего существует достаточно большое количество вариантов туннелей.
В том числе и в роутерах GTX. Для примера: GRE, IP, L2TP, PPTP, PPPoE, OpenVPN и другие.
Также все наши удаленные объекты будут находится в одной локальной сети: 192.168.88.0/24
Роутер, на котором будет располагаться PPTP сервер, обязательно, должен иметь на SIM карте подключенную услугу «статический IP адрес». Публичный, либо корпоративной сети.
1. PPTP сервер
Переходим в меню PPP
На вкладке Interface выбираем настройку PPTP Server
Активируем сервер и указываем протокол авторизации.
Выбираем mschap2 т.к. остальные протоколы уже давно успешно взломаны.
Откроем вкладку Profiles и настроим шифрованное правило по умолчанию.
Изменим локальный IP адрес на 10.10.10.1. Это будет IP адрес PPTP интерфеса на стороне роутера с PPTP сервером.
Переходим на вкладку Secrets и создаем нового пользователя(клиента).
Именно по этим параметрам PPTP клиенты будут соединятся с нашим сервером.
Выбираем наше шифрованное правило, вводим IP адрес, который получит удаленный клиент и остальные параметры.
На вкладке Interface привязываем интерфейс PPTP туннеля для нашего клиента
Вводим данные интерфейса PPTP туннеля
/interface pptp-server server set enabled = yes authentication = mschap2 default-profile = default-encryption
/ppp profile set default-encryption local-address = 10.10.10.1
/ppp secret add name = pptp-client1 password = 123456 service = pptp profile = default-encryption remote-address = 10.10.10.2
/interface pptp-server add name = pptp-tunnel1 user = pptp-client1
Настройка PPTP сервера завершена.
2. EoIP туннель + IPsec шифрование
Туннель EoIP можно объединять с локальными интерфейсами в сетевой мост. Тем самым мы избавляемся от организации маршрутов(Routes).
Также мы можем зашифровать передаваемые данные по EoIP туннелю, с помощью IPsec!
Переходим в меню Interfaces
Добавим интерфейс EoIP туннеля
Вводим параметры туннеля:
Важным моментом тут является указание локального и удаленного адресов, а также снятие пункта Allow Fast Path.
Без указания этих параметров правило IPsec не будет создаваться автоматически.
Следите за тем, чтобы Tunnel ID для каждого EoIP туннеля был разным. И запомните его. В клиентских роутерах нужно будет указывать ID нужного туннеля.
Переходим в меню сетевых мостов и добавляем наш туннель в сетевой мост.
Если сетевого моста нет, его необходимо создать.
Добавляем интерфейс EoIP туннеля во вкладке Ports
/interface eoip add name = eoip-tunnel1 mtu = 1500 arp = proxy-arp local-address = 10.10.10.1 remote-address = 10.10.10.2 tunnel-id = 101 ipsec-secret =» 0123456789 » allow-fast-path = no
/interface bridge port add interface = eoip-tunnel1 bridge = bridge1
Создание сетевого моста:
/interface bridge add name = bridge1 mtu = 1500 arp = enabled
Создание туннеля EoIP с шифрованием IPsec завершено.
3. Локальная сеть и блокировка DHCP запросов в туннель.
Т.к. мы будем иметь несколько роутеров, нам необходимо разделить их по одной локальной сети. И в тоже время необходимо обеспечить работу DHCP серверов на каждом роутере.
Иначе удаленный объект (например офис) не сможет работать.
Например если DHCP будет один и удаленный офис останется без интернета, то он останется также и без DHCP сервера. А сделав на каждом объекте свой DHCP сервер, локальные ресурсы будут работать также, как и раньше. Нам будет необходимо только снова запустить интернет. (например пополнить баланс, если закончились средства)
Разделим наши два объекта для работы в одной локальной сети.
Также отметим, что всего в одной локальной сети с маской 255.255.255.0 может быть до 254 IP адресов. Т.е. мы можем создать сеть из 254 объектов(Роутеры, ПК, ноутбуки, принтеры, виртуальные машины, сервера и т.д.)
При такой организации все устройства, на наших удаленных объектах, будут видеть друг друга, как будто они находятся в одном офисе.
При этом необходимо учитывать, что на интернет интерфейсе может присутствовать большой трафик, т.к. в локальной сети будут работать Netbios службы и множество других.
3.1. Настройка локальной сети роутера с PPTP сервером(GTX400).
На роутере оставляем обычный локальный IP 192.168.88.1
Выбираем группу нашей локальной сети
Настраиваем диапазон IP адресов (192.168.88.10-192.168.88.19).
IP адреса до 10 оставим для других роутеров, чтобы нам было проще ими управлять в дальнейшем.
В итоге наш роутер будет раздавать всего 9 IP адресов, Вы можете увеличить это количество.
3.2. Фильтрация DHCP запросов
Теперь для того, чтобы DHCP запросы не проходили через EoIP туннель, заблокируем DHCP пакеты.
DHCP работает по протоколу UDP и используем порты 67 и 68. Помимо этого также используется MAC протокол IP(800)
Сделаем блокировку. Переходим в меню сетевого моста Bridge
Откроем вкладку фильтров и создадим новое правило.
Все верно, нам не нужно создавать правила в Межсетевом экране. Мы создаем их непосредственно для нашего сетевого моста.
Настраиваем параметры нашего правила
Открываем вкладку General
Открываем вкладку Action
Так будет выглядеть созданное правило
/ip pool set dhcp-pool1 ranges = 192.168.88.10-192.168.88.19
На этом настройка нашего роутера с PPTP сервером и EoIP+IPsec туннелем завершена.