Конфигурирование GRE туннелей в TCP/IP

Туннелирование - способ инкапсуляции произвольных пакетов одного протокола в какой-либо другой транспортный протокол. Для упрощения конфигурирования туннелирование реализовано в виде виртуального (логического) интерфейса. При этом привязки к конкретным протоколам, пропускаемым через туннель, не делается, туннель реализован более как архитектура, позволяющая реализовать любую стандартную схему инкапсуляции.

Рис. 1

Туннельные линки являются poin-to-point линками. Туннелирование состоит из следующих трех компонентов:
  • Протокол-"пассажир", который инкапсулируется в туннель, например AppleTalk, CLNS, IP, and IPX.
  • Протокол носитель - протокол, который выполняет инкапсуляцию, например GRE, IP-in-IP, L2TP, MPLS, STUN, и DLSw+.
  • Транспортный протокол, - протокол, используемый для переноса инкапсулированного протокола. Основной транспортный протокол - это IP.
Рассмотри для примера соединение двух сетей AppleTalk через IP-опорную сеть.
 

Рис 2. Обход ограничений роутингового протокола.

Большой траффик, создаваемый широковещательными анонсами роутингового протокола RTMP может существенно ухудшить работу опорной сети. Проблема может быть решена туннелированием AppleTalk через IP. Туннелирование инкапсулирует пакеты AppleTalk внутри IP-пакета, который пересылается по опорной сети непосредственно в точку назначения. Роутер в точке назначения "вынимает" пакет AppleTalk из капсулы и передает его в сеть AppleTalk обычным образом. Поскольку пакеты AppleTalk отправляются непосредственно в точку назначения, отсутствует расход полосы пропускания сети на широковещательные анонсы протокола AppleTalk.

Ограничения в реализации туннелирования

Нижеследующее нужно иметь в виду при планировании туннелей:
  • В ранних версиях IOS, инкапсуляция и декапсуляция пакетов в конечных точках туннеля производилось процессором (process-switching). Однако, начиная с версии 11.1 реализована обработка (fast-switching) для туннелей GRE. В сегодняшних версиях IOS используется CEF-коммутация для IPv6 и других туннелирующих протоколов.
  • Важно разрешать туннельному протоколу проходить через фаревол и через листы доступа
  • Роутинговые протоколы, в метрике которых содержится только число промежуточных узлов будут, как правило, предпочитать туннельные линки, так как с точки зрения такого протокола они выглядят существенно короче реальных. Это может оказаться нежелательным, поскольку туннель выглядит как один хоп и может проходить по более медленному каналу связи, чем по линку с промежуточными узлами.

Рис. 3
 
В топологии, показанной на рис.3 пакеты от Host1 до Host2 пойдут по пути w,q,z, вместо пути w,x,y,z. Потому что первый путь покажется короче.

Существенно худшие проблемы возникают, если информация о роутинге транспортной сети смешивается с информацией о роутинге туннелируемой сети. В этом случае "лучший" путь к точке окончания туннеля (для транспортного протокола) может оказаться через сам туннель! Это называется рекурсивным роутингом (recursive route) и в этом случае роутер временно выключает туннель. Чтобы избежать рекурсивного роутинга, принимайте меры к разделению роутинговой информации "пассажирской" и "транспортной" сетей:
  1. Используйте другой номер AS или маркер
  2. Используйте другой протокол роутинга
  3. Используйте явное указание статических путей (следите, чтобы не получалось петель роутинга)
Если роутер выдает нижеприведенное сообщение, то, скорее всего, имел место рекурсивный роутинг
%TUN-RECURDOWN Interface Tunnel 0 temporarily disabled due to recursive routing

Преимущества туннелирования

В следующих ситуациях полезно применения туннелей:
  • Для поддержки многопротокольных локальных сетей с помощью однопротокольной опорной сети
  • Для обхода ограничений ряда роутинговых протоколов (например: по числу промежуточных станций на пути пакета). См. Рис. 2
  • Для соединения разнесенных подсетей
  • Для организации виртуальных приватных сетей (VPN) поверх глобальных сетей (WAN)

Процесс конфигурирования GRE-туннеля

Обязательные действия:
  • Задание туннельного интерфейса
  • Указание точки начала туннеля
  • Указание точки приемника туннеля
Необязательные действия:
  • Задание режима туннелирования
  • Задание режима контрольного суммирования
  • Задание ключа идентификации туннеля
  • Включение отбрасывания "заблудившихся" пакетов
Задание туннельного интерфейса
interface tunnel number
Указание точки начала туннеля
tunnel source {ip-address | type number}
Указание точки приемника туннеля
tunnel destination {hostname | ip-address}
Пример конфигурации роутеров изображенных на Рис 3

Конфигурация роутера A

interface Tunnel0
ip address 192.168.1.1 255.255.255.252
tunnel mode gre
tunnel source FastEthernet0/0
tunnel destination 172.16.15.34
!
interface FastEthernet0/0
ip address 10.0.145.13 255.255.255.0

Конфигурация роутера D

interface Tunnel0
ip address 192.168.1.2 255.255.255.252
tunnel mode gre
tunnel source FastEthernet1/0
tunnel destination 10.0.145.13
!
interface FastEthernet1/0
ip address 172.16.15.34 255.255.255.0
Режим туннелирования GRE всегда включен по умолчанию, поэтому команду tunnel mode gre можно опустить.
Читайте также:
  • IP-фрагментация
    IP-фрагментация и реассемблированиеIP Протокол был спроектирован для использования на широком разнообразии каналов передачи данных. Хотя максимальная длина датаграммы IP - 64 КБ, большинство каналов передачи данных устанавливают максимальный предел длины пакета, названный MTU. Значение MTU зависит о...
  • Протокол GRE
    Полученный в результате пакет GRE инкапсулируется в пакет другого протокола (протокол доставки). В данной статье мы рассмотрим форматы пакетов проткола GRE. GRE версии 0Формат заголовка GRE версии 0 выглядит следующим образом.Первые два октета заголовка содержат флаги GRE:C, Checksum Present. 1 бит....
  • Защита стека TCP/IP от SYN атак
    В то время как невозможно полностью предотвратить SYN атаки, настройка TCP/IP стека помогает уменьшить влияние этого вида атак, при этом все еще разрешая легальный клиентский трафик через сервер. Необходимо отметить, что некоторые SYN атаки не всегда пытаются "положить" серверы, вместо это...
  • Протокол SSTP
    VPN Virtual private network (виртуальная частная сеть), или также называемая VPN, это сеть которая собирается с использованием общих элементов для подключения к узлам, что позволяет пользователям создавать сети для передачи данных. Системы используют шифрование и различные другие меры безопаснос...
  • Протокол SNMP
    Протокол SNMP Протокол SNMP появился в конце 1980-х гг., когда возникла необходимость управлять растущими сетями и проверять определенные условия функционирования данных сетей. Большинство протоколов в TCP/IP построены на основе модели клиент/сервер. За исключением небольших различий в плане опреде...