正規表現を用いることで、特定のASパスを条件にして、BGPルートの参照やフィルタができます。正規表現で使用できる主な文字列は以下の通りです。
文字列 | 説明 |
_ (アンダースコア) | 数字以外の任意の文字列(AS番号間のスペースに使用することが多い |
* (アスタリスク) | 前の文字を0回または何度も繰り返す |
$ (ドル) | 文字列の末尾と一致 |
[] (ブラケット) | 範囲 |
^ (キャレット) | 文字列の先頭に一致 |
+ (プラス) | 前の文字を1回以上繰り返す |
. (ピリオド) | スペースを含む1つの文字列 |
正規表現 | 説明 |
10 | 10という文字列 |
_10 | 10という文字列の前にスペースがある |
_10_ | 10という文字列の前後にスペースがある →AS10を通過する |
^1_ | AS-PATHの先頭が1という文字列で始まり、その後がスペース →先頭のAS(直接接続されているAS)が1である |
_13$ | 最後に13という文字列があり、その前はスペースがある →最後のAS(ルートが生成されたAS)が13である |
1[13] | 11もしくは13という文字列 |
[1-3]0 | 10,20,30という文字列 |
^[12]_[23]_ | 先頭が1もしくは2で始まり、スペースの後、2もしくは3、そしてスペースがある文字列 |
_1[23]$ | 12もしくは13で終わり、前にスペースがある文字列 |
_1.$ | 10〜19で終わり、前にスペースがある文字列 |
^$ | 空っぽの文字列 →空のASパスに一致するため、ローカルASから生成されたルートを検索 |
詳細は以下を参考にしてください。
Terminal Services Configuration Guide, Cisco IOS XE Release 16.x - Regular Expressions [Cisco 4000 Series Integrated Services Routers]
Regular Expressions.
使用例
以下のBGPテーブルを題材に、正規表現による検索結果を確認します。
R5# show ip bgp BGP table version is 12, local router ID is 5.5.5.5 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 *> 1.1.1.1/32 192.168.15.1 0 0 1 1 10 11 i *> 2.2.2.2/32 192.168.25.2 0 0 2 2 20 1000 12 i *> 3.3.3.3/32 192.168.35.3 0 0 3 3 30 1000 13 i *> 4.4.4.4/32 192.168.45.4 0 0 4 i *> 5.5.5.5/32 0.0.0.0 0 32768 i
通過したASでルートを検索
例えば、AS10を通過したルートを検索するとします。以下の通り、条件を10だけにすると、10だけでなく1000も一致となります。
R5# show ip bgp regexp 10 BGP table version is 12, local router ID is 5.5.5.5 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 *> 1.1.1.1/32 192.168.15.1 0 0 1 1 10 11 i *> 2.2.2.2/32 192.168.25.2 0 0 2 2 20 1000 12 i *> 3.3.3.3/32 192.168.35.3 0 0 3 3 30 1000 13 I
_10だと、先頭のスペースも条件になります。ただし、前回同様1000も一致となります。
R5# show ip bgp regexp _10 BGP table version is 12, local router ID is 5.5.5.5 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 *> 1.1.1.1/32 192.168.15.1 0 0 1 1 10 11 i *> 2.2.2.2/32 192.168.25.2 0 0 2 2 20 1000 12 i *> 3.3.3.3/32 192.168.35.3 0 0 3 3 30 1000 13 I
AS10のみを通過したルートを検索するには、10の文字列の前後にスペースを含める必要があるため、 _10_で検索します。
R5# show ip bgp regexp _10_ BGP table version is 12, local router ID is 5.5.5.5 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 *> 1.1.1.1/32 192.168.15.1 0 0 1 1 10 11 I
隣接ASから広告されたルートを検索
例えば、隣接されたAS1から広告されたルートを検索するには、先頭が1という文字列で始まり、その後がスペースがある条件で検索します。
R5# show ip bgp regexp ^1_ BGP table version is 12, local router ID is 5.5.5.5 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 *> 1.1.1.1/32 192.168.15.1 0 0 1 1 10 11 I
生成されたASで検索
例えば、AS13から生成されたルートは、最後に13という文字列があり、その前はスペースがある条件で検索します。
R5# show ip bgp regexp _13$ BGP table version is 12, local router ID is 5.5.5.5 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 *> 3.3.3.3/32 192.168.35.3 0 0 3 3 30 1000 13 i
ASを特定条件の文字列で検索
AS-PATHに11もしくは13の文字列があるものを検索します。
R5# show ip bgp regexp 1[13] BGP table version is 12, local router ID is 5.5.5.5 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 *> 1.1.1.1/32 192.168.15.1 0 0 1 1 10 11 i *> 3.3.3.3/32 192.168.35.3 0 0 3 3 30 1000 13 I
AS-PATHに10,20,30いずれかの文字列があるものを検索します。
R5# show ip bgp regexp [1-3]0 BGP table version is 12, local router ID is 5.5.5.5 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 *> 1.1.1.1/32 192.168.15.1 0 0 1 1 10 11 i *> 2.2.2.2/32 192.168.25.2 0 0 2 2 20 1000 12 i *> 3.3.3.3/32 192.168.35.3 0 0 3 3 30 1000 13 i
AS-PATHの先頭のAS番号が1か2 で次のAS番号が2か3であるものを検索します。
R5# show ip bgp regexp ^[12]_[23]_ BGP table version is 12, local router ID is 5.5.5.5 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 *> 2.2.2.2/32 192.168.25.2 0 0 2 2 20 1000 12 i
AS-PATHの最後のAS番号が12もしくは13であるものを検索します。
R5# show ip bgp regexp _1[23]$ BGP table version is 12, local router ID is 5.5.5.5 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 *> 2.2.2.2/32 192.168.25.2 0 0 2 2 20 1000 12 i *> 3.3.3.3/32 192.168.35.3 0 0 3 3 30 1000 13 i
AS-PATHの最後のAS番号が10〜19であるものを検索します。
R5# show ip bgp regexp _1.$ BGP table version is 12, local router ID is 5.5.5.5 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 *> 1.1.1.1/32 192.168.15.1 0 0 1 1 10 11 i *> 2.2.2.2/32 192.168.25.2 0 0 2 2 20 1000 12 i *> 3.3.3.3/32 192.168.35.3 0 0 3 3 30 1000 13 I
自身が生成したルートを検索
これは、空っぽの文字列のAS番号を条件にすることで検索できます。
R5# show ip bgp regexp ^$
BGP table version is 12, local router ID is 5.5.5.5
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
*> 5.5.5.5/32 0.0.0.0 0 32768 i
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
コメント