Протокол IP : Протокол BGP

Фильтры префиксов BGP с 4-байтовым количеством AS

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (22 августа 2015) | Отзыв

Введение

Эта статья описывает, как фильтровать префиксы Протокола BGP с 4-байтовыми Номерами автономной системы (AS) в Cisco IOS®.

Внесенный Люком Де Гееном, специалистом службы технической поддержки Cisco.

Общие сведения

Когда пул свободного 2-байтового количества AS стал низким, 4-байтовое количество AS было представлено в BGP. Это означает, что количество AS может теперь составить 2 байта или 4-байтовое количество. RFC 6793 задает 4-байтовое количество AS. 2-байтовое количество AS является количеством между 1 и 65,535. 4-байтовое количество AS является количеством между 1 и 4,294,967,295.

4-байтовое количество AS может быть представлено точечной формой или как простое количество. Пример точечного 4-байтового количества AS 7.52359. Это - AS notaton точка. Пример простого 4-байтового количества 511111. Это - нотация AS asplain. 7.52359 совпадает с 511111.

Маршрутизатор Cisco IOS может использовать любую нотацию AS. По умолчанию в новых версиях Cisco IOS является asplain. Для использования точечной нотации AS bgp asnotation точечная команда может использоваться.

Если по какой-либо причине администратор сети не хочет отсылать префиксы BGP с одним или более 4-байтовым количеством AS в ПУТИ AS к Узлу подключенный по внешнему протоколу bgp (EBGP), то эти префиксы могут быть фильтрованы. Этот документ предоставляет один возможный фильтр для достижения этого. Могло быть несколько причин, почему вы не могли бы хотеть, чтобы динамик BGP отослал префиксы BGP с 4-байтовым количеством AS в ПУТИ AS. Один пример мог быть то, что существует дефект на динамике BGP получения, который приводит к неблагоприятному поведению, которое только происходит для префиксов BGP с 4-байтовым количеством AS в ПУТИ AS.

4-байтовый фильтр количества AS

Примечание: Когда BGP на маршрутизаторе выполняется в режиме точки asnotation, фильтр в этом разделе может только использоваться.

Этот фильтр может отфильтровать префиксы с ПУТЯМИ AS, которые держат одно или более 4-байтового количества AS.

router bgp 1
 bgp asnotation dot
 neighbor 10.1.1.2 remote-as 2

 address-family ipv4
 neighbor 10.1.1.2 activate
 neighbor 10.1.1.2 filter-list 1 out

ip as-path access-list 1 deny .*[0-9]+\.[0-9]+.*
ip as-path access-list 1 permit .*

Вот исследование этого фильтра.

  • [0-9] означает любую цифру.

  • + означает одно или более вхождений. Так [0-9] + означает любое количество, потому что может быть множественный подарок цифр.

  • \. средства. (точка). Наклонная черта влево необходима, чтобы удостовериться, что маршрутизатор не обрабатывает точку как специальный символ, но обрабатывает ее как точку. специальный символ и означает символ match any (подстановочный знак).

  • * означает ноль соответствия или больше preceeding. Так.* средства совпадают с чем-либо.

  • Завершенный фильтр.* [0-9] + \. [0-9] +.* означает что-либо с точкой в нем.

Например:

Маршрутизатор 1 (R1) получает восемь префиксов в BGP. Префикс BGP 10.100.1.1/32 является единственным префиксом с ПУТЕМ AS, который состоит только из 2-байтового количества AS. Все другие префиксы BGP имеют одно или более 4-байтового количества AS в ПУТИ AS.

R1#show bgp ipv4 unicast
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
             r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
             x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network         Next Hop   Metric LocPrf Weight Path
 *> 10.100.1.1/32   10.1.3.4        0            0 4 100 200 300 i
 *> 10.100.1.2/32   10.1.3.4         0            0 4 1.34464 3.3392 4.37856 i
 *> 10.100.1.3/32   10.1.3.4        0            0 4 1.34464 200 4.37856 i
 *> 10.100.1.4/32   10.1.3.4        0            0 4 500 4.37856 600 ?
 *> 10.100.1.5/32   10.1.3.4        0            0 4 7.41248 3200 400 65000 ?
 *> 10.100.1.6/32   10.1.3.4        0            0 4 50 3200 400 9.60176 ?
 *> 10.100.1.7/32   10.1.3.4        0            0 4 66 1.57464 77 5.17320 99 ?
 *> 10.100.1.8/32   10.1.3.4        0            0 4 7.52359 99 66 99 5.18307
3.37515 99 66 3.37515 99 ?

R1 объявляет только префиксы без любого 4-байтового количества AS в ПУТИ AS к Одноранговому соединению по протоколу BGP 10.1.1.2.

R1#show bgp ipv4 unicast neighbors 10.1.1.2 advertised-routes 
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
             r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
             x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network         Next Hop           Metric LocPrf Weight Path
 *> 10.100.1.1/32   10.1.3.4                0            0 4 100 200 300 i

Total number of prefixes 1

Можно проверить что фильтр.* [0-9] + \. [0-9] +.* фильтрует от таблицы BGP с командой show ip bgp regexp:

R1#show ip bgp regexp .*[0-9]+\.[0-9]+.*
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
             r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
             x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network         Next Hop    Metric LocPrf Weight Path
 *> 10.100.1.2/32   10.1.3.4        0            0 4 1.34464 3.3392 4.37856 i
 *> 10.100.1.3/32   10.1.3.4        0            0 4 1.34464 200 4.37856 i
 *> 10.100.1.4/32   10.1.3.4         0            0 4 500 4.37856 600 ?
 *> 10.100.1.5/32   10.1.3.4         0            0 4 7.41248 3200 400 65000 ?
 *> 10.100.1.6/32   10.1.3.4         0            0 4 50 3200 400 9.60176 ?
 *> 10.100.1.7/32   10.1.3.4         0            0 4 66 1.57464 77 5.17320 99 ?
 *> 10.100.1.8/32   10.1.3.4         0            0 4 7.52359 99 66 99 5.18307
3.37515 99 66 3.37515 99 ?

Фильтр.* [0-9] + \. [0-9] +.* отфильтровывает все префиксы с одним или более 4-байтовым количеством AS в Атрибуте пути AS.

Вот другой способ проверить то, что фильтр фактически фильтрует от таблицы BGP:

R1#show bgp ipv4 unicast filter-list 1
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
             r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
             x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network         Next Hop           Metric LocPrf Weight Path
 *> 10.100.1.1/32   10.1.3.4                0            0 4 100 200 300 i

R2 получил только префикс 10.100.1.1/32 от R1 из-за фильтра.

R2#show bgp ipv4 unicast 
BGP table version is 6, local router ID is 10.1.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
             r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
             x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network         Next Hop           Metric LocPrf Weight Path
 *> 10.100.1.1/32   10.1.1.1                              0 1 4 100 200 300 i

Альтернативная конфигурация

Альтернативная конфигурация должна использовать route-map вместо filter-list:

router bgp 1
 bgp asnotation dot
 neighbor 10.1.1.2 remote-as 2

 address-family ipv4
 neighbor 10.1.1.2 route-map no-4byte out

ip as-path access-list 1 deny .*[0-9]+\.[0-9]+.*
ip as-path access-list 1 permit .*

route-map no-4byte permit 10
 match as-path 1

Режим Asplain

Когда bgp asnotiation точечная команда удален, что означает, что asnotation является asplain, выходные данные больше не показывают точки в 4-байтовом количестве AS. Эти выходные данные совпадают с ранее показанный, за исключением того, что точечное количество AS теперь asplain.

R1#show bgp ipv4 unicast                                     
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
             r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
             x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network         Next Hop   Metric LocPrf Weight Path
 *> 10.100.1.1/32   10.1.3.4        0            0 4 100 200 300 i
 *> 10.100.1.2/32   10.1.3.4         0            0 4 100000 200000 300000 i
 *> 10.100.1.3/32   10.1.3.4         0            0 4 100000 200 300000 i
 *> 10.100.1.4/32   10.1.3.4         0            0 4 500 300000 600 ?
 *> 10.100.1.5/32   10.1.3.4         0            0 4 500000 3200 400 65000 ?
 *> 10.100.1.6/32   10.1.3.4         0            0 4 50 3200 400 650000 ?
 *> 10.100.1.7/32   10.1.3.4         0            0 4 66 123000 77 345000 99 ?
 *> 10.100.1.8/32   10.1.3.4         0            0 4 511111 99 66 99 345987
234123 99 66 234123 99 ?

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

R1#show ip bgp regexp .*[0-9]+\.[0-9]+.*                     
R1#

Команда показа BGP с filter-list также показывает, что фильтр не работает, в то время как маршрутизатор находится в asplain режиме:

R1#show bgp ipv4 unicast filter-list 1
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
             r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
             x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network         Next Hop   Metric LocPrf Weight Path
 *> 10.100.1.1/32   10.1.3.4        0            0 4 100 200 300 i
 *> 10.100.1.2/32   10.1.3.4         0            0 4 100000 200000 300000 i
 *> 10.100.1.3/32   10.1.3.4         0            0 4 100000 200 300000 i
 *> 10.100.1.4/32   10.1.3.4         0            0 4 500 300000 600 ?
 *> 10.100.1.5/32   10.1.3.4         0            0 4 500000 3200 400 65000 ?
 *> 10.100.1.6/32   10.1.3.4         0            0 4 50 3200 400 650000 ?
 *> 10.100.1.7/32   10.1.3.4         0            0 4 66 123000 77 345000 99 ?
 *> 10.100.1.8/32   10.1.3.4         0            0 4 511111 99 66 99 65509 56
100000 ?

Фильтр as-path не будет работать:

R1#show bgp ipv4 unicast neighbors 10.1.1.2 advertised-routes 
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
             r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
             x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network         Next Hop    Metric LocPrf Weight Path
 *> 10.100.1.1/32   10.1.3.4        0            0 4 100 200 300 i
 *> 10.100.1.2/32   10.1.3.4         0            0 4 100000 200000 300000 i
 *> 10.100.1.3/32   10.1.3.4         0            0 4 100000 200 300000 i
 *> 10.100.1.4/32   10.1.3.4         0            0 4 500 300000 600 ?
 *> 10.100.1.5/32   10.1.3.4         0            0 4 500000 3200 400 65000 ?
 *> 10.100.1.6/32   10.1.3.4         0            0 4 50 3200 400 650000 ?
 *> 10.100.1.7/32   10.1.3.4         0            0 4 66 123000 77 345000 99 ?
 *> 10.100.1.8/32   10.1.3.4         0            0 4 511111 99 66 99 65509 56
100000 ?
    Network         Next Hop           Metric LocPrf Weight Path

Total number of prefixes 8

Фильтр для режима Asplain

Когда BGP на маршрутизаторе выполняется в asplain режиме, этот фильтр может использоваться:

ip as-path access-list 4 deny _6553[6-9]_
ip as-path access-list 4 deny _655[4-9][0-9]_
ip as-path access-list 4 deny _65[6-9][0-9][0-9]_
ip as-path access-list 4 deny _[6][6-9][0-9][0-9][0-9]_
ip as-path access-list 4 deny _[7-9][0-9][0-9][0-9][0-9]_
ip as-path access-list 4 deny _[1-9][0-9][0-9][0-9][0-9][0-9]+_
ip as-path access-list 4 permit .*

Или, вот то же, но более компактный:

ip as-path access-list 4 deny _(6553[6-9]|655[4-9][0-9]|65[6-9][0-9][0-9]|6[6-9]
[0-9][0-9][0-9]|[7-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9][0-9]+)_
ip as-path access-list 4 permit .*

Из-за этого фильтра фильтровано любое количество AS выше, чем 65,535. Снова, это может быть применено к Соседнему BGP узел при использовании filter-list или route-map.

Примечание: Просачивание этой статьи не работает на Внутренний BGP (iBGP) сеанс, который включает на Рефлекторе маршрута.


Связанные обсуждения сообщества поддержки Cisco

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


Document ID: 118700