BGP export(redistribution) policy without "match protocol" in JUNOS
今天在review公司core router時,發現有些BGP export policy有設match protocol,有些沒設,心中突然浮現一個問號?
「沒有設定match protocol可以進行static or connect redistribute to BGP的動作嗎?」
然後開始請教資深的同事們討論,結果大家有不同的認知,有的人認為只要export policy就可以將inet.0中的best route直接宣告給BGP neighbor,有的人認為應該要轉成BGP active route才能宣告給BGP neighbor…
其實這種情況常常發生在JUNOS設定中,因為網路的sample config都是很經典的大同小異,沒有太多的例外狀況可以參考,所以最後二話不說,直接實機演練來確認比較快,這也是我很頭痛的地方,只要沒有測試過Lab的JUNOS指令,我真的不能確定結果為何?(尤其是在不同platform及不同hardware combination的情況下)
「沒有設定match protocol可以進行static or connect redistribute to BGP的動作嗎?」
然後開始請教資深的同事們討論,結果大家有不同的認知,有的人認為只要export policy就可以將inet.0中的best route直接宣告給BGP neighbor,有的人認為應該要轉成BGP active route才能宣告給BGP neighbor…
其實這種情況常常發生在JUNOS設定中,因為網路的sample config都是很經典的大同小異,沒有太多的例外狀況可以參考,所以最後二話不說,直接實機演練來確認比較快,這也是我很頭痛的地方,只要沒有測試過Lab的JUNOS指令,我真的不能確定結果為何?(尤其是在不同platform及不同hardware combination的情況下)
- 先把SRX設定成Packet Mode(很特別的指令 如果我沒上過JSEC的課程,打死也不知道設定packet mode會在這樣的階層下…family mpls你的存在跟packet mode到底有什麼關聯??? 真的很難理解啊!):
security {forwarding-options {family {mpls {mode packet-based;}}}}
- 再來設定兩個準備被轉成BGP的static & connected route (恕小弟偷懶,其他基本的interface設定就不在此列出)
interfaces {lo0 {unit 0 {family inet {address 100.100.100.100/32;}}}}routing-options {static {route 200.200.200.0/24 discard;}}
- 然後開始設定prefix-list & policy-statement,我不設定match protocol直接利用prefix-list-filter來過濾路由,內容就是前面的loopback interface & static route
policy-options {prefix-list LO {100.100.100.100/32;200.200.200.0/24;}policy-statement LO_OUT {from {prefix-list-filter LO exact;}then accept;}}
- 接著我先設定完另一邊的Router BGP(AS200)之後,開始設定本機的BGP相關設定:
好了,大功告成後,確定BGP UP再來檢查宣告出去的BGP routes是否有包含static & connected routes:routing-options {autonomous-system 100;}protocols {bgp {group EBGP {type external;neighbor 10.1.1.2 {export LO_OUT;peer-as 200;}}}}
root@SRX1# run show route advertising-protocol bgp 10.1.1.2
inet.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
* 100.100.100.100/32 Self I
* 200.200.200.0/24 Self I
答案揭曉! 真的是不需要特定的match protocol就可以將非BGP routes宣告給BGP neighbor,也就是說如果你想把所有的routes利用BGP轉發只要設定一個空的export policy(then accept)就能達到目的?...對不起,我還沒試過,所以我不敢百分之百肯定,下次有空再試給各位看看~
Comments