Протокол связи | |
Цель | Сетевое туннелирование |
---|---|
Разработчики) | Cisco Systems |
Введено | 1994 [1] |
RFC (ы) | RFC1701, RFC1702, RFC2784 |
Generic Routing Encapsulation ( GRE ) - это протокол туннелирования, разработанный Cisco Systems, который может инкапсулировать широкий спектр протоколов сетевого уровня в виртуальных двухточечных каналах или двухточечных каналах по сети Интернет-протокола . [2]
Пример использования [ править ]
- В сочетании с PPTP для создания VPN .
- В сочетании с IPsec VPN для передачи маршрутной информации между подключенными сетями.
- В протоколах мобильности .
- В интерфейсах A8 / A10 для инкапсуляции IP-данных в / из функции управления пакетами (PCF).
- Linux и BSD могут устанавливать ad-hoc 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 . [3]
Заголовок пакета [ править ]
Расширенный заголовок пакета GRE (RFC2890) [ править ]
Расширенная версия заголовка пакета 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 (RFC2784) [ править ]
Стандартная структура заголовка пакета 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 (RFC1701, устаревший) [ править ]
Более новая структура заменила исходную структуру, как определено в 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
Ссылки [ править ]
- ^ Общая инкапсуляция маршрутизации (GRE) . IETF . Октябрь 1994 г. doi : 10.17487 / RFC1701 . RFC 1701 . Проверено 14 мая 2018 года .
- ^ [1] , "Универсальные пакеты поддержки активности туннеля инкапсуляции маршрутизации", выпущенный 01.07.2002.
- ^ RFC 1702: Общая инкапсуляция маршрутизации в сетях IPv4. Октябрь 1994 г.
Внешние ссылки [ править ]
Викискладе есть медиафайлы по теме « Общая инкапсуляция маршрутизации» . |
- Общая инкапсуляция маршрутизации , домашняя страница подпротокола в Cisco
- Общая инкапсуляция маршрутизации , запись в Cisco DocWiki (ранее известная как «Справочник по межсетевым технологиям»)