15.2. Настройка IPv4 GRE туннеля

Назначение

IPv4 GRE туннелирование предназначено для обеспечения взаимодействия изолированных сетей поверх любых IPv4-сетей.

Описание

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

image

Рис. 15.1 IPv4 GRE туннелирование

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


IPv4 GRE обрабатывает пакеты следующим образом:

  • Узел в IPv4-сети отправляет пакет на коммутатор, подключенный к туннелю.

  • Определив по таблице маршрутизации, что пакет требуется переслать через туннель, коммутатор инкапсулирует IPv4-пакет в GRE-заголовок, а его в свою очередь инкапсулирует в IPv4-заголовок транспортной сети, после чего пересылает пакет через порт, подключенный к туннелю.

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

  • Коммутатор на ответной стороне пересылает пакет в соответствии с адресом назначения в декапсулированном IPv4-пакете. Если адресом назначения является сам коммутатор, он передает IPv4-пакет протоколу верхнего уровня.


IP-адреса источника и пункта назначения настраиваются вручную. Туннели можно настраивать между двумя граничными маршрутизаторами, а также между граничными маршрутизаторами и сетевыми узлами.

Настройка

Ниже показана настройка GRE-туннеля в соответствии с представленной конфигурацией сети.

image

Рис. 15.2 IPv4 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