- PVSM.RU - https://www.pvsm.ru -
Для управления обменом маршрутной информацией, ее приемом, отправкой или перераспределением, в Cisco IOS можно использовать различные методы фильтрации маршрутных обновлений, такие как листы распределения (distribute-list) и листы префиксов (prefix-list).
Использование листов распределения обладает определенными недостатками, такими как:
Листы префиксов разрабатывались как альтернатива использованию ACL, их можно использовать во множестве команд предназначенных для фильтрации маршрутов.
Основными достоинствами использования листов префиксов являются:
Примечание: Именованные ACL поддерживают инкрементные изменения.
Листы префиксов так же обладают и определенными схожими чертами с ACL. Листы префиксов могут содержать произвольное количество записей, каждая из которых содержит условие и действие. Когда маршрутизатор выполняет проверку соответствия маршрута листу префиксов, первое совпадение с условием будет определять применяемое к маршруту действие – разрешение или запрет. Если маршрут не будет соответствовать ни одной записи, то на него будет действовать неявная политика по умолчанию deny any.
Маршрут будет разрешен или запрещен на основании следующих правил:
Для создания листа префиксов используется команда ip prefix-list {list-name | list-number} [seq seq-value] {deny | permit} network/length [ge ge-value] [le le-value] глобального режима конфигурации. Описание параметров этой команды приведены в таблице 1.
Таблица 1. Описание параметров команды ip prefix-list
Параметр | Описание |
list-name | Имя создаваемого листа префиксов, регистрозависимо |
list-number | Номер создаваемого листа префиксов |
seq seq-value | 32 битный номер записи в листе префиксов, используемый для определения порядка проверки соответствия при фильтрации. По умолчанию увеличивается на 5 |
deny | permit | Действие, выполняемое при нахождении соответствия |
network/length | Условие записи – префикс (номер сети) и длина его маски. Номер сети задается в виде IP адреса, длина маски в виде количества единичных бит в ней |
ge ge-value | Диапазон соответствия длины маски для сетей с маской, более длинной, чем указана параметре network/length. Если используется только параметр ge, диапазоном считается от значения ge-value до 32 |
le le-value | Диапазон соответствия длины маски для сетей с маской, более длинной, чем указана параметре network/length. Если используется только параметр le, диапазоном считается от значения length до ge-value |
Параметры ge и le являются не обязательными, и могут быть использованы для определения диапазона длины маски маршрута, в рамках которого будет считаться что маршрут соответствует условию записи листа префиксов. Значения параметров length, ge-value и le-value должны удовлетворять следующему правилу: length<ge-value<le-value<= 32.
Для удаления листа префиксов используется команда no ip prefix-list list-name глобального режима конфигурации.
Команда [no]ip prefix-list list-name description text используется для добавления или удаления текстовых комментариев в лист префиксов.
Если параметры ge и le не указаны, то для выполнения условия записи требуется точное совпадение.
Использование параметров ge и le может показаться запутанным и сложным для понимания. Ниже приведены некоторые практические эксперименты, в результате анализа которых понять возможности использования этих параметров станет легче.
На рисунке 1 приведена топология, которая будет использоваться для демонстрации работы параметров ge и le.
Рисунок 1. Сеть используемая для демонстрации работы параметров ge и le команды ip prefix-list
В начальном состоянии листы префиксов не используются, и маршрутизатор A получил от маршрутизатора B информацию о следующих маршрутах:
172.16.0.0 subnetted: 172.16.10.0/24 172.16.11.0/24
В данном примере мы будем использовать некоторые команды BGP, но детальная информация о работе этих команд для понимания примеров с параметрами команды ip prefix-list не нужна. Важной является следующая информация: маршрутизатор B, изначально обладавший двумя маршрутами с маской /24, суммаризировал их в одну запись 172.16.0.0/16, таким образом у него теперь три маршрута доступных для передачи соседнему маршрутизатору C с IP адресом 10.1.1.1. Какие маршруты реально будут переданы зависит от того как будет использован лист префиксов.
Можно предположить 5 сценариев конфигурации:
router bgp 65000 aggregate-address 172.16.0.0 255.255.0.0 neighbor 10.1.1.1 prefix-list test1 out ip prefix-list test1 permit 172.16.10.0/8 le 24
Если просматривать текущую конфигурацию маршрутизатора с помощью команды show running-config то можно увидеть, что последняя строчка автоматически будет заменена на следующую:
ip prefix-list test permit 172.0.0.0/8 le 24
Это происходит потому что только первые 8 бит IPадреса считаются значимыми при маске /8. В этом случае соседнему маршрутизатору будут переданы все три маршрута: 172.16.0.0/16, 172.16.10.0/24 и 172.16.11.0/24. Все эти маршруты обладают одинаковыми и подходящими первыми 8 битами, и обладают маской водящей в диапазон длин от 8 до 24.
router bgp 65000 aggregate-address 172.16.0.0 255.255.0.0 neighbor 10.1.1.1 prefix-list test2 out ip prefix-list test2 permit 172.16.10.0/8 le 16
В этом случае соседнему маршрутизатору будут передана только один маршрут: 172.16.0.0/16. Только он обладает подходящими первыми 8 битами, и маской водящей в диапазон длин от 8 до 16.
router bgp 65000 aggregate-address 172.16.0.0 255.255.0.0 neighbor 10.1.1.1 prefix-list test3 out ip prefix-list test3 permit 172.16.10.0/8 ge 17
В этом случае соседнему маршрутизатору будут переданы маршруты: 172.16.10.0/24 и 172.16.11.0/24. В этом случае параметр маски /8 будет использоваться только для выделения проверяемых бит IP адреса, и игнорироваться в проверке длины маски, то есть проверка будет происходить на соответствие диапазону масок ge 17 le 32 – от /17 до /32.
router bgp 65000 aggregate-address 172.16.0.0 255.255.0.0 neighbor 10.1.1.1 prefix-list test4 out ip prefix-list test4 permit 172.16.10.0/8 ge 16 le 24
В этом случае соседнему маршрутизатору будут переданы все маршруты: 172.16.0.0/16, 172.16.10.0/24 и 172.16.11.0/24. В этом случае параметр маски /8 будет использоваться только для выделения проверяемых бит IP адреса, и игнорироваться в проверке длины маски, то есть проверка будет происходить на соответствие диапазону масок ge 16 le 24 – от /16 до /24.
router bgp 65000 aggregate-address 172.16.0.0 255.255.0.0 neighbor 10.1.1.1 prefix-list test5 out ip prefix-list test5 permit 172.16.10.0/8 ge 17 le 24
В этом случае соседнему маршрутизатору будут переданы маршруты: 172.16.10.0/24 и 172.16.11.0/24. В этом случае параметр маски /8 будет использоваться только для выделения проверяемых бит IP адреса, и игнорироваться в проверке длины маски, то есть проверка будет происходить на соответствие диапазону масок ge 17 le 24 – от /17 до /24.
Нумерация записей в листах префиксов производится автоматически, если вы не отключите эту возможность. Если вы отключаете автоматическую нумерацию, то при создании каждой записи вам необходимо будет использовать параметр seq seq-value.
Лист префиксов, это отсортированный список. Номер записи является важным параметром, если маршрут может подойти под соответствие нескольким записям в листе префиксов, в этом случае будут выполняться действия, определенные в записи с наименьшим номером из всех, под условие которых подошел этот маршрут.
Проверка на соответствие всегда начинается с записи с наименьшим номером, и далее по списку по порядку возрастания номеров, до тех пор, пока соответствие не будет найдено. При нахождении соответствия маршрут будет или разрешен, или запрещен, в зависимости от того какое действие задано в соответствующей записи листа префиксов – permit или deny.
Независимо от того, используете ли вы нумерацию записей по умолчанию или нет, вам необязательно указывать их номера для того что бы удалить определенный элемент конфигурации.
По умолчанию элементы листа префиксов получат следующие номера: 5, 10, 15 и т.д. Если какой-то из номеров последовательности будет отсутствовать, то новая запись получит не отсутствующий номер, а номер на 5 больше чем максимальный. Таким образом если номер последней записи будет 23, то следующие получат номера: 28, 33, 38 и т.д.
Команда show ip prefix-list в своем выводе отображает последовательные номера всех записей.
Для выключения автоматической нумерации записей листов префиксов используется команда no ip prefix-list sequence-number глобального режима конфигурации. Для ее повторного включения используется команда ip prefix-list sequence-number.
Рассмотрим лист префиксов ip prefix-list filter1 permit 192.168.0.0/16. Какие следующие маршруты будут соответствовать этой записи: 192.168.0.0/16, 192.168.0.0/20, 192.168.2.0/24?
Этой записи будет соответствовать только один маршрут 192.168.0.0/16 потому что как только он успешно удовлетворяет условиям совпадения адреса и маски.
Рассмотрим еще два листа префиксов:
В первом случае под условия соответствия подойдут два маршрута: 192.168.0.0/16 и 192.168.0.0/20, маршрут 192.168.2.0/24 обладает более длинной маской, чем необходимо.
Во втором случае под условия соответствия подойдут так же два маршрута: 192.168.0.0/20 и 192.168.2.0/24, маршрут 192.168.0.0/16 обладает слишком короткой маской.
В качестве еще одного примера можно привести лист префиксов ip prefix-list filter4 0.0.0.0/0. Префиксу «Все нули» соответствуют все сети, но в данном случае параметры ge и le не используются и поэтому необходимо соответствии так же и нулевой маски /0. Под этот лист префиксов подойдет только маршрут по умолчанию.
Если мы используем лист префиксов: ip prefix-list filter5 0.0.0.0/0 ge 32, то ему будут соответствовать любые маршруты с маской /32.
Или же такому листу префиксов: ip prefix-list filter6 0.0.0.0/0 le 32, в свою очередь, будут соответствовать любые маршруты, любая сеть, и любая длина маски.
Если мы хотим выделить все маршруты с маской от /1 до /24, то необходимо использовать такой лист префиксов: ip prefix-list filter7 0.0.0.0/1 le 24.
Рассмотрим сеть, показанную на рисунке 2. Допустим, нам надо ограничить перераспределение маршрутной информации из одного протокола в другой только определенными сетями:
Из домена маршрутизации протокола RIPv2 в домен маршрутизации протокола OSPFv2 необходимо передать информацию только о сетях:
Из домена маршрутизации протокола OSPFv2 в домен маршрутизации протокола RIPv2 необходимо передать информацию только о сетях:
Рисунок 2. Сеть используемая для демонстрации управление перераспределением с помощью листов префиксов
Маршрутизатор R2 обладает следующей конфигурацией:
router ospf 1 network 10.0.0.8 0.0.0.0 area 0 redistribute rip route-map intoOSPF subnets router rip network 10.0.0.0 version 2 passive-interface s0/0/0 redistribute ospf 1 route-map intoRIP metric 5 route-map intoOSPF permit 10 match ip address prefix-list PFX1 route-map intoRIP permit 10 match ip address prefix-list PFX2 ip prefix-list PFX1 permit 10.0.0.0/14 ip prefix-list PFX2 permit 10.8.0.0/14
Маршрутная карта intoOSPF использует лист префиксов PFX1. Таким образом, к перераспределению из RIP в OSPF будут разрешены все сети, входящие в диапазон 10.0.0.0/14 – от 10.0.0.0 до 10.3.0.0, остальные сети будут запрещены данным листом префиксов и не будут перераспределены.
Маршрутная карта intoRIP использует лист префиксов PFX2. Таким образом, к перераспределению из OSPFв RIP будут разрешены все сети, входящие в диапазон 10.8.0.0/14 – от 10.8.0.0 до 10.11.0.0, остальные сети будут запрещены данным листом префиксов и не будут перераспределены.
Обратите внимание на то, что решение о том, будут ли определенные маршруты перераспределены или нет, основывается только на действии permit или deny команды route-map, а не на действии permit или deny команды ip prefix-list. Действие permit или deny команды ip prefix-list влияет только на то, подойдет ли данный маршрут под условие маршрутной карты или нет.
В сетях с резервными путями, использование листов префиксов позволяет исключить возможность возникновения маршрутных петель. Но при этом, как и листы распределения, листы префиксов позволяют полностью фильтровать некоторые маршруты из маршрутных обновлений. Таким образом, некоторые маршрутизаторы в сети не будут знать об альтернативных путях достижения некоторых сетей, поэтому использовать эти технологии в сетях с резервными путями следует с осторожностью.
Основные команды, применяемые для проверки и диагностики листов префиксов, приведены в таблице 2. Используйте справку ip prefix-list ? для получения полной информации о доступных параметрах и их назначении.
Таблица 2 Команды для проверки и диагностики листов префиксов
Параметр | Описание |
show ip prefix-list [detail|summary] | Отображение информации обо всех листах префиксов. Использование параметра detail отображает описание и счетчики для каждой записи в листе префиксов |
show ip prefix-list [detail|summary] prefix-list-name | Отображение записей указанного листа префиксов |
show ip prefix-list prefix-listname [network/length] | Отображение политики, определенной в данном листе префиксов для указанной пары сеть/маска |
show ip prefix-list prefix-listname [seq sequence-number] | Отображение записи с указанным номером данного листа префиксов |
show ip prefix-list prefix-listname [network/length] longer | Отображение всех записей листа префиксов, подходящих и более точных чем указанная пара сеть/маска |
show ip prefix-list prefix-listname [network/length] firstmatch | Отображение первой подходящей под указанную пару сеть/маска записи листа префиксов |
clear ip prefix-list prefix-listname [network/length] | Сброс всех счетчиков для данного листа префиксов |
Ниже приведен пример, демонстрирующий вывод результатов работы команды show ip prefix-list detail. На маршрутизаторе создан один лист префиксов с именем «superonly» с одной записью, обладающей номером 5. Значение «hit count:0» означает что пока еще не было ни одного соответствия для данной записи.
Вывод команды show ip prefix-list detail:
ROUTER#show ip prefix-list detail Prefix-list with the last deletion/insertion: superonly ip prefix-list superonly: Description: only permit supernet count: 1, range entries: 0, sequences: 5 - 5, refcount: 1 seq 5 permit 172.0.0.0/8 (hit count: 0, refcount: 1)
Автор: IDEAcademy
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/cisco/54644
Ссылки в тексте:
[1] Источник: http://habrahabr.ru/post/212049/
Нажмите здесь для печати.