Протоколы GRE#

Обзор#

Протоколы туннелирования GRE (Generic Routing Encapsulation) работают на сетевом уровне модели OSI и в зависимости от своего типа инкапсулируют данные канального или сетевого уровня в IPv4- или IPv6-пакеты.

Маршрутизатор Факел поддерживает следующие протоколы: GRE, IP6GRE, GRETAP, IP6GRETAP. Инкапсуляция происходит по схемам: IPv4-in-IPv4, IPv6-in-IPv4, IPv4-in-IPv6, IPv6-in-IPv6, Ethernet-in-IPv4, Ethernet-in-IPv6. При инкапсуляции между внутренним заголовком исходного пакета и перед внешним заголовком добавляется дополнительный GRE-заголовок. Протокол GRETAP и его разновидность IP6GRETAP поддерживают псевдопроводную технологию.

По сравнению с другими протоколами туннелирования GRE обладает рядом преимуществ:

  • инкапсулирует одновременно данные с несколькими протоколами вне зависимости от их типа;

  • работает с multicast-трафиком;

  • поддерживает multicast-вещание для формирования соседних связей;

  • поддерживает туннельные ключи, что позволяет создавать несколько туннелей с одинаковыми интерфейсами источника и назначения. Туннельный ключ — уникальный идентификатор, который помогает отличать один туннель от другого.

Однако в работе GRE есть также и ряд особенностей:

  • Размер GRE-заголовка составляет 4 байта, а размер внешнего IP-заголовка — 20 байт. Из-за этого размер всего инкапсулированного пакета увеличивается на 24 байта, что может приводить к ранней фрагментации из-за выхода размера пакета за пределы максимально допустимого размера передаваемого пакета;

  • Большинство межсетевых экранов и систем защиты настроены на анализ трафика, который проходит через стандартные транспортные протоколы (TCP или UDP), так как они содержат понятные заголовки (порты, флаги, номера сессий и т.д.). GRE упаковывает данные прямо в IP-пакет, без использования TCP/UDP. Поэтому некоторые фаерволы могут не знать, как обрабатывать такой трафик и просто блокируют его. При инкапсуляции по протоколу GRE в поле IP-заголовка добавляется номер протокола — «47»;

  • По умолчанию протокол туннелирования GRE не шифрует передаваемые данные. Чтобы защитить передачу данных по туннелю, используйте протоколы шифрования типа IPsec.

Более подробная информация содержится в документах RFC 2784.

GRE

Протокол туннелирования GRE инкапсулирует пакеты различных протоколов сетевого уровня в IPv4-пакеты. Работает по схемам: IPv4-in-IPv4, IPv6-in-IPv4.

Заголовок пакета при инкапсуляции по протоколу GRE выглядит следующим образом:

Пример базовой конфигурацииПример базовой конфигурации

IP6GRE

Протокол IP6GRE инкапсулирует пакеты различных протоколов сетевого уровня в IPv6-пакеты. Работает по схемам: IPv4-in-IPv6, IPv6-in-IPv6.

Структура пакета при инкапсуляции по протоколу IP6GRE:

Пример базовой конфигурацииПример базовой конфигурации

GRETAP

Протокол GRETAP инкапсулирует пакеты различных протоколов канального уровня в IPv4-пакеты. Работает по схеме Ethernet-in-IPv4. Поддерживает псевдопроводную технологию.

Структура пакета при инкапсуляции по протоколу GRETAP:

Пример базовой конфигурацииПример базовой конфигурации

IP6GRETAP

Протокол IP6GRETAP инкапсулирует пакеты различных протоколов канального уровня в IPv6-пакеты. Работает по схеме Ethernet-in-IPv6. Поддерживает псевдопроводную технологию.

Структура пакета при инкапсуляции по протоколу IP6GRETAP:

Пример базовой конфигурацииПример базовой конфигурации

Пример настройки#

Шаг

Настройка маршрутизатора «А»

Настройка маршрутизатора «Б»

Описание

1

set interfaces tunnel tun1 encapsulation gre

set interfaces tunnel tun1 encapsulation gre

Включает протокол инкапсуляции GRE на интерфейсе туннеля

2

set interfaces tunnel tun1 source-address 198.51.100.2

set interfaces tunnel tun1 source-address 203.0.113.10

Задает IP-адреса источника на интерфейсе туннеля

3

set interfaces tunnel tun1 remote 203.0.113.10

set interfaces tunnel tun1 remote 198.51.100.2

Задает IP-адрес назначения на интерфейсе туннеля

4

set interfaces tunnel tun1 address 10.0.0.1/30

set interfaces tunnel tun1 address 10.0.0.2/30

Задает локальный IP-адрес на интерфейсе туннеля

Список команд#


Режим «Конфигурирование»#


interfaces tunnel <interface> encapsulation gre#

Описание:
Включает протокол туннелирования GRE на интерфейсе туннеля.

Синтаксис:

  • set interfaces tunnel <interface> encapsulation gre

  • delete interfaces tunnel <interface> encapsulation gre

  • show interfaces tunnel <interface> encapsulation

Аргументы:

  • <interface> — имя интерфейса туннеля.

Режим: «Конфигурирование».


interfaces tunnel <interface> encapsulation ip6gre#

Описание:
Включает протокол туннелирования IP6GRE на интерфейсе туннеля.

Синтаксис:

  • set interfaces tunnel <interface> encapsulation ip6gre

  • delete interfaces tunnel <interface> encapsulation ip6gre

  • show interfaces tunnel <interface> encapsulation

Аргументы:

  • <interface> — имя интерфейса туннеля.

Режим: «Конфигурирование».


interfaces tunnel <interface> encapsulation gretap#

Описание:
Включает протокол туннелирования GRETAP на интерфейсе туннеля.

Синтаксис:

  • set interfaces tunnel <interface> encapsulation gretap

  • delete interfaces tunnel <interface> encapsulation gretap

  • show interfaces tunnel <interface> encapsulation

Аргументы:

  • <interface> — имя интерфейса туннеля.

Режим: «Конфигурирование».


interfaces tunnel <interface> encapsulation ip6gretap#

Описание:
Включает протокол туннелирования IP6RETAP на интерфейсе туннеля.

Синтаксис:

  • set interfaces tunnel <interface> encapsulation ip6gretap

  • delete interfaces tunnel <interface> encapsulation ip6gretap

  • show interfaces tunnel <interface> encapsulation

Аргументы:

  • <interface> — имя интерфейса туннеля.

Режим: «Конфигурирование».


interfaces tunnel <interface> address <address>#

Описание:
Задает интерфейсу туннеля локальный IP-адрес.

Синтаксис:

  • set interfaces tunnel <interface> address <address>

  • delete interfaces tunnel <interface> address <address>

  • show interfaces tunnel <interface> address

Аргументы:

  • <interface> — имя интерфейса туннеля;

  • <address> — локальный IP-адрес, который администратор вручную назначает интерфейсу туннеля. Может быть указан несколько раз как адрес IPv4 или адрес IPv6.

Режим: «Конфигурирование».


interfaces tunnel <interface> source-address <address>#

Описание:
Задает интерфейсу туннеля IP-адрес источника.

Синтаксис:

  • set interfaces tunnel <interface> source-address <address>

  • delete interfaces tunnel <interface> source-address <address>

  • show interfaces tunnel <interface> source-address

Аргументы:

  • <interface> — имя интерфейса туннеля;

  • <address> — IP-адрес источника. Может быть указан как адрес IPv4 или адрес IPv6.

Режим: «Конфигурирование».


interfaces tunnel <interface> remote <address>#

Описание:
Задает интерфейсу туннеля IP-адрес назначения.

Синтаксис:

  • set interfaces tunnel <interface> remote <address>

  • delete interfaces tunnel <interface> remote <address>

  • show interfaces tunnel <interface> remote

Аргументы:

  • <interface> — имя интерфейса туннеля;

  • <address> — IP-адрес назначения другого интерфейса туннеля. Может быть указан как адрес IPv4 или адрес IPv6.

Режим: «Конфигурирование».

Примечание

Полный список команд для настройки туннельного интерфейса представлен в разделе Интерфейс туннеля.