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的情況下)
  • 先把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相關設定:
routing-options {
    autonomous-system 100;
}
protocols {
    bgp {
        group EBGP {
            type external;
            neighbor 10.1.1.2 {
                export LO_OUT;
                peer-as 200;
            }
        }
    }
}

好了,大功告成後,確定BGP UP再來檢查宣告出去的BGP routes是否有包含static & connected routes:

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

Popular posts from this blog

TCP/IP 明確擁塞通知 (ECN)

集中式數位交換機(CENTREX)系統

WRR(Weighted Round Robin) vs SRR(Shared/Shaped Round Robin)