Разрешение и запрещение маршрутов в Internet

После идентификации маршрута над ним можно провести определенные действия. Маршрут, в зависимости от заданных для соединения правил фильтрации, может быть либо разрешен, либо отвергнут. Критерии для разрешения или запрещения передачи трафика по определенному маршруту зависят от правил маршрутизации, принятых для конкретной AS. Если маршрут разрешен для передачи трафика, то он либо принимается "как есть", либо его атрибуты подвергаются модификации. Не все атрибуты маршрута могут быть модифицированы. Это зависит от атрибутов. Если маршрут оказывается запрещенным, то он просто отвергается без какой-либо последующей обработки.

Управление  атрибутами

Если маршрут разрешен, то его атрибуты можно изменять в порядке влияния на процесс принятия решения маршрутизатором. В предыдущих разделах вы уже видели, каким образом такие атрибуты, как Local Preference и MED, могут быть дополнены или изменять свою длину для предпочтения одного маршрута другому. Как вы увидите позже, управление атрибутами является мощным рычагом, с помощью которого можно формировать правила маршрутизации, распределять нагрузку и влиять на симметрию маршрутов.

На рис. 6.26 представлена схема применения различных критериев к набору маршрутов с целью их фильтрации и модификации их атрибутов.

Заметим, что в каждом случае могут применяться один или несколько критериев.

Маршрут может проверяться по префиксу и по атрибуту AS_PATH. Например, для того, чтобы была разрешена работа по нему, он должен соответствовать всем заданным критериям.

Отметим  также,  что  после  совпадений  всех  критериев  для  маршрута  сравнение

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

Рис. 6.26. Пример фильтрации маршрутов и управления их атрибутами

Односимвольные  выражения

В односимвольных выражениях маршрутная информация сравнивается с одним символом. Нормальное односимвольное выражение вида 3 осуществляет сравнение с символом 3 в строке ввода. Имеется возможность задания диапазона одиночных символов, с которыми должно проводиться сравнение. Диапазоны таких символов заключаются в квадратные скобки ([]). Порядок расположения символов внутри диапазона не имеет значения. Например, нормальное выражение, состоящее из диапазона символов [efghEFGH], будет проверяться на совпадение с любым  символом из заданного  диапазона. Так, при задании строк, содержащих "hello" и "there", выясняется, что обе они соответствуют нормальному выражению, так как содержат символ е.

Диапазоны символов ограничиваются конечной точкой диапазона. Например, можно

задавать диапазоны [a-zl и [0-9], которые охватывают все маленькие буквы от а до z и все цифры от 0 до 9, соответственно.

Задавая  знак  вставки  (Л)  в  начале  диапазона,  можно  отменять  или  отрицать соответствие той или иной записи правил фильтрации. Так, например, диапазон [^a-dA-D]

будет проверяться на соответствие любым символам, кроме а, Ь, с, d, А, В, С и D. Некоторые символы, такие как знак доллара $ и знак подчеркивания _, имеют специальное назначение (табл. 6.4).

Чтобы специальные символы воспринимались как часть вводимой строки, ставьте

перед ними обратный слеш (\). Например, диапазон [abc\$] будет означать, что анализу подвергаются строки, содержащие символы а, Ь, с и $. В табл. 6.4 представлены специальные символы, применяемые в нормальных выражениях.

Таблица 6.4. Cneциальные символы для нормальных выражений

Название символа  Символ         Специальное значение

Точка

Звездочка Знак плюс Знак вопроса Знак вставки

Знак доллара Подчеркивание

Квадратные скобки Дефис

.

*

+

?

^

$

_

[диапазон]

Соответствует всем символам, включая пробел

Соответствует 0 и более выражений Соответствует 1 или более выражений

Соответствует 0 или более встречающихся выражений Соответствует началу строки. Также используется для инвертирования выражения, если используется внутри диапазона символов — например [^диапазон] Соответствует концу строки

Соответствует точке (.), правой ({) и левой (})

фигурным скобкам, а также правой и левой обычным скобкам, символам начала и конца строки или пробелу Определяет диапазон символов в выражении  Разделяет конечные точки диапазона

Многосимвольные  выражения

Многосимвольные нормальные выражения представляют собой упорядоченную последовательность односимвольных выражений. Выражение может быть комбинацией букв, цифр, других символов и символов специального назначения. Ниже приведен пример нормального многосимвольного выражения: 100 1[0-9]. Это выражение анализируется на соответствие строке, в которой имеется последовательность- 100, затем пробел, затем 1 и любая цифра от 0 до 9. Таким образом, нормальному выражению будут соответствовать любые из строк: 123 100 10 11, 100 19 или 19 100 11 200 и т. д.

Создание комплексных нормальных выражений

Для создания комплексных нормальных выражений широко используются специальные символы, представленные в табл. 6.4. Знаки вставки (^) и доллара ($) используются для обозначения начала и конца строки. Другие символы, такие как звездочка (*), знак плюс (+) и знак вопроса (?), позволяют повторять определенные символы внутри нормального выражения.

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

а* эквивалентно любому из выражений вида: (пусто), а, аа. ааа, аааа и т.д.

В следующем примере показано, что в строке должна присутствовать хотя бы одна

буква а:

а+ эквивалентно выражениям а, аа, ааа, аааа и т.д.

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

ba?b эквивалентно выражениям bb или bab.

Для повторения записи в многосимвольном выражении оно заключается в круглые скобки. Например, выражение (ab)+ эквивалентно ab или abab.

Символ подчеркивания (_) соответствует символам начала (Л) и конца ($) строки, символам скобок, пробелу, квадратным скобкам, точке или самому себе. Символ точки (.) соответствует одиночному символу, включая простой пробел. На рис. 6.27, в табл. 6.5 и 6.6 показано, как символы могут сопрягаться друг с другом при создании нормального выражения.

Давайте рассмотрим топологию сети, представленную на рис. 6.27. Автономные системы AS400, AS300, AS200, AS100 и AS50 генерируют маршруты в сети А, В, С, D и Е, соответственно. Маршрутизатор RTA в AS50 получает сведения обо всех маршрутах в эти сети от соседних систем — AS 100 и AS300. После инициализации процесса принятия решения в BGP маршрутизатор RTA подбирает наилучший маршрут к этим сетям согласно табл. 6.5.

Рис. 6.27. Пример топологии сети для создания комплексного нормального выражения

Таблица 6.5. Выбор наилучшего BGP-маршрута для маршрутизатора RTA

Сеть                        Значение AS_PATH

Сеть А Сеть В Сеть С Сеть D Сеть Е

300, 400

300

100, 200

100

нет

В  табл.  6.6  представлены  нормальные  выражения,  которые  можно  было  бы использовать при фильтрации маршрутов, объявляемых маршрутизатором RTA для NAP.

Таблица 6.6. Выражения и результаты их воздействия

Маршруты, объявляемые в

NAP маршрутизатором RTA

Выражение          Маршрутная

информация

Результат воздействия

Только локальные маршруты Все маршруты

Маршруты, сгенерированные непосредственно клиентами

Маршруты из сетей клиентов и их клиентов

Маршруты, сгенерированные

AS200

Маршруты, прошедшие через

AS100

^$

.*

^300$^100$

^300_^100_

_200$

_100_

Нет

Все маршруты

300

100

300 400 300

100 200 100

100 200

100 200 100

Сеть Е

Сеть А, Сеть В, Сеть С, Сеть D, Сеть Е

Сеть В, Сеть D

Сеть А, Сеть В, Сеть С Сеть D

Сеть С

Сеть С, Сеть D

Выражение типа ^$ указывает на пустой список маршрутов, в котором находятся только локальные маршруты. {Вспомните о том, что мы говорили о номере локальной AS при объявлении маршрутов по EBGP. Он не включается в список, т.е. равен нулю). Символы ^ и $ определяют лишь границы пустой строки. Знак подчеркивания в выражении _200$ ограничивает номер AS, т.е. номер AS должен быть точно 200, а не 1200 или 2200.

Фильтрация на основе сведений, заключенных в атрибуте AS_PATH, является исключительно эффективной, так как она одновременно выполняется над всеми маршрутами в AS PATH.  Если бы не  было подобного типа  фильтрации, то пришлось бы отдельно задавать тысячи маршрутов или становиться членом уже идентифицированного сообщества BGP.

Группы узлов

Группа узлов BGP (peer group) — это труппа соседних BGP-узлов, в которых используется один набор правил маршрутизации. Вместо того чтобы определять правила для каждого отдельного  узла, вы можете задать групповое имя и назначить правила  группе узлов. Например, администратор, устанавливая правила маршрутизации для взаимодействующих узлов, к большинству из них может применить один и тот же набор правил, следовательно, он может задать эти правила группе узлов, что избавит его от необходимости задания одних и тех же правил каждому узлу в отдельности.

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

На рис. 6.28 показан маршрутизатор RTA с тремя узлами, которые имеют те же внутренние правила маршрутизации, что и RTA. Существует еще три внешних узла, которые также имеют одинаковые правила маршрутизации. Таким образом, при конфигурации маршрутизатора RTA задается две группы узлов — одна внутри AS и одна вне AS. Каждая группа узлов содержит набор правил, который действителен в отношении RTA и определяет порядок его взаимодействия с другими узлами. Эти правила могут представлять собой фильтры на основе набора префиксов IP или фильтры на основе атрибута AS_PATH. Возможны и другие манипуляции с атрибутами. После определения групп узлов все эти правила применяются к узлам, составляющим группы.

Рис. 6.28. Организация групп узлов

Одно время в Cisco IOS имелись ограничения по работе соседних EBGP-узлов в составе группы узлов. Однако в последующих модификациях эти ограничения были устранены. Так что теперь мы не будем останавливаться на них. Но следует помнить о том, что, если вы пользуетесь старыми версиями IOS, то можете встретиться с подобными ограничениями. Обратитесь к документации на имеющуюся у вас версию Cisco IOS, чтобы прояснить эти вопросы.

Исключение из группы узлов

Исключение узла или узлов из группы происходит, когда один или несколько узлов используют правила маршрутизации,  отличающиеся  от правил,  заданных для группы. В дополнение к набору правил, действующих внутри группы, можно добавлять другие правила для отдельных узлов. Рассмотрим случай, представленный на рис. 6.28, когда маршрутизатору RTA требуется задать набор правил для взаимодействия с маршрутизатором RTB. На маршрутизаторе RTA можно использовать дополнительные фильтры в направлении RTB, сохраняя при этом маршрутизатор RTB в группе внешних узлов.

См. в главе 11 раздел Труппы взаимодействующих узлов"

Источник: Сэм Хелеби, Денни Мак-Ферсон, Принципы маршрутизации в Internet, 2-е  издание.  : Пер. с англ. М. : Издательский дом «Вильямс», 2001. — 448 с. : ил. — Парал. тит. англ.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100