Prefix-List

Материал из Cisco CCNP
Перейти к навигации Перейти к поиску

Инструмент prefix-list очень мощное средство для выполнения фильтрации маршрутов. Используется для фильтрации на основе префикса и его длины. По своим возможностям очень похож на Extended ACL. Первая часть проверяет сеть (0.0.0.0/0), вторая - маску (ge 15, к примеру). Обычный синтаксис выглядит так:

ip prefix-list LIST permit w.x.y.z/len

Где w.x.y.z - точный префикс, а len - точная длина префикса.

ip prefix-list LIST permit 1.2.3.0/24 точное совпадение префикса 1.2.3.0 с маской подсети 255.255.255.0. 1.2.0.0/24 не попадает под это правило, и 1.2.3.4/32 тоже. Т.е. если в обновлении присутствует именно сеть 1.2.3.0/24, то она будет разрешена.

При использовании ключевых слов GE и LE в префикс-листах мы можем изменять значение len. Т.е. при использовании этих операторов задаётся значение того, сколько бит проверяется, начиная с наиболее старшего (т.е. левого, significant (leftmost))бита.

ip prefix-list LIST permit 1.2.3.0/24 le 32

Значит: проверить первые 24 бита префикса 1.2.3.0. Маска подсети должна быть меньше или равна (<=) 32.

Эквивалентная запись в виде ACL:

access-list 1 permit 1.2.3.0 0.0.0.255

ip prefix-list LIST permit 0.0.0.0/0 le 32

Означает: проверяем первые 0 бит префикса 0.0.0.0. Маска должна быть меньше или равна 32. Это эквивалентно любой записи.

ip prefix-list TEST permit 0.0.0.0/1 ge 24 le 24

Первый бит должен равняться 0 т.е. первый октет будет находится в диапазоне:

  • от 00000000 = 0
  • до 01111111 = 127

остальные могу применять любое значение. ge 24 le 24 - говорит нам что маска должна быть не больше и не меньше 24, другими словами маска должна быть жестко равна 24м. В итоге получаем список сетей которые разрешит данный prefix-list: 0.0.0.0/24 - 127.255.255.0/24

ip prefix-list LIST permit 0.0.0.0/0

Означает: Точный префикс 0.0.0.0, с точной длиной 0. Т.е. дефолтный маршрут. Разберём его получше.

ip prefix-list LIST permit 10.0.0.0/8 ge 21 le 29

Означает: Проверить первые 8 бит 10.0.0.0. Маска подсети должна быть больше-равно 21 и меньше-равно 29.

ip prefix-list CLASS_A permit 0.0.0.0/1 ge 8 le 8

Эта запись означает все адреса класса А с классовой маской (например, 10.0.0.0, 11.0.0.0). Проверяется первый бит префикса, он должен быть 0. Маска подсети должна быть больше или равна 8 и меньше или равна 8. То есть точно 8.

При использовании GE и LE должно удовлетворяться условие

Len < GE <= LE

Т.е. “ip prefix-list LIST permit 1.2.3.0/24 ge 8″ - некорректная запись листа.

Что нельзя проверить с помощью префикс-листов. Ну, нельзя проверить, например, чётный или нечётный номер, или что номер делиться на 15 и.т.п.

При использовании в distibute-list нужно помнить о правиле implicit deny.

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

ip prefix-list EIGRP_OUT seq 5 deny 172.16.133.0/24
ip prefix-list EIGRP_OUT seq 10 permit 0.0.0.0/0 le 32