Модуль 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 маршрутизатора осуществляется командой 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":
|
Данная команда создает оператор в стандартном списке доступа. Значение и маска незначащих битов определяют диапазон (условие) оператора. Маска незначащих битов определяет те биты значения, которые определяют диапазон. Например, чтобы задать диапазон 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 |
|
|
В этом случае идентификатор списка представляет собой произвольное сочетание символов. Диапазон значений указывается в виде "<значение>/<длина маски>". Например, чтобы задать диапазон 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 |
При конфигурировании операторы списка безусловно добавляются в конец списка. Т.о. последовательность просмотра операторов списка при фильтрации определяется только последовательностью конфигурирования этих операторов.
Списки префиксов отличаются от списков доступа тем, что каждый оператор имеет кроме диапазона (условие) и команды еще и последовательный номер. Кроме того, при определении принадлежит ли параметр объекта фильтрации диапазону оператора, можно ввести дополнительные условия на длину маски параметра. Операторы списка префиксов сортируются по последовательным номерам операторов. Т.о. можно управлять последовательностью просмотра операторов при фильтрации объектов.
|
Если не указан последовательный номер, то маршрутизатор назначает его автоматически путем прибавления 5 к последовательному номеру последнего оператора в списке. Т.о. новый оператор будет иметь самый большой номер и, соответственно, будет расположен в самом конце списка.
Возможны несколько способов подключения 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). Карта маршрутов содержит последовательность записей-условий. Каждая запись описывается своим последовательным номером в карте, условием соответствия импортируемого маршрута данной записи, действиями, производимыми над результирующим объектом в случае соответствия (присваивания типа и/или значения метрики образуемого канала), результирующей реакцией (отвергнуть, принять) и сценарием дальнейшего просмотра записей (может быт не задан). Маршруты просматриваются по карте в порядке увеличения их последовательных номеров. Если маршрут соответствует условию записи, то:
Для формирования карты маршрутов применяется команда в режиме "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":
|
Для предотвращения несанкционированного подключения маршрутизаторов к 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 используется следующие команды в исходном режиме:
show access-list |
Команда выводит информацию о списках доступа.
show memory |
Команда выводит информацию по использованию памяти.
show rip |
Команда выводит текущее состояние RIP. Отображается информация по таймерам, фильтрам, версии, итерфейсах, на которых поднят RIP.
show route |
Команда распечатывает таблицу маршрутов