Документация: ПО Факел — разрабатываемая версия
Протоколы 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 (сетевой уровень) независимо от значения encapsulation: работают только протоколы GRE и IP6GRE. Значения gretap и ip6gretap команда принимает, но передача кадров Ethernet не обеспечивается.
По сравнению с другими протоколами туннелирования 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 |
Включает протокол инкапсуляции GRE на интерфейсе туннеля |
2 |
set interfaces tunnel |
Задает IP-адреса источника на интерфейсе туннеля |
3 |
set interfaces tunnel |
Задает IP-адрес назначения на интерфейсе туннеля |
4 |
set interfaces tunnel |
Задает локальный IP-адрес на интерфейсе туннеля |
Настройка маршрутизатора «Б»:
Шаг |
Команда |
Описание |
|---|---|---|
1 |
set interfaces tunnel |
Включает протокол инкапсуляции GRE на интерфейсе туннеля |
2 |
set interfaces tunnel |
Задает IP-адреса источника на интерфейсе туннеля |
3 |
set interfaces tunnel |
Задает IP-адрес назначения на интерфейсе туннеля |
4 |
set interfaces tunnel |
Задает локальный IP-адрес на интерфейсе туннеля |
Список команд¶
Режим «Конфигурирование»¶
interfaces tunnel <interface> encapsulation gre¶
Синтаксис:
set interfaces tunnel
<interface>encapsulation gredelete interfaces tunnel
<interface>encapsulation greshow interfaces tunnel
<interface>encapsulation
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции.
Режим: «Конфигурирование».
interfaces tunnel <interface> encapsulation ip6gre¶
Синтаксис:
set interfaces tunnel
<interface>encapsulation ip6gredelete interfaces tunnel
<interface>encapsulation ip6greshow interfaces tunnel
<interface>encapsulation
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции.
Режим: «Конфигурирование».
interfaces tunnel <interface> encapsulation gretap¶
Синтаксис:
set interfaces tunnel
<interface>encapsulation gretapdelete interfaces tunnel
<interface>encapsulation gretapshow interfaces tunnel
<interface>encapsulation
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции.
Режим: «Конфигурирование».
Примечание
В текущей версии ПО Факел значение gretap принимается командой, но создается туннель GRE (сетевой уровень): протокол GRETAP не реализован (см. Ограничения).
interfaces tunnel <interface> encapsulation ip6gretap¶
Синтаксис:
set interfaces tunnel
<interface>encapsulation ip6gretapdelete interfaces tunnel
<interface>encapsulation ip6gretapshow interfaces tunnel
<interface>encapsulation
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции.
Режим: «Конфигурирование».
Примечание
В текущей версии ПО Факел значение ip6gretap принимается командой, но создается туннель GRE (сетевой уровень): протокол IP6GRETAP не реализован (см. Ограничения).
interfaces tunnel <interface> address <address>¶
Синтаксис:
set interfaces tunnel
<interface>address<address>delete interfaces tunnel
<interface>address<address>show interfaces tunnel
<interface>address
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции;<address>— локальный IP-адрес, который администратор вручную назначает интерфейсу туннеля. Формат: IPv4-префикс (x.x.x.x/x) или IPv6-префикс (h:h:h:h:h:h:h:h/x). Можно задать несколько значений.
Режим: «Конфигурирование».
interfaces tunnel <interface> source-address <address>¶
Синтаксис:
set interfaces tunnel
<interface>source-address<address>delete interfaces tunnel
<interface>source-address<address>show interfaces tunnel
<interface>source-address
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции;<address>— IP-адрес источника. Формат: IPv4-адрес (x.x.x.x) для GRE и GRETAP, IPv6-адрес (h:h:h:h:h:h:h:h) для IP6GRE и IP6GRETAP.
Режим: «Конфигурирование».
interfaces tunnel <interface> remote <address>¶
Синтаксис:
set interfaces tunnel
<interface>remote<address>delete interfaces tunnel
<interface>remote<address>show interfaces tunnel
<interface>remote
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции;<address>— IP-адрес назначения другого интерфейса туннеля. Формат: IPv4-адрес (x.x.x.x) для GRE и GRETAP, IPv6-адрес (h:h:h:h:h:h:h:h) для IP6GRE и IP6GRETAP.
Режим: «Конфигурирование».
interfaces tunnel <interface> parameters ip key <key>¶
Синтаксис:
set interfaces tunnel
<interface>parameters ip key<key>delete interfaces tunnel
<interface>parameters ip key<key>show interfaces tunnel
<interface>parameters ip key
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции;<key>— ключ для идентификации созданного туннеля. Формат: целое число. Диапазон значений: от 0 до 4294967295.
Режим: «Конфигурирование».
Примечание
Полный список команд для настройки туннельного интерфейса представлен в разделе Интерфейс туннеля.
Режим «Администрирование»¶
Команды show interfaces tunnel и show interfaces tunnel detail описаны в разделе Интерфейс туннеля.
interfaces tunnel <interface>¶
Синтаксис:
show interfaces tunnel
<interface>
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число.
Режим: «Администрирование».
Уровень привилегий: «Администратор».
interfaces tunnel <interface> brief¶
Синтаксис:
show interfaces tunnel
<interface>brief
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число.
Режим: «Администрирование».
Уровень привилегий: «Администратор».