Технологии тунеллирования
Протокол GRE
Существуют различные способы инкапсуляции одного протокола в другой. Рассмотрим протокол GRE (Generic Routing Encapsulation), который позволяет инкапсулировать любой протокол. Это может быть использовано для любых целей.
Будем считать, что имеется пакет, который необходимо инкапсулировать и доставить некоторому получателю. Этот пакет будет являться содержимым GRE-пакета. Получившийся GRE-пакет затем инкапсулируется в пакет некоторого другого протокола, и отправляется. Будем называть этот внешний протокол протоколом доставки.
Результирующий пакет имеет следующий формат:
В GRE-заголовке содержится тип инкапсулированного протокола. Если содержимым пакета является IPv4, то тип протокола должен быть 0х800.
Когда конечная точка туннеля декапсулирует GRE-пакет, у которого содержимым является пакет IPv4, адрес получателя в заголовке содержи-мого пакета может использоваться для дальнейшей доставки пакета. Долж-на выполняться проверка, что адрес получателя во вложенном пакете не равен адресу в инкапсулирующем пакете, так как это является другим концом туннеля, и в этом случае происходит зацикливание.
В качестве протокола доставки может также использоваться протокол IPv4.