Введение

Модуль ARIP представляет собой реализацию стандартного протокола маршрутизации RIP.

Модуль маршрутизации поддерживает две версии протокола RIP - RIP-1 и RIP-2.

Настройка модуля осуществляется опциями команды "arip".

Командный язык. Общие принципы

ARIP имеет свою командную оболочку (КО), вход в которую осуществляется командой:

#1>arip
RIP>

Команды, вводимые в КО, нечувствительны к регистру букв и допускают произвольное сокращение вплоть до одной буквы, если команда в целом не может быть воспринята КО  неоднозначно. В любой момент можно получить справку о наборе команд. Для этого нажмите клавишу ‘?’:

RIP>?
 configure  Configuration from vty interface
 end        End current mode and change to root mode (CTRL+C).
 exit       Back to WANFlex command shell (CTRL+D).
 help       Print command list
 show       Show running system information
RIP>

КО может находится в различных режимах. Режим отображается вместе с префиксом команды в виде "RIP(режим)#". Например, если ввести команду configure, то КО перейдет в режим "config":

RIP> configure
RIP(config)#

На рисунке показана диаграмма переходов между режимами КО.

Можно устанавливать нужный режим или выполнять команды RIP не заходя специально в сам модуль. Например, если мы последовательно выполним команды:

#1> arip configure
#1> arip router
#1> arip
RIP(config-router)#

то (как видно из примера) при входе в "arip" мы попадем сразу в нужный нам режим.

В каждом режиме существует собственный набор команд, однако в любом режиме существуют команды:

Изначально КО находится в базовом режиме, который содержит набор команд только для просмотра текущего состояния маршрутизатора. Переход в режим конфигурации разрешен только для пользователя WANFlex имеющего привилегии "superuser". После перехода в режим конфигурации, конфигурация блокируется и вход в этот режим с другого терминала (например, другая сессия "telnet") запрещен. Для исключения «мертвой» блокировки, КО автоматически выходит из режимов конфигурации, если в течение 5-ти минут не поступало никаких команд.

При вводе команд, в любой момент можно получить контекстную подсказку нажав клавишу "?".

Например,

RIP> config
RIP(config)#?
  access-list  Add an access list entry
  clear        Reset functions
  end          End current mode and change to root mode (CTRL+C).
  exit         Back to WANFlex command shell (CTRL+D).
  help         Print command list
  interface    Select an interface to configure
  key          Authentication key management
  no           Negate a command or set its defaults
  prefix-list  Build a prefix list
  route-map    Create route-map or enter route-map command mode
  router       Enable a routing process
  show         Show running system information
  stop         stop
RIP(config)# interface?
  IFNAME  Interface's name
RIP(config)# interface eth0
RIP(config-if)#?
  authentication  Authentication control
  description     Interface specific description
  end             End current mode and change to root mode (CTRL+C).
  exit            Back to WANFlex command shell (CTRL+D).
  help            Print command list
  no              Negate a command or set its defaults
  receive         Advertisement reception
  send            Advertisement transmission
  show            Show running system information
  split-horizon   Perform split horizon
RIP(config-if)#

После выхода из КО командой exit (или Ctrl+D) КО маршрутизатора остается в последнем режиме.

Команды могут иметь параметры. Параметры команд задаются в нескольких форматах. Формат параметра описывается в контекстной справке или в списке команд (по команде help) следующим образом:

Если параметр допускает варианты, то в справке они указываются в круглых скобках, а возможные варианты разделены символом “|”. Например: (A.B.C.D|<0-4294967295>).

При описании команд в случае, если какой-либо параметр или опция является необязательной, этот параметр или опция будет заключена в квадратные скобки “[]”.

Любая команда конфигурации может содержат префикс “no”. Наличие такого префикса приводит к отмене (удалению) соответствующего параметра конфигурации.

Запуск/останов RIP маршрутизатора.

Запуск RIP маршрутизатора осуществляется командой WANFleX:

arip start

Останов маршрутизатора производится командой режима "config":

stop (daemon|clear)

Например,

>arip
RIP> configure
RIP(config)# stop daemon

Если команду останова выполнить с параметром clear, модуль RIP перед остановой очистит свою часть системной конфигурации.

Объекты фильтрации

Во многих настройках маршрутизатора применяются специальные объекты – фильтры. Фильтры представлены объектами двух классов

Списки доступа состоят из набора операторов. Каждый оператор состоит из диапазона IP адресов (условия соответствия) и команды "deny" (отвергнуть) или "permit" (принять). Диапазон адресов записывается в виде "<значение> < маска незначащих битов значения>". Объект подлежащий фильтрации имеет основной параметр в таком же виде (IP адрес, подсеть и т.п.). Для принятия решения о том удовлетворяет ли объект данному списку или нет, к основному параметру объекта последовательно применяется каждый оператор списка доступа до тех пор, пока этот параметр не удовлетворит условию соответствия. При достижении соответствия выносится решение записанное в команде данного оператора (deny или permit).

В RIP маршрутизаторе применяется три типа списков доступа:

Для создания или изменения списков доступа в RIP маршрутизаторе предназначены следующие команды режима "config":

access-list

(<1-99>|<1300-1999>)

(deny|permit)

A.B.C.D

A.B.C.D

 

 

Идентификатор списка

команда

значение

Маска незначащих битов значения

 

 

 

Диапазон значений параметра

Данная команда создает оператор в стандартном списке доступа. Значение и маска незначащих битов определяют диапазон (условие) оператора. Маска незначащих битов определяет те биты значения, которые определяют диапазон. Например, чтобы задать диапазон IP адресов от 192.168.12.0 до 192.168.12.255, необходимо указать значение 192.168.12.0, маску – 0.0.0.255. Для диапазонов обозначающих любое значение параметра (0.0.0.0 255.255.255.255) предусмотрено ключевое слово any. Например, команда :

RIP(config)# access-list 1 permit 0.0.0.0 255.255.255.255

Тождественна команде:

RIP(config)# access-list 1 permit any

Аналогично, для задания диапазона, состоящего из единственного значения, допускается применять ключевое слово "host".

Например, команда :

RIP(config)# access-list 1 permit 192.168.12.150 0.0.0.0

Тождественна команде:

RIP(config)# access-list 1 permit host 192.168.12.150

access-list

(<100-199>|<2000-2699>)

(deny|permit)

ip

A.B.C.D A.B.C.D

A.B.C.D A.B.C.D

 

 

Идентификатор списка

команда

 

Диапазон адресов источника

Диапазон адресов назначения

access-list

WORD

(deny|permit)

A.B.C.D/M

[exact-match]

 

 

Идентификатор списка

Команда

Диапазон

Требование полного равенства параметра диапазону

В этом случае идентификатор списка представляет собой произвольное сочетание символов. Диапазон значений указывается в виде "<значение>/<длина маски>". Например, чтобы задать диапазон IP адресов от 192.168.12.0 до 192.168.12.255, необходимо указать значение 192.168.12.0/24. Для диапазона любых значений параметра (0.0.0.0/0) так же допускается применять ключевое слово "any".

Например,

RIP(config)# access-list TestList1 deny 192.168.1.0/24
RIP(config)# access-list TestList1 permit any

При конфигурировании операторы списка безусловно добавляются в конец списка. Т.о. последовательность просмотра операторов списка при фильтрации определяется только последовательностью конфигурирования этих операторов.

Списки префиксов отличаются от списков доступа тем, что каждый оператор имеет кроме диапазона (условие) и команды еще и последовательный номер. Кроме того, при определении принадлежит ли параметр объекта фильтрации диапазону оператора, можно ввести дополнительные условия на длину маски параметра. Операторы списка префиксов сортируются по последовательным номерам операторов. Т.о. можно управлять последовательностью просмотра операторов при фильтрации объектов.

prefix-list

WORD

[seq <1-4294967295>]

(deny|permit)

A.B.C.D/M

[ge <0-32>] [le <0-32>]

 

 

Идентификатор списка

Последовательный номер оператора

Команда

Диапазон

Диапазон допустимых длин маски параметра

Если не указан последовательный номер, то маршрутизатор назначает его автоматически путем прибавления 5 к последовательному номеру последнего оператора в списке. Т.о. новый оператор будет иметь самый большой номер и, соответственно, будет расположен в самом конце списка.

Настройка RIP 

Возможны несколько способов подключения RIP на оперделенном сетевом интерфейсе.

Первый способ подключения – указание сети. На интерфейс устройства, сетевой адрес которого будет принадлежать указанной сети, будет включен RIP. Это можно сделать в режиме "config-router" командой:

network A.B.C.D/M

Cеть задается IP префиксом этой сети и длиной маски подсети.

Второй способ – непосредственное указание имени интерфейса. Это можно сделать в режиме "config-router" командой:

network WORD

 Например,

RIP>configure
RIP(config)# router
RIP(config-router)# network 4.7.8.0/24
RIP(config-router)# network  rf5.0
RIP(config-router)#

Отменить RIP на интерфейсе можно командами:

no network A.B.C.D/M
no network WORD

В определенных случаях не все маршрутизаторы понимают мультикастовые запросы. Для решения этой проблемы можно установить прямую связь между маршрутизтороми с помощью команды в режиме "config-router":

neighbor a.b.c.d
no neighbor a.b.c.d

Для анонсирования информации из других протоколов маршрутизации предназначена команда в режиме "config-router":

redistribute (kernel|connected|static|ospf) [metric <0-16777214>] [route-map WORD]

Определить критерий, по которому маршрутизатор будет анонсировать информацию из того или иного протокола маршрутизации из всех существующих можно командой режима "config-router":

distribute-list WORD direct ifname

В следующем примере интерфейс “eth0” пропустит только те пакеты, которые маршрутизируются в 10.0.0.0/8:

RIP(config-router)# distribute-list private in eth0
RIP(config-router)# access-list private permit 10 10.0.0.0/8
RIP(config-router)# access-list private deny any

Следующая команда задает метрику по умолчанию в режиме "config-router":

default-metric <0-16>

Если метрика по умолчанию не установлена, то ее значение равно 1.

В режиме "redistribute kernel" маршрутизатор не будет заявлять в RIP систему о наличии у него канала к "default route" (адресат = сеть 0.0.0.0/0), даже если он явно прописан в системной маршрутной таблице администратором. Для того, чтобы маршрутизатор заявлял о наличии у него канала к "default route" необходимо дать ему явное указание в режиме "config-router":

default-information originate

Отмена заявления внешнего канала к "default route" производится командой:

no default-information originate

Следующая команда включает алгоритм «расщепления горизонта» на определенном ip-интерфейсе устройства в режиме "config-if":

split-horizon [poisoned-reverse]

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

При указанной опции "poisoned-reverse" устройство при удалении маршрута ещё некоторое время оставляет его в таблице маршрутизации и включает в стандартную рассылку анонсов маршрутной инфирмации со специальной пометкой для того, чтобы соседние маршрутизаторы поняли, что маршрут больше не используется. В качестве метки используется метрика маршрута со значением 16.

Алгоритм «расщепления горизонта» без опции "poisoned-reverse" включен по умолчанию.

Для выключения «расщепления горизонта»  используется комманда:

no split-horizon

Карта маршрутов (route-map)

Для более гибкого назначения типа и значения метрики, можно воспользоваться картой маршрутов (route-map). Карта маршрутов содержит последовательность записей-условий. Каждая запись описывается своим последовательным номером в карте, условием соответствия импортируемого маршрута данной записи, действиями, производимыми над результирующим объектом в случае соответствия (присваивания типа и/или значения метрики образуемого канала), результирующей реакцией (отвергнуть, принять) и сценарием дальнейшего просмотра записей (может быт не задан). Маршруты просматриваются по карте в порядке увеличения их последовательных номеров. Если маршрут соответствует условию записи, то:

Для формирования карты маршрутов применяется команда в режиме "config":

route-map WORD (deny|permit) <1-65535>

Например,

RIP> configure
RIP(config)# route-map testmap permit 10
RIP(config-route-map)#

Далее устанавливается условие соответствия импортируемого маршрута данной записи. Для этого в режиме "config-route-map" применяются команды:

match address (<1-199>|<1300-2699>|WORD)
match address prefix-list WORD
match interface WORD
match next-hop (<1-199>|<1300-2699>|WORD)
match next-hop prefix-list WORD

Эти команды устанавливают условия соответствия маршрута по трем возможным его параметрам: адресата (destination), gateway (nexthop) и интерфейса. Для одной записи допускается устанавливать несколько различных условий. Если задано несколько условий, то они объединяются по правилу «и». В командах "match next-hop" и "match address" указывается ссылка (номер или имя) на объект фильтрации: номер или имя "access-list" или имя "prefix-list". В этом случае условие будет выполнено, если соответствующий параметр маршрута принадлежит указанному фильтрующему списку по соответствующему этому типу списка правилу. В команде "match interface" в качестве параметра указывается имя сетевого интерфейса, которому принадлежит маршрут.

При выполнении маршрутом всех условий записи можно установить значения метрики маршрута при помощи команды режима "config-route-map":

set metric <0-4294967295>

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

on-match goto <1-65535>
on-match next

Пример конфигурации:

RIP> configure
RIP(config)# access-list AnyNetwork permit any
RIP(config)# access-list net200 permit 192.168.200.0/24
RIP(config)# route-map mapForConnected permit 10
RIP(config-route-map)# match address net200
RIP(config-route-map)# set metric 7
RIP(config-route-map)# route-map mapForConnected deny 11
RIP(config-route-map)# match address AnyNetwork
RIP(config-route-map)# router
RIP(config-router)# redistribute connected route-map mapForConnected
RIP(config-route-map)#

В этой конфигурации маршрутизатору указано анонсировать маршруты, образованные из connected маршрутов системной таблицы маршрутов. При этом, если адресат этого маршрута – подсеть 192.168.200.0/24, то образованный маршрут будет иметь метрику 7, любой другой адресат не приведет к анонсированию маршрута канала к нему.

Чтобы определенный интерфейс использовал определенный, "route-map", созданный как описано выше, необходимо применить команду "route-map" в режиме  "config-router":

route-map WORD (in|out) IFNAME
  • "WORD" – имя созданного раннее road-map.

Аутентификация. Проверка подлинности.

Для предотвращения несанкционированного подключения маршрутизаторов к RIP системе в протоколе предусмотрена проверка подлинности пакетов протокола. В настоящий момент маршрутизатор располагает двумя различными способами проверки подлинности (аутентификации):

По умолчанию у маршрутизатора не установлено никакой аутентификации (null-аутентификация).

Аутентификация устанавливается для определенного интерфейса командами режима "config-if".

authentication mode text
authentication string LINE

"LINE" – это пароль, который должен быть менее 16 символов

authentication mode md5
authentication key-chain LINE

"LINE" – это имя секретного ключа MD5.

Задать сам ключ, имя которого указывается в параметре "LINE", можно  командой режима "config":

RIP(config)# key chain WORD
RIP(config-keychain)# key <0-2147483647>
RIP(config-keychain-key)# key-string LINE

Настройка таймеров.

В протоколе RIP существуют несколько таймеров. Параметры по умолчанию для них имеют следующие значения:

Следующая команда в режиме "config-router" позволяет изменить значения таймеров:

timers basic update timeout garbage

Чтобы сбросить все таймеры в настройки по умолчанию:

no timers basic

Просмотр состояния RIP 

Для просмотра состояния RIP используется следующие команды в исходном режиме:

show access-list

Команда выводит информацию о списках доступа.

show memory

Команда выводит информацию по использованию памяти.

show rip

Команда выводит текущее состояние RIP. Отображается информация по таймерам, фильтрам, версии, итерфейсах, на которых поднят RIP.

show route

Команда распечатывает таблицу маршрутов