Inhalt

Einführung

Hintergrundinformationen

AS-Nummernfilter, 4 Byte

Alternative Konfiguration

Aspire-Modus

Filter für Aspin-Modus

Einführung

In diesem Artikel wird beschrieben, wie Border Gateway Protocol (BGP)-Präfixe mit AS-Nummern (Autonomous System) mit 4 Byte in Cisco IOS® gefiltert werden.

Hintergrundinformationen

4-Byte-AS-Nummern wurden im BGP eingeführt, als der Pool freier 2-Byte-AS-Nummern zu niedrig wurde. Das bedeutet, dass eine AS-Nummer jetzt eine 2-Byte- oder eine 4-Byte-Nummer sein kann. RFC 6793 gibt 4-Byte-AS-Nummern an. Eine AS-Nummer mit 2 Byte ist eine Zahl zwischen 1 und 65.535. Eine 4-Byte-AS-Nummer ist eine Zahl zwischen 1 und 4.294.967.295.

Die 4-Byte-AS-Nummer kann gepunktet oder als einfache Zahl dargestellt werden. Ein Beispiel für eine gepunktete 4-Byte-AS-Nummer ist 7,52359. Dies ist der AS-notaton-Punkt. Ein Beispiel für eine einfache 4-Byte-Zahl ist 51111. Dies ist die AS-Notation als Plain. 7.52359 entspricht 51111.

Ein Cisco IOS-Router kann entweder die AS-Schreibweise verwenden. Die Standardeinstellung in den neuesten Cisco IOS-Versionen ist einfach. Um die punktierte AS-Notation zu verwenden, kann der Befehl bgp asnotation dot verwendet werden.

Wenn der Netzwerkadministrator aus irgendeinem Grund keine BGP-Präfixe mit einer oder mehreren 4-Byte-AS-Nummern im AS-PATH an einen externen BGP (eBGP)-Peer senden möchte, können diese Präfixe gefiltert werden. Dieses Dokument bietet einen möglichen Filter, um dies zu erreichen. Es gibt möglicherweise einige Gründe, warum Sie nicht möchten, dass ein BGP-Sprecher BGP-Präfixe mit 4-Byte-AS-Nummern im AS-PATH sendet. Ein Beispiel könnte sein, dass ein Fehler am empfangenden BGP-Sprecher zu einem negativen Verhalten führt, das nur bei BGP-Präfixen mit 4-Byte-AS-Nummern im AS-PATH auftritt.

AS-Nummernfilter, 4 Byte

Hinweis: Der Filter in diesem Abschnitt kann nur verwendet werden, wenn BGP auf dem Router im Asnotation dot Mode ausgeführt wird.

Dieser Filter kann Präfixe mit AS-PATHS herausfiltern, die eine oder mehrere 4-Byte-AS-Nummern enthalten.

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

Hier ist eine Untersuchung dieses Filters.

- [0-9] bezeichnet eine beliebige Ziffer.

- Das + bedeutet ein oder mehrere Vorkommen. [0-9]+ bedeutet also eine beliebige Zahl, da mehrere Ziffern vorhanden sein können.

- \. bedeutet das . (Punkt). Der umgekehrte Schrägstrich wird benötigt, um sicherzustellen, dass der Punkt nicht als Sonderzeichen, sondern als Punkt behandelt wird. Die . ist ein Sonderzeichen und bedeutet, dass jedes Zeichen (der Platzhalter) übereinstimmt.

- Das * bedeutet, dass mindestens 0 der vorhergehenden übereinstimmen. Also.* bedeutet, dass alles übereinstimmt.

- Der vollständige Filter .*[0-9]+\.[0-9]+.* bedeutet alles mit einem Punkt darin.

Hier ein Beispiel:

Router 1 (R1) empfängt acht Präfixe im BGP. Das BGP-Präfix 10.100.1.1/32 ist das einzige Präfix mit einem AS-PATH, der nur 2-Byte-AS-Nummern umfasst. Alle anderen BGP-Präfixe haben eine oder mehrere 4-Byte-AS-Nummern im 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 ?

R1 gibt nur Präfixe ohne 4-Byte-AS-Nummer im AS-PATH an den BGP-Peer 10.1.1.2 weiter.

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

Sie können den Filter .*[0-9]+\.[0-9]+.* Filter aus der BGP-Tabelle mit dem Befehl show ip bgp regexp überprüfen:

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 ?

Der Filter .*[0-9]+\.[0-9]+.* filtert alle Präfixe mit einer oder mehreren 4-Byte-AS-Nummern im AS-PATH-Attribut heraus.

Eine andere Möglichkeit, zu prüfen, was der Filter tatsächlich von der BGP-Tabelle 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 erhielt aufgrund des Filters nur das Präfix 10.100.1.1/32 von 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

Alternative Konfiguration

Eine alternative Konfiguration besteht darin, eine Route Map anstelle einer Filterliste zu verwenden:

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

Aspire-Modus

Wenn der Befehl bgp asnotiation dot entfernt wird, d. h. die Asnotation ist einfach, zeigt die Ausgabe die Punkte in den 4-Byte-AS-Nummern nicht mehr an. Diese Ausgabe entspricht der zuvor gezeigten Ausgabe, mit der Ausnahme, dass die gepunkteten AS-Nummern nun als eindeutig angezeigt werden.

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 ?

Der Befehl BGP show mit dem regulären Ausdruck, der im Filter des Routers verwendet wird, filtert die Präfixe nicht mit einem Punkt in der BGP-Tabelle, da in der BGP-Tabelle keine Präfixe mehr mit dem gepunkteten 4-Byte-AS-Zahlenformat vorhanden sind. Die 4-Byte-AS-Nummern sind jetzt im einfachen Format.

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

R1#

Der BGP-Befehl show mit der Filterliste zeigt auch, dass der Filter nicht funktioniert, während sich der Router im normalen Modus befindet:

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 ?

Der as-path-Filter funktioniert nicht:

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 für Aspin-Modus

Dieser Filter kann verwendet werden, wenn BGP auf dem Router im normalen Modus ausgeführt wird:

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

Oder, hier ist dasselbe, aber kompakter:

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

Aufgrund dieses Filters wird eine AS-Nummer über 65.535 gefiltert. Auch dies kann auf den BGP-Nachbarn angewendet werden, wenn Sie eine Filterliste oder eine Routenübersicht verwenden.

Hinweis: Die Filterung in diesem Artikel funktioniert nicht bei einer internen BGP (iBGP)-Sitzung, die einen Routen-Reflektor umfasst.