- Поднимаем туннель посредством EoIP на Mikrotik
- Mikrotik EoIP: настройка туннеля на примере двух роутеров
- Пример
- ШАГ 1: Настройка 1-го роутера
- ШАГ 2: Настройка второго роутера
- ШАГ 3: Запрет DHCP Broadcast запросов через туннель EoIP
- Создание домашней сети на базе устройств MikroTik: Часть 5 – Создание EoIP туннеля
Поднимаем туннель посредством EoIP на Mikrotik
Итак, давайте приступим сразу к самому интересному — к настройке. Она не такая захватывающая как у L2TP, но тем не менее. Первым делом разберемся со входными данными.
У нас имеются два удаленных роутера:
1. WAN: 172.0.0.1/30; LAN: 192.168.30.0/24;
2. WAN: 172.0.0.2/30; LAN: 192.168.31.0/24;
В примере мы используем узкий приватный диапазон, но в качестве IP на внешних интерфейсах могут выступать и публичные адреса. Причем это куда более частый вариант.
Обычно в примерах настройки я всё делаю через Winbox, но тут настройка настолько короткая, что мне лень делать скрины.
1. Настраиваем первый маршрутизатор.
Для начала создадим непосредственно сам интерфейс:
name — название нового интерфейса. Лучше называть как-то очевидно, чтобы упростить возможность вашей идентификации;
keepalive — время жизни туннеля между подтверждениями его рабочего состояния. Если не указать этот параметр, то будет трудно дебажить проблемы, т.к. даже при отключенном интерфейсе на удаленной стороне ваш будет показывать, что у него всё окей. В примере мы ставим 10 попыток с интервалами в 10 секунд, т.е. интерфейс перейдет в неактивное состояние спустя 100 секунд, не дождавшись ответа у второй стороны. И поднимется сразу при получении подтверждения с противоположного конца;
local-addres — адрес на нашем внешнем интерфейсе, указывать нужно обязательно в случае настроек IPSec, т.к. в противном случае шифрование не взлетит. Более того, пакеты с source address не соответствующим указанному на другом конце просто завернут;
remote-address — адрес на внешнем интерфейсе удаленной машины;
allow-fast-path — говорим «нет» в случае использования IPSec-шифрования;
tunnel id — думаю, шестое чувство вам подсказывает, что айди должен быть одинаковым на интерфейсах с обоих концов?
ipsec-secret — собственно в этом месте мы его и указываем.
Объединяем мостом наш новоиспеченный EoIP-интерфейс и LAN-интерфейс (скорее всего это будет master-порт):
2. Настраиваем второй маршрутизатор.
С вашего позволения, не буду расписывать, что здесь и почему. Думаю, всё вполне логично.
На этом в общем-то всё. Так как это L2-канал, то в чистом виде не требуется никаких дополнительных настроек маршрутизации.
Так выглядит туннель здорового человека:
В списке интерфейсов красуется буква R, а в окне внизу — running.
Тоже самое можно увидеть по команде /interface eoip printскачать dle 12.0
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-го роутера
- Сначала мы создадим сам туннель – для этого переходим в раздел «Interfaces», далее кликаем по вкладке «EoIP Tunnel» и нажимаем по плюсику, чтобы создать новый интерфейс.
- Все настройки мы будем делать на вкладке «General». Я в качестве примера в поле «Name» укажу обычное имя, но вы можете явно указать более понятное наименование, особенно если вы будете подключать несколько филиалов. Убедитесь, чтобы «Type» стояла как «EoIP Tunnel». Также я рекомендую установить параметр «keepalive», как 10 по 10 – то есть каждые 10 секунд будет отправлено 10 попыток (10 раз) связаться с другим роутером. И если после этого связи не будет, то туннель будет иметь статус «отключен». Это необходимо для того, чтобы вы видели, что есть проблема с подключением, в противном случае в интерфейсе всегда будет висеть статус рабочего состояния. Включаем «ARP», устанавливаем «Remote Address» внешний IP второго удаленного роутера (10.1.200.2). И прописываем «Tunnel ID» – запомните этот параметр, он должен быть одинаковым на всех роутерах.
- Теперь нам нужно создать мост, которые бы соединял локальные порты с внешним выходом в интернет. Переходим в «Bridge» и на первой вкладке создаем мост, называем его, как угодно.
- Теперь переходим в «Ports» и создаем соединение всех портов. Указываем «ether1-LAN1» и мост, который мы ранее создали.
- В «Interfaces» также в «Ports» создаем привязку нашего моста и туннеля, который мы создали.
- В «Bridge» во вкладке «Ports» проверьте, чтобы была примерна такая картинка, как на скриншоте ниже.
ШАГ 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: Часть 5 – Создание EoIP туннеля
В предыдущий раз, мы настроили шифрованный OpenVPN туннель между двумя роутерами hAP ac и hEX
Еще раз посмотрим на схему из первой части:
Схема из первой части
После организации IP туннеля на базе OpenVPN, нам необходимо поверх него, создать еще один туннель используя EoIP
Для начала давайте немного взглянем, что такое EoIP в MikroTik RouterOS:
Ethernet over IP (EoIP) Tunneling – это протокол MikroTik RouterOS, который создает туннель Ethernet между двумя маршрутизаторами поверх IP-соединения. Туннель EoIP может работать через туннель IPIP, туннель PPTP или любое другое соединение, способное транспортировать IP.
Когда функция моста маршрутизатора включена, весь трафик Ethernet (все протоколы Ethernet) будет соединен так же, как если бы там был физический интерфейс Ethernet и кабель между двумя маршрутизаторами (с включенным мостом). Этот протокол позволяет использовать несколько сетевых схем.
Сетевые настройки с интерфейсами EoIP:
Возможность подключения локальных сетей через Ethernet
Возможность подключения локальных сетей через зашифрованные туннели
Возможность подключения локальных сетей через беспроводные сети 802.11b «ad-hoc»
Протокол EoIP инкапсулирует Ethernet-фреймы в пакеты GRE (IP-протокол номер 47) (как и PPTP) и отправляет их на удаленную сторону туннеля EoIP.
Т.е. по сути между нашими удаленными объектами, после создания туннеля, будет “ходить” любой трафик, как в обычной проводной локальной сети.
Для создания EoIP туннеля ему необходим удаленный адрес интерфейса. Можно задать и локальный, но разницы особой не будет.
Как раз именно OpenVPN выступит каналом, мы ведь знаем IP адреса текущего и удаленного роутеров.
Схема:
Необходимо указать интерфейсу только удаленный IP
1. Настроим EoIP на роутере hAP ac
Переходим в меню интерфейсов
Добавляем EoIP интерфейс
Вводим параметры интерфейса Интерфейс создался, и для того, чтобы наша “общая” локальная сеть работала, необходимо наш интерфейс EoIP добавить в наш сетевой мост.
Открываем Bridge и добавляем в него, только что, созданный EoIP интерфейс.
Открываем меню сетевых мостов
Добавляем EoIP в сетевой мост Консольно:
/interface eoip add name=»eoip-tunnel1″ remote-address=172.16.10.2 tunnel-id=1
/interface bridge port add interface=eoip-tunnel1 bridge=LAN-Bridge
Переходим ко второму роутеру
2. Настроим EoIP на роутере hEX
Для данного роутера весь процесс настройки EoIP будет аналогичен.
Единственным отличием будет удаленный IP адрес: тут он будет 172.16.10.1
ID туннеля должен быть одинаковым! Я выбрал номер 1, Вы можете задать свой, какой захотите.
Настройка второго EoIP туннеля Также, как и для предыдущего роутера, добавляем EoIP интерфейс в сетевой мост.
Консольно:
/interface eoip add name=»eoip-tunnel1″ remote-address=172.16.10.1 tunnel-id=1
/interface bridge port add interface=eoip-tunnel1 bridge=LAN-Bridge
После добавления туннельных интерфейсов в сетевой мост Вы уже должны успешно пинговать локальные ПК(смартфоны, ноутбуки и др.).
Вроде бы все хорошо. На каждом объекте свой DHCP сервер, заданы свои пулы адресов.
Но как мы знаем при подключении нового клиента к сети он начинает широковещательную рассылку специальных пакетов DHCPDISCOVER.
Рассылка идет начиная с адреса 0.0.0.0 до адреса 255.255.255.255 т.е. по всем возможным.
В ответ сервер DHCP посылает пакет DHCPOFFER. Клиент в ответ на пакет DHCPOFFER посылает пакет DHCPREQUEST. В ответ на пакет DHCPREQUEST сервер DHCP посылает пакет DHCPACK, завершая цикл инициализации.
Соответственно для нас НЕжелательно, чтобы подобные пакеты с одного объекта убегали в другой и наоборот.
Нам нужно ограничить объект только тем пулом IP адресов, которые мы задали. Но нельзя запрещать клиентам общаться между собой.
И MikroTik позволяет нам это сделать!
3. Запрещаем прохождение DHCP Broadcast запросов через туннель EoIP
Давайте разбираться.
Смотрим на каких портах и по какому протоколу работает DHCP: Wiki DHCP
Видим: Передача данных производится при помощи протокола UDP. По умолчанию запросы от клиента делаются на 67 порт к серверу, сервер в свою очередь отвечает на порт 68 к клиенту, выдавая адрес IP и другую необходимую информацию, такую, как сетевую маску, шлюз по умолчанию и серверы DNS.
Чтобы запретить прохождение DHCP запросов по туннелю нам необходимо определить, где это сделать и как.
Логично предположить, что управление трафиком и кучей других параметров необходимо делать в IP Firewall, но это не совсем так. По началу, когда я задавал в нем правила они не работали.
Пришлось курить маны читать инструкции.
Оказалось, что у сетевого моста свой собственный Firewall, на уровень ниже. Т.е. необходимо открыть меню настроек сетевого моста. Добавляем правило блокировки:
Межсетевой экран сетевого моста
Задаем настройки для правила
Блокируем прохождение пакетов Консольно:
/interface bridge filter add chain=forward out-interface=eoip-tunnel1 mac-protocol=ip ip-protocol=udp dst-port=67-68 action=drop
Добавляем такое же правило на второй роутер.
Вот теперь, вроде бы, можно считать настройку единой локальной сети законченной…
Далее у нас встает вопрос безопасности и доступа из вне к локальным устройствам.
Все верно, имея статический IP мы подвержены риску быть взломанными. Т.к. наш статический IP доступен в интернете он может подвергаться различного рода “атакам”.
Поэтому нам нужно сделать так, чтобы только мы могли подключаться к нашим роутерам и другим сервисам в локальной сети.
Также у нас на очереди система мониторинга DUDE.
Дополнение:
Я провел небольшое тестирование скоростных характеристик своего туннеля.
Делал я их с помощью утилиты bandwidth-test в WinBox между самими роутерами. Т.е. роутер-роутер через сети провайдеров.
Тарифы такие:
hAP ac – 500 Mbps (Практические пока до 300 Мбит/сек)
hEX – 100 Mbps (Практические 95 Мбит/сек)
Пробовал я все доступные на RouterOS для OpenVPN (v6.39.3) методы аутентификации (md5, sha1) и шифрования (blowfish 128, aes 128, aes 192, aes 256) и вообще без шифрования и аутентификации (null)
Соответственно максимально возможная скорость ограничена hEX стороной т.к. у него всего 100 Мбит/сек.
Самую быструю скорость удалось получить конечно в режиме без шифрования и аутентификации вообще Send – 85 Mbps / Receive – 85 Mbps
Самую низкую с шифрованием AES256 Send – 25 Mbps / Receive – 25 Mbps
Оптимальным вариантом я бы выбрал режим Auth (sha1) и Cipher (aes 128) т.к. для домашней сети не нужно сильного шифрования Send – 31 Mbps / Receive – 31 Mbps
Какой режим выбирать, решать Вам!
P.S.
Я не претендую на идеальное построение подобной сети. Это один из многих способов.
Если Вы знаете, как построить подобную сеть лучшим образом или доработать текущую, можете не стесняться и писать свои варианты в комментариях
У меня успешно работает =)
Список всех статей в хронологическом порядке: История статей