stringtranslate.com

Общая инкапсуляция маршрутизации

Generic Routing Encapsulation ( GRE ) — это протокол туннелирования , разработанный Cisco Systems , который может инкапсулировать широкий спектр протоколов сетевого уровня внутри виртуальных каналов «точка-точка» или каналов «точка-многоточка» в сети Интернет-протокола . [2]

Пример использования

Пример стека протоколов

Основываясь на принципах многоуровневого уровня протоколов в OSI, инкапсуляция протоколов, а не GRE, нарушает порядок уровней. Его можно рассматривать как разделитель между двумя различными стеками протоколов, один из которых выступает в качестве носителя для другого.

Протоколы доставки

Пакеты GRE, которые инкапсулированы непосредственно в IP , используют IP-протокол типа 47 в поле «Протокол » заголовка IPv4 [3] или в поле «Следующий заголовок » заголовка IPv6 . [4]

По соображениям производительности GRE также можно инкапсулировать в пакеты UDP. [5] Повышение пропускной способности может быть достигнуто за счет использования многопутевой маршрутизации с равной стоимостью .

Заголовок пакета

Расширенный заголовок пакета GRE (RFC 2890)

Расширенная версия заголовка пакета GRE [6] представлена ​​ниже:

С (1 бит)
Бит контрольной суммы . Установите значение 1, если контрольная сумма присутствует.
К (1 бит)
Ключевой бит. Установите значение 1, если ключ присутствует.
С (1 бит)
Бит порядкового номера. Установите значение 1, если присутствует порядковый номер.
Зарезервировано 0 (9 бит)
Зарезервированные биты; установить на 0.
Версия (3 бита)
Номер версии GRE; установить на 0.
Тип протокола (16 бит)
Указывает тип протокола эфира инкапсулированной полезной нагрузки. (Для IPv4 это будет шестнадцатеричное число 0800.)
Контрольная сумма (16 бит)
Присутствует, если установлен бит C ; содержит контрольную сумму для заголовка GRE и полезных данных.
Зарезервировано 1 (16 бит)
Присутствует, если установлен бит C ; установлено на 0.
Ключ (32 бита)
Присутствует, если установлен бит K ; содержит значение ключа, специфичное для приложения.
Порядковый номер (32 бита)
Присутствует, если установлен бит S ; содержит порядковый номер пакета GRE.

Стандартный заголовок пакета GRE (RFC 2784)

Стандартная структура заголовка пакета GRE [7] представлена ​​на схеме ниже.

С (1 бит)
Бит контрольной суммы . Установите значение 1, если контрольная сумма присутствует.
Зарезервировано 0 (12 бит)
Зарезервированные биты; установить на 0.
Версия (3 бита)
Номер версии GRE; установить на 0.
Тип протокола (16 бит)
Указывает тип протокола эфира инкапсулированной полезной нагрузки. (Для IPv4 это будет шестнадцатеричное число 0x0800; для IPv6 это будет 0x86DD. [4] ).
Контрольная сумма (16 бит)
Присутствует, если установлен бит C ; содержит контрольную сумму для заголовка GRE и полезных данных.
Зарезервировано 1 (16 бит)
Присутствует, если установлен бит C ; его содержимое установлено в 0.

Исходный заголовок пакета GRE (RFC 1701)

Новая структура заменила первоначальную: [1]

Исходный GRE RFC определил дополнительные поля в заголовке пакета, которые в текущем стандарте устарели:

С (1 бит)
Бит контрольной суммы . Установите значение 1, если контрольная сумма присутствует.
Р (1 бит)
Бит маршрутизации. Установите значение 1, если присутствует информация о маршрутизации и смещении.
К (1 бит)
Ключевой бит. Установите значение 1, если ключ присутствует.
С (1 бит)
Бит порядкового номера. Установите значение 1, если присутствует порядковый номер.
с (1 бит)
Бит строгого исходного маршрута.
Повторяться (3 бита)
Биты управления рекурсией .
Флаги (5 бит)
Зарезервировано для будущего использования, установлено в 0.
Версия (3 бита)
Установите на 0.
Тип протокола (16 бит)
Указывает тип протокола эфира инкапсулированной полезной нагрузки.
Контрольная сумма (16 бит)
Присутствует, если установлен бит C ; содержит контрольную сумму для заголовка GRE и полезных данных.
Смещение (16 бит)
Присутствует, если установлен бит R или бит C ; содержит достоверную информацию, только если установлен бит R. Поле смещения, указывающее смещение в поле «Маршрутизация» относительно записи активного исходного маршрута.
Ключ (32 бита)
Присутствует, если установлен бит K ; содержит значение ключа, специфичное для приложения.
Порядковый номер (32 бита)
Присутствует, если установлен бит S ; содержит порядковый номер пакета GRE.
Маршрутизация (переменная)
Присутствует, если установлен бит R ; содержит список записей исходного маршрута, поэтому имеет переменную длину.

Заголовок пакета PPTP GRE

Протокол туннелирования «точка-точка» (PPTP) [8] использует вариант структуры заголовка пакета GRE, представленный ниже. PPTP создает туннель GRE, через который передаются пакеты GRE PPTP.

С (1 бит)
Бит контрольной суммы . Для пакетов PPTP GRE это значение равно 0.
Р (1 бит)
Бит маршрутизации. Для пакетов PPTP GRE это значение равно 0.
К (1 бит)
Ключевой бит. Для пакетов PPTP GRE это значение равно 1. (Все пакеты PPTP GRE содержат ключ.)
С (1 бит)
Бит порядкового номера. Установите значение 1, если указан порядковый номер, указывающий пакет данных PPTP GRE.
с (1 бит)
Бит строгого исходного маршрута. Для пакетов PPTP GRE это значение равно 0.
Повторяться (3 бита)
Биты управления рекурсией . Для пакетов PPTP GRE они установлены на 0.
А (1 бит)
Номер подтверждения присутствует. Установите значение 1, если указан номер подтверждения, указывающий на пакет подтверждения PPTP GRE.
Флаги (4 бита)
Флаговые биты. Для пакетов PPTP GRE они установлены на 0.
Версия (3 бита)
Номер версии GRE. Для пакетов PPTP GRE это значение равно 1.
Тип протокола (16 бит)
Для пакетов PPTP GRE установлено шестнадцатеричное значение 880B.
Длина ключевой полезной нагрузки (16 бит)
Содержит размер полезных данных, не включая заголовок GRE.
Ключевой идентификатор вызова (16 бит)
Содержит идентификатор вызова узла для сеанса, которому принадлежит пакет.
Порядковый номер (32 бита)
Присутствует, если установлен бит S; содержит порядковый номер полезной нагрузки GRE.
Номер подтверждения (32 бита)
Присутствует, если установлен бит A; содержит порядковый номер самого высокого пакета полезной нагрузки GRE, полученного отправителем.

Стандарты

Смотрите также

Рекомендации

  1. ^ аб С. Хэнкс; Т. Ли; Д. Фариначчи; П. Трайна (октябрь 1994 г.). Общая инкапсуляция маршрутизации (GRE). Сетевая рабочая группа. дои : 10.17487/RFC1701 . РФК 1701. Информационный.
  2. ^ США 7801021B1, Николаос Триантафиллис; Роберт Дж. Ордеманн и Саймон Д. Барбер, «Общие подтверждения активности туннеля инкапсуляции маршрутизации», выпущено 21 сентября 2010 г., передано Cisco Technology Inc. 
  3. ^ С. Хэнкс; Т. Ли; Д. Фариначчи; П. Трайна (октябрь 1994 г.). Общая инкапсуляция маршрутизации в сетях IPv4. Сетевая рабочая группа. дои : 10.17487/RFC1702 . РФК 1702. Информационный.
  4. ^ аб К. Пиньятаро; Р. Боника; С. Кришнан (октябрь 2015 г.). Поддержка IPv6 для универсальной инкапсуляции маршрутизации (GRE). Целевая группа инженеров Интернета (IETF). дои : 10.17487/RFC7676 . ISSN  2070-1721. РФК 7676. Предлагаемый стандарт.
  5. ^ Э. Крэбб; Э. Крэббет; Т. Герберт (март 2017 г.). Л. Йонг (ред.). Инкапсуляция GRE-в-UDP. Целевая группа инженеров Интернета (IETF). дои : 10.17487/RFC8086 . ISSN  2070-1721. РФК 8086. Предлагаемый стандарт.
  6. ^ Г. Доммети (сентябрь 2000 г.). Расширения ключа и порядкового номера для GRE. Сетевая рабочая группа. дои : 10.17487/RFC2890 . РФК 2890. Предлагаемый стандарт.
  7. ^ Д. Фариначчи; Т. Ли; С. Хэнкс; Д. Мейер; П. Трайна (март 2000 г.). Универсальная инкапсуляция маршрутизации (GRE). Сетевая рабочая группа. дои : 10.17487/RFC2784 . РФК 2784. Предлагаемый стандарт. Обновлено RFC 2890.
  8. ^ К. Хамзе; Г. Палл; В. Вертайн; Дж. Тааруд; В. Литтл; Г. Цорн (июль 1999 г.). Протокол туннелирования «точка-точка» (PPTP). Сетевая рабочая группа. дои : 10.17487/RFC2637 . РФК 2637. Информационный.

Внешние ссылки