Протокол GRE в промышленных маршрутизаторах
Протокол GRE (Generic Routing Encapsulation) — это протокол связи, используемый для установления прямого соединения точка-точка между сетевыми узлами. GRE использует технологию туннелирования, которая является протоколом туннелирования уровня 3 VPN (виртуальной частной сети), и инкапсулирует сообщения данных определенных протоколов сетевого уровня (таких как IP и IPX), чтобы эти инкапсулированные сообщения данных могли передаваться в другом протоколе сетевого уровня (таком как IP), тем самым решая проблему перекрестно-разнородной сети. Он инкапсулирует сообщения данных определенных протоколов сетевого уровня (таких как IP и IPX), чтобы эти инкапсулированные сообщения данных могли передаваться в другом протоколе сетевого уровня (таком как IP), тем самым решая проблему передачи через гетерогенные сети. GRE определяется RFC 2784.
Протокол GRE имеет следующие преимущества.
В одной магистральной сети протоколов используется несколько протоколов.
Построение сети может быть достигнуто с ограниченным количеством переходов
Сетевое взаимодействие несмежных подсетей
Более низкие требования к ресурсам, чем у альтернатив (например, IPsec VPN)
Принцип действия
Система направляет данные на конечные точки GRE через маршруты, установленные в таблице маршрутизации. Когда конечная точка GRE получает пакет, он декапсулируется и перенаправляется на адрес назначения. Туннели GRE не имеют состояния, а конечные точки туннеля не содержат информации о состоянии или доступности удаленных конечных точек туннеля. Поэтому коммутатор, работающий как исходный маршрутизатор туннеля, не может отключить интерфейс туннеля GRE, если удаленная конечная точка недоступна.
Поток передачи сообщений GRE
Если сообщение от хоста A передается от RouterA к RouterB, данные GRE инкапсулируются на RouterA и декапсулируются на RouterB. Путь, по которому инкапсулированное сообщение с данными проходит через сеть, называется туннелем GRE.
1. Инкапсуляция сообщения
1) Когда маршрутизатор A получает пакет от хоста A 192.168.10.10 с IP-адресом назначения 192.172.1.10 (хост B), он инкапсулирует исходный пакет как пакет полезной нагрузки в протокол GRE и добавляет заголовок GRE с IP-адресом источника 1.1.1.2 и IP-адресом назначения 1.1.1.3 на противоположном конце туннеля.
2) Завершить инкапсуляцию пакета GRE
3) Маршрутизатор A продолжает добавлять IP-адрес источника туннеля GRE 113.113.11.11 и IP-адрес назначения 113.113.10.10 к внешней стороне пакета и отправляет его в Интернет.
2. Распаковка сообщения
1) После отправки пакета в Интернет все маршрутизаторы будут пересылать пакет только в соответствии с внешним публичным IP-адресом до тех пор, пока пакет не будет переслан на реальный IP-адрес назначения 113.113.10.10 (маршрутизатор B).
2) Маршрутизатор B сначала распутает публичный IP-заголовок пакета, а затем поймет, что IP-адрес назначения в заголовке GRE — 1.1.1.3, что в точности соответствует ему самому.
3) Маршрутизатор B продолжит распаковку пакета GRE и обнаружит, что IP-адрес назначения — 192.172.1.10, в конечном итоге отправив пакет на 192.172.1.10 (хост B)