Опубликован: 28.11.2014 | Уровень: для всех | Доступ: свободно | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 5:

Технологии тунеллирования

Протокол GRE

Существуют различные способы инкапсуляции одного протокола в другой. Рассмотрим протокол GRE (Generic Routing Encapsulation), который позволяет инкапсулировать любой протокол. Это может быть использовано для любых целей.

Будем считать, что имеется пакет, который необходимо инкапсулировать и доставить некоторому получателю. Этот пакет будет являться содержимым GRE-пакета. Получившийся GRE-пакет затем инкапсулируется в пакет некоторого другого протокола, и отправляется. Будем называть этот внешний протокол протоколом доставки.

Результирующий пакет имеет следующий формат:

Формат GRE-пакета

Рис. 5.1. Формат GRE-пакета

В GRE-заголовке содержится тип инкапсулированного протокола. Если содержимым пакета является IPv4, то тип протокола должен быть 0х800.

Когда конечная точка туннеля декапсулирует GRE-пакет, у которого содержимым является пакет IPv4, адрес получателя в заголовке содержи-мого пакета может использоваться для дальнейшей доставки пакета. Долж-на выполняться проверка, что адрес получателя во вложенном пакете не равен адресу в инкапсулирующем пакете, так как это является другим концом туннеля, и в этом случае происходит зацикливание.

В качестве протокола доставки может также использоваться протокол IPv4.

Протокол GRE

Рис. 5.2. Протокол GRE