ПРОЦЕСС КОНФИГУРИРОВАНИЯ GRE-ТУННЕЛЯ

Туннель GRE — это расположенный на маршрутизаторе Cisco логический интерфейс, который предоставляет механизм для инкапсулирования пакетов, переносимых внутри транспортного протокола (passenger packet). Данный механизм предоставляет службы, которые позволяют реализовать схему инкапсуляции "точка-точка".

На примере ниже представлены концепции IP-туннелирования, где GRE — протокол инкапсуляции, а IP — транспортный протокол. Протокол переноса также является IP-протоколом (однако он может быть другим протоколом, например Decnet, IPX или Appletalk).

· IP является транспортным протоколом.

· GRE является протоколом инкапсуляции.

· IP является протоколом переноса.

Для более полного понимания общих механизмов функционирования сообщений поддержки активности GRE ниже рассматриваются пример туннельной топологии и конфигурации. Физические интерфейсы маршрутизаторов Router A и Router B обозначены соответственно как S1 и S2, туннельные интерфейсы обозначены Tu0. Имеется магистральная IP-сеть между двумя конечными маршрутизаторами туннеля GRE.

Это пример пакета поддержки активности, который отправлен из маршрутизатора Router A и назначен маршрутизатору Router B. Ответ на сообщение поддержки активности, который маршрутизатор Router B возвращает маршрутизатору Router A, уже находится во внутреннем IP-заголовке. Маршрутизатор Router B просто декапсулирует пакеты поддержки активности и отправляет их обратно на физический интерфейс (S2). Тот, в свою очередь, обрабатывает пакеты поддержки активности GRE подобно любым другим IP-пакетам данных GRE.

Ниже показаны выходные данные команд, используемых для конфигурации сообщений поддержки активности в туннелях GRE.

Router# configure terminal

Router(config)#interface tunnel0

Router(config-if)#keepalive 5 4

!--- Синтаксис данной команды keepalive [секунды [повторы]].

 

!--- Сообщения поддержки активности отправляются каждые 5 секунд и 4 секунды.

!--- Сообщения поддержки активности должны отсутствовать перед отключением туннеля.

!--- По умолчанию интервал ожидания равен 10 секундам, а количество повторов — 3.

Обязательные действия:

 

· Задание туннельного интерфейса

· Указание точки начала туннеля

· Указание точки приемника туннеля

Необязательные действия:

 

· Задание режима туннелирования

· Задание режима контрольного суммирования

· Задание ключа идентификации туннеля

· Включение отбрасывания "заблудившихся" пакетов

Задание туннельного интерфейса

 

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 можно опустить.

GRE ВЕРСИИ 0

Формат заголовка GRE версии 0 выглядит следующим образом.

 


Первые два октета заголовка содержат флаги GRE:

 

· C, Checksum Present. 1 бит. - Контрольная сумма присутствует (бит 0) и содержит корректное значение.

· R, Routing Present. 1 bit. - Если бит установлен тогда поля смещения и маршрутизации присутствуют и содержат корректные значения

· K, Key Present. 1 bit. - В заголовке GRE присутствует ключ и содержит корректное значение

· S, Sequence Number present- Порядковый номер присутствует и содержит корректное значение

· s, Strict Source Route - Рекомендуется устанавливать этот флаг только если поле маршрутной информации содержит маршруты Strict Source

· Recur, Recursion Control - 3-битовое беззнаковое целое, указывающее допустимое число дополнительных инкапсуляций.

· Flags - These bits are reserved and must be transmitted as 0

· Version - Версия GRE протокола. Должно быть 0

· Protocol Type - Тип протокола в поле содержимого (payload) пакета. В общем случае это поле указывает тип протокола Ethernet для данного пакета.

· Checksum - Необязательное поле. Контрольная сумма IP (дополнение до 1) для заголовка GRE и содержимого пакета.

· Offset - Необязательное поле. Показывает смещение в октетах от начала поля маршрутизации до первого октета проверяемой записи Source Route.

· Key - Необязательное поле. 4-байтовое, число, которое было вставлено при инкапсуляции. Это значение может использоваться получателем для аутентификации отправителя пакета.

· Sequence Number - Порядковый номер. Необязательное поле. 32-битовое целое число, вставляемое при инкапсуляции. Это значение может использоваться получателем для поддержки порядка передачи пакетов.

· Routing - Маршрутизация. Необязательное поле. Содержит данные, которые могут использоваться при маршрутизации данного пакета.

 

 

Как уже сообщалось ранее, протокол IP не содержит достаточных средств для организации надежной доставки сообщения. В частности, пакеты IP теряются в случае если пакет не прошел проверку контрольной суммы, не найден маршрут к заданному узлу назначения (параметр TTL равен нулю) и т.д. Все это сводится к тому, что протокол IP передает сообщения «по возможности» или другими словами, не прилагает никаких мер для гарантированной доставки сообщений.

Компенсируют недостаточную надежность протокола IP – протоколы верхних уровней, в частности протокол TCP(транспортный уровень) и DNS (прикладном уровне).

Помимо этого, существует еще один механизм уменьшения ненадежной передачи сообщений протоколом IP – этопротокол ICMP.

Протокол ICMP (Internet Control Message Protocol — протокол межсетевых управляющих сообщений) — является вспомогательным сетевым протоколом, включенным в стек протоколов TCP/IP.

Принцип работы ICMP заключается в том, что данный протокол срабатывает для передачи сообщений об ошибках при передаче или исключительных ситуациях, то есть когда маршрутизатор не работает или требуемая услуга недоступна. По сути протокол ICMP не может запросить послать потерянный пакет повторно, а просто оповещает о несчастных случаях.

В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают. Также на ICMP возлагаются некоторые сервисные функции.

Когда протокол IP определяет, что дальнейшая передача пакета невозможно, перед тем как уничтожить пакет, должен отослать узлу-источнику диагностическое ICMP-сообщение. Если при передаче самого ICMP-сообщения возникла ситуация препятствующая его передачу, то протокол ICMP не будет отправлять об этом диагностическое сообщения, для избегания «штормов» в сетях.

При передаче по сети, сообщения ICMP инкапсулируются в поле данных IP-пакетов.