15.2 Настройка IPv4 GRE Tunnel
15.2.1 Обзор
Введение в функцию
Туннелирование — это технология инкапсуляции, которая использует один сетевой протокол для инкапсуляции пакетов другого сетевого протокола и их передачи через виртуальное соединение точка-точка. Такое виртуальное соединение называется туннелем. Процесс туннелирования включает инкапсуляцию данных, передачу и деканпсуляцию.
Принцип работы

Рисунок 15-1: IPv4 GRE over IPv4
Для связи с изолированными IPv4 сетями необходимо создать туннельный механизм между ними. Туннель с протоколом передачи GRE, соединяющий две изолированные IPv4 сети, называется GRE туннелем IPv4. В данном случае IPv4 пакеты инкапсулируются с помощью протокола GRE поверх внешних пакетов IPv4. GRE туннель добавляет заголовок GRE в инкапсулированные пакеты, включая ключ, последовательность, контрольную сумму и т.д.
Для реализации GRE туннеля оба конца туннеля должны поддерживать стеки протокола IPv4.
GRE туннель обрабатывает пакеты следующим образом:
- Хост в сети IPv4 отправляет пакет IPv4 на Switch1, который является источником туннеля.
- Switch1, определяя по таблице маршрутизации, что пакет должен быть передан через туннель, инкапсулирует его с заголовком IPv4 и пересылает через физический интерфейс туннеля.
- Switch2, получив пакет, деканпсулирует его.
- Switch2 пересылает пакет в соответствии с адресом назначения. Если адрес назначения соответствует самому устройству, пакет передается на обработку вышестоящему протоколу. В процессе декапсуляции ключ GRE проверяется. Только пакеты с совпадающим ключом GRE обрабатываются; пакеты с несовпадающими ключами отбрасываются.
Адреса туннельных источников и назначений задаются вручную, создавая соединение точка-точка. Используя туннели, можно взаимодействовать с изолированными сетями IPv4 без обновления инфраструктуры между ними.
Основное назначение заключается в обеспечении стабильных подключений, которые требуют регулярной защищенной связи между двумя граничными маршрутизаторами, между конечной системой и граничным маршрутизатором или для подключения к удаленным сетям IPv4. Настройка ключа GRE является альтернативной конфигурацией.
15.2.2 Конфигурация

Рисунок 15-2: IPv4 GRE Tunnel
На схеме две IPv4 сети подключены через Switch1 и Switch2. Для их соединения требуется GRE туннель IPv4.
Должен быть доступен маршрут IPv4 для передачи туннельных пакетов. IPv4 адрес необходимо настроить на туннельном интерфейсе, иначе маршрут через этот интерфейс будет недействителен.
Следующая конфигурация должна быть выполнена на всех коммутаторах, если идентификатор коммутатора не указан.
Шаг 1: Войдите в режим настройки
Switch# configure terminal
Шаг 2: Настройте интерфейсы
Настройка интерфейсов для Switch1:
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.10.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.11.1/24
Switch(config-if)# exit
Настройка интерфейсов для Switch2:
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.20.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.12.1/24
Switch(config-if)# exit
Шаг 3: Настройте туннельный интерфейс
Туннельный интерфейс на Switch1:
Switch(config)# interface tunnel1
Switch(config-if)# tunnel mode gre
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel destination 192.168.20.1
Switch(config-if)# tunnel gre key 100
Switch(config-if)# ip address 192.192.168.1/24
Switch(config-if)# keepalive 5 3
Switch(config-if)# exit
Туннельный интерфейс на Switch2:
Switch(config)# interface tunnel1
Switch(config-if)# tunnel mode gre
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel destination 192.168.10.1
Switch(config-if)# tunnel gre key 100
Switch(config-if)# ip address 192.192.168.2/24
Switch(config-if)# keepalive 5 3
Switch(config-if)# exit
Шаг 4: Настройте статические маршруты и ARP
Настройка маршрутов для Switch1:
Switch(config)# ip route 192.168.20.0/24 192.168.10.2
Switch(config)# ip route 192.168.12.0/24 tunnel1
Настройка маршрутов для Switch2:
Switch(config)# ip route 192.168.10.0/24 192.168.20.2
Switch(config)# ip route 192.168.11.0/24 tunnel1
Шаг 5: Выйдите из режима настройки
Switch(config)# end
Шаг 6: Проверка
Отобразите результат на Switch1:
Switch# show interface tunnel1
Interface tunnel1
Interface current state: UP
Hardware is Tunnel
Index 8193 , Metric 1 , Encapsulation TUNNEL
VRF binding: not bound
Internet primary address:
192.192.168.1/24 pointopoint 192.192.168.255
Tunnel protocol/transport GRE/IP, Status Valid
Tunnel source 192.168.10.1(eth-0-1), destination 192.168.20.1
Tunnel DSCP inherit, Tunnel TTL 255
Tunnel GRE key enable: 100
Tunnel GRE keepalive enable, Send period: 5, Retry times: 3
0 packets input, 0 bytes
0 packets output, 0 bytes
Отобразите результат на Switch2:
Switch# show interface tunnel1
Interface tunnel1
Interface current state: UP
Hardware is Tunnel
Index 8193 , Metric 1 , Encapsulation TUNNEL
VRF binding: not bound
Internet primary address:
192.192.168.2/24 pointopoint 192.192.168.255
Tunnel protocol/transport GRE/IP, Status Valid
Tunnel source 192.168.20.1(eth-0-1), destination 192.168.10.1
Tunnel DSCP inherit, Tunnel TTL 255
Tunnel GRE key enable: 100
Tunnel GRE keepalive enable, Send period: 5, Retry times: 3
0 packets input, 0 bytes
0 packets output, 0 bytes