1、 BGP使用的是TCP的179端口創建鏈接,不使用組播IP,而是單播創建鄰居,因此它沒法自動發現鄰居,須要手工配置鄰居的更新地址。
2、 數據包:數據庫
- open: 用來創建鄰居關係
- update:用來發送NLRI
- keepalive:用來維護鄰居關係,每60秒發送一次。
- notification:路由器檢查到差錯後,用來中斷鄰居關係
- Route-refresh:請求對等體從新發送路由。
3、狀態機
- idel:初始狀態,不接受鄰居發送的鏈接請求
- connect:等待BGP鏈接的完成;若是TCP鏈接成功,則向鄰居發送open報文,進入opensent狀態;若是TCP鏈接不成功,則轉入Active狀態。
- active: BGP進程會嘗試與其鄰居初始化TCP鏈接。若是鏈接成功,BGP向對等體發送Open報文,關閉鏈接重傳定時器,並轉至OpenSent狀態。 若是TCP鏈接失敗,那麼BGP停留在Active狀態。若是鏈接重傳定時器超時,BGP仍沒有收到BGP對等體的響應,那麼BGP將轉入Connect狀態。
- opensent:在此狀態下,BGP等待對等體的Open報文,接到到Open報文後,會對接收到的AS號、版本號、認證碼進行檢查。若是接收到的Open報文正確,那麼BGP發送KeepAlive報文,並轉到Openconfirm狀態;若是接收到的Open報文有誤,那麼BGP發送Notification報文給對等體,並轉到Idle狀態。
- openconfirm:BGP等待Keepalive或者Notification報文。若是收到Keepalive則轉入Establish狀態,若是收到Notification報文,則轉到Idle狀態。
- establish:已經創建了鄰居關係,BGP能夠和對等體交換Update、Keepalive、Route-refresh、Notification報文。若是收到正確的Update和Keepalive,將保持BGP鏈接。 若是收到錯誤的Update和Keepalive,那麼BGP將發送Notification報文對知對端,並進入Idle狀態。若是收到Notification或TCP拆除鏈接的通知,那麼也會轉入Idle狀態。
4、 路徑屬性
- 公承認遵:全部路由器都要識別,而且必須包含在Update包中的屬性。這些屬性有:Origin、Next_hop、AS_Path
- 公認必遵:全部路由器都要識別,但不必定要包含在Update包中的屬性。這些屬性有:Local-Pref
- 可選傳遞:BGP路由器能夠不識別這個屬性,但它仍然會接收這類屬性,並通知給其餘對等體。這些屬性有Community
- 可選非傳遞:BGP設備能夠不識別此類屬性,若是BGP設備不識別此類屬性,則會忽略該屬性,不會通告給對等體。這些屬性有:MED、Originator_ID、Cluster_list
5、選路原則: 見 http://www.javashuo.com/article/p-nuffyclx-bq.html
6、RR:
- 路由反射器,它打破了IBGP的水平分割。非客戶機與非客戶機之間不能傳遞路由。從客戶端學到的路由傳遞給客戶端和非客戶端;從非客戶端學到的路由傳遞給客戶端;從EBGP學習到的路由傳遞給客戶端和非客戶端。
- Cluster:RR和它的客戶端組成一個Cluster,同一個Cluster有相同的Cluster_ID。
- Cluster_List:當一條路由被RR反射之後,就會造成一個Cluster_list,立即RR接收到一條更新的路由時,會檢查Cluster_list,若是已經有本地的Cluster_list,則會丟棄這條路由;若是收到的路由沒有本地的Cluster ID,則會將其加入Cluster_list,並反射該路由。
- Originator_ID:Originator_ID用來標識路由的發起者,當一條路由第一次被反射的時候,RR將這個屬性加入這條路由。若是一條路由已經有了Originator ID,則不會再添加了。當設備接收到這條路由時,會將Originator_id與Router_ID進行比較,若是相同則不接收這條路由。
- 雖然RR打破了IBGP的水平分割,但它經過本身的Cluster_list和Originator_ID來防止環路的產生。
- 兩臺路由之間能夠互爲RR客戶端。
7、 聯盟:
- 聯盟是將一個AS劃分爲更多的子AS的技術。
- 每一個子AS創建全互聯的鄰居關係
- 子AS之間創建EBGP鏈接關係。
- 在配置時,BGP進程處起的是子AS的AS號,全局的AS號將成爲聯盟ID。
- 須要配置confed peer-as,這些AS指的是同一個全局AS內的其餘的子AS號。8、同步:BGP路由器不該該使用或向EBGP鄰居通告從IBGP鄰居那裏學習到的BGP路由信息,除非該路由是本地的或者該路由存在於IGP數據庫,即該路由也能從IGP學習到。9、 最優:只有最優的路由才能傳遞給對等體。最優的前提條件:1. 關閉同步 2. 下一跳可達。10、 有效: 不通告BGP的更新源作爲業務網段11、防環:從IBGP學習到的路由不能再通告給IBGP,也就是說IBGP的路由只能傳一跳。