Общая инкапсуляция маршрутизации - Generic Routing Encapsulation
| Протокол связи | |
| Цель | Сетевое туннелирование |
|---|---|
| Разработчики) | Cisco Systems |
| Введено | 1994 г. |
| RFC (ы) | RFC1701, RFC1702, RFC2784 |
Generic Routing Encapsulation ( GRE ) - это протокол туннелирования, разработанный Cisco Systems, который может инкапсулировать широкий спектр протоколов сетевого уровня в виртуальных двухточечных каналах или двухточечных каналах по сети Интернет-протокола .
Пример использования
- В сочетании с PPTP для создания VPN .
- В сочетании с IPsec VPN для передачи маршрутной информации между подключенными сетями.
- В протоколах мобильности .
- В интерфейсах A8 / A10 для инкапсуляции IP-данных в / из функции управления пакетами (PCF).
- Linux и BSD могут устанавливать специальный IP через туннели GRE, которые совместимы с оборудованием Cisco.
- Устройство, защищенное распределенным отказом в обслуживании (DDoS), на незащищенную конечную точку .
Пример стека протоколов
| Модель OSI слой | Протокол |
|---|---|
| 5. Сессия | X.225 |
| 4. Транспорт | UDP |
| 3. Сеть (инкапсулированная GRE) | IPv4 |
| Инкапсуляция | GRE |
| 3. Сеть | IPv6 |
| 2. Канал передачи данных | Ethernet |
| 1. Физические | Физический уровень Ethernet |
Основываясь на принципах многоуровневости протокола в OSI, инкапсуляция протокола, а не конкретно GRE, нарушает порядок уровней. Его можно рассматривать как разделитель между двумя разными стеками протоколов, один из которых выступает в качестве носителя для другого.
IP как протокол доставки
Пакеты GRE, инкапсулированные в IP, используют протокол IP типа 47 .
Заголовок пакета
Расширенный заголовок пакета GRE (RFC 2890)
Расширенная версия заголовка пакета GRE, как определено в RFC 2890 .
| Биты 0–3 | 4–12 | 13-15 | 16–31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | K | S | Зарезервировано0 | Версия | Тип протокола | ||||||||||||||||||||||||||
| Контрольная сумма (необязательно) | Зарезервировано 1 (необязательно) | ||||||||||||||||||||||||||||||
| Ключ (необязательно) | |||||||||||||||||||||||||||||||
| Порядковый номер (необязательно) | |||||||||||||||||||||||||||||||
- C
- Бит контрольной суммы . Установите в 1, если присутствует контрольная сумма.
- K
- Ключевой бит. Установите в 1, если ключ присутствует.
- S
- Бит порядкового номера. Установите 1, если присутствует порядковый номер.
- Зарезервировано0
- Зарезервированные биты; установлен на 0.
- Версия
- Номер версии GRE; установлен на 0.
- Тип протокола
- Указывает тип протокола ether для инкапсулированной полезной нагрузки. (Для IPv4 это будет шестнадцатеричный код 0800.)
- Контрольная сумма
- Присутствует, если установлен бит C; содержит контрольную сумму для заголовка GRE и полезной нагрузки.
- Зарезервировано1
- Присутствует, если установлен бит C; установлен на 0.
- Ключ
- Присутствует, если установлен бит K; содержит значение ключа для конкретного приложения.
- Последовательность чисел
- Присутствует, если установлен бит S; содержит порядковый номер пакета GRE.
Стандартный заголовок пакета GRE (RFC 2784)
Стандартная структура заголовка пакета GRE , определенная в RFC 2784 и RFC 2890 , представлена на диаграмме ниже.
| 0 | Биты 1–12 | 13–15 | 16–31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | Зарезервировано0 | Версия | Тип протокола | ||||||||||||||||||||||||||||
| Контрольная сумма (необязательно) | Зарезервировано1 (необязательно) | ||||||||||||||||||||||||||||||
- C
- Бит контрольной суммы . Установите в 1, если присутствует контрольная сумма.
- Зарезервировано0
- Зарезервированные биты; установлен на 0.
- Версия
- Номер версии GRE; установлен на 0.
- Тип протокола
- Указывает тип протокола ether для инкапсулированной полезной нагрузки. (Для IPv4 это будет шестнадцатеричный код 0800.)
- Контрольная сумма
- Присутствует, если установлен бит C; содержит контрольную сумму для заголовка GRE и полезной нагрузки.
- Зарезервировано1
- Присутствует, если установлен бит C; установлен на 0.
Стандартный заголовок пакета GRE (RFC 1701, устаревший)
Более новая структура заменила исходную структуру, как определено в RFC 1701 :
| Биты 0–4 | 5–7 | 8–12 | 13–15 | 16–31 | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | р | K | S | s | Повторять | Флаги | Версия | Тип протокола | |||||||||||||||||||||||
| Контрольная сумма (необязательно) | Смещение (необязательно) | ||||||||||||||||||||||||||||||
| Ключ (необязательно) | |||||||||||||||||||||||||||||||
| Порядковый номер (необязательно) | |||||||||||||||||||||||||||||||
| Маршрутизация (необязательно, переменной длины) | |||||||||||||||||||||||||||||||
В исходном GRE RFC определены дополнительные поля в заголовке пакета, которые устарели в текущем стандарте:
- р
- Бит маршрутизации. Установите в 1, если присутствует информация о маршрутизации и смещении.
- K
- Ключевой бит. Установите в 1, если ключ присутствует.
- S
- Бит порядкового номера. Установите 1, если присутствует порядковый номер.
- s
- Бит строгого исходного маршрута.
- Повторять
- Рекурсии управляющие биты.
- Флаги
- Зарезервировано для использования в будущем, установлено на 0.
- Компенсировать
- Присутствует, если установлен бит R или C; содержит действительную информацию, только если установлен бит R. Поле смещения, указывающее смещение в поле маршрутизации до активной записи маршрута от источника.
- Ключ
- Присутствует, если установлен бит K; содержит значение ключа для конкретного приложения.
- Последовательность чисел
- Присутствует, если установлен бит S; содержит порядковый номер пакета GRE.
- Маршрутизация
- Присутствует, если установлен бит R; содержит список записей исходного маршрута, поэтому имеет переменную длину
Заголовок пакета PPTP GRE
Точка-точка туннельный протокол (PPTP), определенный в RFC 2637 , использует структуру заголовка пакета GRE варианта, представленную ниже. PPTP создает туннель GRE, через который отправляются пакеты PPTP GRE.
| Биты 0–4 | 5–7 | 8 | 9–12 | 13–15 | 16–31 | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | р | K | S | s | Повторять | А | Флаги | Версия | Тип протокола | ||||||||||||||||||||||
| Длина ключевой полезной нагрузки | Ключевой идентификатор вызова | ||||||||||||||||||||||||||||||
| Порядковый номер (необязательно) | |||||||||||||||||||||||||||||||
| Номер подтверждения (необязательно) | |||||||||||||||||||||||||||||||
- C
- Бит контрольной суммы . Для пакетов PPTP GRE это значение равно 0.
- р
- Бит маршрутизации. Для пакетов PPTP GRE это значение равно 0.
- K
- Ключевой бит. Для пакетов PPTP GRE установлено значение 1. (Все пакеты PPTP GRE несут ключ.)
- S
- Бит порядкового номера. Установите 1, если указан порядковый номер, указывающий на пакет данных PPTP GRE.
- s
- Бит строгого исходного маршрута. Для пакетов PPTP GRE это значение равно 0.
- Повторять
- Рекурсии управляющие биты. Для пакетов PPTP GRE они установлены в 0.
- А
- Присутствует номер подтверждения. Установите в 1, если предоставлен номер подтверждения, указывающий на пакет подтверждения PPTP GRE.
- Флаги
- Биты флагов. Для пакетов PPTP GRE они установлены на 0.
- Версия
- Номер версии GRE. Для пакетов PPTP GRE установлено значение 1.
- Тип протокола
- Для пакетов PPTP GRE это шестнадцатеричное значение 880B.
- Длина ключевой полезной нагрузки
- Содержит размер полезной нагрузки, не включая заголовок GRE.
- Ключевой идентификатор вызова
- Содержит идентификатор вызова однорангового узла для сеанса, которому принадлежит пакет.
- Последовательность чисел
- Присутствует, если установлен бит S; содержит порядковый номер полезной нагрузки GRE.
- Номер подтверждения
- Присутствует, если установлен бит A; содержит порядковый номер самого высокого пакета полезной нагрузки GRE, полученного отправителем.
Стандарты
- RFC 1701 : Generic Routing Encapsulation (GRE) (информационный)
- RFC 1702 : Общая инкапсуляция маршрутизации в сетях IPv4 (информация)
- RFC 2637 : Point to Point Tunneling Protocol (информационный)
- RFC 2784 : Generic Routing Encapsulation (GRE) (предлагаемый стандарт, обновленный RFC 2890)
- RFC 2890 : Расширения ключей и порядковых номеров для GRE (предлагаемый стандарт)
- RFC 8086 : инкапсуляция GRE-in-UDP (предлагаемый стандарт)
Смотрите также
- Виртуализация сети с использованием универсальной инкапсуляции маршрутизации - перенос пакетов L2 через GRE
использованная литература
внешние ссылки
- Общая инкапсуляция маршрутизации , домашняя страница подпротокола в Cisco
- Общая инкапсуляция маршрутизации , запись в Cisco DocWiki (ранее известная как «Справочник по межсетевым технологиям»)