From: Alexander HunSolo <a.hunsolo@gmail.com.>
Newsgroups: http://www.ciscolab.ru/
Date: Mon, 5 Dec 2006 14:31:37 +0000 (UTC)
Subject: Конфигурирование GRE туннелей в Cisco
Туннелирование - способ инкапсуляции произвольных пакетов
одного протокола в какой-либо другой транспортный протокол. Для
упрощения конфигурирования туннелирование реализовано в виде
виртуального (логического) интерфейса. При этом привязки к конкретным
протоколам, пропускаемым через туннель, не делается, туннель
реализован более как архитектура, позволяющая реализовать любую
стандартную схему инкапсуляции.
Туннельные линки являются poin-to-point линками. Туннелирование
состоит из следующих трех компонентов:
* Протокол-"пассажир", который инкапсулируется в туннель, например
AppleTalk, CLNS, IP, and IPX.
* Протокол носитель - протокол, который выполняет инкапсуляцию,
например GRE, IP-in-IP, L2TP, MPLS, STUN, и DLSw+.
* Транспортный протокол, - протокол, используемый для переноса
инкапсулированного протокола. Основной транспортный протокол - это IP.
Рассмотри для примера соединение двух сетей AppleTalk через IP-опорную сеть.
Большой траффик, создаваемый широковещательными анонсами роутингового
протокола RTMP может существенно ухудшить работу опорной сети.
Проблема может быть решена туннелированием AppleTalk через IP.
Туннелирование инкапсулирует пакеты AppleTalk внутри IP-пакета,
который пересылается по опорной сети непосредственно в точку
назначения. Роутер в точке назначения "вынимает" пакет AppleTalk из
капсулы и передает его в сеть AppleTalk обычным образом. Поскольку
пакеты AppleTalk отправляются непосредственно в точку назначения,
отсутствует расход полосы пропускания сети на широковещательные анонсы
протокола AppleTalk.
Ограничения в реализации туннелирования
Нижеследующее нужно иметь в виду при планировании туннелей:
* В ранних версиях IOS, инкапсуляция и декапсуляция пакетов в
конечных точках туннеля производилось процессором
(process-switching). Однако, начиная с версии 11.1 реализована
обработка (fast-switching) для туннелей GRE. В сегодняшних версиях
IOS используется CEF-коммутация для IPv6 и других туннелирующих
протоколов.
* Важно разрешать туннельному протоколу проходить через фаревол и
через листы доступа
* Роутинговые протоколы, в метрике которых содержится только число
промежуточных узлов будут, как правило, предпочитать туннельные
линки, так как с точки зрения такого протокола они выглядят
существенно короче реальных. Это может оказаться нежелательным,
поскольку туннель выглядит как один хоп и может проходить по более
медленному каналу связи, чем по линку с промежуточными узлами.
В топологии, показанной на рис.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-туннеля
Обязательные действия:
* Задание туннельного интерфейса
* Указание точки начала туннеля
* Указание точки приемника туннеля