Главная Книги - Разные Руководство по настройке ПО на базе операционной системы (программной оболочки) Dionis NX C 1.2-10 Hand UTM (2015 год)
поиск по сайту правообладателям
|
|
содержание .. 6 7 8 9 ..
350
Полностью тупиковая область (totally stubby area) - область, граничащая только с одной об-
ластью. При необходимости передачи пакета в другую область или автономную систему исполь-
зуется маршрут по умолчанию. Маршрутизаторы полностью тупиковой области содержат только
внутриобластные маршруты.
Не полностью тупиковая область (not-so-stubby area - NSSA) - стандартная тупиковая область
с возможностью введения граничного маршрутизатора другой системы динамической маршрути-
зации (например, RIP). В данной области разрешаются анонсы LSA типа 7.
Полностью тупиковая область NSSA (NSSA no-summary) - аналогична полностью тупиковой
области, но разрешены LSA типа
7.
Типы LSA, использующиеся в областях разных типов:
Тип LSA
Описание
Стд. обл.
Стд. тупик.
Полн.
ту-
NSSA
NSSA no-
анонса
пик.
summary
1
Внутриоб-
Дa
Дa
Дa
Дa
Дa
ластные
маршру-
ты через
данный
маршрути-
затор
2
Внутриоб-
Дa
Дa
Дa
Дa
Дa
ластные
маршруты
через DR
3
Суммарные
Дa
Дa
Нет
Дa
Нет
межоб-
ластные
маршруты
через ABR
4
Суммарные
Дa
Дa
Нет
Дa
Нет
маршруты
через ASBR
5
Маршруты
Дa
Нет
Нет
Нет
Нет
через ASBR
7
Маршру-
Нет
Нет
Нет
Дa
Дa
ты NSSA
через ABR
Типы маршрутизаторов:
Соседние маршрутизаторы - маршрутизаторы OSPF, находящиеся в одной сети.
Назначенный маршрутизатор (designated router - DR) - маршрутизатор, выбирающийся глав-
ным относительно остальных соседних маршрутизаторов. Все остальные соседние маршрутизато-
ры устанавливают с ним отношение смежности (adjacency). Маршрутизатор DR принимает анонсы
маршрутов от соседей и осуществляет рассылку другим соседям. DR вводится для уменьшения
трафика лавинной рассылки анонсов OSPF.
Резервный назначенный маршрутизатор (backup designated router - BDR) - маршрутизатор,
351
берущий на себя функции DR в случае отказа основного DR.
Межобластной граничный маршрутизатор (area border router - ABR) - маршрутизатор, соеди-
няющий две (или более) областей OSPF одной автономной системы.
Граничный маршрутизатор автономной системы (autonomous system boundary router - ASBR)
- маршрутизатор, граничащий с другой автономной системы.
Рекомендуемое количество устройств/маршрутизаторов/областей в автономной си-
стеме:
(На основе RFC 2329 и документации Cisco)
Рекоменд.
Макс.
Количество соседних
50
100
устройств на 1
маршрутизатор
Количество
< 150
350
маршрутизаторов в области
Количество областей в
< 25
60
автономной системе
Типы маршрутов:
Внутриобластные маршруты - маршруты к сетям, находящимся в пределах области. Стоимость
маршрута = сумма метрик каналов.
Межобластные маршруты - маршруты к сетям, находящимся за пределами области. Стоимость
маршрута = сумма метрик каналов.
Внешние маршруты Е1 - маршруты к сетям, находящимся за пределами автономной системы
OSPF. Стоимость маршрута = сумма метрик внутренних каналов + метрика внешнего маршрута.
Внешние маршруты Е2 - маршруты к сетям, находящимся за пределами автономной системы
OSPF. Стоимость маршрута = метрика внешнего маршрута. Маршрут по умолчанию в тупиковой
области имеет класс E2.
42.3.2
Базовая настройка
Активация и настройка службы OSPF на узле
Чтобы активировать службу и войти в режим настроек OSPF, нужно ввести команду конфигу-
рации:
(config)# router ospf
(config−ospf)#
В режиме «config-ospf» вводятся общие настройки OSPF для данного узла
. Также
существуют настройки OSPF, относящиеся к сетевым интерфейсам. Для редактирования таких на-
строек необходимо войти в режим конфигурации конкретного интерфейса и ввести необходимые
опции с префиксом «ip ospf». Например:
352
(config)# interface ethernet 0
(config−if−ethernet0)# ip ospf опция параметры
Для отмены опций необходимо ввести соответствующую команду с префиксом «no».
Для останова службы OSPF и удаления всех настроек можно использовать команду:
(config)# no router ospf
Активация ОSPF на интерфейсах, объявление сетей и областей
Чтобы узел начал выполнять функции маршрутизатора OSPF, необходимо объявить:
• Интерфейсы, участвующие в OSPF-маршрутизации;
• IP-адреса интерфейсов;
• Области OSPF, к которым подключены интерфейсы;
• Принадлежность интерфейсов к областям.
Все эти функции выполняет команда «network» в режиме «config-ospf»:
(config−ospf)# network <iface_ip>/<mask> area <area_id>
Команда «network» осуществляет «привязку» сетевого(ых) интерфейса(ов) данного узла
к области с номером <area_id>. Все интерфейсы, IP-адреса которых попадают в диапазон
<iface_ip>/<mask>, «привязываются» к данной области. На данных интерфейсах начинается
OSPF-маршрутизация, и их IP-сети анонсируются соседним маршрутизаторам.
Если не указывать специальных команд «area», то области, объявленные командой «network»,
считаются стандартными (не тупиковыми).
Следует помнить, что для корректной работы протокола OSPF в конкретной сети, необходима
поддержка многоадресных (multicast) рассылок в данной сети, чтобы маршрутизатор мог обнару-
живать соседние маршрутизаторы. Если данная сеть не поддерживает multicast, то необходимо
явно указать соседние маршрутизаторы с помощью команды «neighbor» (см. ниже).
Для корректной работы OSPF необходимы согласованные настройки на соседних маршрути-
заторах (совпадение идентификаторов и типов областей для соответствующих интерфейсов).
Пример минимальной настройки маршрутизатора OSPF
Допустим, необходимо настроить межобластной (ABR) маршрутизатор с 3-мя сетевыми интер-
фейсами:
• Интерфейс 0. Подключён к опорной области. Сеть 192.168.1.0/24;
• Интерфейс 1. Подключён к области 1. Сеть 192.168.32.0/24;
• Интерфейс 2. Подключён к области 1. Сеть 192.168.33.0/24.
Минимально необходимая настройка:
interface ethernet 0
ip address 192.168.1.1/24
interface ethernet 1
ip address 192.168.32.1/24
353
interface ethernet 2
ip address 192.168.33.1/24
router ospf
network 192.168.1.0/24 area 0
network 192.168.32.0/23 area 0.0.0.1
Вторая команда «network» подключает к области 1 сразу 2 интерфейса - 1 и 2. Идентификатор
области может задаваться как в виде числа, так и в четырехбайтном десятичном представлении
A.B.C.D.
Явное указание соседей
Если локальная сеть не поддерживает multicast, то необходимо явно указать IP-адреса сосед-
них маршрутизаторов с помощью команды «neighbor»:
(config−ospf)# neighbor <ip> [poll−interval <secs>] [priority <n>]
Необязательные параметры:
• poll-interval - определяет интервал, с которым будут посылаться hello-пакеты соседу, даже
когда он признан «умершим». В соответствии с RFC1247 рекомендуется устанавливать это
время гораздо большим, чем hello-интервал. (См. «Таймеры» ниже);
• priority - принудительная установка приоритета соседнего маршрутизатора. Приоритет вли-
яет на выбор DR. (см. «Приоритет маршрутизатора» ниже). По умолчанию - 0 (сосед не
участвует в выборах на DR).
Явное указание типа сети
В OSPF различаются следующие типы локальных сетей:
• broadcast - соединение «все-со-всеми» с возможностью multicast рассылок. Выбираются DR
и BDR;
• non-broadcast - соединение «все-со-всеми» без возможности multicast рассылок (Non-
Broadcast Multi-Access - NBMA). DR и BDR выбираются только на основе приоритетов;
• point-to-multipoint - соединение «один-с-остальными». Multicast не возможен. DR и BDR не
выбираются;
• point-to-point - соединение «точка-точка». DR и BDR не выбираются.
В зависимости от типа физического интерфейса ОSPF задаёт для него соответствующий тип
сети по умолчанию. Например, для интерфейсов Ethernet устанавливается тип broadcast. Если
существует необходимость изменить тип сети по умолчанию (например, если Ethernet-интерфейс
не поддерживает multicast), то это можно сделать в режиме конфигурации интерфейса командой:
(config−if−ethernet0)# ip ospf network <тип>
42.3.3
ID и приоритет маршрутизатора
В автономной системе OSPF каждый маршрутизатор должен иметь свой уникальный 32-битный
номер. (В частности ID маршрутизатора используется при создании виртуальных каналов). По
354
умолчанию маршрутизатору присваивается ID, численно равный наибольшему IP-адресу сетевых
интерфейсов. Если необходимо вручную установить ID, то это можно сделать с помощью команды
режима конфигурации OSPF:
(config−ospf)# router−id <A.B.C.D>
Для каждого интерфейса маршрутизатора OSPF определено понятие приоритета. Приоритет
маршрутизатора - это численное значение от 0 до 255. Приоритет играет роль при выборе марш-
рутизаторов на роль DR и BDR (в рамках одной локальной сети). Чем выше приоритет, тем выше
вероятность назначения данного маршрутизатора в качестве DR/BDR. По умолчанию, каждый
интерфейс маршрутизатора имеет приоритет 1. Если требуется исключить маршрутизатор из вы-
боров DR/BDR, то необходимо назначить ему приоритет 0.
Приоритет назначается с помощью команды конфигурации интерфейса:
(config−if−ethernet0)# ip ospf priority <n>
42.3.4
Настройка тупиковых областей
По умолчанию, объявленная область считается стандартной.
Чтобы объявить область, как стандартную тупиковую, нужно ввести опцию:
(config−ospf)# area <area_id> stub
Чтобы объявить область, как полностью тупиковую, нужно ввести опцию:
(config−ospf)# area <area_id> stub no−summary
Чтобы объявить область, как стандартную NSSA, нужно ввести опцию:
(config−ospf)# area <area_id> nssa [<translate_mode>]
Чтобы объявить область, как полностью тупиковую NSSA, нужно ввести опцию:
(config−ospf)# area <area_id> nssa [<translate_mode>] no−summary
Для NSSA-областей существует необязательная настройка «translate», которая играет роль
только для межобластных (ABR) маршрутизаторов тупиковых областей, и только тогда, когда их
несколько. Опция влияет на то, какой именно ABR будет транслировать LSA типа 7 в LSA типа 5
при выходе из NSSA-области. Опция может принимать значения:
• translate-candidate - значение по умолчанию. Транслирующий ABR выбирается автоматиче-
ски;
• translate-always - Данный ABR всегда будет являться транслятором;
• translate-never - Данный ABR никогда не будет являться транслятором.
355
42.3.5
Маршрут по умолчанию
В тупиковых (stub) и полностью тупиковых (stub no-summary) областях граничным маршрути-
затором ABR автоматически распространяется маршрут по умолчанию (0.0.0.0) внутрь тупиковой
области, указывающий на ABR. В областях NSSA и стандартных областях иногда требуется при-
нудительно распространить маршрут по умолчанию (например, ведущий в другую автономную
систему). Это делается на маршрутизаторе ASBR командой режима конфигурации OSPF:
(config−ospf)# default−information originate [always] [metric <n>] [metric−type 1|2]
[route−map <rmap_name>]
Необязательные параметры:
• always - всегда распространять маршрут 0.0.0.0, даже если он не определён на самом марш-
рутизаторе ASBR;
• metric <n> - установить значение метрики для маршрута по умолчанию;
• metric-type 1|2 - тип маршрута - E1 или E2. (По умолчанию - E2);
• route-map <name> - распространять маршрут 0.0.0.0 только в том случае, если он удовле-
творяет указанной схеме (см. «Схемы маршрутов»).
42.3.6
Фильтрация маршрутов
В OSPF существует возможность фильтровать межобластные маршруты (LSA типа 3), если они
по каким-то причинам не требуются в данной зоне. Фильтрация осуществляется на межобласт-
ных граничных маршрутизаторах (ABR) с помощью следующих команд (в режиме конфигурации
OSPF).
Фильтрация межобластных маршрутов, анонсируемых в данную область, с помощью списка
router ACL:
(config−ospf)# area <id_области> import−list <имя_или_номер_router_ACL>
Фильтрация межобластных маршрутов, анонсируемых в данную область, с помощью префикс-
ного списка:
(config−ospf)# area <id_области> filter−list prefix <имя_префиксного_списка> in
Фильтрация межобластных маршрутов, анонсируемых из данной области, с помощью списка
router ACL:
(config−ospf)# area <id_области> export−list <имя_или_номер_router_ACL>
Фильтрация межобластных маршрутов, анонсируемых из данной области, с помощью пре-
фиксного списка:
(config−ospf)# area <id_области> filter−list prefix <имя_префиксного_списка> out
О префиксных списках и списках router ACL см. раздел «Списки».
Примеры:
356
В следующем примере из области 10 в опорную область будут анонсированы маршруты, по-
падающие в диапазон от 10.10.0.0 до 10.10.255.255. Другие маршруты (например, 10.11.0.0)
анонсированы не будут.
router access−list foo permit 10.10.0.0/16
router access−list foo deny any
router ospf
network 192.168.1.0/24 area 0.0.0.0
network 10.0.0.0/8 area 0.0.0.10
area 0.0.0.10 export−list foo
Следующий пример аналогичен предыдущему, но реализован с помощью префиксного списка.
router prefix−list foo2 permit 10.10.0.0/16
router prefix−list foo2 deny any
router ospf
network 192.168.1.0/24 area 0.0.0.0
network 10.0.0.0/8 area 0.0.0.10
area 0.0.0.10 filter−list prefix foo2 out
42.3.7
Обобщение маршрутов
Для уменьшения таблиц маршрутизации необходимо по возможности «обобщать» маршру-
ты, анонсируемые в другие области. Например, если область содержит подсети 10.1.0.0/24,
10.1.1.0/24, 10.1.2.0/24, 10.1.3.0/24, то на межобластном маршрутизаторе ABR можно обобщить
маршруты к данным сетям в один маршрут 10.1.0.0/22.
Обобщение выполняется на ABR, и применяется к LSA типа 1 и 2 (транслируются в LSA типа
3). Обобщение для типов LSA 5 и 7 не поддерживается.
Для обобщения маршрутов необходимо задать явную команду (в режиме конфигурации OSPF):
(config−ospf)# area <id_области> range <ip/m> [<параметры>]
где <ip/m> - обобщённая подсеть (из примера выше - 10.1.0.0/22).
Необязательные параметры:
• not-advertise - вместо анонсирования обобщённого маршрута в LSA типа 3 (поведение по
умолчанию), маршруты, попадающие в указанную подсеть, анонсироваться во внешнюю
область не будут;
• cost <n> - назначить стоимость обобщённого маршрута;
• substitute <ip2/m> - анонсировать префикс <ip2/m> вместо <ip/m>.
42.3.8
Импорт маршрутов
Чтобы импортировать маршруты из других протоколов маршрутизации в OSPF, необходимо
указать опцию(и) «redistribute» (в режиме конфигурации OSPF). Формат опции:
357
(config−ospf)# redistribute <тип_маршрута> [metric <n>] [metric−type 1|2] [route−map
<rmap_name>]
Для каждого типа маршрута можно указать свою опцию «redistribute».
Типы маршрутов:
• connected - маршруты, появляющиеся автоматически при назначении IP-адресов сетевым
интерфейсам;
• static - принудительно назначенные статические маршруты;
• kernel - маршруты, загруженные в ядро Linux, минуя систему конфигурации
(на
данный момент таких нет);
• bgp, rip - маршруты, создаваемые соответствующими службами динамической маршрутиза-
ции.
Параметры:
• metric <n> - назначить данным импортируемым маршрутам метрику;
• metric-type 1|2 - тип импортируемых маршрутов (E1 или E2);
• route-map <name> - применить схему маршрута к импортируемым маршрутам (для филь-
трации и установки параметров). См. «Схемы маршрутов».
Также импортируемые маршруты можно отфильтровать на основе списка router ACL (см.
«Списки») с помощью команды:
(config−ospf)# distribute−list <имя_или_номер_списка_router_acl> out <тип_маршрута>
42.3.9
Пассивный интерфейс
Иногда возникает необходимость запретить рассылку LSA с определённых интерфейсов. Для
этого надо объявить сетевой интерфейс пассивным с помощью команды режима конфигурации
OSPF:
(config−ospf)# passive−interface default|<интерфейс>
Хотя пассивный интерфейс не рассылает анонсы LSA, он всё равно может принимать анонсы
от других маршрутизаторов.
Если указать параметр «default», то все интерфейсы становятся пассивными. Также можно
выборочно «активизировать» несколько интерфейсов, оставив остальные пассивными. Например,
допустим есть интерфейсы ethernet 0, 1, 2, 3.
router ospf
passive−interface default
no passive−interface ethernet 2
В данной конфигурации интерфейс 2 будет активным, а 0, 1, 3 - пассивными.
358
42.3.10
Метрики, стоимость, административное расстояние
Метрики интерфейсов
По умолчанию, всем интерфейсам присваивается метрика, соответствующая пропускной спо-
собности интерфейса. Чем выше пропускная способность, тем меньше метрика. Метрика 1 присва-
ивается всем интерфейсам, чья пропускная способность >= 100 Мбит/c. Если в системе имеются
более быстродействующие интерфейсы, то можно изменить формулу вычисления метрик от про-
пускной способности с помощью команды «auto-cost reference-bandwidth». Например:
(config−ospf)# auto−cost reference−bandwidth 1000
Данная опция указывает, что метрика 1 будет присваиваться интерфейсам с пропускной спо-
собностью >= 1000 Мбит/c. Соответственно интерфейсам с пропускной способностью 100 Мбит/с
будет присвоена метрика 10.
Также можно указать явную метрику для интерфейса (в режиме конфигурации интерфейса):
(config−if−ethernet0)# ip ospf cost <метрика> [<ip>]
Параметр <ip> имеет значение, если интерфейсу назначено несколько IP-адресов.
Метрики импортированных маршрутов
Чтобы назначить метрику импортированным (redistributed) маршрутам из других протоколов
маршрутизации, нужно указать опцию (в режиме конфигурации OSPF):
(config−ospf)# default−metric <n>
Стоимость маршрутов в тупиковой области
Чтобы задать стоимость суммарных маршрутов, импортируемых в тупиковую или NSSA-
область, нужно указать опцию (в режиме конфигурации OSPF):
(config−ospf)# area <id_области> default−cost <n>
Административное расстояние
По умолчанию, административное расстояние для всех маршрутов OSPF равно 110. Если необ-
ходимо изменить это значение, то это можно сделать с помощью команды режима конфигурации
OSPF:
(config−ospf)# distance <n>
Если требуются разные значения административного расстояния для маршрутов разных типов,
то следует использовать команду:
(config−ospf)# distance ospf [external <n>] [inter−area <n>] [intra−area <n>]
• external <n> - АР для маршрутов за пределы автономной системы OSPF;
• inter-area <n> - АР для межобластных маршрутов;
• intra-area <n> - АР для внутреобластных маршрутов.
359
42.3.11
Виртуальные каналы
В автономной системе OSPF требуется, чтобы каждая область была подключена к опорной
области 0. Если нет возможности подключить область к области 0 непосредственно через ABR,
но область (1) граничит с другой областью (2), подключённой к опорной (0), то можно создать
между областью (0) и областью (1) виртуальный канал через область (2).
Чтобы настроить виртуальный канал между двумя ABR, надо на обоих маршрутизаторах про-
писать опцию (в режиме конфигурации OSPF):
(config−ospf)# area <id_области> virtual−link <id_маршрутизатора>
[<таймеры_ospf_для_канала>]
• id_области - номер области, через которую будет пролегать виртуальный канал;
• id_маршрутизатора - идентификатор противоположного маршрутизатора;
• таймеры_ospf - интервалы hello, dead, transmit, retransmit (см. «Таймеры»).
Также поддерживается режим shortcut для ABR-маршрутизаторов. См. draft-ietf-shortcut-abr-
02. Следующая команда управляет режимом shortcut.
(config−ospf)# area <id_области> shortcut default|disable|enable
Для режима shortcut также необходимо указать опцию типа маршрутизатора:
(config−ospf)# ospf abr−type shortcut
42.3.12
Защита
В OSPF реализована возможность аутентификации маршрутизаторов между собой с целью
исключения возможности подмены маршрутизаторов и навязывания ложных маршрутов.
Чтобы задать режим аутентификации для интерфейсов, подключённых к области, нужно ука-
зать опцию (в режиме конфигурации OSPF):
(config−ospf)# area <id_области> authentication [message−digest]
Опция «message-digest» предписывает использование алгоритма MD5. Если не указать
«message-digest», то пароли будут передаваться в открытом виде.
Чтобы задать режим аутентификации для конкретного интерфейса, нужно указать опцию (в
режиме конфигурации интерфейса):
(config−if−ethernet0)# ip ospf authentication [message−digest|null] [<ip>]
Опция <ip> имеет смысл, если интерфейсу назначено несколько IP-адресов.
Чтобы задать пароль для аутентификации (если не используется алгоритм MD5), следует ука-
зать опцию для интерфейса:
(config−if−ethernet0)# ip ospf authentication−key <пароль> [<ip>]
360
Пароли должны совпадать на всех соседних маршрутизаторах.
Чтобы задать пароль при использовании алгоритма MD5, нужно указать опцию интерфейса:
(config−if−ethernet0)# ip ospf message−digest−key <номер_пароля> md5 <пароль> [<ip>]
На всех соседних маршрутизаторах пары (номер, пароль) должны совпадать. Можно ввести
несколько паролей. Это обычно делается при плановой замене ключей, чтобы каналы OSPF не
прерывались.
Пример смены ключей. Допустим на узлах установлены пароли с номером 1:
Host1 (config)# interface ethernet 0
Host1 (config−if−ethernet0)# ip ospf message−digest−key 2 md5 NOVYPAROL
Host2 (config)# interface ethernet 0
Host2 (config−if−ethernet0)# ip ospf message−digest−key 2 md5 NOVYPAROL
Host2 (config−if−ethernet0)# no ip ospf message−digest−key 1
Host1 (config−if−ethernet0)# no ip ospf message−digest−key 1
Защита виртуального канала
На концах виртуального канала также можно установить взаимную аутентификацию с помо-
щью опций (в режиме конфигурации OSPF):
area <id_области> virtual−link <id_маршрутизатора> authentication message−digest|null
area <id_области> virtual−link <id_маршрутизатора> authentication−key <пароль>
area <id_области> virtual−link <id_маршрутизатора> message−digest−key <номер_пароля>
md5 <пароль>
42.3.13
Таймеры
Для каждого сетевого интерфейса можно настроить следующие временные параметры прото-
кола OSPF:
• hello-interval - интервал посылки hello-пакета соседним маршрутизатором. (По умолчанию
- 10 с);
• retransmit-interval - время, по истечению которого маршрутизатор повторно отправит за-
прос соседу, если он не получил подтверждение. (По умолчанию - 5 с);
• dead-interval - время, по истечению которого сосед считается «умершим», если от него не
было hello-пакетов в течение этого времени. (По умолчанию - 40 с);
• transmit-delay - время, добавляемое на пересылку анонса соседу (для медленных сетей).
(По умолчанию - 1 с).
Если требуется изменить значения по умолчанию для таймеров, то это можно сделать следу-
ющей командой в режиме конфигурации соответствующего интерфейса:
(config−if−ethernet0)# ip ospf <тип_таймера> <секунды> [<ip>]
361
Опция <ip> имеет значение, когда интерфейсу назначено несколько IP-адресов.
Чтобы вернуть значение по умолчанию, нужно выполнить команду:
(config−if−ethernet0)# no ip ospf <тип_таймера> [<ip>]
Интервал рассылки LSA
(config−ospf)# refresh timer <секунды>
Значение по умолчанию - 10 с.
SPF throttling
В системах с часто меняющейся топологией иногда необходимо регламентировать частоту
вычислений маршрутов по алгоритму SPF. Это можно настроить c помощью следующей команды
режима конфигурации OSPF:
(config−ospf)# timers throttle spf <init_delay> <init_hold> <max_hold>
• init_delay - начальное время задержки вычисления SPF (в мс) после получения LSA;
• init_hold - последующая задержка вычисления SPF после получения LSA (в мс). Удваивается
каждый раз (до max_hold);
• max_hold - максимальное значение последующей задержки (в мс).
Если обновления топологии приходят часто, то вычисление SPF будет регламентировано сле-
дующим образом:
init_delay, init_hold, 2*init_hold, 4*init_hold, …, max_hold, max_hold, …
42.3.14
Тонкие настройки OSPF
Включение/выключение поддержки Opaque LSA (RFC 2370)
(config−ospf)# [no] capability opaque
Синоним:
(config−ospf)# [no] ospf opaque−lsa
Включение/выключение совместимости с RFC 1583
(config−ospf)# [no] compatible rfc1583
Синоним:
(config−ospf)# [no] ospf rfc1583compatibility
Тупиковый маршрутизатор (RFC 3137)
Если объявить маршрутизатор, как тупиковый, то он будет анонсировать маршруты к себе с
бесконечной метрикой, и другие маршрутизаторы будут стараться не прокладывать маршруты
через него.
Объявление тупикового маршрутизатора:
362
(config−ospf)# max−metric router−lsa <режим>
Возможные режимы:
• administrative - объявить маршрутизатор тупиковым немедленно и на неопределённое вре-
мя (до отмены);
• on-startup <секунды> - объявлять тупиковым после старта системы на заданное время;
• on-shutdown <секунды> - после выполнения команды «no router ospf» не сразу останав-
ливать службу OSPF, но объявлять маршрутизатор тупиковым на заданное время, а потом
останавливать.
Команда «no» отменяет режим тупикового маршрутизатора:
(config−ospf)# no max−metric router−lsa
Типы маршрутизаторов ABR (RFC 3509)
Опция «ospf abr-type» настраивает поведение ABR маршрутизатора согласно RFC 3509 и draft-
ietf-ospf-shortcut-abr-02.
(config−ospf)# ospf abr−type cisco|ibm|shortcut|standard
Игнорирование несовпадения MTU
По умолчанию в OSPF включена проверка совпадения MTU между соседними маршрутизато-
рами. В случае несовпадения не будет установлено отношение смежности. Если требуется отклю-
чить данную проверку, то это можно сделать опцией в режиме конфигурации интерфейса:
(config−if−ethernet0)# ip ospf mtu−ignore [<ip>]
Параметр <ip> имеет смысл, если интерфейсу назначено несколько IP-адресов.
42.3.15
Диагностика
Следующие команды привилегированного режима выводят различную диагностическую ин-
формацию о OSPF.
(Команды «show ospf …» и «show router ospf …» являются синонимами).
show log router [all|follow|number <n>
Вывод журнала служб динамической маршру-
тизации
show ip route
Вывод всей таблицы маршрутизации узла
(всех протоколов)
show ospf
Вывод краткой информации о состоянии служ-
бы OSPF
show ospf route
Вывод таблицы маршрутизации для OSPF
show ospf border-routers
Вывод только внешних и межобластных марш-
рутов
show ospf interface <iface>
Информация об интерфейсе (с точки зрения
OSPF)
show ospf neighbor [all|<ip>|(<iface> [detail])]
Информация о соседнем(их) маршрутизато-
ре(ах)
363
Команды вывода базы данных OSPF:
show ospf database
Краткая информация о базе данных OSPF
show ospf database router
Информация о LSA type 1
show ospf database network
Информация о LSA type 2
show ospf database summary
Информация о LSA type 3
show ospf database asbr-summary
Информация о LSA type 4
show ospf database external
Информация о LSA type 5
show ospf database nssa-external
Информация о LSA type 7
show ospf database opaque-link
Информация о LSA type 9
show ospf database opaque-area
Информация о LSA type 10
show ospf database opaque-as
Информация о LSA type 11
show ospf database max-age
Информация о LSA, находящихся в списке MaxAge
Почти ко всем командам «show ospf database» применимы дополнительные параметры:
• self-originate - показать только те данные, источником которых является данный маршрути-
затор;
• adv-router <ip> - показать только те данные, источником которых является указанный
маршрутизатор.
Если необходима более подробная информация об изменении отношений смежности с сосед-
ними маршрутизаторами, то нужно указать опцию в режиме конфигурации OSPF:
(config−ospf)# log−adjacency−changes [detail]
Информация об изменениях отношений смежности будет протоколироваться в журнале служб
динамической маршрутизации.
42.4
BGP
42.4.1
Описание протокола BGP
BGP обеспечивает маршрутизацию без петель между автономными системами (AS), RFC 4271
«A Border Gateway Protocol 4 (BGP-4)». Маршрутизаторы используют протоколы внутренней марш-
рутизации (IGP) внутри AS, а вне AS - протокол BGP.
Когда BGP работает между маршрутизаторами в одной AS, это называется внутренний BGP
(IBGP). Когда BGP работает между маршрутизаторами, которые принадлежат к разным AS, это
называется внешний BGP (EBGP). BGP использует TCP в качестве транспорта (порт 179). Два
BGP-маршрутизатора устанавливают TCP-соединения между собой. Такие маршрутизаторы назы-
ваются соседними маршрутизаторам (соседями).
Соседи обмениваются информацией о путях (BGP-анонсами). BGP-путь, это набор номеров AS,
которые следует пройти к сети назначения.
364
BGP-пути хранятся в трех BGP-таблицах: Adj-RIB-In (Adjacent Routing Information Base,
Incoming), Loc-RIB (Local Routing Information Base) и Adj-RIB-Out (Adjacent Routing Information
Base, Outgoing). Получив анонс от соседа, BGP помещает пути из него в таблицу Adj-RIB-In, затем
обрабатывает их в соответствии с политиками и перемещает в таблицу Loc-RIB. Также в Loc-RIB
хранятся локальные пути, которые настроены администратором, и пути, которые перераспреде-
лены из маршрутов таблицы IP-маршрутизации. Пути, предназначенные для анонса соседям, BGP
помещает из таблицы Loc-RIB в таблицу Adj-RIB-Out.
BGP выбирает лучший путь из Loc-RIB, сравнивает административную дистанцию (AD), между
остальными путями в ту же сеть, но полученными из других протоколов, например OSPF, RIP. Путь
с наименьшей AD помещаются в таблицу IP-маршрутизатора.
42.4.2
BGP-маршрутизатор
42.4.2.1
Включение BGP-маршрутизатора (router bgp)
Первое, что требуется для начала настройки BGP, это включить BGP-маршрутизатор. Сделать
это можно командой:
(config)# router bgp <AS>
<AS> - номер AS, в которую входит настраиваемый BGP-маршрутизатор.
После ввода команды система переходит в режим конфигурирования BGP, в котором вводятся
остальные команды настройки BGP-маршрутизатора.
Пример включения BGP-маршрутизатора, который входит в AS с номером 65001.
(config)# router bgp 65001
(config−bgp−65001)#
Выключить BGP-маршрутизатор можно командой:
(config)# no router bgp <AS>
Конфигурация BGP-маршрутизатора при этом удаляется.
42.4.2.2
Идентификатор BGP-маршрутизатора (router-id)
При включении BGP-маршрутизатора создается идентификатор. Это IP-адрес, который совпа-
дает с максимальным IP-адресом интерфейсов маршрутизатора. Если в маршрутизаторе не суще-
ствует ни одного интерфейса, то идентификатору BGP-маршрутизатора присваивается значение
0.0.0.0 и его необходимо изменить вручную. Изменить идентификатор можно командой:
(config−bgp−65001)# bgp router−id <RID>
<RID> - IP-адрес, который будет идентифицировать BGP-маршрутизатор. Пример использо-
вания IP-адреса 192.168.1.1 в качестве идентификатора.
(config−bgp−65001)# bgp router−id 192.168.1.1
Удалить заданный идентификатор и вернуться к выбору по умолчанию можно командой:
(config−bgp−65001)# no bgp router−id
365
42.4.3
BGP-соединение
42.4.3.1
Создание BGP-соединения (neighbor)
BGP-соединение устанавливается между двумя соседями. Для установления BGP-соединения
у обоих соседей в конфигурации должна быть команда:
(config−bgp−65001)# neighbor <ip>|<group> remote−as <AS>
<ip> - IP-адрес соседнего BGP-маршрутизатора. Для EBGP-соединения, этот адрес должен
быть в непосредственно подключенной сети (можно отключить такую проверку командой disable-
connected-check). Для IBGP-соединения, к этому адресу должен существовать маршрут.
<group> - имя группы BGP-маршрутизаторов.
<AS> - номер AS, в которую входит соседний BGP-маршрутизатор или группа.
Пример настройки EBGP-соединения между соседом 1 из AS 65001 с IP-адресом 192.168.1.1
и соседом 2 из AS 65002 c IP-адресом 192.168.1.2:
Сосед-1(config-bgp-65001)# neighbor 192.168.1.2 remote−as 65002
Сосед-2(config-bgp-65002)# neighbor 192.168.1.1 remote−as 65001
Проверить возможность установления соединения можно пингом:
Сосед-1# ping 192.168.1.2 source 192.168.1.1
42.4.3.2
Удаление и административное выключение BGP-соединения (shutdown)
Удалить настройку BGP-соединения можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> remote−as
При этом удаляются все остальные настройки, связанные с этим соседом. Для временной
блокировки лучше использовать команду административного выключения:
(config−bgp−65001)# neighbor <ip>|<group> shutdown
Включить соседа обратно можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> shutdown
42.4.3.3
Группы BGP-маршрутизаторов (peer-group)
Несколько BGP-маршрутизаторов можно объединить в единую группу, если они находятся в
одной AS. В этом случае они будут использовать общие настройки группы. Создать группу можно
командой:
(config−bgp−65001)# neighbor <group> peer−group
<group> - имя группы. Добавить BGP-маршрутизатор в группу можно командой:
366
(config−bgp−65001)# neighbor <ip> peer−group <group>
<ip> - IP-адрес соседа.
Пример создания группы mybgpgroup из трех BGP-маршрутизаторов, находящихся в AS 65003.
Перед добавлением BGP-маршрутизаторов в группу следует сначала определить для группы но-
мер удаленной AS, а затем добавить узлы.
(config−bgp−65001)# neighbor mybgpgroup peer−group
(config−bgp−65001)# neighbor mybgpgroup remote−as 65003
(config−bgp−65001)# neighbor 192.168.3.1 peer−group mybgpgroup
(config−bgp−65001)# neighbor 192.168.3.2 peer−group mybgpgroup
(config−bgp−65001)# neighbor 192.168.3.3 peer−group mybgpgroup
42.4.3.4
Использование dummy-интерфейса (update-source)
При использовании dummy-интерфейса, BGP-маршрутизатор сообщает соседу IP-адрес, ко-
торый не принадлежит ни одному физическому интерфейсу и, следовательно, не зависит от его
состояния (dummy-интерфейс всегда активен). Для использования dummy-интерфейса нужно
выполнить команду:
(config−bgp−65001)# neighbor <ip>|<group> update−source <ip−iface>|<iface>
<ip-iface> - IP-адрес dummy-интерфейса.
<iface> - имя dummy-интерфейса.
Пример использования dummy-интерфейса с именем dummy0 и IP-адресом 192.168.1.1 в ка-
честве источника BGP-обновлений.
(config)# interface dummy 0
(config−if−dummy0)# ip address 192.168.1.1/24
(config−if−dummy0)# enable
(config−bgp−65001)# neighbor 195.220.1.2 update−source dummy 0
Отменить использование dummy-интерфейса можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> update−source
42.4.3.5
Отмена проверки подключенной сети для EBGP (disable-connected-check,
enforce-multihop)
При EBGP-соединении BGP-маршрутизатор ищет соседа в одной из подключенных сетей. На-
пример, при использовании dummy-интерфейса, который никуда не подключен, следует отклю-
чать такую проверку, либо использовать команду ebgp-multihop. Отключить проверку можно ко-
мандой:
(config−bgp−65001)# neighbor <ip>|<group> disable−connected−check
У этой команды существует синоним, команда enforce-multihop, при выполнении которой в
конфигурацию все равно запишется disable-connected-check.
367
42.4.3.6
Настройка TTL для EBGP (ebgp-multihop, ttl-security hops)
Допустим EBGP-соседи не находятся в одной сети. Тогда для установления BGP-соединения
следует указать, что для достижения соседа требуется проходить несколько маршрутизаторов.
Сделать это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> ebgp−multihop [<hop_count>]
<hop_count> - не обязательный параметр устанавливает TTL в IP-датаграмме.
Пример увеличения TTL для соседа с IP-адресом 195.220.1.2.
(config−bgp−65001)# neighbor 195.220.1.2 ebgp−multihop 128
Отменить изменение TTL можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> ebgp−multihop
Иногда, в целях безопасности, требуется явное указание расстояния до EBGP-соседа. Сделать
это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> ttl−security hops <n>
<n> - чисто маршрутизаторов на пути к соседу.
Внимание! Команда применима только для EBGP и при использовании заменяет команду
neighbor ebgp-multihop. Запрещено одновременное использование с neighbor ebgp-multihop.
Пример контроля TTL для соседа с IP-адресом 195.220.1.1. IP-датаграммы, у которых TTL
меньше 253, будут сброшены.
(config−bgp−65001)# neighbor 192.168.1.1 ttl−security hops 2
Отменить изменение TTL можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> ttl−security hops
42.4.3.7
Контроль линка для EBGP (fast-external-failover)
В BGP-маршрутизаторе существует механизм, который немедленно обрывает BGP-соединение,
если на интерфейсе пропало соединение. Этот механизм применяется только для EBGP-
соединения и он включен по умолчанию. Если требуется отменить такое поведение, то сделать
это можно командой:
(config−bgp−65001)# no bgp fast−external−failover
После отмены вместо механизма обнаружения падения соединения будут использоваться тай-
меры hold и keepalive. Таким образом, если пропадет линк, BGP-соединение еще некоторое время
будет установлено. Включить механизм обратно можно командой:
(config−bgp−65001)# bgp fast−external−failover
368
42.4.3.8
Аутентификация (password)
Включить аутентификацию по паролю (MD5) можно командой:
(config−bgp−65001)# neighbor <ip>|<group> password <string>
<string> - пароль для аутентификации соседа Аутентификация настраивается на обоих сосе-
дях, устанавливающих BGP-соединение.
Пример настройки аутентификации по паролю 1ssap!
(config−bgp−65001)# neighbor 192.168.1.2 password 1ssap!
Отменить аутентификацию можно командой:
(config−bgp−65001)# neighbor <ip>|<group> password <string>
42.4.3.9
Пассивный режим BGP-соединения (passive)
Пассивный режим позволяет получать анонсы соседа только по его инициативе. Включить
пассивный режим можно командой:
(config−bgp−65001)# neighbor <ip>|<group> passive
Отключить пассивный режим можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> passive
42.4.3.10
IPv6 (activate)
Для разрешения обмена с адресами IPv6 предназначена команда:
(config−bgp−65001)# neighbor <ip>|<group> activate
Эту команду не следует использовать для IPv4.
42.4.3.11
Журнал (log-neighbor-changes)
Включить протокол изменений состояния соседей можно командой:
(config−bgp−65001)# bgp log−neighbor−changes
Изменения будут записываться в журнал маршрутизатора. Посмотреть журнал можно коман-
дой:
# show log router
Отменить ведение протокола можно командой:
(config−bgp−65001)# no bgp log−neighbor−changes
369
42.4.3.12
Изменение TCP-порта службы BGP (port)
BGP-соединение использует подключение к 179-му TCP-порту. Если требуется использовать
подключение к другому порту, сделать это можно командой:
(config−bgp−65001)# neighbor <ip> port <n>
<n> - BGP-порт соседа.
Удалить настройку и вернуть значение по умолчанию можно командой:
(config−bgp−65001)# no neighbor <ip> port
42.4.3.13
Описание к настройкам BGP-соседа (description)
Для удобства администрирования можно задать описание для соседа или группы, при помощи
команды:
(config−bgp−65001)# neighbor <ip>|<group> description <string>
<string> - Строка с описанием.
Удалить описание можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> description
42.4.4
Таймеры
42.4.4.1
Hold и keepalive
Для поддержания BGP-соединения используется механизм отправки сигналов жизни keepalive.
При установлении соединения BGP-маршрутизаторы обмениваются параметром hold, который
определяет время ожидания прихода keepalive. Изменить значения по умолчанию можно коман-
дой:
(config−bgp−65001)# timers bgp <keepalive> <hold>
<keepalive> - время отправки пакетов жизни, по умолчанию 60 секунд.
<hold> - время удержания BGP-соединения открытым до получения keepalive, по умолчанию
180 секунд.
Пример изменения таймеров keepalive на 30 секунд, hold на 90 секунд.
(config−bgp−65001)# timers bgp 30 90
Удалить введенные параметры и вернуться к значениям по умолчанию можно командой:
(config−bgp−65001)#no timers bgp
Эти же параметры можно изменить для определенного соседа командой:
(config−bgp−65001)# neighbor <ip>|<group> timers <keepalive> <hold>
370
Пример изменения таймеров keepalive на 30 секунд, hold на 150 секунд для соседа с IP-
адресом 192.168.1.2.
(config−bgp−65001)# neighbor 192.168.1.2 timers 30 150
Удалить установленные таймеры и вернуться к значениям по умолчанию для конкретного
соседа можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> timers
Посмотреть текущие таймеры можно командой:
# show bgp neighbors [<ip>|<group>]
42.4.4.2
Интервал сканирования BGP-таблиц (scan-time)
BGP-маршрутизатор просматривает свои таблицы на предмет изменений с определенным ин-
тервалом (по умолчанию 60 секунд). Для изменения частоты обновления можно использовать
команду:
(config−bgp−65001)# bgp scan−time <t>
<t> - Время в секундах (по умолчанию 60 секунд).
Уменьшение времени сканирования приводит к росту нагрузке на процессор маршрутизатора.
Пример изменения интервала сканирования BGP-таблицы:
(config−bgp−65001)# bgp scan−time 5
Посмотреть текущие значения интервала обновления можно командой
# show bgp scan
42.4.4.3
Интервал анонсирования (advertisement-interval)
BGP-маршрутизатор анонсирует пути с определенным интервалом (по умолчанию 30 секунд).
Изменить этот интервал можно командой:
(config−bgp−65001)# neighbor <ip> advertisement−interval <t>
<t> - время в секундах (по умолчанию 30 секунд).
Пример изменения интервала анонсирования на
10
секунд для соседа с IP-адресом
192.168.1.2:
(config−bgp−65001)# neighbor 192.168.1.2 advertisement−interval 10
Посмотреть текущий интервал анонсирования можно командой:
# show bgp neighbors [<ip>|<group>]
Удалить настроенные интервалы и вернуться к значению по умолчанию можно командой:
(config−bgp−65001)# no neighbor <ip> advertisement−interval
371
42.4.4.4
Интервал попыток подключения (timers connect)
BGP-маршрутизатор делает попытки установить BGP-соединение через определенный интер-
вал (по умолчанию 120 секунд). Изменить этот интервал можно командой:
(config−bgp−65001)# neighbor <ip> timers connect <t>
<t> - время в секундах (по умолчанию 120 секунд).
Пример настройки интервала 600 секунд для соседа с IP-адресом 192.168.1.2:
(config−bgp−65001)# neighbor 192.168.1.2 timers connect 600
Таймер постоянно уменьшается от установленного значения до нуля, достигнув нуля, вновь
увеличивается до максимума и начинает уменьшаться. Посмотреть интервал можно (пока не уста-
новлено BGP-соединение) командой:
# show bgp neighbors [<ip>]
Удалить настройки и вернуться к значению по умолчанию можно командой:
(config−bgp−65001)# no neighbor <ip> timers connect
42.4.5
Анонсирование
42.4.5.1
Анонсирование сети (network)
При первоначальной настройке BGP-маршрутизатор не анонсирует для соседей ничего, кроме
своего идентификатора. Анонсировать определенную сеть можно командой:
(config−bgp−65001)# network <ip/m> [(route−map <rmap_name>)]
<ip/m> - IP-адрес и маска анонсируемой сети.
route-map <rmap_name> - анонсирует сеть с параметрами карты маршрута.
Пример анонсирования сети 10.0.0.0/8.
(config−bgp−65001)# network 10.0.0.0/8
Удалить анонсированную ранее сеть можно командой:
(config−bgp−65001)# no network <ip/m>
42.4.5.2
Проверка наличия маршрута в анонсируемую сеть (import-check)
По умолчанию BGP-маршрутизатор не проверяет существование в таблице IP-маршрутизации
маршрута к сети, которую он анонсирует соседям командой network. Проверку существования
маршрута можно включить командой:
(config−bgp−65001)# bgp network import−check
Отменить эту проверку можно командой:
(config−bgp−65001)# no bgp network import−check
372
42.4.5.3
Перераспределение (redistribute)
Помимо явного анонсирования сетей при помощи команды network, возможно анонсировать
сети путем перераспределения маршрутов из таблицы IP-маршрутизатора в BGP-маршрутизатор.
Сделать это можно командой:
(config−bgp−65001)# redistribute kernel|connected|static|rip|ospf [metric <n>] [route−map
<rmap>]
redistribute kernel - анонсирует маршруты, используемые ядром linux.
redistribute connected - анонсирует маршруты интерфейсов, подключенных к коммутатору.
redistribute static - анонсирует статические маршруты, т.е. прописанные вручную администра-
тором.
redistribute rip - анонсирует маршруты, полученные по RIP.
redistribute ospf - анонсирует маршруты, полученные по OSPF.
metric <n> - метрика, с которой будут анонсированы эти маршруты.
route-map <rmap> - анонсирует сеть с параметрами карты маршрута.
Посмотреть какие именно маршруты находятся в таблице IP-маршрутизатора можно коман-
дой:
# show ip route
Пример перераспределения подключенных маршрутов:
(config−bgp−65001)# redistribute connected
Удалить перераспределение можно командой:
(config−bgp−65001)# no redistribute kernel|connected|static|rip|ospf
42.4.5.4
Суммарный путь (aggregate-address)
Суммарный путь для нескольких подсетей анонсируется соседям с целью уменьшения объемов
передаваемой информации. Сделать это можно командой:
(config−bgp−65001)# aggregate−address <ip/m> [as−set] [summary−only]
<ip/m> - IP-адрес и маска сети, в которую входят подсети данного маршрутизатора.
as-set - создает новое поле AS_SET для суммарного пути, в которое записывает все AS, через
которые проходят компоненты пути. Этот параметр требуется, если у путей в подсети различа-
ется поле AS_SEQ, которое при суммировании может приобрести нулевое значение, что может
приводить к образованию петель.
summary-only - анонсирует только суммарный путь, пути в подсети не анонсируются.
Пример суммарного пути для сетей 192.168.1.0/25 и 192.168.1.128/25:
(config−bgp−65001)# aggregate−address 192.168.1.0/24
В этом случае соседу анонсируется три пути.
373
B 192.168.1.0/24 via 195.220.1.1
B 192.168.1.0/25 via 195.220.1.1
B 192.168.1.128/25 via 195.220.1.1
Если требуется анонсировать только суммарный путь, то сделать это можно командой:
(config−bgp−65001)# aggregate−address 192.168.1.0/24 summary−only
В этом случае соседу анонсируется только один суммарный путь.
B 192.168.1.0/24 via 195.220.1.1
Удалить суммарный путь можно командой:
(config−bgp−65001)# no aggregate−address <ip/m>
42.4.5.5
Выборочный анонс подавленных путей (unsuppress-map)
Иногда следует разрешить некоторые пути из суммарного пути для определенного соседа.
Сделать это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> unsuppress−map <rmap_name>
<rmap_name> - имя карты маршрутов, содержащей параметры разрешенных путей.
Пример разрешения подсети 192.168.1.128/25 для соседа с IP-адресом 172.16.0.2.
(config−bgp−65001)# aggregate−address 192.168.1.0/24 summary−only
(config−bgp−65001)# neighbor 172.16.0.2 unsuppress−map myunmap
(config)# router router−map myunmap permit 1
(config−route−map−myunmap)# match ip address myunmapacl
(config)# router accsss−list myunmapacl permit 192.168.1.128/25
В этом случае соседу анонсируется только два пути.
B 192.168.1.0 via 195.220.1.1
B 192.168.1.128/25 via 195.220.1.1
Удалить настройки можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> unsuppress−map
42.4.5.6
Маршрут по умолчанию (default-originate)
Маршрут по умолчанию можно сообщить соседу и при этом его не нужно создавать в таблице
IP-маршрутизации. Сделать это можно следующей командой:
(config−bgp−65001)# neighbor <ip>|<group> default−originate [route−map <rmap_name>]
Пример анонсирования соседом 1 с IP-адреса 192.168.1.1 маршрута по умолчанию для соседа
2 с IP-адресом 192.168.1.2:
374
Сосед-1(config-bgp-65001)# neighbor 192.168.1.2 remote−as 65002
Сосед-1(config-bgp-65001)# neighbor 192.168.1.2 default−originate
Сосед-2(config-bgp-65002)# neighbor 192.168.1.1 remote−as 65001
У соседа 2 появится маршрут по умолчанию на шлюз с IP-адресом соседа, от которого пришел
анонс.
B 0.0.0.0 via 192.168.1.1
42.4.6
Фильтрация анонсов
42.4.6.1
Distribute-list
Фильтрация при помощи distribute-list использует списки доступа маршрутизатора. Включить
такую фильтрацию можно командой:
(config−bgp−65001)# neighbor <ip>|<group> distribute−list <racl_name>|<racl_num> in|out
<racl_name>|<racl_num> - имя либо номер списка доступа маршрутизатора.
distribute-list in - фильтруются входящие анонсы, distribute-list out - фильтруются исходящие
анонсы.
Пример использования списка доступа myacl, разрешающего только пути в сеть 10.0.0.0/8,
для фильтрации анонсов, получаемых от соседа с IP-адресом 192.168.1.2:
(config)# router access−list myacl permit 10.0.0.0/8
(config−bgp−65001)# neighbor 192.168.1.2 distribute−list myacl in
Отменить использование этого фильтра можно командой:
(config−bgp−65001)#no neighbor <ip>|<group> distribute−list <racl_name>|<racl_num> in|out
42.4.6.2
Filter-list
Фильтрация при помощи filter-list использует списки доступа по AS-путям. Этот список приме-
няет строку с регулярным выражением для поиска в атрибуте AS_PATH. Включить такую филь-
трацию можно командой:
(config−bgp−65001)# neighbor <ip>|<group> filter−list <apath_name> in|out
<apath_name> - имя списка доступа по AS-путям.
Пример использования списка доступа myasacl, разрешающего только пути, проходящие че-
рез AS 65001, для фильтрации исходящих анонсов для соседа с IP-адресом 192.168.1.2.
(config)# router as−path access−list myasacl permit _65001_
(config−bgp−65001)# neighbor 192.168.1.2 filter−list myasacl out
Отменить использование этого фильтра можно командой:
(config−bgp−65001)#no neighbor <ip>|<group> filter−list <apath_name> in|out
375
42.4.6.3
Prefix-list
Фильтрация при помощи prefix-list использует префиксные списки. Эти списки похожи на спис-
ки доступа маршрутизатора. В отличие от списков доступа маршрутизатора, префиксные списки
можно применять удаленно (outbond route filtering). Включить такую фильтрацию можно следую-
щей командой:
(config−bgp−65001)# neighbor <ip>|<group> prefix−list <prlist_name> in|out
<prlist_name> - имя префиксного списка.
Пример использования списка доступа с myplist, разрешающего только пути в сеть 10.0.0.0/8,
для фильтрации анонсов, получаемых от соседа с IP-адресом 192.168.1.2.
(config)# router access−list myplist permit 10.0.0.0/8
(config−bgp−65001)# neighbor 192.168.1.2 distribute−list myplist in
Отменить использование этого фильтра можно командой:
(config−bgp−65001)#no neighbor <ip>|<group> prefix−list <prlist_name> in|out
42.4.6.4
Maximum-prefix
Установить ограничение на количество префиксов (сетей), получаемых от соседа при пере-
полнении памяти, можно командой:
(config−bgp−65001)# neighbor <ip>|<group> maximum−prefix <limit> <thresh> [(restart
<mins>)|warning−only]
<limit> - число получаемых префиксов.
<thresh> - процент от ограничения, при превышении которого выдавать предупреждение.
restart <mins> - рестарт BGP-соединения немедленно либо через несколько минут, если пре-
вышен лимит.
warning-only - не делать рестарт, а только выдавать предупреждение.
Отменить такое ограничение можно командой:
no neighbor <ip>|<group> maximum−prefix
42.4.6.5
Route-map
Фильтрацию при помощи карты маршрутов можно включить командой:
(config−bgp−65001)# neighbor <ip>|<group> route−map <rmap_name> in|out|import|export
in|out - применяет карту к входящим либо исходящим путям.
import|export - применяет карту к путям, помещаемым в таблицы клиентов сервера маршру-
тов. Используется совместно с командой route-server-client.
Отменить использование карты маршрутов можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> route−map <rmap_name>
in|out|import|export
376
42.4.7
Замена полносвязного графа BGP
42.4.7.1
IBGP-конфедерация (confederation)
Конфедерации описаны в RFC 5065 «Autonomous System Confederations for BGP». Конфедера-
ция под своим номером объединяет несколько AS. Для BGP-маршрутизаторов вне конфедерации,
эти AS представляются, как единая AS. AS внутри конфедерации общаются между собой по EBGP.
Конфедерация позволяет упростить задачу настройки BGP-маршрутизаторов внутри одной
организации. Без использования конфедерации требуется что бы организация, имеющая один
публичный номер AS, обеспечила внутри своей AS полносвязное IBGP-соединение.
Для объединения в конфедерацию следует указать номер конфедерации, сделать это можно
командой:
(config−bgp−65001)# bgp confederation identifier <AS>
<AS> - номер AS, которым будут представляться члены конфедерации.
Пример включения BGP-маршрутизатора из AS 65001 в конфедерацию с номером 1000.
(config−bgp−65001)# bgp confederation identifier 1000
Исключить узел из конфедерации можно командой:
(config−bgp−65001)# no bgp confederation identifier
Для обеспечения связей внутри конфедерации следует указать остальные AS, которые входят
в конфедерацию. Сделать это можно командой:
(config−bgp−65001)# bgp confederation peers <AS>
Пример добавления в конфедерацию BGP-маршрутизаторов из AS 65002
(config−bgp−65001)# bgp confederation peers 65002
Если AS больше не член конфедерации, то удалить ее можно командой:
(config−bgp−65001)# no bgp confederation peers <AS>
42.4.7.2
IBGP отражатель маршрутов (cluster, route-reflector-client)
Отражатель маршрутов описан в RFC 4456 «BGP Route Reflection: An Alternative to Full Mesh
Internal BGP (IBGP)». Отражатель маршрутов, это роль BGP-маршрутизатора в BGP-кластере.
Внутри одной AS BGP-маршрутизаторы можно разделить на кластеры (группы), в каждом кластере
выбрать BGP-маршрутизатор на роль отражателя маршрутов. В этом случае полносвязное BGP-
соединение требуется обеспечить только между отражателями. Остальные BGP-маршрутизаторы,
члены кластера, будут получать маршруты через своего отражателя, т.е. являться его клиентами.
Чтобы настроить BGP-маршрутизатор, как отражатель маршрутов, следует присвоить ему
идентификатор кластера. Сделать это можно командой:
(config−bgp−65001)# bgp cluster−id <id>
377
<id> - номер кластера.
Удалить номер кластера можно командой:
(config−bgp−65001)# no bgp cluster−id
Затем следует обозначить клиентов кластера. Сделать это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> route−reflector−client
При этом не требуется, чтобы клиенты в кластере имели полносвязную топологию, так как
отражатель передает все маршруты между всеми клиентами. Если же клиенты кластера имеют
полносвязную топологию, то передачу маршрутов между клиентами одного кластера следует от-
ключить на отражателе. Сделать это можно командой:
(config−bgp−65001)# no bgp client−to−client reflection
42.4.7.3
EBGP сервер маршрутов (route-server-client)
Сервер маршрутов является центром в топологии звезда, при которой EBGP-соседи использу-
ют его, как транзитный узел, для обмена между собой. Для включения централизованного обмена
на сервере следует объявить соседей, как Route Server Client. Сделать это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> route−server−client
42.4.7.3.1
Фильтрация при помощи карт маршрутов (route-map import/export, match
peer) Сервер создает для каждого клиента свою таблицу с маршрутами, полученными от других
клиентов этого сервера. Возможно управлять импортом маршрутов в эту таблицу и экспортом из
нее при помощи карты маршрутов. Команда для клиента:
(config−bgp−65001)# neighbor <ip>|<group> route−map <rmap_name> import|export
Route-map import - фильтрует маршруты, которые приходят в таблицу клиента от других кли-
ентов сервера.
Route-map export - фильтрует маршруты, которые приходят от этого клиента в таблицы других
клиентов сервера.
В правилах карты можно использовать критерий выбора адреса соседа:
(config−route−map−myrmap)# match peer local|<ip>
local - устанавливает совпадение адреса соседа с локальным статическим или перераспреде-
ленным адресом.
<ip> - IP-адрес соседа.
Пример использования карты n3mapi для разрешения импорта в таблицу клиента 192.168.0.3
анонсов только от соседа 192.168.0.2 (из AS 65002).
(config−bgp−65001)# neighbor 192.168.0.2 remote−as 65002
(config−bgp−65001)# neighbor 192.168.0.2 route−server−client
(config−bgp−65001)# neighbor 192.168.0.3 remote−as 65003
(config−bgp−65001)# neighbor 192.168.0.3 route−server−client
378
(config−bgp−65001)# neighbor 192.168.0.3 route−map n3mapi import
(config)# router route−map n3mapi permit 10
(config−route−map−n3mapi)# match peer 192.168.0.2
Удалить выбор адреса соседа можно командой:
(config−route−map−n3mapi)# no match peer
42.4.8
Перемещение BGP-путей в IP-маршрутизатор
42.4.8.1
Атрибуты пути
Пути имеют атрибуты, которые разделены на 4 категории:
1.
Хорошо известные, обязательные (Well-known mandatory) —должны распознаваться и при-
сутствовать во всех анонсах:
• AS_PATH (Autonomous system path) - определяют автономные системы, через которые
доступна сеть назначения;
• NEXT_HOP - определяет IP-адрес пограничного маршрутизатора, который должен рас-
сматриваться, как шлюз к сети назначения в таблице маршрутизации;
• ORIGIN - определяет происхождение пути.
2.
Хорошо известные, не обязательные (Well-known discretionary) —должны распознаваться,
но наличие в анонсах не обязательно:
• LOCAL_PREF (Local preference) - используется чтобы сообщить соседям внутри своей
автономной системы степень предпочтения пути;
• ATOMIC_AGGREGATE - используется для информирования соседей о суммарном пути.
3.
Дополнительные пересылаемые (Optional transitive) — могут не распознаваться, но должны
передаваться соседям:
• AGGREGATOR - содержит номер последней AS, и IP-адрес BGP-маршрутизатора, кото-
рый сформировал суммарный путь.
4.
Дополнительные не пересылаемые (Optional non-transitive) — могут не распознаваться и
отбрасываться:
• MULTI_EXIT_DISC (Multi-exit discriminator, MED) - может использоваться при выборе
одного из нескольких путей к соседней автономной системе.
42.4.8.2
Алгоритм выбора лучшего пути
1. Weight. Лучшим считается путь с наибольшим значением веса.
2. LOCAL_PREF. Если вес путей одинаков, то выбирается путь с наибольшим значением атри-
бута LOCAL_PREF.
3. Локальные пути. Если атрибуты LOCAL_PREF одинаковы, пути объявленные командами
network, redistribute и aggregate-address предпочитаются над путями, полученными от со-
седей.
379
4. AS_PATH. Если нет локальных путей, то выбирается путь с самым коротким атрибутом
AS_PATH.
5. ORIGIN. Если все пути имеют одинаковую длину атрибута AS_PATH, то выбирается путь с
меньшим атрибутом ORIGIN (IGP < EGP < Incomplete).
6. MED. Если атрибут ORIGIN одинаков, то выбирается путь с наименьшим атрибутом MED.
7. EBGP или IBGP. Если атрибут MED одинаков, то предпочтение отдается маршрутам, полу-
ченным по EBGP, над маршрутами, полученными по IBGP.
8. Метрика маршрута до next hop. Чем меньше, тем предпочтительнее.
9. Маршрут первый появившийся в таблице (самый старый).
42.4.8.3
Вес пути (Weight)
Weight, это локальный атрибут, который не передается соседям. По умолчанию, значение веса
32768 для локальных путей, которые созданы на данном роутере, и 0 - для всех остальных путей.
Если необходимо устанавливать определенный вес для пути, то сделать это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> weight <n>
<n> - число определяющее вес пути, по умолчанию 0.
Пример увеличения веса путей, полученных от соседа с IP-адресом 192.168.1.2.
(config−bgp−65001)# neighbor 192.168.1.2 weight 40000
Посмотреть вес можно командой:
# show bgp
Вернуть значения по умолчанию можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> weight
42.4.8.4
Атрибут LOCAL_PREF (local-preference)
Атрибут присваивается маршрутам, полученным через EBGP, и локальным по команде network,
атрибут предается только по IBPG. Установить определенное значение можно командой:
(config−bgp−65001)# bgp default local−preference <n>
<n> новое значение атрибута, по умолчанию 100.
Вернуть значение по умолчанию можно командой:
(config−bgp−65001)# no bgp default local−preference
42.4.8.5
Атрибут AS_PATH
42.4.8.5.1
Разрешить принимать пути с номером собственной AS (allowas-in) По умол-
чанию для исключения петель маршрутизатор отбрасывает путь, полученный по EBGP, если видит
в AS_PATH номер своей AS. Можно отменить это правило командой:
(config−bgp−65001)# neighbor <ip>|<group> allowas−in [<n>]
380
Вернуть поведение по умолчанию можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> allowas−in
42.4.8.5.2
Изменить номер собственной AS для отдельных соседей (local-as) Можно
указать другую локальную AS для отдельного EBGP-соседа, отличную от той, в которую входит
данный маршрутизатор. Сосед при этом должен указать другую AS в команде network remote-as.
Сделать это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> local−as <AS> [no−prepend]
<AS> - номер AS отличный от собственной.
no-prepend - пути, полученные через EBGP, не предваряются номером local-as при распро-
странении по IBGP.
Отменить замену номера можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> local−as
42.4.8.5.3
Проверить номер первой AS (enforce-first-as) Принимать пути только от EBGP-
соседей, чей номер AS стоит первым в AS_PATH. Включить такую проверку можно командой:
(config−bgp−65001)# bgp enforce−first−as
Отменить проверку можно командой:
(config−bgp−65001)# no bgp enforce−first−as
42.4.8.5.4
Удалить частные AS (remove-private-as) Номера частных автономных систем с
64512 по 65535 используются в частных сетях и не используются интернет-провайдерами. Можно
удалять их из получаемых анонсов от EBGP-соседей. Включить удаление можно командой:
(config−bgp−65001)# neighbor <ip>|<group> remove−private−AS
Отменить удаление можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> remove−private−AS
42.4.8.5.5
Длина атрибута AS_PATH (confed, ignore) По умолчанию AS конфедераций не
влияют на выбор «лучшего» маршрута. Если требуется учитывать также AS конфедераций, сде-
лать это можно командой:
(config−bgp−65001)# bgp bestpath as−path confed
Если требуется отменить сравнение путей по длине атрибута AS_PATH, сделать это можно
командой:
(config−bgp−65001)# bgp bestpath as−path ignore
381
42.4.8.6
Атрибут HEXT_HOP (next-hop-self)
По умолчанию, когда путь, полученный по EBGP, анонсируется IBGP-соседу, атрибут
NEXT_HOP (шлюз) не изменяется. В случае если этот шлюз недоступен, его нужно подменить
на доступный IP-адрес соседа. Сделать это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> next−hop−self
По умолчанию, когда путь анонсируется EBGP-соседу, атрибут NEXT_HOP всегда меняется на
IP-адрес соседа, который анонсирует маршрут. Отменить подмену можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> next−hop−self
42.4.8.7
Атрибут MED (always-compare-med, confed, missing-as-worst, deterministic-
med)
По умолчанию MED сравнивается только для путей из одной и той же AS, т.е. для путей с
одинаковой первой AS в атрибуте AS_PATH. Если требуется сравнивать MED для любых путей,
сделать это можно командой:
(config−bgp−65001)# bgp always−compare−med
По умолчанию, MED не сравнивается для путей из конфедераций. Если требуется учитывать
также конфедерации, сделать это можно командой:
(config−bgp−65001)# bgp bestpath med confed
По умолчанию, если атрибут MED отсутствует в полученном пути, то ему присваивается зна-
чение 0 (самый высокий приоритет). Если требуется присвоить отсутствующему атрибуту самый
низкий приоритет (4294967295), то сделать это можно командой:
(config−bgp−65001)# bgp bestpath med missing−as−worst
Можно изменить алгоритм выбора лучшего пути, таким образом, что все пути в одну сеть будут
сравниваются друг с другом, несмотря на разные AS этих путей и порядок получения. Сделать
это можно командой:
(config−bgp−65001)# bgp deterministic−med
42.4.8.8
Сравнить по идентификаторам (compare-routerid)
Полностью одинаковые пути EBGP не сравниваются, а лучшим выбирается первый получен-
ный (самый старый). Можно заменить такой выбор на выбор пути с наименьшем идентификатором.
Сделать это можно командой:
(config−bgp−65001)# bgp bestpath compare−routerid
42.4.8.9
Контроль атрибутов через карту маршрутов
42.4.8.9.1
Вес пути (set weight) Установить вес можно следующей командой:
(config−route−map−myrmap)# set weight <n>
<n> - вес пути
382
42.4.8.9.2
Атрибут LOCAL_PREF (set local-preference) Установить атрибут можно следую-
щей командой:
(config−route−map−myrmap)# set local−preference <n>
<n> - новое значение атрибута
42.4.8.9.3
Атрибут AS_PATH (match/set as-path, pathlimit) Критерий отбора по спискам
доступа по AS-путям можно установить следующей командой:
(config−route−map−myrmap)#match as−path <as_path_acl>
Критерий отбора по атрибуту AS_PATHLIMIT (draft-ietf-idr-as-pathlimit) можно установить сле-
дующей командой:
(config−route−map−myrmap)#match pathlimit as <n>
Изменить атрибут AS_PATH, добавив либо удалив номера AS можно следующей командой:
set as−path prepend|exclude <as_num1> [<as_num2>] [<as_num3>] ...
prepend - добавить номера AS.
exclude - удалить номера AS.
Установить атрибут AS_PATHLIMIT (draft-ietf-idr-as-pathlimit) можно следующей командой:
set pathlimit ttl <n>
42.4.8.9.4
Атрибут ORIGIN (match/set origin) Критерий происхождения маршрута:
(config−route−map−myrmap)# match origin egp|igp|incomplete
Установить происхождение маршрута:
(config−route−map−myrmap)# set origin egp|igp|incomplete
42.4.8.9.5
Атрибуты AGGREGATOR и ATOMIC_AGGREGATE (set aggregator, atomic--
aggregate) При формировании суммарного маршрута BGP-маршрутизатор добавляет к пути ат-
рибуты AGGREGATOR и ATOMIC_AGGREGATE. Установить атрибут aggregator можно следующей
командой:
(config−route−map−myrmap)# set aggregator as <as_num> <ip>
<as_num> - номер AS, обычно последняя AS.
<ip> - IP-адрес, обычно адрес BGP-маршрутизатора сформировавшего маршрут.
Установить атрибут atomic-aggregate можно следующей командой:
(config−route−map−myrmap)# set atomic−aggregate
383
42.4.8.9.6
Атрибут Ordinator-ID (set originator-id) При работе BGP-маршрутизаторов в
кластере к путям, которые проходят через отражатель маршрутов, добавляется атрибут Ordinator-
ID. Данный атрибут - это IP-адрес - идентификатор маршрутизатора источника маршрута. Атрибут
нужен для исключения петель. BGP-маршрутизатор отбрасывает анонсы со своим Ordinator-ID.
Установить атрибут originator ID можно следующей командой:
(config−route−map−myrmap)# set originator−id <ip>
42.4.8.10
Сохранение атрибутов (attribute-unchanged)
При анонсе путей, которые были получены по BGP, BGP-маршрутизатору можно запретить
менять исходные атрибуты пути. Сделать это можно командой:
(config−bgp−65001)# neighbor <ip>|<group> attribute−unchanged [as−path] [next−hop] [med]
Параметры as-path, next-hop и med - определяют, какие именно атрибуты оставить в неиз-
менном виде.
Отменить сохранение атрибутов можно командой:
(config−bgp−65001)# no neighbor <ip>|<group> attribute−unchanged
42.4.8.11
Административная дистанция (AD)
AD используется для изменения приоритета путей, полученных от разных протоколов. Рабо-
тает после выбора лучшего пути до помещения пути в таблицу маршрутизации. Чем меньше AD,
тем приоритетнее путь. Значения AD: подключенный интерфейс 0, статический маршрут 1, EBGP
20, OSPF 110, RIP 120, IBGP 200.
Если требуется изменить значение AD, которые будут использоваться для всех соседей, то
сделать это можно командой:
(config−bgp−65001)# distance bgp <ext> <int> <local>
<ext> - AD для путей, полученных через EBGP, (по умолчанию 20).
<int> - AD для путей, полученных через IBGP, (по умолчанию 200).
<local> - AD для путей, настроенных вручную, через команду network, (по умолчанию 200).
Пример задания AD 200 для любых путей из BGP:
(config−bgp−65001)# distance bgp 200 200 200
Возврат значений по умолчанию выполняется командой:
(config−bgp−65001)# no distance bgp
Если требуется настроить значения AD для путей от конкретного соседа, это выполняется
командой:
(config−bgp−65001)# distance (<n> <ip> [<racl>])
384
<n> - значение AD.
<ip> - IP-адрес соседа.
<racl> - список доступа, который определяет, каким конкретно путям присваивать AD.
Пример указания AD 200 для путей, полученных от соседа с IP-адресом 195.220.1.2. Пред-
варительно создан список доступа myadracl, разрешающий сеть 10.1.2.0/24. AD изменяется для
путей в эту сеть.
(config)# router access−list myadracl permit 10.1.2.0/24
(config−bgp−65001)# distance 200 195.220.1.2 myadracl
Для удаления изменений AD и возврата значений по умолчанию используется команда:
(config−bgp−65001)# no distance <ip>
42.4.8.12
Backdoor
Иногда требуется уменьшить приоритет пути, полученного по EBGP (AD 20), если есть путь в
ту же сеть, но полученный, например по OSPF (AD 110). Cделать это можно командой, которая
устанавливает административную дистанцию 200 вместо 20 для сети, полученной по EBGP:
(config−bgp−65001)# network <ip/m> backdoor
<ip/m> - IP-адрес и маска сети, получаемой по EBGP, для которой требуется уменьшить при-
оритет. Данная сеть не анонсируется по BGP другим соседям.
42.4.9
Сообщества
42.4.9.1
Атрибуты сообществ (send-community)
Сообщества описаны в RFC 1997 «BGP Communities Attribute» и RFC 4360 «BGP Extended
Communities Attribute». Предназначены для облегчения управления анонсами на основе политик.
Сообщества добавляют атрибут COMMUNITY к пути. Вид атрибута AS:Number, где AS - номер
AS, Number - номер политики. По номеру политики можно устанавливать различные атрибуты,
например LOCAL_PREF. Некоторые сообщества имеют зарезервированные имена:
internet - анонсировать этот путь в интернет. Любой путь принадлежит этому сообществу.
local-AS - это сообщество запрещает передачу путей за пределы собственной AS.
no-advertise - запрещает анонсы любому соседу.
no-export - запрещает анонсы EBGP-соседям.
Для того чтобы использовать атрибуты требуется разрешить пересылку и прием их для сосе-
дей. Сделать это можно командой:
(config)# neighbor <ip>|<group> send−community standard|extended|both
standard, extended и both - определяет, какие списки сообществ отправлять и принимать.
Списки сообществ бывают со стандартными (standard) и расширенными (extended) атрибутами;
в каждом из списков можно применять регулярные выражения.
385
42.4.9.2
Стандартный список (community-list)
Создать стандартное сообщество можно командой:
(config)# router community−list <1..99>|(standard <name>) permit|deny <com_name>
<1..99> - задает номер списка сообществ.
standard <name> задет имя списка сообществ.
<com_name> - имя сообществ, может иметь вид <NN>:<NN> либо одно из стандартных на-
званий internet, local-AS, no-advertise или no-export
Можно создать список сообществ с регулярным выражением:
(config)# router community−list <100..500>|(expanded <name>) permit|deny <regexp>
<regexp> - регулярное выражение.
42.4.9.3
Расширеный список (extcommunity-list)
Создать расширенный список сообществ можно командой:
(config)# router extcommunity−list <1..99>|(standard <name>) permit|deny [rt
<ip>:NN|NN:NN] [soo <ip>:NN|NN:NN]
rt <ip>:NN|NN:NN - это (Route Target) идентификатор маршрутизатора источника пути с этим
сообществом.
soo <ip>:NN|NN:NN - это (Site of Origin) идентификатор сайта источника пути.
Можно создать список сообществ с регулярным выражением.
(config)# router extcommunity−list <100..500>|(expanded <name>) permit|deny <regexp>
42.4.9.4
Фильтрация при помощи карт маршрутов
Критерий сравнения атрибутов пути со стандартным списком задается при помощи команды:
(config−route−map−myrmap)# match community <num>|<comlist_name> [exact−match]
exact-match - точное совпадение.
Критерий сравнения атрибутов пути с расширенным списком списком задается при помощи
команды:
(config−route−map−myrmap)# match extcommunity <num>|<ecomlist_name> [exact−match]
Установка атрибутов стандартного сообщества осуществляется при помощи команды:
(config−route−map−myrmap)# set community
<NN>[:<NN>]|internet|local−AS|no−advertise|no−export|additive|none ...
Установка атрибутов расширенного сообщества осуществляется при помощи команды:
(config−route−map−myrmap)# set extcommunity [rt <ip>:NN|NN:NN] [soo <ip>:NN|NN:NN] ...
386
Удаление атрибутов стандартного или расширенного сообщества осуществляется при помощи
команды:
(config−route−map−myrmap)# set comm−list <num>|<comlist_name> delete
42.4.10
Дополнительные возможности BGP-маршрутизатора
42.4.10.1
Согласование возможностей (capability)
При согласовании соединения BGP-маршрутизаторы обмениваются информацией о своих воз-
можностях. За каждой хорошо известной возможностью закреплен определенный код. Например:
1 - Multiprotocol Extensions for BGP-4.
2 - Route Refresh Capability for BGP-4.
3 - Outbound Route Filtering Capability.
4 - Multiple routes to a destination capability.
5 - Extended Next Hop Encoding.
64 - Graceful Restart Capability.
67 - Support for Dynamic Capability (capability specific).
По умолчанию включен минимальный набор хорошо известных возможностей. Для провер-
ки точного совпадения возможностей данного маршрутизатора с соседним можно использовать
команду:
(config−bgp−65001)# neighbor <ip> strict−capability−match
Некоторые старые версии BGP не умеют согласовывать возможности. Для отключения согла-
сования своих возможностей с соседом можно использовать команду:
(config−bgp−65001)# neighbor <ip>|<group> dont−capability−negotiate
Можно также игнорировать согласованные возможности и принудительно использовать все
свои возможности. Сделать так можно командой:
(config−bgp−65001)# neighbor <ip>|<group> override−capability
Включить возможность динамического согласования можно командой:
(config−bgp−65001)# neighbor <ip>|<group> capability dynamic
42.4.10.2
Удаленное применение фильтров (outbound route filtering)
Если сосед поддерживает возможность удаленного применения фильтров, то можно настроить
префиксные списки, для отправки и применения их на стороне соседа. Таким образом сокраща-
ется объем анонса. Включить такую возможность можно командой:
(config−bgp−65001)# neighbor <ip>|<group> capability orf prefix−list send|receive|both
387
42.4.10.3
Мягкая перезагрузка (graceful-restart)
Механизм «Graceful-restart» описан в RFC 4724 «Graceful Restart Mechanism for BGP». Этот ме-
ханизм позволяет сохранять состояние BGP-соединений и не трогать IP-маршрутизацию, в процес-
се перезапуска BGP-маршрутизатора, что снижает нагрузку и позволяет избавиться от временных
петель в маршрутизации. Включить механизм «Graceful Restart» можно командой:
(config−bgp−65001)# bgp graceful−restart [stalepath−time <t>]
<t> - время в секундах, которое BGP-маршрутизатор ждет с момента получения сигнала о
перезапуске, прежде чем сбросить BGP-соединения. По умолчанию 360 секунд.
Выключить этот механизм можно командой:
(config−bgp−65001)# no bgp graceful−restart [stalepath−time]
42.4.10.4
Мягкое применение политик без обрыва сессий (soft-reconfiguration)
При изменении настроек, например входящих фильтров, BGP требуется заново получить от
соседа пути, чтобы по-новому их отфильтровать. Сделать это можно, принудительно очистив
таблицу BGP командой clear bgp, в этом случае информация удаляется, соединения обрываются
и устанавливаются заново. Можно воспользоваться более мягким вариантом clear bgp soft in,
при котором изменения применяются без обрыва сессий. Для того чтобы работал такой вариант
BGP требуется хранить информацию о всех путях от соседа (не отфильтрованных) в памяти. При
перезагрузке фильтры применятся к путям в памяти, соединение не разорвется.
Для того чтобы включить данный механизм нужно выполнить команду:
(config−bgp−65001)# neighbor <ip>|<group> soft−reconfiguration inbound
После этого можно пользоваться clear bgp soft in.
42.4.10.5
Быстрое применение политик с принудительным обновлением анонсов
(route refresh)
Более совершенная возможность заменяющая «soft reconfiguration» позволяет принудительно
запросить свежий анонс у соседа либо отправить анонс соседу без разрыва сессии.
Чтобы использовать возможность не требуется дополнительных команд конфигурации, При-
нудительно запросить анонс можно командой:
# сlear bgp in
Отправить анонс можно командой:
# clear bgp out
42.4.10.6
Подавление мигающих путей (dampening)
Механизм защиты от мигающих (хлопающих) путей описан в RFC 2439 «BGP Route Flap
Damping». Когда путь анонсируется и быстро исчезает из анонса, то данному пути начисляет-
ся штраф 1000 очков и путь запоминается, как «мигающий». Если он снова появился и исчез,
388
то еще 1000 очков и т.д. за каждое мигание. Если число очков превысило настроенный предел,
то путь помечается, как «подавленный». Подавленные пути не анонсируются и не передаются в
IP-маршрутизатор.
Включить этот механизм можно командой:
(config−bgp−65001)# bgp dampening [<halflife> [<reuse_start> <suppress_thresh>
<suppress_dur>]]
<halflife> - время в минутах, после которого штраф уменьшается наполовину, (по умолчанию
15 минут).
<reuse_start> - размер штрафа, ниже которого путь перестаёт быть подавленным, (по умол-
чанию 750 очков).
<suppress_thresh> - размер штрафа, выше которого путь подавляется, (по умолчанию 2000
очков).
<suppress_dur> - время в минутах, в течение которого путь подавляется, обычно в четыре
раза больше, чем halflife, (по умолчанию 60 минут).
Пример настройки механизма защиты от мигающих путей со значениями по умолчанию:
(config−bgp−65001)# bgp dampening
Выключить механизм можно командой:
(config−bgp−65001)# no bgp dampening
42.5
Карты маршрутов
42.5.1
Описание карт маршрутов
Карты маршрутов позволяют изменять атрибуты путей и маршруты по определенным крите-
риям. Они обычно применяются для управления маршрутами в протоколах динамической марш-
рутизации, чаще всего для BGP.
Карта маршрутов - это набор правил. Каждое правило имеет свой порядковый номер и по-
литику. Политика может быть либо разрешающей вносить изменения и передавать маршрут на
дальнейшую обработку, либо запрещающей обрабатывать маршрут.
Правило содержит разделы:
• Описание (description) задает комментарий для правила и служит для удобства;
• Критерии (match) задают условия, при которых срабатывает правило. Если маршрут по-
пал под заданные критерии, то при разрешающей политике этого правила, выполняются
остальные разделы: установки (set), вызов другой карты (call) и действие (action). При за-
прещающей - маршруты, попавшие под правило, отбрасываются. Если маршрут не попал
под критерии, то рассматриваются критерии правила со следующим порядковым номером;
• Установки (set) изменяют атрибуты путей и маршруты;
389
• Вызов другой карты (call) позволяет выполнить правила из другой карты маршрутов;
• Действие (action) определяет поведение после выполнения правила. Если действие отсут-
ствует, то выполнение карты завершается. В качестве действия можно задать переход на
другое правило (goto).
Если маршруты не попали ни под одно правило, то они отбрасываются. Чтобы разрешить
дальнейшую обработку таких маршрутов, последним в карте должно идти пустое правило с раз-
решающей политикой.
42.5.2
Создание правил
Создание правил route-map.
Каждое правило в карте маршрутов изменяется отдельно в режиме редактирования. Перейти
в режим редактирования правила можно командой:
(config)# router route−map <rmap_name> permit|deny <seq>
<rmap_name> - имя карты маршрутов, в которую заносится правило.
permit - разрешающая политика правила.
deny - запрещающая политика правила.
<seq> - порядковый номер правила. Рекомендуется задавать порядковый номер через десят-
ки т.е. 10, 20, 30 и т.д. Если в дальнейшем понадобиться вставить новое правило между суще-
ствующими, можно будет использовать номера 11, 12, 22 и пр. и не придется переписывать всю
карту.
Пример создания разрешающего правила под номером 10 для карты с именем myrmap:
(config)# router route−map myrmap permit 10
(config−route−map−myrmap)#
Удалить правило можно командой:
(config)# no router route−map <rmap_name> permit|deny <seq>
42.5.3
Просмотр правил
Посмотреть правила, созданные в определенной карте, можно командой:
# show router route−map <rmap_name>
Команда выдает список правил, разделенный на четыре секции: ZEBRA, RIP, OSPF и BGP. В
каждой секции показан один и тот же набор правил. Критерии и установки правил (match и set),
могут меняться в зависимости от секции. Например, критерии и установки, специфические для
BGP, будут показаны только в BGP-секции.
Пример вывода правил карты маршрутов:
390
(config−route−map−myrmap)# do show
call myrmap2
description “first rule”
match ip address myacl
set as−path prepend 65010
set metric 1
# show router route−map myrmap
ZEBRA:
route−map myrmap, permit, sequence
10
Description:
” first rule”
Match clauses:
ip address myacl
Set clauses:
Call clause:
Call myrmap2
Action:
Exit routemap
RIP:
route−map myrmap, permit, sequence
10
Description:
” first rule”
Match clauses:
ip address myacl
Set clauses:
metric 1
Call clause:
Call myrmap2
Action:
Exit routemap
OSPF:
route−map myrmap, permit, sequence
10
Description:
” first rule”
Match clauses:
ip address myacl
Set clauses:
metric 1
Call clause:
Call myrmap2
Action:
Exit routemap
BGP:
route−map myrmap, permit, sequence
10
Description:
” first rule”
Match clauses:
ip address myacl
391
peer 192.168.0.3
Set clauses:
metric 1
as−path prepend 65010
Call clause:
Call myrmap2
Action:
Exit routemap
42.5.4
Описание к правилу
Для удобства администрирования можно задать описание к правилу при помощи команды:
(config−route−map−myrmap)# description <string>
<string> - строка с описанием.
Удалить описание можно командой:
(config−route−map−myrmap)# no description
42.5.5
Критерии сравнения
42.5.5.1
Интерфейс
Для ZEBRA, RIP, OSPF, BGP.
Сравнение интерфейса, с которого доступен маршрут.
(config−route−map−myrmap)# match interface <iface>
<iface> - название интерфейса, например ethernet0.
42.5.5.2
IP-адрес назначения
Для: ZEBRA, RIP, OSPF, BGP
Сравнение IP-адреса сети назначения по списку доступа маршрутизатора, либо по префикс-
ному списку:
(config−route−map−myrmap)# match ip address <racl_num>|<racl_name>|(prefix−list
<prlist_name>)
<racl_num>|<racl_name> - номер либо имя списка доступа маршрутизатора.
<prlist_name> - имя префиксного списка.
392
42.5.5.3
IP-адреса шлюза
Для ZEBRA, RIP, OSPF
Сравнение IP-адреса шлюза по списку доступа, либо по префиксному списку:
(config−route−map−myrmap)# match ip next−hop <racl_num>|<racl_name\>|(prefix−list
<prlist_name>)
42.5.5.4
IP-адрес маршрутизатора, анонсировавшего маршрут
Для BGP.
IP-адрес маршрутизатора, анонсировавшего маршрут:
(config−route−map−myrmap)# match ip route−source <racl_num>|<racl_name>|(prefix−list
<prlist_name>)
42.5.5.5
Метрика маршрута (metric). RIP, BGP
(config−route−map−myrmap)# match metric <n>
<n> - метрика маршрута.
42.5.5.6
Тег маршрута
Для RIP.
(config−route−map−myrmap)# match tag \<n\>
<n> - тег маршрута.
42.5.6
Установки
42.5.6.1
Метрика маршрута
Для OSPF, BGP.
Устанавливает метрику, либо изменяет существующую
set metric [+|-]<seq>
<seq> - изменение метрики
42.5.6.2
Источник маршрута
Для ZEBRA.
IP-адрес источника маршрута
set src <ip>
393
42.5.6.3
Адрес шлюза
Для RIP, BGP.
set ip next-hop <ip>
42.5.6.4
Тег маршрута
Для RIP.
set tag <n>
42.5.7
Вызов другой карты маршрутов
Внутри правила можно вызвать правила из другой карты маршрутов. Сделать это можно ко-
мандой:
(config−route−map−myrmap)# call <rmap_name>
Удалить такой вызов можно командой:
(config−route−map−myrmap)# no call
42.5.8
Переход на другое правило при выполнении условий
Переход на другое правило при выполнении условий (on-match next, goto, continue)
Если совпадений с критериями нет, то просматривается правило со следующим порядковым
номером. При выполнении критериев правила, выполняются указанные изменения и просмотр
карты маршрутов закачивается. Если требуется продолжить просмотр, следует использовать ко-
манду on-match.
Переход на следующее правило при выполнении критериев можно задать командой:
(config−route−map−myrmap)# on−match next
При выполнении этой команды в конфигурацию вносится строка «on-match goto N», где N -
число на единицу большее порядкового номера правила, например для десятого правила N будет
11.
У этой команды существует синоним, команда continue. При выполнении этой команды в кон-
фигурацию все равно запишется «on-match goto N».
Явно указать, на какое правило переходить, можно при помощи команды:
(config−route−map−myrmap)# on−match goto <n>
<n> - номер правила.
Если правила с таким номером не существует, то переход осуществляется на первое правило
с номером большим, чем указанный. Например, есть правила с номерами 10, 20 и 30. Если из
десятого правила указать переход на 11-е, то переход произойдет на 20-е.
394
Внимание! Нельзя переходить на правила выше текущего, например, из десятого правила
нельзя переходить на девятое.
У этой команды существует синоним, команда continue <N>. При выполнении этой команды
в конфигурацию все равно запишется «on-match goto N».
395
43. Криптография
43.1
Ключ доступа
Для начала работы с криптографическими средствами необходимо инициализировать
датчик случайных чисел (ДСЧ), а также создать ключ доступа (КД).
Начальное заполнение ДСЧ доставляется на внешнем носителе в одном из форматов:
• random.ini - формат хранения симметричных ключей Dionis (необходимы файлы gk.db3,
uz.db3, random.ini);
• gk.db3 - формат хранения симметричных ключей Dionis, вариант ДСРФ (необходимы файлы
gk.db3, uz.db3);
• PKCS#15 - формат хранения ключевой информации PKCS#15.
Ключ доступа используется для защиты секретов системы, хранящихся на внутреннем носи-
теле, а именно:
• Начальное заполнение ДСЧ для следующей перезагрузки (защита шифрованием);
• Узлы замены для симметричных ключей Disec (защита шифрованием)
• Симметричные ключи Disec (защита шифрованием);
• Совместно используемые (pre-shared) ключи (защита шифрованием);
• Закрытые асимметричные ключи (защита шифрованием);
• Корневые X509-сертификаты (защита имитовставкой от подмены).
После генерации ключ доступа должен быть сохранён на внешнем носителе или в постоянной
памяти LCD-индикатора. В случае сохранения на внешнем носителе, данный носитель потребует-
ся при «холодном» перезапуске системы (poweroff/включение). В случае «тёплого» перезапуска
(reboot) носитель с КД не потребуется, потому что КД также сохраняется в оперативной памяти
LCD-индикатора.
ВАЖНО: В случае невозможности чтения КД с внешнего носителя из-за технической неис-
правности следует полностью очистить все данные на носителе без возможности восстановления
(или полностью уничтожить носитель). Далее необходимо сгенерировать новый ключ доступа и
заново установить в систему все ключи и корневые сертификаты.
ВАЖНО: Утеря или компрометация КД означает компрометацию симметричных и закрытых
асимметричных ключей, установленных в данную систему. В этом случае необходимо объявить
соответствующие ключи Disec недействительными и уведомить удостоверяющий центр о необ-
ходимости отозвать соответствующие сертификаты, закрытые ключи которых были установлены
в данную систему. Далее необходимо сгенерировать новый ключ доступа, установить в систему
новые ключи и заново установить корневые сертификаты.
Действуют следующие правила:
• Один ключ доступа может относиться только к одному узлу
;
• Один узел
может одновременно иметь только один ключ доступа;
• Ключ доступа может быть сохранён только один раз и на одном носителе (флэш, дискета
или LCD) после генерации или замены;
• На одном носителе может быть только один ключ доступа.
396
43.1.1
Состояние КД
Чтобы выяснить текущее состояние ключа доступа, нужно выполнить команду (в привилеги-
рованном режиме):
# show crypto access key status
Возможные состояния:
• no key;
• not stored;
• ok.
no key - КД не сгенерирован или не загружен в систему. ДСЧ не инициализирован. Работа
крипто-системы невозможна.
not stored - сгенерирован новый КД, но не сохранён на внешнем носителе. Необходимо
выполнить команду ‘crypto access key store’. (См. ниже).
ok - КД загружен в систему. ДСЧ инициализирован.
43.1.2
Генерация нового КД и инициализация ДСЧ
Вставьте внешний носитель с начальным заполнением ДСЧ.
Перейдите в привилегированный режим.
Если на внешнем носителе находится несколько контейнеров PKCS#15, то можно выполнить
команду просмотра содержимого внешнего носителя для выяснения имени контейнера:
# show crypto access key random−inis flash
Данная команда выведет доступные контейнеры в корневой директории флэш-накопителя
(для дискет используйте floppy). Примерный формат вывода:
subdir1/
subdir2/
random.ini old−dionis
file1
pkcs15
file2
pkcs15
или
subdir1/
subdir2/
gk.db3
old−dionis−kb2
file1
pkcs15
file2
pkcs15
397
где subdir1, subdir2 - поддиректории; old-dionis, old-dionis-kb2, pkcs15 - форматы контейнеров;
random.ini, gk.db3, file1, file2 - имена файлов.
Для просмотра содержимого поддиректорий можно выполнять команды типа:
# show crypto access key random−inis flash subdir1/subdir2/subdir3...
Для генерации КД следует ввести команду:
# crypto access key init
Данная команда выполнит поиск первого внешнего носителя и попытку чтения контейнера
random.ini/gk.db3 (также необходим файл uz.db3). Если контейнер данного типа отсутствует, то
будет произведён поиск контейнера PKCS#15 (в корневой директории). Если в корневой дирек-
тории отсутствуют контейнеры или найдено несколько контейнеров PKCS#15, то необходимо вы-
полнить команду с точным указанием имени файла контейнера. Например:
# crypto access key init flash subdir1/file2
Если контейнер PKCS#15 защищён паролем, то потребуется ввести пароль.
ВАЖНО: Если в системе уже присутствовал старый КД, то операция генерации нового КД пе-
резапишет начальное заполнение ДСЧ, сохранённое на внутреннем носителе. Новое заполнение
ДСЧ будет зашифровано на новом КД. Таким образом, данная операция является необратимой,
и использование старого КД становится невозможным. После генерации нового КД необходимо
также заново импортировать все необходимые секреты. Для плановой замены КД следует исполь-
зовать команду crypto access key replace (см. ниже).
Кроме этого, в целях безопасности будет обновлено начальное заполнение ДСЧ на внешнем
носителе.
Далее обязательно нужно выполнить пункт «Сохранение КД».
43.1.3
Сохранение КД
Если операция генерации прошла успешно, то ключ доступа находится в состоянии «not
stored», и его необходимо сохранить на внешнем носителе или в постоянной памяти LCD-
индикатора.
Для сохранения в ПЗУ LCD выполните команду:
# crypto access key store lcd
Для сохранения КД на внешнем носителе извлеките носитель с начальным заполнением ДСЧ,
вставьте носитель для хранения ключа доступа и выполните команду:
# crypto access key store flash
(или floppy для сохранения на дискете).
ВАЖНО: Ключ доступа сохраняется в корневой директории на внешнем носителе в файле
«acc-key». Если такой файл уже существует, то он будет заменён (с предварительным уведомле-
нием).
398
Ключ доступа можно защитить паролем. При сохранении КД будет предложено ввести этот
пароль. Если защита КД не требуется, то надо два раза нажать Enter. Если ключ защитить паролем,
то его придётся вводить при каждом «холодном» перезапуске. При «тёплом» перезапуске пароль
не требуется, так как в ОЗУ LCD ключ доступа сохраняется в открытом виде.
Далее необходимо выполнить пункт «Загрузка КД».
43.1.4
Загрузка КД
Сначала необходимо добавить команду «crypto access key load» в сохранённую конфигурацию
(startup-config), чтобы ключ доступа загружался каждый раз при перезапуске системы. Для этого
нужно выполнить следующие команды:
# configure
(config)# crypto access key load
(config)# do copy running−config startup−config
Команда «crypto access key load» осуществляет поиск КД на внешних носителях в следующем
порядке: флэш, дискета, ОЗУ LCD, ПЗУ LCD. Если требуется загрузка с определённого носителя,
то можно явно его указать. Например:
(config)# crypto access key load flash
При загрузке КД осуществляется попытка расшифровать начальное заполнение ДСЧ, сохра-
нённое на внутреннем носителе. Неудачное расшифрование означает несоответствие данного
КД данному узлу
. При удачном расшифровании происходит инициализация ДСЧ, фор-
мируется новое начальное заполнение ДСЧ, которое зашифровывается на КД и помещается на
внутренний носитель (для следующей перезагрузки).
Чтобы проверить, успешно ли загрузился КД, нужно выполнить команду «show crypto access
key status» (см. выше).
Если по каким-то причинам требуется не осуществлять загрузку КД при перезапуске системы,
то нужно удалить команду «crypto access key load» из сохранённой конфигурации, выполнив
команды:
(config)# no crypto access key load
(config)# do copy running−config startup−config
43.1.5
Удаление КД
Если по каким-то причинам требуется удалить КД из оперативной памяти системы, следует
выполнить команду:
# crypto access key clear memory
Данная команда удаляет ключ доступа из памяти системы и из ОЗУ LCD.
Следующие команды удаляют КД с внешних носителей (соответственно ПЗУ LCD, флэш,
дискета):
399
# crypto access key clear lcd
# crypto access key clear flash
# crypto access key clear floppy
Для безопасного удаления ключей с внешних носителей рекомендуется использовать коман-
ду “clear removable” (см. раздел “Обслуживание”).
43.1.6
Плановая замена КД
Для замены ключа доступа необходимо, чтобы старый ключ доступа был загружен в память
(см. «crypto access key load» выше).
Для замены КД в ПЗУ LCD-индикатора выполните команду:
# crypto access key replace lcd
Для замены КД с сохранением на внешнем носителе вставьте носитель со старым КД и выпол-
ните команду:
# crypto access key replace flash
(или floppy для дискеты).
Будет предложено защитить новый КД паролем. Если защита не нужна, нажмите 2 раза Enter.
При замене КД перешифровываются все секреты системы на новом КД.
Если по каким-то причинам замена КД не удалась, то осуществляется откат, и старый КД
остаётся в силе.
43.2
Туннели Disec
Система имеет возможность создавать туннели DISEC.
43.2.1
Инициализация DISEC
Перед созданием туннеля необходимо инициализировать подсистему DISEC.
Перед инициализацией подсистемы DISEC необходимо загрузить ключ доступа (подробнее см.
Криптография. Ключ доступа):
# crypto access key init flash
# crypto access key store lcd
(config)# crypto access key load lcd
Первой командой производится инициализация ключа доступа (КД), данные для КД считы-
ваются с внешнего ключевого носителя (ВКН), в данном случае с флэшки. Второй командой КД
содержание .. 6 7 8 9 ..
|
||
|
|
|