15.2. Настройка IPv4 GRE туннеля
Назначение
IPv4 GRE туннелирование предназначено для обеспечения взаимодействия изолированных сетей поверх любых IPv4-сетей.
Описание
GRE (Generic Routing Encapsulation) - протокол туннелирования сетевых пакетов. Его основное назначение - инкапсуляция пакетов сетевого уровня в IP-пакеты и их передача через виртуальное соединение “точка-точка” или “точка-многоточка”. GRE является самостоятельным транспортным протоколом и не опирается на протоколы TCP или UDP.

IPv4 GRE добавляет в инкапсулированные пакеты GRE-заголовок, включающий ключ, контрольную сумму и т.д. Для реализации GRE-туннеля, обе конечные точки туннеля должны поддерживать стек протоколов IPv4.
IPv4 GRE обрабатывает пакеты следующим образом:
Узел в IPv4-сети отправляет пакет на коммутатор, подключенный к туннелю.
Определив по таблице маршрутизации, что пакет требуется переслать через туннель, коммутатор инкапсулирует IPv4-пакет в GRE-заголовок, а его в свою очередь инкапсулирует в IPv4-заголовок транспортной сети, после чего пересылает пакет через порт, подключенный к туннелю.
Коммутатор на ответной стороне, получив пакет, декапсулирует его сначала из IPv4-заголовка транспортной сети, а после из GRE-заголовка, проверяя в процессе декапсуляции ключ GRE, контрольную сумму и другие параметры.
Коммутатор на ответной стороне пересылает пакет в соответствии с адресом назначения в декапсулированном IPv4-пакете. Если адресом назначения является сам коммутатор, он передает IPv4-пакет протоколу верхнего уровня.
IP-адреса источника и пункта назначения настраиваются вручную. Туннели можно настраивать между двумя граничными маршрутизаторами, а также между граничными маршрутизаторами и сетевыми узлами.
Настройка
Ниже показана настройка GRE-туннеля в соответствии с представленной конфигурацией сети.

Как видно из представленной конфигурации, две IPv4-сети подключаются к транспортной сети через коммутатор “Switch1” и коммутатор “Switch2”. Для соединения двух сетей необходимо настроить туннель между данными коммутаторами.
ВНИМАНИЕ!
Для пересылки туннельных пакетов необходим действительный IPv4-маршрут. На туннельном интерфейсе должен быть настроен IPv4-адрес, в противном случае маршрут через туннельный интерфейс будет недействительным.
В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.
Шаг 1: Вход в режим “Global config”
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 10.10.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 10.10.12.1/24/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: Настройка статического маршрута
На коммутаторе “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: Выход из режима “Global config”
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