Eoip tunnel mikrotik настройка firewall
Ethernet over IP (EoIP) Tunneling is a MikroTik RouterOS protocol that creates an Ethernet tunnel between two routers on top of an IP connection. The EoIP tunnel may run over IPIP tunnel, PPTP tunnel or any other connection capable of transporting IP.
When the bridging function of the router is enabled, all Ethernet traffic (all Ethernet protocols) will be bridged just as if there where a physical Ethernet interface and cable between the two routers (with bridging enabled). This protocol makes multiple network schemes possible.
Network setups with EoIP interfaces:
- Possibility to bridge LANs over the Internet
- Possibility to bridge LANs over encrypted tunnels
- Possibility to bridge LANs over 802.11b 'ad-hoc' wireless networks
The EoIP protocol encapsulates Ethernet frames in GRE (IP protocol number 47) packets (just like PPTP) and sends them to the remote side of the EoIP tunnel.
NAT и настройка
Найдите основной раздел «IP», потом перейдите в «Firewall».
Переходим на нужную нам вкладку NAT перенаправления и видим, что одно из правил уже есть. Называется это правило «masquerade», что в переводе означает «маскарад» – это как раз то самое правило, о котором я только что рассказывал. Оно необходимо для общения всех локальных устройств с интернетом. «Маскарад» – будто бы маршрутизатор надевает маску в виде внешнего IP адреса для внешних серверов, чтобы получить ответ по запросу от локального устройства.
Нам же нужно создать другое правило, где мы будем при запросе на порт получать доступ к локальной машине. Теперь по тем параметрам, которые нам необходимы:
- Chain – по сути это направление потока и доступа. Нам нужно поставить параметр «dstnat», который дает доступ к устройству из глобальной сети в локальную. Соответственно второй параметр «srcnat» – это доступ из локальной к глобальной сети.
- Protocol – здесь нужно указать именно тот протокол, по которому вы будете обращаться к компьютеру.
- Interface – тут указывает интернет интерфейс, через который вы подключены к глобальной сети. Про данный порт я говорил в самом начале.
- Out.Interface – а вот это именно тот интерфейс, к которому подключен аппарат. На него мы и будет делать проброс. Конечно, можно прописать данный параметр, если машина подключена к одному из локальных портов, но можно ничего и не указывать.
- Port – порт, который и будет использоваться для переадресации. Есть еще «Src. Port» – это, наоборот, тот порт, используемый машиной, с которой вы и будете делать запрос на локальное устройство. Ставить его не нужно.
На первой вкладке мы закончили. Теперь переходим на четвертую вкладку и открываем раздел где нужно установить некое правило.
- accept — обычный прием данных, ничего особенного.
- add-dst-to-address-list — адрес, который мы укажем, потом будет добавлен в основной список IP.
- add-src-to-address-list — все то же самое, только на исходящий проброс при установленном параметре «srcnat».
- dst-nat — тут пакеты, грубо говоря, будут переадресовываться из интернета на соответствующую машину.
- jump — редко когда используется. Суть в том, что вы для одной цепочки исходящего трафика (dstnat) можете назначить правило для входящего трафика (srcnat). Именно поэтому он так и называется: «Прыжок».
- log — ничего не происходит, а при запросе из интернета или наоборот из локальной сети запрос записываем в логи.
- masquerade — об этом мы уже говорили.
- netmap — используется как раз для доступа к внутренней машине. При запросе идет замена адреса роутера на адрес локального аппарата.
- passthrough — также используется достаточно редко и обычно для записи статистических данных о запросах и доступах.
- redirect — при запросе на выделенный порт, роутер будет перенаправлять данные на другой порт. Иногда нужно для создания мультипортового запроса.
- return — когда запрос приходит на порт, то он возвращает его обратно.
- same — создание одинаковой группы правил для нескольких портов и устройств.
- src-nat — то же самое как и dst-nat, только данные идут в обратную сторону.
Некоторые параметры очень схожи по работе. Для наглядности я приведу конкретный пример. У нас есть машина, на которой есть Torrent. Вот мы и будет пробрасывать конкретный порт для данной программы. Именно поэтому на вкладке «General» в строке «Dst Port» я указал 51413 порт. Поэтому в моем случае актуально использовать «netmap». Можно, конечно, установить и «dst-nat», работать такое правило будет примерно так же.
У вас могут быть совершенно другие порты (80, 8080, 3389 и т.д.). Очень часто нужно открыть порты наружу для видеонаблюдения или для установки домашнего сервера.
Внизу нужно будет указать IP аппарат и порт, с которого будет идти переадресация. Я настоятельно рекомендую написать также комментарий, чтобы потом не забыть. Теперь два раза жмем «OK» и радуемся – правило создано!
ПРИМЕЧАНИЕ! Если у вас не работает проброс портов, то проверьте также настройку Firewall на конечном ПК, если он есть. Также убедитесь, что вы указали нужный интерфейс в Микротик.
Мин. настройка оборудования в цен. офисе (на базе 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 адреса.
Ethernet over IP (EoIP) Tunneling is a MikroTik RouterOS protocol based on GRE RFC 1701 that creates an Ethernet tunnel between two routers on top of an IP connection. The EoIP tunnel may run over IPIP tunnel, PPTP tunnel, or any other connection capable of transporting IP.
When the bridging function of the router is enabled, all Ethernet traffic (all Ethernet protocols) will be bridged just as if there where a physical Ethernet interface and cable between the two routers (with bridging enabled). This protocol makes multiple network schemes possible.
Network setups with EoIP interfaces:
- Possibility to bridge LANs over the Internet
- Possibility to bridge LANs over encrypted tunnels
- Possibility to bridge LANs over 802.11b 'ad-hoc' wireless networks
The EoIP protocol encapsulates Ethernet frames in GRE (IP protocol number 47) packets (just like PPTP) and sends them to the remote side of the EoIP tunnel.
- disabled - the interface will not use ARP
- enabled - the interface will use ARP
- proxy-arp - the interface will use the ARP proxy feature
- reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the "/ip arp" table. No dynamic entries will be automatically stored in the "/ip arp" table. Therefore for communications to be successful, a valid static entry must already exist.
Parameter tunnel-id is a method of identifying a tunnel. It must be unique for each EoIP tunnel.
EoIP tunnel adds at least 42 byte overhead (8byte GRE + 14 byte Ethernet + 20 byte IP). MTU should be set to 1500 to eliminate packet fragmentation inside the tunnel (that allows transparent bridging of Ethernet-like networks so that it would be possible to transport full-sized Ethernet frame over the tunnel).
When bridging EoIP tunnels, it is highly recommended to set unique MAC addresses for each tunnel for the bridge algorithms to work correctly. For EoIP interfaces you can use MAC addresses that are in the range from 00:00:5E:80:00:00 - 00:00:5E:FF:FF:FF , which IANA has reserved for such cases. Alternatively, you can set the second bit of the first byte to modify the auto-assigned address into a 'locally administered address', assigned by the network administrator, and thus use any MAC address, you just need to ensure they are unique between the hosts connected to one bridge.
Example
Let us assume we want to bridge two networks: 'Station' and 'AP'. By using EoIP setup can be made so that Station and AP LANs are in the same Layer2 broadcast domain.
Consider the following setup:
As you know wireless stations cannot be bridged, to overcome this limitation (not involving WDS) we will create an EoIP tunnel over the wireless link and bridge it with interfaces connected to local networks.
We will not cover wireless configuration in this example, let's assume that the wireless link is already established.
Всем привет! Сегодня поговорим про проброс портов на роутере Mikrotik. Аппарат достаточно сложный в настройках, именно поэтому я буду писать максимально понятно и подробно, чтобы даже начинающий пользователь не смог столкнуться хоть с какими-то трудностями. Буду приводить на примере обычного аппарата, хотя прошивка у них примерно у всех одинаковая.
Setup examples
Let us assume we want to bridge two networks: 'Office LAN' and 'Remote LAN'. By using EoIP setup can be made so that Office and Remote LANs are in the same Layer2 broadcast domain.
Consider following setup:
As you know wireless station cannot be bridged, to overcome this limitation (not involving WDS) we will create EoIP tunnel over the wireless link and bridge it with interfaces connected to local networks.
We will not cover wireless configuration in this example, lets assume that wireless link is already established
At first we create EoIP tunnel on our gateway .
. and on Remote router
Next step is to bridge local interfaces with EoIP tunnel On Our GW .
. and Remote router:
Now both sites are in the same Layer2 broadcast domain. You can set up IP addresses from the same network on both sites.
Начальная ситуация такая: есть 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 для маршрутизации.
В прошлый статье остановились на том что, мы собрали MikroTik в единую сеть, обойдя NAT с помощью "облачного" сервера. Далее, в данной статье, мы настроим связность между нашими площадками, да так чтобы казалось, как будто мы их подключили прямым кабелем (L2). Мы должны получить L2VPN. Должно получиться, что-то вроде этого:
Все настройки буду показывать, по возможности, через Web интерфейс, так как считаю, что это более нагляднее и позволяет повторить их даже неопытному пользователю. Поэтому будет много картинок, и как их правильно разместить их в статье, чтобы не потерять нить - я не знаю. Поэтому прошу понять и простить.
Подключение
Сначала нам нужно зайти в настройки маршрутизатора. Можно это сделать с помощью Web-интерфейса, но лучше использовать программу WinBox, которую свободно можно скачать с официального сайта.
После установки и запуска заходим во вкладку «Neighbors» и нажимаем по кнопке «Refresh» чуть ниже. Далее в списке вы увидите свой аппарат – выбираем его вводим в качестве логина «admin» и нажимаем «Connect».
Properties
- disabled - the interface will not use ARP
- enabled - the interface will use ARP
- proxy-arp - the interface will use the ARP proxy feature
- reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the "/ip arp" table. No dynamic entries will be automatically stored in the "/ip arp" table. Therefore for communications to be successful, a valid static entry must already exist.
Знакомство с интерфейсами
Прежде чем я расскажу про то, как открыть порт на Микротике, небольшой экскурс для новичков. Для начала нам нужно посмотреть, какие интерфейсы у нас есть. Для этого переходим в «Interfaces».
Что такое интерфейсы в Микротике? По сути это некие каналы связи самого аппарата с другими устройствами локальной сети, а также с интернетом. Ведь роутер в нашем случае — это ещё и шлюз. Сейчас рассмотрим более подробно каждое из подключений, и вы все поймете.
- «ether1-gateway» – можно сказать, что по умолчанию этот порт предназначен для подключения интернета. Но на самом деле Микротику можно назначить любой подобный порт или даже несколько.
- «ether2-master-local» – это главный локальный порт.
- «ether(3-4)-slave-local» – это второстепенные локальные порты.
- «wlan1» – беспроводная локальная сеть.
- Как вы заметили я пропустил первый пункт «bridge-local» – это виртуальный мост, который объединяет локальные порты (ether2-4) и Wi-Fi сеть (wlan1).
С интерфейсами мы разобрались. Так как любой роутер является шлюзом и общается как с внешней глобальной (интернет сетью), так и с внутренней (локальной), для этого существует NAT (Network Address Translation) технология. Как она работает? По сути она позволяет обмениваться данными между глобальной и локальной сетью. Например, один из компьютеров дает запрос в интернет к серверу. Но тут встает проблемы – комп находится в локальной сети и имеет локальный адрес.
Роутер принимает этот запрос и отправляя запрос серверу он подменяет локальный IP адрес на свой-внешний. Когда ответ приходит, роутер уже отправляет ответ именно тому компьютеру, который его отправлял. Именно NAT и отвечает за переадресацию портов.
Настройка MikroTik
Если вам не нужно соединять MikroTik с другим оборудованием с помощью trunk порта, а просто, грубо говоря, соединить два компьютера вместе, то пользуйтесь настройками от Mik_1.
Mik_1
Заходим в Web интерфейс
Создадим, тот самый L2 туннель, с целью объединения двух сетей (site-to-site VPN). В MikroTik это EoIP - очень удобная штука и легко настраивается.
Основная информация, это что протокол EoIP инкапсулирует кадры Ethernet в пакеты GRE (IP-протокол номер 47) (как и PPTP) и отправляет их на удаленную сторону туннеля EoIP - не забываем это!
И так приступим:
Слева выбираем Interface, далее вкладка EoIP Tunnel, нажимаем Add New
В строке Name, присваиваем произвольное имя (тут мы сделаем как показано в схеме). В строке Remote Address, указываем IP адрес клиента MikroTik, который подключен у нас в головном офисе. В строке Tunnel ID, произвольный ID номер (в данном примере был взят данный номер, для удобства, и схож с VLAN), ну и конечно же OK (далее я это не буду упомянуть, я думаю и так понятно, что нужно подтверждать, то что мы делаем)
Далее нам необходимо связать интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, . ), с созданным туннелем. Для этого создаем сетевой мост (Bridge).
И так приступим:
Далее слева выбираем Bridge, после вкладка Bridge, и нажимаем Add New
Задаем ему произвольное имя в строке Name.
Далее, привязываем интерфейс и туннель с данным Bridge. Для этого выбираем вкладку Ports и нажимаем Add New.
Привязываем туннель с Bridge. В строке Interface выбираем EoIP_1, туннель который ранее был создан. В строке Bridge выбираем bridge_eoip.
Далее по такому же принципу необходимо связать интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, . )
Привязываем интерфейс с Bridge. В строке Interface выбираем интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, . ), в данной схеме подключение осуществляется в интерфейсе ether3. В строке 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.
В итоге должно получиться, что-то вроде этого, как показано на рисунке выше.
Далее нам необходимо связать интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, . ), с созданными туннелями. Так как у нас удаленных точек будет много, мы все их заведем на маршрутизатор CISCO и свяжем с MikroTik - trunk портом. Для этого создаем сетевой мост (Bridge) с возможностью "пропускания" VLAN'ов.
И так приступим:
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.
Далее по такому же принципу необходимо связать интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, . )
Далее привязываем интерфейс с Bridge. В строке Interface выбираем интерфейс, в который подключено наше оборудование (ПК, маршрутизатор, . ), в данной схеме подключение осуществляется на интерфейсе ether3. В строке Bridge выбираем bridge_trunk. Так интерфейсе ether3 - trunk, в строке PVID указываем 1.
В итоге должно получиться, что-то вроде этого, как показано на рисунке выше.
Теперь нам необходимо правильно настроить access trunk порты (в MikroTik это - tagged и untagged), так как при добавлении по умолчанию, они настроены не правильно.
Заходим в вкладке 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 туннели заработали.
Для этого, заходим в IP -> Firewall -> Add New.
У меня, данное правило, через Web интерфейс не удалось добавить, поэтому пришлось его добавлять, через консоль:
Notes
tunnel-id is method of identifying tunnel. It must be unique for each EoIP tunnel.
mtu should be set to 1500 to eliminate packet refragmentation inside the tunnel (that allows transparent bridging of Ethernet-like networks, so that it would be possible to transport full-sized Ethernet frame over the tunnel).
When bridging EoIP tunnels, it is highly recommended to set unique MAC addresses for each tunnel for the bridge algorithms to work correctly. For EoIP interfaces you can use MAC addresses that are in the range from 00:00:5E:80:00:00 - 00:00:5E:FF:FF:FF , which IANA has reserved for such cases. Alternatively, you can set the second bit of the first byte to modify the auto-assigned address into a 'locally administered address', assigned by the network administrator and thus use any MAC address, you just need to ensure they are unique between the hosts connected to one bridge.
Note: EoIP tunnel adds at least 42 byte overhead (8byte GRE + 14 byte Ethernet + 20 byte IP)
Читайте также: