Inhoud

Inleiding

Achtergrondinformatie

4-bits AS-nummerfilter

Alternatieve configuratie

Streepjesmodus

Filter voor splitsingsmodus

Inleiding

Dit artikel beschrijft hoe u Border Gateway Protocol (BGP) prefixes kunt filteren met 4-poorts Autonomous System (AS) getallen in Cisco IOS®.

Achtergrondinformatie

4-byte AS-nummers werden in BGP geïntroduceerd toen de pool van gratis 2-byte AS-nummers laag werd. Dit betekent dat een AS-nummer nu een 2-byte- of 4-byte-nummer kan zijn. RFC 6793 specificeert 4-byte AS-nummers. Een AS-nummer van 2 bytes is een getal tussen 1 en 65.535. Een AS-nummer van 4 bytes is een getal tussen 1 en 4.294.967.295.

Het 4-byte AS-nummer kan op gestileerde wijze of als gewoon nummer worden weergegeven. Een voorbeeld van een 4-byte AS-nummer met punten is 7.52359. Dit is de AS notatie dot. Een voorbeeld van een gewoon 4-byte-nummer is 511111. Dit is de AS notatie asprong. 7,52359 is gelijk aan 511111.

Een Cisco IOS router kan een van beide als notatie gebruiken. De standaard in de meest recente Cisco IOS-versies is duidelijk. Om de gestippelde AS notatie te gebruiken, kan de opdracht van de bgp asnotatiedot worden gebruikt.

Als de netwerkbeheerder om welke reden dan ook BGP-prefixes met een of meer 4-bytes AS-nummers in het AS PATH naar een extern BGP (eBGP) peer niet wil verzenden, kunnen deze prefixes worden gefilterd. Dit document biedt één mogelijk filter om dit te bereiken. Er kunnen een paar redenen zijn waarom je niet wilt dat een BGP-spreker BGP-prefixes met 4-byte AS-nummers in de AS-PATH verstuurt. Een voorbeeld kan zijn dat er een defect is aan de ontvangende BGP-spreker dat leidt tot slecht gedrag, wat alleen voorkomt voor BGP-prefixes met 4-byte AS-nummers in de AS-PATH.

4-bits AS-nummerfilter

Opmerking: Het filter in deze sectie kan alleen worden gebruikt wanneer BGP op de router in de modus van de disnotatiepunt draait.

Dit filter kan prefixes met AS-PADS filteren die een of meer 4-bytes AS-getallen bevatten.

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

Dit filter wordt onderzocht.

- [0-9]: elk cijfer.

- De + betekent één of meer voorvallen. Dus [0-9]+ betekent elk getal, omdat er meerdere cijfers aanwezig kunnen zijn.

- \. betekent het . (punt). De backslash is nodig om er zeker van te zijn dat de router de punt niet als een speciaal teken behandelt, maar het als een stip behandelt. De. Dit is een speciaal teken dat gelijk is aan elk teken (de wildkaart).

- De * betekent gelijk aan nul of meer van de voorgaande waarden. Dus, .* betekent alles vergelijken.

- Het volledige filter .*[0-9]+\.[0-9]+.* betekent iets met een stip erin.

Hierna volgt een voorbeeld:

router 1 (R1) ontvangt acht prefixes in BGP. Het voorvoegsel BGP 10.100.1.1/32 is het enige voorvoegsel met een AS PATH dat uit slechts 2-byte AS getallen bestaat. Alle andere BGP-prefixes hebben een of meer van 4-bytes AS-nummer in het AS-PAD.

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 adverteert alleen de prefixes zonder een 4-byte AS-nummer in het AS PATH naar de 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

U kunt verifiëren wat het filter .*[0-9]+\.[0-9]+.* filters uit de BGP-tabel met de opdracht 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 ?

Het filter .*[0-9]+\.[0-9]+.* filtert alle prefixes uit met een of meer 4-byte AS-nummer in het AS PATH-kenmerk.

Hier is een andere manier om te controleren wat het filter feitelijk uit de BGP-tabel filtert:

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 heeft vanwege het filter alleen het voorvoegsel 10.100.1.1/32 van R1 ontvangen.

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

Alternatieve configuratie

Een alternatieve configuratie is het gebruiken van een routekaart in plaats van een filter-lijst:

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

Streepjesmodus

Wanneer de opdracht bgp-toerekeningsstip is verwijderd, wat betekent dat de aantekening juist is, wordt de uitvoer niet langer weergegeven in de 4-byte AS-nummers. Deze uitvoer is hetzelfde als eerder weergegeven, behalve dat de punten met de AS-nummers nu duidelijk zijn.

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 ?

De BGP toont opdracht met de reguliere expressie die in het filter op de router wordt gebruikt, filtert de prefixes met een stip in de BGP-tabel niet uit, omdat er niet langer prefixes zijn met het 4-byte AS-nummerformaat in de BGP-tabel. De 4-byte AS-nummers bevinden zich nu in onbewerkte indeling.

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

R1#

De BGP toont opdracht met de filter-lijst toont ook aan dat het filter niet werkt terwijl de router in onduidelijke modus staat:

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 ?

Het as-pad filter werkt niet:

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

Filter voor splitsingsmodus

Dit filter kan worden gebruikt wanneer BGP op de router in onbewerkte modus loopt:

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

Of hier is hetzelfde, maar meer compact:

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

Door dit filter wordt een AS-nummer van meer dan 65.535 gefilterd. Opnieuw, kan dit op de BGP buurman worden toegepast als u een filter-lijst of een route-kaart gebruikt.

Opmerking: Het filteren in dit artikel werkt niet aan een Interne BGP (iBGP) sessie, die ook op een routereflector voorkomt.