如果您喜歡這裡的內容,記得分享到您的Facebook和Twitter上面所有的朋友們吧!

2016年10月10日 星期一

過濾BGP資訊常用的正則表達式,Regular Expression

我們在過濾BGP協定的資訊內容,經常會使用AS-Path的正則表達式的過濾。短時間內要完全熟練正則表達式的確不太容易,我這裡列出五個工作當中經常被使用到的正則表達式,方便大家快速上手,未來我們再深入討論正則表達式的完整功能。

聖胡安的海灘



1. 發源於指定的AS號碼:_ASN$

例如 _11$,代表發源於AS 11的所有BGP資訊。

這個正則表達式,代表的是AS-Path結束於指定的AS號碼。因為AS號碼在被BGP路由器添加到AS-Path的時候,一律從開頭加入(prepend),因此,AS-Path最末端的AS號碼,就是發源於的AS號碼。

2. 指定鄰居AS所提供的:^ASN_

例如 ^11_,代表跟我相鄰的BGP鄰居之中,AS號碼是11,所提供給我的所有BGP資訊。

這個正則表達式,代表的是AS-Path內容的開頭就是指定的AS號碼。相同地,是因為AS號碼在被BGP路由器添加到AS-Path的時候,一律從開頭加入(prepend),我的前一站的AS號碼,其實正好是就是我的BGP鄰居的AS號碼,會被放在AS-Path的最開頭。

3. 包含AS號碼:_ASN_

例如 _11_,代表BGP資訊裡面,AS-Path包含AS號碼11的所有BGP資訊。

這個正則表達式,代表的是AS-Path包含所指定的AS號碼。因此,除了包含過路(Transit)於指定的AS號碼之外,也包含前面兩種狀況:發源於、或者是前一站。


4. “Any”:.*

這個正則表達式,代表符合任何的AS-Path。等同於完全沒有任何過濾的功能。在定義Cisco IOS AS-Path ACL的時候,我們偶爾需要這個”片語”,來代表剩下的所有可能的AS-Path格式全部都允許/或拒絕。

5. 發源自本地:^$

這個正則表達式,代表的是完全空白的AS-Path內容。因為任何來自於外部鄰居BGP都會包含鄰居的AS號碼,AS-Path不會是完全空白的,唯一可能相符的,只剩下本地BGP所產生的BGP資訊,才有可能AS-Path完全空白。


One more thing…

如果要確認我們所定義的正則表達式是否正確,不一定非要定義成Cisco IOS AS-Path ACL,然後套用neighbor filter-list不可,我推薦的小技巧是,大家可以直接使用下面的命令來確認正則表達式是否正確:

show ip bgp regex

例如,show ip bgp regex _11$,馬上可以將BGP資訊中過濾出發源於AS 11的所有BGP資訊。

這個技巧,完全不需要具備”修改BGP設定”的權限,大部分的朋友,都有機會可以練習和檢驗正則表達式的正確性。




前面幾張照片的拍攝地點,都在下面地圖標示的San Juan海灘附近。

如果您喜歡這篇文章,不考慮試試Email訂閱嗎?




4 則留言:

  1. BGP沒什麼實際經驗,而且CCNP認證後就忘光了!

    回覆刪除
    回覆
    1. 其實沒關係的,不常用的確會忘得很快。

      我原本寫過幾篇BGP的內容在英文版的網站上面,我最近也會在這裡增加BGP的內容,給大家參考!

      刪除
    2. 老師真用心,謝謝老師的分享

      刪除
    3. 毛老師您客氣了!我們大家一起互相切磋吧! :)

      刪除

小技巧:也可以 匿名 留言!

經典熱門文章