[ESR] Настройка GRE-туннелей

GRE (англ. Generic Routing Encapsulation — общая инкапсуляция маршрутов) — протокол туннелирования сетевых пакетов. Его основное назначение — инкапсуляция пакетов сетевого уровня сетевой модели OSI в IP-пакеты. GRE может использоваться для организации VPN на 3-м уровне модели OSI. В маршрутизаторе ESR реализованы статические неуправляемые GRE-туннели, то есть туннели создаются вручную путем конфигурирования на локальном и удаленном узлах. Параметры туннеля для каждой из сторон должны быть взаимосогласованными или переносимые данные не будут декапсулироваться партнером.

Задача: Организовать L3-VPN между офисами компании через IP-сеть, используя для туннелирования трафика протокол GRE.

  • в качестве локального шлюза для туннеля используется IP-адрес 115.0.0.1;
  • в качестве удаленного шлюза для туннеля используется IP-адрес 114.0.0.10;
  • IP-адрес туннеля на локальной стороне 25.0.0.1/24.

Рисунок 1 - Схема сети.
Рисунок 1 – Схема сети

Решение:

Создадим туннель GRE 10:

esr(config)# tunnel gre 10

Укажем локальный и удаленный шлюз (IP-адреса интерфейсов, граничащих с WAN):

esr(config-gre)# local address 115.0.0.1
esr(config-gre)# remote address 114.0.0.10

Укажем IP-адрес туннеля 25.0.0.1/24:

esr(config-gre)# ip address 25.0.0.1/24

Также туннель должен принадлежать к зоне безопасности, для того чтобы можно было создать правила, разрешающие прохождение трафика в firewall. Принадлежность туннеля к зоне задается следующей командой:

esr(config-gre)# security-zone untrusted

Включим туннель:

esr(config-gre)# enable
esr(config-gre)# exit

На маршрутизаторе должен быть создан маршрут до локальной сети партнера. В качестве интерфейса назначения указываем ранее созданный туннель GRE:

esr(config)# ip route 172.16.0.0/16 tunnel gre 10

Для применения изменений конфигурации выполним следующие команды:

esr# commit
Configuration has been successfully committed
esr# confirm
Configuration has been successfully confirmed

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

Опционально для GRE-туннеля можно указать следующие параметры:

  • Включить вычисление и включение в пакет контрольной суммы заголовка GRE и инкапсулированного пакета для исходящего трафика:

esr(config-gre)# local checksum

  • Включить проверку наличия и корректности контрольной суммы GRE для входящего трафика:

esr(config-gre)# remote checksum

  • Указать уникальный идентификатор:

esr(config-gre)# key 15808

  • Указать значение DSCP, MTU, TTL:

esr(config-gre)# dscp 44
esr(config-gre)# mtu 1426
esr(config-gre)# ttl 18

Состояние туннеля можно посмотреть командой:

esr# show tunnels status gre 10

Счетчики входящих и отправленных пакетов можно посмотреть командой:

esr# show tunnels counters gre 10

Конфигурацию туннеля можно посмотреть командой:

esr# show tunnels configuration gre 10

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

закрыть