Gre (протокол)

Начальная настройка стендовых MikroTik

Конечно, для большей наглядности мне надо было взять три устройства, но считаю, что без этого можно и обойтись. В конце статьи опишу процесс масштабирования, который на самом деле довольно прост при понимании принципа работы такой схемы. Как было сказано выше, в качестве подопытных два Mikrotik RB493G, которые перед экспериментами были обновлены до последней (на момент написания статьи) прошивки 6.37.1 (как обновиться, читайте здесь). Подразумевается, что оба роутера находятся в пределах видимости друг друга — будь то реальные IP при подключении через интернет, либо это какая-то общественная локальная сеть (например, у вас несколько торговых точек и офис в торговом центре).

Роутеры будут называться — центральны офис и — удаленный офис. На каждом роутере есть порт , который смотрит наружу. На этом же порту поднят VLAN, который будет эмулировать интерфейс, смотрящий внутрь сети. Зачем мне здесь понадобился интерфейс VLAN, станет понятно во время тестирования.

Начальная настройка микротика M151-office

Интерфейс  на интерфейсе wan.
Внешний IP — на интерфейсе , внутренний — на интерфейсе .

#
#
/interface vlan
add interface=wan name=v200-office vlan-id=200
/ip address
add address=192.168.10.151/24 interface=wan network=192.168.10.0
add address=192.168.200.1/24 interface=v200-office network=192.168.200.0

1
2
3
4
5
6
7
8
9

 
 
#
#

interfacevlan

add interface=wan name=v200-office vlan-id=200

ip address

add address=192.168.10.15124interface=wan network=192.168.10.0

add address=192.168.200.124interface=v200-office network=192.168.200.0

Начальная настройка микротика M152-remote1

Интерфейс  на интерфейсе wan.
Внешний IP — на интерфейсе , внутренний — на интерфейсе .

#
#
/interface vlan
add interface=wan name=v200-office vlan-id=200
/ip address
add address=192.168.10.152/24 interface=wan network=192.168.10.0
add address=192.168.200.2/24 interface=v200-office network=192.168.200.0

1
2
3
4
5
6
7
8
9

 
 
#
#

interfacevlan

add interface=wan name=v200-office vlan-id=200

ip address

add address=192.168.10.15224interface=wan network=192.168.10.0

add address=192.168.200.224interface=v200-office network=192.168.200.0

Verification on R1 and R2:

R1#show crypto ipsec sa peer 10.1.102.2

interface: FastEthernet0/0
 Crypto map tag: out_map, local addr 10.1.101.1

 protected vrf: (none)
 local ident (addr/mask/prot/port): (10.1.101.1/255.255.255.255/47/0)
 remote ident (addr/mask/prot/port): (10.1.102.2/255.255.255.255/47/0)
 current_peer 10.1.102.2 port 500
 PERMIT, flags={origin_is_acl,}
 #pkts encaps: 711, #pkts encrypt: 711, #pkts digest: 711
 #pkts decaps: 690, #pkts decrypt: 690, #pkts verify: 690

R1#telnet 2.2.2.2 /source-interface loopback 0
Trying 2.2.2.2 ... Open

User Access Verification

Password: 
R2>


R2#sh crypto ipsec sa peer 10.1.101.1

interface: FastEthernet0/0
 Crypto map tag: out_map, local addr 10.1.102.2

 protected vrf: (none)
 local ident (addr/mask/prot/port): (10.1.102.2/255.255.255.255/47/0)
 remote ident (addr/mask/prot/port): (10.1.101.1/255.255.255.255/47/0)
 current_peer 10.1.101.1 port 500
 PERMIT, flags={origin_is_acl,}
 #pkts encaps: 725, #pkts encrypt: 725, #pkts digest: 725
 #pkts decaps: 700, #pkts decrypt: 700, #pkts verify: 700

R2#telnet 1.1.1.1 /source-interface loopback 0
Trying 1.1.1.1 ... Open

User Access Verification

Password: 
R1>

Настраиваем тоннель GRE

Настраиваем Mikrotik

Создаем новый тоннель: Interfaces → GRE Tunnel, заполняем настройки:

  • Name: GRE1
  • Local Address: XXX.XXX.XXX.XXX
  • Remote Address: YYY.YYY.YYY.YYY
  • DSCP: inherit
  • Don’t fragment: no
  • Clamp TCP MSS: yes

Назначаем интерфейсу адрес:

IP → Addresses:

  • Address: 172.16.1.2/24
  • Interface: GRE1

Разрешаем ходить пакетам:

IP → Firewall → Filter Rules, добавляем новое правило:

  • Chain: input
  • Src Address: YYY.YYY.YYY.YYY
  • Protocol: 47(gre)
  • Action: accept

Настройки сервера с Ubuntu

В файле /etc/network/interfaces добавляем интерфейс tun1 в самый конец файла:

 iface tun1 inet static
    address 172.16.1.1
    netmask 255.255.255.0
    pre-up iptunnel add tun1 mode gre local YYY.YYY.YYY.YYY remote XXX.XXX.XXX.XXX ttl 255
    up ifconfig tun1 multicast
    pointopoint 172.16.1.2
    post-down iptunnel del tun1

Даем команду на поднятие тоннеля:

sudo ifup tun1

Проверяем — тоннель должен подняться. Для проверки можно попинговать внутренние IP 172.16.1.1 и 172.16.1.2 соответственно.

Summary

Sub-menu:
Standards:

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.

Основы

Фото предоставлено Фондом Марселя-Андре Баше и Нобеля / Wikimedia Commons

Понимание квантового туннелирования в более интуитивном смысле включает в себя пересмотр нескольких концепций квантовой механики. Первый из них, который мы рассмотрим, — это принцип неопределенности Гейзенберга. Принцип неопределенности Гейзенберга вступает в игру при попытке наблюдения частиц. В нем говорится, что существует предел, до которого можно определить различные параметры частицы с определенной степенью точности.

Чтобы лучше это понять, давайте возьмем два параметра — скорость и положение частицы — и скажем, что рассматриваемая нами частица является электроном. Теперь, согласно принципу неопределенности Гейзенберга, существует определенный предел, до которого и положение, и скорость электрона могут быть рассчитаны с определенной степенью точности.

Если бы мы сосредоточились на повышении точности любого из этих параметров более детально и сосредоточились, то другой параметр снизил бы уровень точности по сравнению с его измерением. Таким образом, если вы можете определить положение электрона с высокой точностью, тогда вы не сможете измерить его скорость с большой точностью. И наоборот, если вы сможете измерить скорость электрона с большой степенью точности, вы не сможете точно определить положение электрона.

Фото предоставлено Yuvalr / Wikimedia Commons

Теперь еще один фундаментальный принцип, который необходимо понять, — это волнообразная природа материи. Волнообразная природа частицы является ключевым аспектом одного из элементов квантовой механики, называемого корпускулярно-волновым дуализмом. В концепции волнового дуализма каждая фундаментальная частица может быть описана как частица, так и волна.

Это было предложено Луи де Бройлем в 1924 году в его кандидатской диссертации, которая утверждала, что если свет может обладать как волновой, так и частичной природой, то электрон также может иметь такую двойственную волно — частичную природу. Именно благодаря отношениям де Бройля он предложил в своей докторской диссертации, что мы смогли установить волновую природу материи. Эта связь заключается в следующем:

Здесь лямбда представляет длину волны частицы, а ‘p’ представляет импульс частицы. Значение отношения Де Бройля состоит в том, что оно устанавливает основание для того факта, что материя может вести себя подобно волне. Эксперимент Дэвиссона-Гермера доказал, что волновая природа материи вне всякого сомнения основана на дифракции электронов через кристалл.

Позднее волновая природа материи была легко интегрирована в принцип неопределенности Гейзенберга. Принцип неопределенности гласит, что для электрона или любой другой частицы импульс и положение не могут быть точно определены одновременно. Всегда есть некоторая неопределенность либо с позицией «дельта х», либо с импульсом «дельта р». Уравнение неопределенности Гейзенберга является:

Представьте себе, что вы точно измеряете импульс частицы, так что «дельта Р» равна нулю. Чтобы удовлетворить приведенному выше уравнению, неопределенность в положении частицы «Дельта x» должна быть бесконечной. Из уравнения де Бройля мы знаем, что частица с определенным импульсом имеет определенную длину волны «лямбда». Определенная длина волны распространяется по всему пространству до бесконечности.

Согласно вероятностной интерпретации Борна, это означает, что частица не локализована в пространстве, поэтому неопределенность положения становится бесконечной. Однако в реальной жизни длины волн имеют конечную границу и не бесконечны, поэтому неопределенность положения и неопределенность импульса имеют ограниченное значение. Уравнение де Бройля и принцип неопределенности Гейзенберга с этого момента превратились в две капли воды.

Для чего нужен VPN IpSec и какой роутер MikroTik выбрать

Одна из самых популярных опций в роутере для бизнес сегмента. Позволяет объединить в локальную сеть удаленные офисы. Масштабирование такой сети ограничивается прошивкой RouterOS:

  • 4 level – до 200 подключений;
  • 5 level – до 500 подключений;
  • 6 level – без ограничений.

ну а практическая реализация от быстродействия самого Mikrotik

В первую очередь стоит обращать внимание на аппаратную поддержку IpSec, отсутствие которой сопровождается обработкой всего блока шифрования через CPU маршрутизатора. Это характеристика в первую очередь влияет на количество пропускаемого трафика

Если ваш маршрутизатор(роутер) MikroTik начинает тормозить от передачи файлов к примеру 200-300Мб по каналу IpSec, стоит задуматься над переходом на маршрутизатор, который имеет аппаратную поддержку IpSec. Из актуальных моделей это может быть:

    • ;
    • ;
    • ;
    • ;
    • .

Если вам необходима помощь в подборе оборудования для использования MikroTik VPN IpSec – заполните форму запроса.

Как было указано выше, в зависимости от версии RouterOS визуальное расположение разделов для настройки VPN IpSec будет отличаться. Чтобы привести оба примера, первым будет рассмотрен вариант для версии RouterOS 6.44 и старше, а за ним последует зеркальная настройка второго маршрутизатора(роутера) MikroTik, только с прошивкой RouterOS 6.43 и младше. Схема будут состоять их двух подключений, будет введено наименование маршрутизаторов: MikroTik-1 и MikroTik-2.

Setup examples

The goal of this example is to get Layer 3 connectivity between two remote sites over the internet.

We have two sites, Site1 with local network range 10.1.101.0/24 and Site2 with local network range 10.1.202.0/24.

First step is to create GRE tunnels.
Router on site 1:

/interface gre add name=myGre remote-address=192.168.90.1 local-address=192.168.80.1

Router on site 2:

/interface gre add name=myGre remote-address=192.168.80.1 local-address=192.168.90.1

As you can see tunnel configuration is quite simple.

Note: In this example keepalive is not configured, so tunnel interface will have running flag even if remote tunnel end is not reachable

Now we just need to set up tunnel addresses and proper routing.
Router on site 1:

/ip address 
  add address=172.16.1.1/30 interface=myGre

/ip route 
  add dst-address=10.1.202.0/24 gateway=172.16.1.2

Router on site 2:

/ip address 
  add address=172.16.1.2/30 interface=myGre

/ip route 
  add dst-address=10.1.101.0/24 gateway=172.16.1.1

At this point both sites have Layer 3 connectivity over GRE tunnel.

Как происходит инкапсуляции заголовка GRE в IP-пакет?

GRE-заголовок накладывается «поверх» стандартного IP-пакета. При этом в самом GRE-заголовке содержится так называемый Tunnel IP Header. Именно в нем содержится информация о tunnel source и tunnel destination.

Данные адреса вкладываются в основной пакет, когда он отправляется в публичную сеть. В поле Control Information оригинального IP-пакета содержатся исходные IP-адреса источника и назначения. Таким образом, локальные серые IP-адреса скрыты в пакете, а в маршрутизации участвуют только те адреса которые мы указали в tunnel source и tunnel destination. При передаче пакета в локальную сеть GRE-заголовок отбрасывается и остается «чистый» IP-пакет.

Полное заявление авторских прав

Copyright (C) The Internet Society (2000). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an «AS IS» basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.

В оригинале ошибочно указан параграф 5.3 (см. http://www.rfc-editor.org/errata_search.php?eid=1706). Прим. перев.

В соответствии с RFC 3232 документ заменен базами данных http://www.iana.org/numbers/. Прим. перев.

Этот документ признан устаревшим и заменен RFC 4306, который, в свою очередь, заменен RFC 5996. Прим. перев.

Please follow and like us:

GRE Tunnel Configuration

A GRE tunnel is established on a router level and differs depending on the hardware type or service you use. Typically you’ll be required to set up the tunnel interface IPs and provide public IP addresses for both ends of the GRE tunnel.

Here is an example of a tunnel set up between two Cisco routers:

Source: https://supportforums.cisco.com

Router 1: R1 Router 2: R2
R1(config)# interface Tunnel1 R2(config)# interface Tunnel1
R1(config-if)# ip address
172.16.1.1 255.255.255.0
R2(config-if)# ip
172.16.1.2 255.255.255.0
R1(config-if)# ip mtu 1400 R2(config-if)# ip mtu 1400
R1(config-if)# ip tcp adjust-mss 1360 R2(config-if)# ip tcp adjust-mss 1360
R1(config-if)# tunnel source 1.1.1.1 R2(config-if)# tunnel source 2.2.2.2
R1(config-if)# tunnel destination 2.2.2.2 R2(config-if)# tunnel destination 1.1.1.1

It is important to remember that you may have to whitelist source addresses in firewalls on both ends of the tunnel. However, it is best practice to terminate the tunnel ahead of your firewall so it can inspect inner packets.

Another item to note is the maximum transmission unit (MTU) you set for the tunnel. Ethernet MTU is generally 1500 bytes. When using GRE, however, the additional header has an overhead of another 24 bytes that needs to be taken into account.

Therefore, when establishing a GRE tunnel with a symmetric traffic flow, we recommend setting the MTU to 1400 bytes, as shown in the above example.

For more questions about GRE tunneling and to learn how it’s being implemented in Incapsula’s DDoS mitigation services, contact us here or simply leave a comment below.

Структура инкапсулированных пакетов

Структура инкапсулированного с использованием GRE пакета показана на рисунке.

---------------------------------
|                               |
|      Заголовок доставки       |
|                               |
---------------------------------
|                               |
|        Заголовок GRE          |
|                               |
---------------------------------
|                               |
|        Вложенный пакет        |
|                               |
---------------------------------

В этой спецификации рассматривается, прежде всего, структура заголовка GRE, а также обсуждается ряд вопросов, связанных с передачей инкапсулированных пакетов IPv4.

2.1. Заголовок GRE

Заголовок пакета GRE показан на рисунке.

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C|       Reserved0       | Ver |         Protocol Type         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Checksum (необязательно)    |    Reserved1 (необязательно)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2.2. Checksum Present (бит 0)

Если флаг Checksum Present (контрольная сумма присутствует) установлен, поля Checksum и Reserved1 присутствуют в заголовке и поле Checksum содержит корректную информацию. Отметим, что совместимые реализации должны принимать и обрабатывать это поле.

2.3. Reserved0 (биты 1-12)

Получатель должен отбрасывать пакеты, в которых биты 1-5 отличны от нуля, если этот получатель не реализует RFC 1701. Биты 6-12 зарезервированы — они должны устанавливаться в 0 при передаче и игнорироваться на приеме.

2.3.1. Version Number (биты 13-15)

Поле номера версии должно иметь нулевое значение.

2.4. Protocol Type (2 октета)

Поле Protocol Type указывает тип протокола для вложенного пакета. Типы протоколов определены в , как ETHER TYPES и в документе . Реализации, получившей пакет со значением поля Protocol Type, не указанным в или , следует отбрасывать такой пакет.

2.5. Checksum (2 октета)

Поле Checksum содержит контрольную сумму IP (дополнение до единицы) для всех 16-битовых слов заголовка GRE и вложенного пакета. При расчете контрольной суммы значение данного поля принимается нулевым. Это поле присутствует только при установленном флаге Checksum Present.

Поле Reserved1 зарезервировано и при его наличии должно содержать нулевое значение. Поле Reserved1 присутствует только при наличии поля контрольной суммы (т. е., при установленном флаге Checksum Present).

Масштабирование

Как было обещано ранее, пару слов (а больше и не понадобится) о масштабировании. Суть проста: сейчас мы создали туннель , связывающий центральный офис и офис remote1. Теперь создаем новый туннель , который свяжет центральный офис с удаленным офисом2 (remote2, например). Так же настраиваете IPsec. Настройка роутера  повторяет настройку , а на центральном роутере надо будет добавить   в ранее созданный бридж.

В заключение

IPsec — обширная тема, суть которой мы здесь в общем-то не затронули. В данной статье был рассмотрен частный случай объединения офисов с помощью MikroTik и применением IPsec и EoIP. А если вы любознательны и хотите знать больше о защите данных, то начните, как минимум, с Википедии.

До новых встреч!

Реклама:

GRE Tunnel Lab Intro

Lab Topology

For this lab, we have four visible routers and some others within the “WAN” cloud. Specifically, we have two routers we have control of: R1 and R2; and two routers from the provider: CE01 and CE02.

The topology for this lab

The topology is quite simple: all routers are lined up in a row, and R1 can already communicate with R2 using the public addresses. However, the two LANs on the routers have private addresses, and can’t communicate with each other.

The Requirements

Our requirement is clear: we need to establish a tunnel to allow communication between the two LANs. This tunnel shouldn’t be encrypted and should use the standard GRE encapsulation. We will also need to take care of the routes that instruct the routers on how to use the tunnel. While doing so, we can only use static routes and no dynamic protocol.

The tunnel must use the addressing plan, with R1 having the lowest address.

Repackaging Your T-Rex Replica

A GRE is similar to a multi-faceted delivery service that can handle any kind of package—from a nylon bag full of water to a life sized T-rex replica—transporting it from door-to-door. It simply takes whatever you give it, puts it in one of its own boxes, slaps an address label on it and gets it to where it needs to go.

GRE does essentially the same thing in a process called encapsulation, which takes a data packet being sent and “repackages” it. This is achieved by adding two additional headers, one identifying it as a GRE packet and the second to provide new source and destination IPs.

Example of GRE encapsulation.

Configuration on R1:

interface fasthethernet 0/0
 ip address 10.1.101.1 255.255.255.0
!
interface loopback 0
 ip address 1.1.1.1 255.255.255.255
!
interface tunnel12
 ip address 192.168.12.1 255.255.255.0
 tunnel source 10.1.101.1
 tunnel destination 10.1.102.2
!
router eigrp 12
 network 1.1.1.1 0.0.0.0
 network 192.168.12.0
!
access-list 130 permit gre host 10.1.101.1 host 10.1.102.2
!
crypto isakmp key cisco123 address 10.1.102.2
crypto isakmp policy 10
 authentication pre-shared-key
 encryption des
 hash sha
 group 1
!
crypto ipsec transform-set esp-3des esp-3des esp-sha-hmac
!
crypto map out_map 10 ipsec-isakmp
 set peer 10.1.102.2
 set transform-set esp-3des
 match address 130
crypto map out_map local-address fastEthernet 0/0
!
interface fasthethernet0/0
 crypto map out_map
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *