Donnerstag, 16. November 2017

Фильтрация маршрутов EIGRP (OSPF)

Иногда возникает необходимость распространять не все маршруты сети во все её сегменты. Либо если отдельный сегмент находится под управлением другого администратора, при этом AS у вас общая и вы не хотите чтобы сторонний администратор наводнил вашу сеть ненужными вам маршрутами, а ещё хуже маршрутами на сети, которые совпадают с вашими.
Для предотвращения распространения маршрутной информации об определенной сети в EIGRP используется distribute-list. Входящие или исходящие обновления EIGRP могут фильтроваться на любом интерфейсе или для всего процесса EIGRP.

Входящий фильтр не позволяет указанным сетям попасть в таблицу топологии EIGRP и, соответственно, в таблицу маршрутизации:
SWG1(config-router)# distribute-list <acl | gateway | prefix | route-map> <in|out> [interface]
Как видно из примера, интересующие вас сети могут попасть в distribute-list через:
  • списки контроля доступа (ACL)
  • списки IP префиксов (IP prefix list)
  • route-map-ы

Фильтрация с помощью ACL

Создается список контроля доступа в котором условия permit пропускают маршруты, а условия deny фильтруют их. Например distribute-list со следующий ACL будет распространять или получать (в зависимости он направления) только две сети:
ip access-list standard acl-EIGRP-IN
 permit 10.10.52.0 0.0.0.255
 permit 10.10.0.1 0.0.0.1
Все остальные сети будут фильтроваться (не забываем о сроке deny any в конце каждого ACL).
Чтобы запретить к распространению две эти сети, а остальное разрешить создать, например, такой ACL:
ip access-list standard acl-EIGRP-IN
 deny 10.10.52.0 0.0.0.255
 deny 10.10.0.1 0.0.0.1
 permit any

Фильтрация с помощью IP Prefix Lists

IP Prefix Lists позволяют производить фильтрацию как по длине, так и по значению префикса. IP Prefix Lists схожи с ACL они могут быть нумерованными и именованными, состоять из одного или нескольких правил и содержать строки permit и deny.
Синтаксис следующий:
ip prefix-list list-name [seq seq-value] {deny | permit prefix/prefixlength}[ge ge-value] [le le-value]
Prefix List сработает если:
  1. Префикс маршрута находится в диапазоне, указанном в части prefix/prefixlength;
  2. Длина префикса (маска) должна быть в диапазоне от ge-value до le-value.
Если первая часть совпала, то далее, в зависимости от опциональных параметров ge и le, будет проведена фильтрация по длине префикса. Правила таковы:
  1. Если нет опциональных параметров, то фильтруется маршрут с длиной префикса, указанной в поле prefix/prefixlength;
  2. Если есть и ge, и le - фильтруются маршруты, длина которых находится в диапазоне от ge до le включительно;
  3. Если есть только ge - фильтруются маршруты с длиной от ge до 32;
  4. Если есть только le - фильтруются маршруты с длиной от prefix/prefixlength до le.
Иными словами:
Если после указания адреса в строке prefix-list не указывать ge или le, то считается, что маршрут должен в точности совпадать с объявленным в строке. То есть запись:
ip prefix-list acl-EIGRP-IN seq 10 deny 10.10.10.8/29
идентична записи
ip prefix-list acl-EIGRP-IN seq 10 deny 10.10.10.8/29 ge 29 le 29
Кроме того, IOS не позволит создать заведомо ложную запись в prefix-list, например в которой число ge больше числа le, или le или ge меньше маски (prefix-length <= ge-value <= le-value).
В списке должна быть хотя бы одна строка с разрешением, иначе передача информации о всех маршрутах будет блокироваться подразумевающимся в конце списка запретом.

Фильтрация с помощью Route Map

Логика работы route-map следующая:
  • Если route-map используется с опцией permit, то маршрут или проходит фильтр (в случае совпадение с параметрами команды match), или передается следующему route-map
  • Если route-map используется с опцией deny, то маршрут или фильтруется (в случае совпадение с параметрами команды match), или передается следующему route-map
  • Если параметр match использует ACL или perfix-list, и в одном из них маршрут совпадает со строкой с опцией deny, то маршрут просто передается на обработку следующей в route-map строке
  • Route-map подразумевает запрет всех маршрутов в конце списка, поэтому, чтобы разрешить все маршруты, кроме отфильтрованных ранее, необходимо прописывать строку permit без команды match
Все три способа фильтрации имеют свои плюсы и минусы, все вполне применимы в жизни. Я пользовался только фильтрацией с помощью ACL. Мне данного функционала хватало.
router eigrp 100
 distribute-list acl-EIGRP-IN in GigabitEthernet0/1.215
 distribute-list acl-EIGRP-OUT out GigabitEthernet0/1.215
Команды фильтрации в OSPF выглядят точно также.

Keine Kommentare:

Kommentar veröffentlichen