目錄

簡介

背景資訊

4位元組AS數字過濾器

替代配置

Asplain模式

Asplain模式的篩選器

簡介

本文說明如何在Cisco IOS®中使用4位元組的自治系統(AS)編號過濾邊界閘道通訊協定(BGP)字首。

背景資訊

當可用的2位元組AS編號池變低時，BGP中引入了4位元組AS編號。這意味著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註釋點。例如，一個普通的4位元組數是511111。這是AS表示法asplain。7.52359與511111相同。

Cisco IOS路由器可以使用AS表示法。最新Cisco IOS版本中的預設值為asplain。若要使用點分AS表示法，可以使用bgp asnotation dot命令。

如果網路管理員由於任何原因不想在AS PATH中向外部BGP(eBGP)對等點傳送一個或多個4位元組AS編號的BGP字首，則可以過濾這些字首。本文提供實現此目標的一個可能的過濾器。可能有一些原因會導致您不希望BGP發言人在AS PATH中發出4位元組AS編號的BGP字首。其中一個範例可能是接收BGP揚聲器上存在缺陷，導致不良行為，這僅發生於AS PATH中具有4位元組AS編號的BGP字首。

4位元組AS數字過濾器

附註：僅當路由器上的BGP以asnotation dot模式運行時，才能使用本節中的過濾器。

此過濾器可以過濾掉包含一個或多個4位元組AS編號的AS PATHS的字首。

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]+表示任意數字，因為可能存在多個數字。

- \。表示。（點）。 為了確保路由器不將點視為特殊字元，而是將其視為點，需要使用反斜槓。其.是一個特殊字元，其表示與任何字元（萬用字元）匹配。

- *表示與前面的0或多個匹配。那麼。*表示任何匹配項。

- 完整的過濾器。*[0-9]+\.[0-9]+.*表示其中帶點的任何內容。

以下是範例：

路由器1(R1)在BGP中接收八個字首。BGP字首10.100.1.1/32是唯一的字首，其中的AS PATH僅包含2位元組AS編號。所有其他BGP字首在AS PATH中有一個或多個4位元組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僅向BGP對等體10.1.1.2通告AS PATH中沒有4位元組AS編號的字首。

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

您可以使用show ip bgp regexp命令驗證BGP表中的過濾器.*[0-9]+\.[0-9]+.*過濾器：

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 ?

filter.*[0-9]+\.[0-9]+.*在AS PATH屬性中過濾掉帶有一個或多個4位元組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隻從R1收到字首10.100.1.1/32。

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

替代配置

另一種配置是使用路由對映而不是過濾器清單：

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 asnotation dot命令時（代表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 show命令不會過濾掉BGP表中帶點的字首，因為BGP表中不再有帶點的4位元組AS編號格式的字首。4位元組AS數字現在採用無格式格式。

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

R1#

使用filter-list的BGP show命令也會顯示路由器處於不純模式時過濾器無法運作：

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

由於此過濾器，任何高於65,535的AS編號都會被過濾。同樣地，如果您使用篩選清單或路由對應，此原則也可套用到BGP鄰居。

附註：本文中的篩選對包含於路由反射器上的內部BGP(iBGP)作業階段無法使用。