Конфигурирование туннелей
Туннелирование - способ инкапсуляции
произвольных пакетов в какой-либо транспортный протокол. Для упрощения
конфигурирования туннелирование реализовано в виде виртуального интерфейса. При
этом привязки к конкретным протоколам, пропускаемым через туннель, не делается,
туннель реализован более как архитектура, позволяющая реализовать любую
стандартную схему инкапсуляции. Туннельные линки являются poin-to-point
линками.
Туннелирование описывается тремя основными понятиями:
- Протокол-"пассажир";, который инкапсулируется в
туннель (AppleTalk, Banyan VINES, CLNP, DECnet, IP, or IPX)
- Протокол-"носитель";, один из следующих протоколов:
- GRE - многопротокольный туннель, разработанный Cisco
- Cayman - протокол для передачи AppleTalk по IP
- EON - стандартный протокол для передачи CLNP по IP
- NOS - протокол передачи IP по IP, совместимый с реализацией в KA9Q
- Транспортный протокол, используемый для передачи инкапсулированного протокола (только IP).
Рис.1 Терминология и концепции
Рассмотри для примера соединение
двух сетей AppleTalk через IP-опорную сеть. Большой траффик, создаваемый
широковещательными анонсами роутингового протокола RTMP может существенно
ухудшить работу опорной сети. Проблема может быть решена туннелированием
AppleTalk через IP. Туннелирование инкапсулирует пакеты AppleTalk внутри
IP-пакета, который пересылается по опорной сети непосредственно в точку
назначения. Роутер в точке назначения "вынимает" пакет AppleTalk из
капсулы и передает его в сеть AppleTalk обычным образом. Поскольку пакеты
AppleTalk отправляются непосредственно в точку назначения, отсутствует расход
полосы пропускания сети на широковещательные анонсы протокола AppleTalk.
Преимущества туннелирования
В следующих ситуациях полезно применения туннелей:
- Для поддержки многопротокольных локальных сетей с
помощью однопротокольной опорной сети
- Для обхода ограничений ряда роутинговых протоколов
(например: по числу промежуточных станций на пути пакета). См. Рис. 2
- Для соединения разнесенных подсетей
- Для организации виртуальных приватных сетей (VPN) поверх глобальных сетей (WAN)
Рис.2
Некоторые особенности туннелей
Нижеследующее нужно иметь в виду при планировании туннелей:
Инкапсуляция и декапсуляция пакетов
в конечных точках туннеля производится процессором (process-switching). Однако,
начиная с версии 11.1 реализована быстрая обработка (fast-switching) для
туннелей GRE в роутерах 25хх и 4ххх серий.
Проверяйте соответствие туннелей действующей политике безопасности сети.
Туннелирование может создавать проблемы для протоколов с таймерами реального времени (например, DECnet) из-за
увеличения задержек по пути следования пакетов.
Представляйте себе структуру сети
поверх которой прокладывается туннель. Туннели на FDDI-сети и туннели на
телефонных соединениях 9600-bps могут вести себя по-разному.
Создание большого количетсва
туннелей увеличивает объемы таблиц роутинга и может переполнить таблицы
маломощных роутинговых протоколов.
Роутинговые протоколы, в метрике
которых содержится только число промежуточных узлов будут, как правило,
предпочитать туннельные линки, так как с точки зрения такого протоколя они
выглядят существенно короче реальных.
В топологии, показанной на рис.3 пакеты от Host1 до Host2 пойдут по пути w,q,z, вместо пути w,x,y,z Потому что первый путь
покажется короче.
Рис. 3
Существенно худшие проблемы
возникают, если информация о роутинге транспортной сети смешивается с
информацией о роутинге туннелируемой сети. В этом случае <лучший> путь к
точке окончания туннеля (для транспортного протокола) может оказаться через сам
туннель! Это называется рекурсивным роутингом (recursive route) и в этом случае
роутер временно выключает туннель. Чтобы избежать рекурсивного роутинга,
принимайте меры к разделению роутинговой информации <пассажирской> и
<транспортной> сетей:
- Используйте другой номер AS или маркер
- Используйте другой протокол роутинга
- Используйте явное указание статических путей (следите,
чтобы не получалось петель роутинга)
Если роутер выдает нижеприведенное
сообщение, то, скорее всего, имел место рекурсивный роутинг
%TUN-RECURDOWN Interface Tunnel 0 temporarily disabled due to recursive routing
Процесс конфигурирования IP-туннеля
Обязательные действия:
-
Задание туннельного интерфейса
-
Указание точки начала туннеля
-
Указание точки назначения туннеля
Необязательные действия:
- Задание режима туннелирования
- Задание режима контрольного суммирования
- Задание ключа идентификации туннеля
- Включение отбрасывания "заблудившихся" пакетов
Задание туннельного интерфейса
interface tunnel number
Указание
точки начала туннеля
tunnel source {ip-address | type number}
Нельзя создать два туннеля с одной и
той же инкапсуляцией и совпадающими адресами начала и назначения. Если это
действительно необходимо, то можно создать интерйфес loopback и указать его в
качастве адреса начала туннеля.
Указание
точки назначения туннеля
tunnel destination {hostname | ip-address}
Задание
режима туннелирования
По умолчанию, установлен режим
туннелирования GRE. Если нужен другой режим, то нужно выполнить следующую
команду:
tunnel mode {aurp | cayman | dvmrp | eon | gre ip | nos}
Туннелирование AppleTalk возможно через AURP, Cayman или GRE.
Задание режима контрольного суммирования
Некоторые
протоколы-"пассажиры" полагаются на контрольное суммирование, выполняемое
оборудованием подлежащей сети. По умолчанию, в туннелях контрольное
суммирование выключено. Чтобы его включить, используйте следующую команду:
tunnel checksum
Задание ключа идентификации туннеля
Этот ключ должен быть задан
одинаковым на обоих концах туннеля и может быть использован как слабое средство
защиты от неправильной конфигурации или подмены источника данных.
Ключ идентификации поддерживается только в GRE-туннелях.
При использовании ключа, он
передается в каждом пакете. Не рекомендуется полагаться на него, как на
средство обеспечения безопасности сети.
tunnel key key-number
Включение
отбрасывания заблудившихся пакетов
При включении этого режима,
датаграммы, пришедшие с нарушением порядка пакетов, будут отброшены. Это
полезно при туннелировании протоколов, которые болезнено относятся к получению
пакетов не по порядку (например: протоколы базирующиеся на LLC2). Этот режим
возможен только в GRE-туннелях.
tunnel sequence-datagrams |