IP : Border Gateway Protocol (BGP)

O BGP prefixa filtros com o 4-byte COMO números

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback

Introdução

Este artigo descreve como filtrar prefixos do Border Gateway Protocol (BGP) com os números de sistema autônomo (AS) 4-byte no ® do Cisco IOS.

Contribuído por Luc De Ghein, engenheiro de TAC da Cisco.

Informações de Apoio

4-byte COMO números foram introduzidos no BGP quando o pool de 2-byte livre COMO números se tornou baixo. Isto significa que ENQUANTO o número pode agora ser um 2-byte ou um número 4-byte. O RFC 6793 especifica 4-byte COMO números. Um 2-byte COMO o número é um número entre 1 e 65,535. Um 4-byte COMO o número é um número entre 1 e 4,294,967,295.

O 4-byte COMO o número pode ser representado em uma forma pontilhada ou como um número liso. Um exemplo de um 4-byte pontilhado COMO o número é 7.52359. Isto é COMO o ponto do notaton. Um exemplo de um número 4-byte liso é 511111. Isto é COMO o asplain da notação. 7.52359 são os mesmos que 511111.

Um roteador do Cisco IOS pode usar o um ou outro COMO a notação. O padrão nas versões do Cisco IOS as mais recentes é asplain. A fim usar pontilhado COMO a notação, o comando de ponto do asnotation BGP pode ser usado.

Se por qualquer razão o administrador de rede não quer mandar prefixos BGP com uns ou vários 4-byte COMO números no AS PATH para um external bgp (ebgp) peer, a seguir estes prefixos podem ser filtrados. Este documento fornece um filtro possível para conseguir este. Poderia haver algumas razões pelas quais você não pôde querer um auto-falante de BGP mandar prefixos BGP com o 4-byte COMO números no AS PATH. Um exemplo poderia ser que há um defeito no auto-falante de BGP de recepção que conduz ao comportamento adverso, que ocorre somente para prefixos BGP com o 4-byte COMO números no AS PATH.

4-byte COMO o filtro do número

Nota: O filtro nesta seção pode somente ser usado quando o BGP no roteador é executado no modo do ponto do asnotation.

Este filtro pode filtrar para fora prefixos com COMO OS PATH que guardam uns ou vários 4-byte COMO números.

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 .*

Está aqui um exame deste filtro.

  • [0-9] significa todo o dígito.

  • + significa umas ou várias ocorrências. Assim [0-9]+ significa todo o número, porque pode haver uns dígitos múltiplos atuais.

  • \. significa. (ponto). O corte traseiro é precisado a fim certificar-se que o roteador não trata o ponto como um caractere especial mas o trata como um ponto. O . é um caractere especial e significa o fósforo todo o caráter (o convite).

  • * significa o fósforo zero ou mais da precedência. Assim. * significa o fósforo qualquer coisa.

  • O filtro completo .*[0-9]+\.[0-9]+.* significa qualquer coisa com um ponto nele.

Aqui está um exemplo:

O roteador1 (r1) recebe oito prefixos no BGP. O prefixo 10.100.1.1/32 BGP é o único prefixo com um AS PATH que consista somente em 2-byte COMO números. Todos os outros prefixos BGP têm uns ou vários 4-byte COMO o número no AS PATH.

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 ?

O r1 anuncia somente os prefixos sem nenhum 4-byte COMO o número no AS PATH para o bgp peer 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

Você pode verificar o que o filtro .*[0-9]+\.[0-9]+.* filtra da tabela de BGP com o comando 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 ?

O filtro .*[0-9]+\.[0-9]+.* filtra para fora todos os prefixos com uns ou vários 4-byte COMO o número no atributo AS PATH.

Está aqui uma outra maneira de verificar o que o filtro filtra realmente da tabela de 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

O R2 recebeu somente o prefixo 10.100.1.1/32 do r1 devido ao filtro.

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

Configuração alternada

Uma configuração alternada é usar um mapa de rotas em vez de uma lista de filtros:

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

Modo de Asplain

Quando o comando de ponto do asnotiation BGP é removido, que significa que o asnotation é asplain, a saída já não mostra os pontos no 4-byte COMO números. Esta saída é a mesma que mostrada previamente, salvo que pontilhados COMO números são agora 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 ?

O comando show BGP com a expressão regular usada no filtro no roteador não filtra para fora os prefixos com um ponto na tabela de BGP, porque há já não uns prefixos com o 4-byte pontilhado COMO o formato de número na tabela de BGP. Os 4-byte COMO números estão agora no formato do asplain.

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

O comando show BGP com a lista de filtros igualmente mostra que o filtro não funciona quando o roteador reagir do modo do 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 ?

O filtro como-PATH não funcionará:

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

Filtro para o modo de Asplain

Este filtro pode ser usado quando o BGP no roteador é executado no modo do 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 .*

Ou, está aqui o mesmo, mas mais o estojo compacto:

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 .*

Devido a este filtro, algum COMO o número mais altamente de 65,535 é filtrado. Além disso, isto pode ser aplicado ao vizinho de BGP se você usa uma lista de filtros ou um mapa de rotas.

Nota: A filtração neste artigo não trabalha em uma sessão do Internal BGP (iBGP), que inclua em um refletor de rota.


Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Document ID: 118700