Как настроить gre туннель mikrotik

Настройка GRE туннелей в MikroTik RouterOS

Очень часто перед системным администратором стоит задача по объеденению в одну сеть 2 или более офисов находящихся в разных районах города, или вообще в разных городах, чтобы пользователи могли пользоваться общими ресурсами. Если не нужно шифровать данные(что в большинстве случаев так и есть), то наиболее оптимальным вариантом является объеденение двух точек через GRE туннель.

Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

На рисунке показан пример работы GRE туннеля, между двумя маршрутизаторами A и B находится несколько маршрутизаторов, туннель позволяет обеспечить связь между сегментами сети 192.168.1.0/24 и 192.168.3.0/24 так, как если бы маршрутизаторы A и B были соединены прямым линком.

Для работы GRE туннеля оба маршрутизатора должены иметь внешние ip адреса на маршрутизаторе А это 11.11.11.11 на маршрутизаторе B 33.33.33.33 . Настройку маршрутизаторов А и В будем производить через консоль winbox.

Читайте также:  Как настроить размер окна word

На стройка маршрутизатора A

Создаем новый интерфейс для GRE, для этого заходим в панель interfaces, нажимаем на плюсик и выбираем GRE Tunnel. Указываем Remote Address, ip адрес маршрутизатора В, в нашем случае 33.33.33.33, все остальное оставим как есть.

Затем идем в меню IP->Addresses, нажимаем на плюсик и в строке Address прописываем ip адрес для GRE интерфейса у нас он 192.168.2.1/30, этот адрес может быть любым, мы его сами назначаем для туннеля, в строке interface, из выпадающего списка, выбираем название нашего интерфейса созданного выше, в нашем случае это» gre-tunnel1″

Заходим в меню IP->Routes нажимаем на плюсик и добавляем маршут до локальной сети маршрутизатора В, в строке DST.Address прописываем нашу удаленную сеть, которая настроена на маршрутизаторе В, у нас она 192.168.3.0/24, Gateway указываем ip адрес который мы назначили на GRE туннель на маршрутизаторе В, у нас это 192.168.2.2

Настройка маршрутизатора В

Маршрутизатор В настраивается зеркально маршрутизатору А.

1.Добавляем новый GRE интерфейс, в качестве Remote Address указываем внешний ip маршрутизатора А, у нас он 11.11.11.11

2.Прописываем на созданном GRE интерфейсе адрес, он должен быть в одной сети с адресом GRE интерфейса маршрутизатора А, у нас это 192.168.2.2

3.Прописываем новый маршрут, DST.Address указываем локальную сеть маршрутизатора А(у нас 192.168.1.1), а Gateway прописываем ip адрес на GRE интерфейсе маршрутизатора А(у нас 192.168.2.1).

После этих настроек компьютеры из локальной сети А должны «увидеть» компьютеры из локальной сети В. Это можно проверить командой ping.

Обучающий курс по настройке MikroTik

Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Создание IPSec GRE туннеля между Mikrotik hEX S и Juniper SRX через USB Модем

Необходимо организовать VPN Tunnel между двумя устройствами, таких как Mikrotik и Juniper линейки SRX.

Что имеем

Из микротиков выбрали на сайте микротика вики, модель которая сможет поддерживать аппаратное шифрование IPSec, на наш взгляд она оказалась достаточно компактная и недорогая, а именно Mikrotik hEXS.

USB Modem был куплен в ближайшем сотовом операторе, модель была Huawei E3370. Никакие операции по отвязки от оператора мы не проводили. Все штатное и прошито самим оператором.

В ядре установлен центральный маршрутизатор Juniper SRX240H.

Что удалось

Удалось реализовать схему работы, которая позволяет через сотового оператора, не имея статического адреса, посредством модема создать IPsec соединение в который заворачивается GRE Tunnel.

Данная схема подключения используется и работает на USB модемах Билайн и Мегафон.

В ядре установлен Juniper SRX240H
Local Address: 192.168.1.1/24
External Address: 1.1.1.1/30
GW: 1.1.1.2

Mikrotik hEX S
Local Address: 192.168.152.1/24
External Address: Dynamic

Небольшая диаграмма для понимания работы:

Конфигурация Juniper SRX240:

Версия ПО JUNOS Software Release [12.1X46-D82]

Конфигурация Mikrotik hEX S:

Версия ПО RouterOS [6.44.3]

Результат:
Со стороны Juniper SRX

Со стороны Mikrotik

Выводы

После проделанной работы му получили стабильный VPN Tunnel, из удаленной сети нам доступна все сеть которая находиться за juniper, и соответственно обратно.

Не рекомендую использовать в данной схеме IKE2, возникала ситуация что после перезагрузки того или иного устройства не поднимается IPSec.

Источник

Выходим в интернет за пределами РФ: (MikroTik Ubuntu) * GRE / IPsec

Позволю себе опубликовать свой опыт применения сетевых технологий в меру моей испорченности для выхода в интернет из-за пределов РФ. Не будем рассуждать о том, зачем это нужно. Надеюсь, что все всем и так понятно.

Итак, у нас есть статический публичный IP адрес, который приходит Ethernet шнуром в MikroTik RouterBOARD 750G r3 (hEX). Пробуем собрать вот такую конструкцию.


Настройку L2tp линка в рамках этой статьи я не описываю, а на схеме он нарисован только потому, что в ней упоминается.

1. Поднимаем VPS

Как вы уже догадались, нужна система, которая включена в интернет за пределами РФ. Большие деньги на это тратить не хотелось, и я остановился на Aruba Cloud. Здесь всего за 1 евро в месяц дается VM в локациях Италия, Чехия, Германия, Франция и Великобритания. Я свой выбор остановил на Чехии, потому что ping до наших ресурсов оказался на 20ms меньше, чем с Итальянского (50ms против 70ms). Ubuntu 16.04 LTS поднялась очень быстро. Войти в нее удалось раньше, чем «позеленел» статус в интерфейсе «облака».

Сервер устанавливается в минимальной конфигурации. Не помешает установить утилитку traceroute.

2. Настраиваем GRE между MikroTik и Ubuntu

Выбор в пользу GRE был сделан по нескольким причинам:

  • просто и понятно настраивается;
  • легко траблешутится;
  • маршрутизация проще некуда;
  • элементарно отрисовывается график загрузки интерфейса в MikroTik.

Итак, на стороне Ubuntu описываем интерфейс tun1 в /etc/network/interfaces

Здесь все просто:

  • 80.211.x.x — адрес VM с Ubuntu в Чехии;
  • 188.x.x.x — внешний адрес MikroTik;
  • 192.168.10.1 — адрес на туннельном интерфейсе tun1 на стороне Ubuntu;
  • 192.168.10.2 — адрес туннельного интерфейса на MikroTik;

Активацию этой части конфигурации я по-старинке делаю так:

Получил конструктивную критику такого метода активации настроек сети.

У нас получился вот такой интерфейс:

Со стороны MikroTik настройка тоже несложная. Я делал это из Web-интерфейса.

Обращаю внимание на то, что не сконфигурирован keepalive. Мне так и не удалось включить ответную часть на Ubuntu. Если не будет трафика, то интерфейс на MikroTik будет «уходить» из running и подниматься, только если пойдет трафик со стороны Ubuntu.

Устанавливаем IP адрес на туннельный интерфейс на стороне MikroTik 192.168.10.2

На этом этапе у нас должны подняться туннельные интерфейсы с двух сторон. Проверить это просто. Достаточно запустить ping c Ubuntu в сторону MikroTik.

Настраиваем маршрутизацию в сторону абонентских сетей в туннельный интрефейс

Приватные IP адреса локальной сети, из которой осуществляется выход в интернет — 192.168.1.0/24. Сеть 192.168.6.0/24 — это сеть, выделенная для подключения к MikroTik по L2TP из «внешнего мира». Для того, чтобы работали компьютеры локальной сети и удаленные устройства, добавляем маршруты на обе сети в конец файла /etc/network/interfaces

Еще раз просим систему обновить сетевые настройки

Прописываем SNAT.
Для статического внешнего IP он должен работать быстрее чем MASQUERADE за счет того, что не нужно каждый раз выяснять IP адрес интерфейса.

Настаиваем маршрутизацию на MikroTik

Поскольку у меня не стоит задача «развернуть» весь трафик в интернет через другую страну, то в туннельный интерфейс я буду маршрутизировать только интересующие меня ресурсы. В качестве такого ресурса я выбрал Linkedin.

Итак, добавляем маршруты на MikroTik (через терминалку):

К этому моменту у меня начал открываться заветный ресурс и на этом можно было бы и закончить, поскольку, даже несмотря на то что GRE трафик не шифрован и его прекрасно видно в Wireshark, далеко не все провайдеры DPI-ят трафик (а если и DPI-ят, то точно не заглядывают внутрь туннелей для отслеживания трафика от запрещенных ресурсов), да и АПК «Ревизор» не интересуется тем, какой реально абонентами потребляется трафик.

На дальнейшие эксперименты меня натолкнул тот факт, что в настройках GRE интерфейса MikroTik есть опция IPsec Secret. Неужели действительно все так просто?!

3. Зашифровываем туннель

В качестве шифровальщика на стороне Ubuntu я выбрал strongSwan. Пример конфигурации я взял из материала Configure GRE over IPSec secured private channel, но сразу не заработало и пришлось внести некоторые правки.

Вносим в основной конфигурационный файл strongSwan вот это:

Прописываем pre-shared-key (PSK) в /etc/ipsec.secrets

На этом настройка Ubuntu практически завершена. Приступаем к настройке MikroTik.

Я выставил вот такие настройки дефалтового proposal

Настало время вписать в поле IPsec Secret тот же PSK, что был указан в /etc/ipsec.secrets на сервере (VeryBigSecret).

Если все получилось, то выполняем диагностику на обоих концах туннеля.

Если «провалиться» глубже, то должно быть вот так:

Теперь GRE (protocol 47) между MikroTik и Ubuntu шифруется IPseс (ESP). Анализ pcap файла, снятого tcpdump-ом, это подтвердил.

Вроде бы, все работает и заветный ресурс открывается. Однако после того, как я направил в туннель еще несколько ресурсов, оказалось, что не все так хорошо, как казалось изначально. Удалось выяснить, что перестали проходить пакеты большого размера (вернее, они перестали правильно фрагментироваться).

Решение нашлось быстро. Оказалось, что достаточно уменьшить MTU до 1435 на обоих концах туннеля.

Ubuntu — добавляем mtu 1435 в описание интерфейса.

Диагностика установления IPsec соединения не тривиальна. На Ubuntu логи читаются значительно проще, чем на MikroTik. По умолчанию на MikroTik выключено логирование IPsec. Включается просто, но проводить анализ проще через терминалку.

Мне удалось добиться скорости скачивания 25 Мбит/с и отдачи 50 Мбит/с. На мой взгляд, этого вполне хватает для комфортной работы с ресурсом. Почему не разгоняется больше — это пока загадка. Загрузка процессоров на обоих концах туннеля не высока. Основная версия — это ограничение скорости на стороне облака. Как-нибудь на досуге погоняю файлы между серверами без шифрования.

UPD 1: настройки iptables

Устанавливаем пакет netfilter-persistent

Я писал правила командами, а потом записал их в /etc/iptables/rules.v4 командой iptables-save > /etc/iptables/rules.v4

В итоге, у меня получился вот такой набор:

В /etc/rc.local я добавил активацию правил при старте машины (другим способом мне это сделать пока не удалось).

После перезагрузки сервера проверяем, что все правила на месте.

UPD 2: рекомендую отключить MikroTik Neighbor discovery на интерфейсе gre-tunnel1.
Если этого не сделать, то при вышеописанных настройках iptables будут отбрасываться пакеты на UDP/5678.

Источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Настройка туннелей GRE и IPIP на роутерах Mikrotik

Настройка туннелей GRE и IPIP на роутерах Mikrotik

Одна из наиболее часто решаемых системным администратором задач — объединение нескольких сетей в единое пространство, для обеспечения совместной работы с общими ресурсами (site-to-site). Обычно для этих целей используется VPN, тип которого большой роли не играет. Но именно для данной задачи более предпочтительно использовать IPIP или GRE-туннели, особенно если вам требуется хорошая пропускная способность соединения. В данной статье мы расскажем об особенностях настройки и использования данного вида подключений.

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор — официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Сначала коротко о протоколах. GRE (Generic Routing Encapsulation — общая инкапсуляция маршрутов) — протокол инкапсуляции, разработан компанией Cisco и предназначен для инкапсуляции пакетов сетевого уровня (L3) в IP-пакеты. IPIP (IP Encapsulation within IP — инкапсуляция IP в IP) во многом похож на GRE, но работает только с IPv4-трафиком. Наиболее популярным и используемым протоколом является GRE, его поддержка присутствует во всех современных ОС и сетевом оборудовании. Mikrotik поддерживает оба вида туннелей.

Туннели, созданные с помощью данных протоколов, не имеют никаких механизмов обеспечения безопасности (шифрование, аутентификация), поэтому в чистом виде они практически не используются. Для обеспечения нужного уровня безопасности используется IPsec, поверх которого уже разворачивается GRE или IPIP-туннель ( GRE over IPsec, IPIP over IPsec). Далее, говоря о данном типе туннелей мы будем подразумевать ввиду именно их.

Еще одна особенность указанных протоколов — они работают без сохранения состояния соединения (stateless) и понять в каком состоянии находится туннель невозможно. Мы можем только настроить обе стороны и проверить передачу данных между ними. Кроме очевидных минусов такое решение имеет и свои плюсы, GRE или IPIP-интерфейсы являются статичными и присутствуют в системе вне зависимости от состояния туннелей, что облегчает настройку маршрутизации. А состояние туннеля позволяют контролировать механизмы RouterOS, которые с заданной периодичностью умеют проверять доступность его второго конца.

Ни GRE, ни IPIP не используют порты, поэтому они не могут преодолеть NAT, это требует от обоих узлов иметь выделенные IP-адреса или находиться в одной сети. Проблема NAT частично снимается при использовании IPsec, за счет использования протокола NAT-T, но требование выделенных адресов узлов остается. Кроме того, по этой причине вы не сможете установить более одного GRE или IPIP-соединения между узлами.

Итак, подведем коротко итог: для использования GRE или IPIP-туннелей вам потребуются выделенные IP-адреса с обоих сторон и для защиты передаваемых данных обязательно использовать IPsec. Что касается оборудования, то предпочтительно использовать роутеры с аппаратной поддержкой шифрования — hEX, RB3011/4011 и все остальные модели на базе процессоров ARM. В этом случае вполне достижима пропускная способность туннеля на уровне 300-400 МБит/с. На остальных моделях роутеров (MIPSBE, SMIPS) вы получите не более 30-40 МБит/с. Подробнее об этом вы можете прочитать здесь.

Далее мы будем придерживаться следующей схемы:

Согласно которой у нас имеются две условные сети: A — 192.168.111.0/24, внешний IP-адрес 198.51.100.1 и B — 192.168.222.0/24, внешний адрес 203.0.113.1. Между ними мы будем поднимать GRE или IPIP-туннель с внутренними адресами 10.10.10.1 и 10.10.10.2.

Настройка GRE-туннеля

Открываем Winbox и переходим в Interfaces — Interface где добавляем новый интерфейс с типом GRE Tunnel, в открывшемся окне заполняем поля: Local Address — внешний IP-адрес этого роутера, Remote Address — внешний IP-адрес противоположного роутера, IPsec Secret — общий ключ IPsec, рекомендуется использовать длинную случайную строку из цифр, букв в обоих регистрах и спецсимволов. Также обязательно снимите флаг Allow Fast Path.

В терминале это можно выполнить командой:

Полностью аналогичную настройку выполняем и на втором роутере, только меняем местами Local Address и Remote Address, после чего туннель должен перейти в рабочее состояние. За отслеживание состояние туннеля отвечает параметр Keepalive, по умолчанию он предполагает десять попыток с интервалов в 10 секунд, если за это время с противоположной стороны не будет получен ответ, то туннель будет считаться неработоспособным.

Важный момент связан с настройками IPsec, RouterOS использует для туннелей настройки по умолчанию и нет возможности это переопределить, поэтому на обоих роутерах профили default в IP — IPsec — Proposals и Profiles должны иметь одинаковые настройки.

В противном случае вы будете получать ошибку при согласовании параметров IPsec:

Если все сделано правильно, то в Interfaces — Interface напротив туннеля появится флаг R — running, что означает, что туннель находится в рабочем состоянии.

Настройка IPIP-туннеля

Настройка данного вида туннеля ничем не отличается от GRE, также переходим в Interfaces — Interface и добавляем новый интерфейс с типом IP Tunnel. Указываем все те же параметры: Local Address — внешний IP-адрес этого роутера, Remote Address — внешний IP-адрес противоположного роутера, IPsec Secret — общий ключ IPsec, также снимаем флаг Allow Fast Path.

В терминале это же действие:

Затем дублируем настройки на второй роутер, заменяя местами Local Address и Remote Address, также учитываем все то, что было сказано выше о настройках IPsec.

Настройка маршрутизации

Итак, туннель поднят, теперь нужно пустить в него трафик между сетями. Прежде всего присвоим адреса туннельным интерфейсам. Согласно схеме со стороны роутера А это будет 10.10.10.1, а со стороны роутера B — 10.10.10.2. Переходим в IP — Addresses и добавляем новый адрес: Address — 10.10.10.1/24 — именно так, с указанием префикса (/24, что соответствует маске 255.255.255.0), в противном случае сеть у вас работать не будет. В поле Interface указываем имя интерфейса GRE или IPIP-туннеля.

В терминале для этого же действия выполните команду:

Где вместо interface=gre-tunnel1 укажите имя собственного туннельного интерфейса.

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

Теперь приступим к указанию маршрутов, для роутера A нам нужно указать маршрут к сети 192.168.222.0/24 через туннель. Переходим в IP — Routes и создаем новый маршрут. В качестве Dst. Address указываем сеть назначения — 192.168.222.0/24, в поле Gateway указываем шлюз в эту сеть — противоположный конец туннеля, который имеет адрес 10.10.10.2, после того как мы нажмем Apply в поле рядом со шлюзом появится исходящий интерфейс, в качестве которого будет выступать наш туннель.

В терминале:

На втором роутере делаем аналогичные настройки с учетом IP-адреса роутера и сети назначения.

После чего пробуем получить из одной сети доступ к узлу другой. Если все сделано правильно, то попытка увенчается успехом.

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор — официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Дополнительные материалы:

Mikrotik

The Dude

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Источник

Оцените статью