BGP學習總結併發
BGP是目前使用的惟一的自治系統間的路由協議,它是一種矢量路由協議,基於TCP的179號端口,它採用單播增量更新的方式更新路由,與其餘的路由協議不一樣的是,BGP只要TCP可達,就能夠創建對等體關係,BGP須要手工顯式的指定對等體關係。ide
常見術語學習
一、 BGP的發言者:發送BGP消息的路由器叫作BGP的發言者。spa
二、 BGP對等體:相互交換BGP消息的路由器叫作BGP的對等體。日誌
三、 IBGP對等體:同一個自治系統內的對等體關係。orm
四、 EBGP對等體:不一樣自治系統間的對等體關係。事件
BGP的通告原則:路由
一、 當多條路徑存在時,BGP的發言者首選最優的路由供本身使用。同步
二、 BGP發言者只把本身使用的最優的路由通告給其餘對等體。it
三、 BGP發言者從EBGP得到路由信息向它的EBGP和IBGP對等體通告。
四、 BGP發言者從IBGP對等體得到的路由信息不會再向它的IBGP鄰居通告。
五、 BGP發言者從IBGP得到的路由信息是否通告給EBGP對等體,要依IBGP與EBGP同步狀況而定。
六、 對等體關係創建後,BGP發言者將本身的全部的BGP路由通告給新想相鄰體。
BGP的消息類型和功能
一、 open消息:用來創建BGP對等體間的關係並協商參數。
二、 keepalive消息:用來對open消息確認,週期性的發送keepalive消息向對等體通告本身的存在,保持對等體的關係。
三、 nitification:錯誤日誌,當有錯誤發生的時候,會向對等體發送notification報文,而且斷開TCP鏈接,並回到idle狀態。
四、 update消息:用來更新路由條目。
五、 route-fresh消息:向對等體請發送求指定地址族的路由信息。
BGP的狀態機制
一、 idle狀態:初始狀態,不接受任何BGP的鏈接,等待start事件的產生,start事件產生後,系統開啓connectRetry定時器。
二、 connect狀態:鏈接狀態,系統等待TCP鏈接創建完成,若是創建成功後,系統拆除connectRetry定時器,併發送open消息,此時進入open-sent狀態。
三、 Active狀態:活躍狀態,。若是有start事件的產生,可是TCP鏈接並無創建成功,此時系統進入Active狀態。
四、 Open-sent:open消息發送狀態,表示已經發送open消息,等待對等體的open消息。
五、 Open-confirm:open消息確認狀態。收到對等體的open消息已經發送確認消息,等待對等體對本身的open消息確認的keepalive消息。
六、 Established:鏈接已創建,此時對等體能夠發送update消息報文進行路由的更新了。
BGP的路由屬性
一、 公認必遵屬性:全部BGP路由器都可以識別這種屬性,而且這種屬性必須存在於update報文中,若是缺乏這種屬性,路由會出錯,主要包括:origin屬性、as-path屬性、next-hop屬性。
二、 公承認選屬性:全部的BGP路由都可以識別這種屬性,可是這種屬性不要求必定存在於update消息中,主要包括:Local_pref屬性等。
三、 可選傳遞:在AS之間具備可傳遞的屬性,BGP路由器均可以不支持此屬性,但它仍會接受有此屬性的路由,並通告給其餘的路由器,主要包括:commutity屬性等。
四、 可選非傳遞屬性:若是BGP路由器不支持此屬性,則此屬性能夠被忽略,主要包括MED、CLUESTER_LIST屬性。
Origin屬性:路由的源屬性,BGP路由的來源主要有三種,第一:經過引入IGP路由實現,即Incomeplete,第二:經過network方式注入BGP,即IGP,經過EGP協議學習,這個能夠忽略了。
As-path:指示出了該路由信息通過了哪些AS路徑,主要做用是保證AS間無環路,通常當本自治系統的路由離開自治系統的時候會添加本自治系統的號碼,BGP路由選路的時候,會優先選擇AS-PATH短的路由。
Next-hop屬性:下一跳屬性,須要注意的是當邊界設備學習到EGP對等體發佈的路由的時候,傳遞給IBGP對等體的時候,不會修改路由的下一跳。
五、 local_pref:本地優先級,當一個AS有多條到達外部AS的路徑的時候,BGP會優先選擇本地優先級高的路由,本地優先級只在本AS內有效,只能影響進入本AS的流量,不會影響離開本AS的流量。
六、 MED屬性:BGP的MED屬性至關於IGP協議的度量值,當有多條路由進入本AS的時候,用來告知EBGP對等體哪條路由最優,默認的MED值爲100,值越小越優。
須要注意的是med值僅在兩個AS之間傳遞,不會傳遞到第三個AS。
七、 preferred-value值:首選值,爲從不一樣對等體接收的路由分配不一樣的preferred-value值,從而能夠改變指定對等體學到路由的優先級,這是h3c的私有屬性,改屬性僅在本地有效,不隨路由信息傳播。