Общая инкапсуляция маршрутизации
Протокол связи | |
Цель | Сетевое туннелирование |
---|---|
Разработчик(и) | Сиско Системы |
Введение | 1994 [1] |
RFC(ы) | RFC1701, RFC1702, RFC2784 |
Generic Routing Encapsulation ( GRE ) — это протокол туннелирования, разработанный Cisco Systems , который может инкапсулировать широкий спектр сетевого уровня протоколов внутри виртуальных каналов «точка-точка» или каналов «точка-многоточка» в сети Интернет-протокола . [2]
Пример использования
[ редактировать ]- В сочетании с PPTP для создания VPN .
- В сочетании с IPsec VPN для обеспечения передачи информации о маршрутизации между подключенными сетями.
- В управления мобильностью . протоколах
- В интерфейсах A8/A10 для инкапсуляции IP-данных в/из функции управления пакетами (PCF).
- Linux и BSD могут создавать специальные IP-адреса через туннели GRE, совместимые с оборудованием Cisco.
- Распределенное устройство с защитой от отказа в обслуживании (DDoS) на незащищенную конечную точку .
Пример стека протоколов
[ редактировать ]модели OSI Уровень | Пример протокола |
---|---|
7. Приложение | HTTP |
4. Транспорт | TCP |
3. Сеть (инкапсулированная в GRE) | IPv4 |
Инкапсуляция | ИДТИ |
3. Сеть | IPv6 |
2. Канал передачи данных | Ethernet |
1. Физический | Физический уровень Ethernet |
Основываясь на принципах многоуровневого уровня протоколов в OSI, инкапсуляция протоколов, а не GRE, нарушает порядок уровней. Его можно рассматривать как разделитель между двумя различными стеками протоколов, один из которых выступает в качестве носителя для другого.
Протоколы доставки
[ редактировать ]Пакеты GRE, инкапсулированные непосредственно в IP , используют протокол IP типа 47 заголовка IPv4. «Протокол» в поле [3] или заголовка IPv6 » поле «Следующий заголовок . [4]
По соображениям производительности GRE также может быть инкапсулирован в пакеты UDP. [5] Более высокая пропускная способность может быть достигнута за счет использования многопутевой маршрутизации с равной стоимостью .
Заголовок пакета
[ редактировать ]Расширенный заголовок пакета GRE (RFC 2890)
[ редактировать ]Расширенная версия заголовка пакета GRE. [6] представлено ниже:
Расширенный формат заголовка GRE Смещения Октет 0 1 2 3 Октет Кусочек 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 С К С Зарезервировано 0 Версия Тип протокола 4 32 Контрольная сумма (необязательно) Зарезервировано 1 (необязательно) 8 64 Ключ (необязательно) 12 96 Порядковый номер (необязательно)
- С (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] представлено на схеме ниже.
Стандартный формат заголовка GRE Смещения Октет 0 1 2 3 Октет Кусочек 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 С Зарезервировано 0 Версия Тип протокола 4 32 Контрольная сумма (необязательно) Зарезервировано 1 (необязательно)
- С (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 Смещения Октет 0 1 2 3 Октет Кусочек 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 С Р К С с Повторяться Флаги Версия Тип протокола 4 32 Контрольная сумма (необязательно) Смещение (необязательно) 8 64 Ключ (необязательно) 12 96 Порядковый номер (необязательно) 16 128 Маршрутизация (необязательно, переменной длины)
Исходный 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.
Формат заголовка PPTP GRE Смещения Октет 0 1 2 3 Октет Кусочек 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 С Р К С с Повторяться А Флаги Версия Тип протокола 4 32 Длина ключевой полезной нагрузки Ключевой идентификатор вызова 8 64 Порядковый номер (необязательно) 12 96 Номер подтверждения (необязательно)
- С (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, полученного отправителем.
Стандарты
[ редактировать ]- RFC 1701 : Универсальная инкапсуляция маршрутизации (GRE) (информационный)
- RFC 1702 : Общая инкапсуляция маршрутизации в сетях IPv4 (информационный)
- RFC 2637 : Протокол туннелирования «точка-точка» (информационный)
- RFC 2784 : Универсальная инкапсуляция маршрутизации (GRE) (предлагаемый стандарт, обновленный RFC 2890)
- RFC 2890 : Расширения ключа и порядкового номера для GRE (предлагаемый стандарт)
- RFC 8086 : Инкапсуляция GRE-in-UDP (предлагаемый стандарт)
См. также
[ редактировать ]- Виртуализация сети с использованием универсальной инкапсуляции маршрутизации — пакеты L2 передаются через GRE.
- Протокол туннелирования GPRS — GTP-U аналогичен GRE и используется в сотовых сетях.
Ссылки
[ редактировать ]- ^ Jump up to: а б С. Хэнкс; Т. Ли; Д. Фариначчи; П. Трайна (октябрь 1994 г.). Универсальная инкапсуляция маршрутизации (GRE) . Сетевая рабочая группа. дои : 10.17487/RFC1701 . РФК 1701 . Информационный.
- ^ США 7801021B1 , Николаос Триантафиллис; Роберт Дж. Ордеманн и Саймон Д. Барбер, «Общие подтверждения активности туннеля инкапсуляции маршрутизации», выпущено 21 сентября 2010 г., передано Cisco Technology Inc.
- ^ С. Хэнкс; Т. Ли; Д. Фариначчи; П. Трайна (октябрь 1994 г.). Общая инкапсуляция маршрутизации в сетях IPv4 . Сетевая рабочая группа. дои : 10.17487/RFC1702 . РФК 1702 . Информационный.
- ^ Jump up to: а б К. Пиньятаро; Р. Боника; С. Кришнан (октябрь 2015 г.). Поддержка IPv6 для универсальной инкапсуляции маршрутизации (GRE) . Целевая группа инженеров Интернета (IETF). дои : 10.17487/RFC7676 . ISSN 2070-1721 . РФК 7676 . Предлагаемый стандарт.
- ^ Э. Крэбб; Э. Крэббет; Т. Герберт (март 2017 г.). Л. Йонг (ред.). Инкапсуляция GRE-in-UDP . Целевая группа инженеров Интернета (IETF). дои : 10.17487/RFC8086 . ISSN 2070-1721 . РФК 8086 . Предлагаемый стандарт.
- ^ Дж. Доммети (сентябрь 2000 г.). Расширения ключа и порядкового номера для GRE . Сетевая рабочая группа. дои : 10.17487/RFC2890 . РФК 2890 . Предлагаемый стандарт.
- ^ Д. Фариначчи; Т. Ли; С. Хэнкс; Д. Мейер; П. Трайна (март 2000 г.). Универсальная инкапсуляция маршрутизации (GRE) . Сетевая рабочая группа. дои : 10.17487/RFC2784 . РФК 2784 . Предлагаемый стандарт. Обновлено РФК 2890 .
- ^ К. Хамзе; Г. Палл; В. Вертейн; Дж. Тааруд; В. Литтл; Г. Цорн (июль 1999 г.). Протокол туннелирования «точка-точка» (PPTP) . Сетевая рабочая группа. дои : 10.17487/RFC2637 . РФК 2637 . Информационный.
Внешние ссылки
[ редактировать ]
- Общая инкапсуляция маршрутизации , домашняя страница подпротокола в Cisco
- Общая инкапсуляция маршрутизации. Архивировано 29 декабря 2018 г. на Wayback Machine , запись в Cisco DocWiki (ранее известная как «Справочник по технологиям межсетевого взаимодействия»).