Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Конфигурация программного туннеля.

Синтаксис:

tun N mode {ipip | gre}

tun N src ADDR dst ADDR [mtu N] [[-]df] | clear

Туннель - это механизм позволяющий объединить две удалённые и не связанные физически сети в единую логическую структуру. 

Рисунок - Схема туннеля

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

Рисунок - Схема туннеля

Использование туннелей позволяет также решить проблему использования единой транспортной среды в сети коллективного доступа для предоставления услуг различным клиентам несколькими провайдерами. То есть независимо от места подключения клиента к единой транспортной сети, он может быть соединён туннелем и получать услуги от конкретного провайдера.
Существует несколько различных способов организации туннелей.
В OC WANFleX реализован один из них - IP Encapsulation within IP, в cоответствии с RFC2003.

Этот тип туннеля обеспечивается также маршрутизаторами Cisco и является подмножеством протокола IPSEC поддерживаемого многими операционными системами.

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

Для конфигурации туннеля необходимы 4 параметра:

  • адрес локального конца P2P линка
  • адрес удалённого конца P2P линка
  • адрес источника, подставляемый в исходящих пакетах
  • адрес получателя, подставляемый в исходящих пакетах

Адреса P2P линка устанавливаются с помощью команды "ifconfig" для интерфейса tunN:

ifconfig tun0 1.1.1.1 1.1.1.2

Все остальные параметры задаются с помощью команды "tun":

tun 0 src 195.23.23.23 dst 194.34.34.34

В данном примере конфигурируется туннель с адресами 1.1.1.1 -> 1.1.1.2 

Исходящие пакеты будут упаковываться в IP-датаграммы и отправляться по адресу 194.34.34.34.

При этом важно, чтобы адрес 194.34.34.34 был безусловно доступен через какой-либо другой интерфейс маршрутизатора, кроме самого туннеля. Возможно, для этого потребуется использование явной статической маршрутизации (route add) или запрет на импорт некоторых маршрутов поступающих через этот интерфейс по протоколу RIP.
Если это условие не выполняется, то произойдёт рекурсия, при которой уже упакованные пакеты будут снова попадать на вход туннеля и т.д, что может привести к перегрузке системы. Система отслеживает эту ситуацию и в случае возникновения такого цикла отбрасывает ошибочные пакеты и заносит сообщение в системный журнал:

tunX: looping...

В качестве адреса источника будет поставляться адрес 195.23.23.23 

Адрес 195.23.23.23 должен быть действительным адресом одного из интерфейсов маршрутизатора и быть доступным со стороны удалённого конца P2P линка через имеющуюся сеть.

С обратной стороны P2P линка все настройки выглядят в точности наоборот:

ifconfig tun0 1.1.1.2 1.1.1.1
tun 0 src 194.34.34.34 dst 195.23.23.23

В случае использования на удалённом конце маршрутизатора Cisco, конфигурация может выглядеть следующим образом:

interface Tunnel0
 ip address 1.1.1.2 255.255.255.252
 tunnel source 195.34.34.34
 tunnel destination 195.23.23.23
 tunnel mode ipip
!  

MTU используемый по умолчанию - 1480, однако может быть изменён опцией "mtu N" команды "tun".

Для удаления туннеля с номером N  из конфигурации используется следующая команда:

tun N clear

При использовании опции «-df» устройство удаляет флаг «DF» (Don`t Fragment) в заголовке всех IP пакетов, проходящих через туннель.

Команда "tun N type" позволяет задать инкапсуляцию: IPIP или GRE.

  • No labels