BPG边界网关协议知识(一)
BPG邊界網關協議知識
- 動態路由協議
- BGP基本概念
- BGP路由協議的特點
- BGP 分類
- 選舉BGP的路由器號Router-ID
- IBGP水平分割規則
- BGP工作原理
- BGP六狀態
- BGP對等體之間交互九原則
- 建立對等體注意點
- BGP配置命令
動態路由協議
按自治系統分為
IGB內部網關協議,運行在AS內部的路由協議,主要解決AS內部的選擇問題,發現,計算路由
主要有:RIP1/2,OSPF,ISIS, EIGRP
EBG外部網關路由協議,運行在AS與AS之間的路由協議,解決AS之間選擇問題
主要有:BGP
按協議類型分類
距離矢量路由協議:RIP1/2、BGP路徑矢量協議、EIGRP高級距離矢量協議
路由器對全網拓撲不完全了解
鏈路狀態路由協議:OSPF、ISIS
路由器對全網拓撲完全了解
BGP基本概念
BGP(Border Gatway protocol)邊界網關協議,是一種實現自治系統AS之間的路由可達,并選擇最佳路由的距離矢量路由協議。
AS是指由同一個技術管理機構管理,使用統一選路策略的一些路由器的集合
BGP網絡中的每一個AS都被分配一個唯一的AS號,用于區分不同的AS
AS號分為2個字節AS號和4字節AS號,其中2字節AS號的范圍為1至65535,其中1-64511是互聯網上注冊公有AS號,類似公網IP地址。64512-65535是私有AS號,類似私網IP地址,4字節AS號的范圍為1至4294967295,支持4字節AS號的設備能夠與支持2字節AS號的設備兼容
TANA是互聯網數字分配機構,負責AS號的分發
BGP路由協議的特點
1.BGP能夠承載大批量的路由信息,能夠支持大規模網絡
2.BGP能用TCP作為其傳輸層協議,監聽端口179,提高了協議的可靠性
3.BGP是外部路由協議,用來在AS之間傳遞數據,對穩定向要求很高,因此用TCP協議的高可靠性來保證BGP協議的穩定性
4.BGP的對等體之間必須邏輯上連通,并進行TCP連接,目的端口號為179,本地端口號任意
5.BGP的對等體IGP對等體不同,BGP對等體(peer)是指使用TCP建立連接的兩端,而非與IGP同概念的直連鄰居,只要TCP能夠建立連接并不一定需要直連
6.BGP本身只負責控制路由,數據轉發依然靠靜態或者IGP路由
7.BPG支持無類別域間路由CIDR
8.路由更新時,BGP只發送更新的路由,大大減少了BGP傳播路由所占用的帶寬,適用于在Internet上傳播大量的路由信息
9.BGP是一種增強的矢量路由協議,從設計上避免了環路的發生
10.AS之間,BGP通過攜帶AS-path信息標記途徑的AS,帶有本地AS號 路由將被丟棄,從而避免了域間產生環路
11.AS內部:BGP在AS內學到的路由不會再通告給AS內的鄰居,避免了AS內產生環路
12.BGP提供了豐富的路由策略,能夠對路由實現靈活的過濾和選擇
13.BGP提供了防止路由震蕩機制(路由衰減),有效提高了Internet網絡的穩定性
14.BGP易于擴展,能夠適應網絡新的發展(ipv4單/組播、vpv4單/組播)。主要是通過TLV進行擴展
BGP 分類
BGP按照運行方式分為EBGP和IBGP
EBGP—運行于不同AS之間的BGP稱為EBGP,為了防止AS間產生環路,當BGP 設備接受EBGP對等體發送路由時,會將帶有本地AS號的路由丟棄
IBGP—運行于同一AS內部的BGP稱為EBGP,為了防止AS內產生環路,BGP設備不將從IBGP對等體學到的路由通告其他IBGP對等體,并于所有的IBGP 對等體建立連接,為了解決IBGP對等體的連接數量太多的問題,BGP設計了路由反射器和BGP聯盟
選舉BGP的路由器號Router-ID
●BGP的router-id 是一個用于標識BGP設備的32位值,通常是IPV4地址的形式,在BGP會話建立時發送的open 報文中攜帶,對等體之間建立BGP會話時,每個BGP設備都必須有唯一的router - id ,否則對等體之間不能建立BGP連接
●BGP的router-id在BGP網路中必須時唯一的,可以采用手工配置,也可以讓設備自動選舉,缺省時,●BGP選擇設備會上的LOOPBACK接口的IPV4地址作為BGP的router-id,如果設備上沒有配置loop back接口,系統就會選擇接口中最大的IP4地址作為BGP的router-id ,一旦選出router-id,除非發生接口地址刪除等事件,否則即使配置了更大的地址,也保持原來的router-id
IBGP水平分割規則
1.BGP路由在AS之間的防環依賴于AS-PATH 路徑屬性,當路由器收到BGP路由后,發現該路由所攜帶的AS-PATH屬性中出現了其自己所在的AS號,則路由器認為出現了路由的環路,它將忽略該條路由
2.AS-path屬性僅在路由離開AS時才會被更改,而BGP路由在AS內部傳遞,路由的AS-path屬性值不會發生改變,如此一來,IBGP路由的防環就無法依賴AS-path了
3.為了防止BGP路由在AS內部傳遞發生環路,BGP要求:路由器不能將自己從IBGP對等體學習到的路由再傳遞給其他IBGP對等體,這就是IBGP水平分割規則
4.由于IBGP水平分割原則的存在,BGP要求AS內保證IBGP對等體關系的全互聯,因為只有這樣,才能夠確保每一個路由器都能學習到路由
BGP工作原理
BGP對等體間通過以下5種報文進行交互,其中keep alive報文為周期性發送,其余報文都是觸發式報文
●Open報文:用于協商BGP對等體的各項參數,主要包括BGP版本(V4) 、AS號等信息,建立BGP對等體連接。Open是TCP連接建立后發送的第一個報文
●Update報文:用于在對等體之間交換路由信息。
連接建立后,有路由需要發送或者路由變化時,發送Update通告對端可達或者撤銷路由信息及路徑屬性。
●Notification報文:用于中斷BGP連接。
當BGP在運行中發現錯誤時,發送Notification報文通告BGP對端,隨后與之相關的鄰居關系將被關閉。
●Keepalive報文:用于保持BGP連接。
定時發送Keepalive報文以保持BGP對等體關系的有效性。響應收到的正確的Open報文
●Route-refresh報文:用于在改變路由策略后軟復位BGP路由表請求對等體重新發送路由信息。只有支持路由刷新(Route-refresh)能力的BGP設備會發送和響應此報文。
BGP六狀態
BGP對等體的交互過程中存在6種狀態機:空閑(Idle) 、連接(Connect) 、活躍(Active) 、Open報文已發送(OpenSent) 、Open報文已確認(OpenConfirm) 和連接已建立(Established) 。
在BGP對等體建立的過程中,通常可見的3個狀態是: Idle、 Active 和Established。
①、Idle狀態是BGP初始狀態。在idle狀態下,BGP拒絕鄰居發送的連接請求。只有在收到本設備的Start事件后,BGP才開始嘗試和其它BGP對等體進行TCP連接,并轉至Connect狀態。
②、在Connect狀態下,BGP啟動連接重傳定時器(Connect Retry) ,等待TCP完成連接。
●如果TCP連接成功,那么BGP向對等體發送Open報文,并轉至OpenSent狀態。
●如果TCP連接失敗,那么BGP轉至Active狀態,反復嘗試連接。
●如果連接重傳定時器超時,BGP仍沒有收到BGP對等體的響應,那么BGP繼續嘗試和其它BGP對等體進行TCP連接,停留在Connect狀態。
③、在Active狀態下,BGP總是在試圖建立TCP連接。
●如果TCP連接成功,那么BGP向對等體發送Open報文,關閉連接重傳定時器,并轉至openSent狀態。
●如果TCP連接失敗,那么BGP停留在Active狀態。
●如果連接重傳定時器超時,BGP仍沒有收到BGP對等體的響應,那么BGP轉至Connect狀態。
④、在OpenSent狀態下,BGP等待對等體的Open報文,并對收到的Open報文中的AS號、版本號、認證碼等進行檢查。
●如果收到的Open報文正確,那么BGP發送Keepalive報文,并轉至OpenConfirm狀態。
●如果發現收到的0pen報文有錯誤,那么BGP發送Notification報文給對等體,并轉至Idle狀態。
⑤、在OpenConfirm狀態下,BGP等待Keepalive或Notification報文。
●如果收到Keepalive報文,則轉至Established狀態
● 如果收到Notification報文,則轉至Idle狀態
⑥、在Established狀態下,BGP可以和對等體交換Update、 Keepalive、 Route-refresh報文和Notification報文。
●如果收到正確的Update或Keepalive報文,那么BGP就認為對端處于正常運行狀態,將保持BGP連接。
●如果收到錯誤的Update或Keepalive報文,那么BGP發送Notification報文通知對端,并轉至Idle狀態。
●如果收到Notification報文,那么BGP轉至Idle狀態。
●如果收到TCP拆鏈通知,那么BGP斷開連接,轉至Idle狀態。
●Route-refresh報文不會改變BGP狀態。
BGP對等體之間交互九原則
BGP設備將最優路由加入BGP路由表,形成BGP路由。BGP設備與對等體建立鄰劇關系后,采取以下交互原則:
①從IBGP對等體獲得的BGP路由,BGP設備只發布給它的EBGP對等體
②從EBGP對等體獲得的BGP路由,BGP設備發布給它所有EBGP和IBGP對等體
③當存在多條到達同一目的地址的有效路由時,BGP設備只將最優路由發布給對等體
④路由更新時,BGP設備只發送更新的BGP路由
⑤所有EBGP對等體發送的路由,BGP設備都會接收
⑥所有EBGP對等體在傳遞過程中下一跳改變
⑦所有IBGP對等體在傳遞過程中下一跳不變
⑧默認EBGP傳遞時TTL值為1
⑨默認IBGP傳遞時TTL值為255
建立對等體注意點
●直連建立對等體需要注意的點
建立IBGP對等體時要讓下一跳可達,處于邊界的IBGP對等體需要將下一跳指向自己,這樣才能建立IBGP對等體。
●用環回網口建立鄰居需要注意的點
需要修改更新源,默認更新源是物理接口,需要修改成環回網口,建立IBGP對等體時要保障下一跳可達,處于邊界的IBGP對等體需要將下一跳指向自己,這樣才能建立IBGP對等體
建立EBGP對等體時因為EBGP只能傳一跳,在建立EBGP對等體時,要修改EBGP多跳的跳數為2以上(自己環回到對端環回時兩跳,默認一跳)
●關于為什么要用環回網口建鄰居
原因時環回網口穩定,只要路由器啟動著,環回網口就不會down,而物理鏈路可能會受線路或者接口等因素的影響導致對等體關系有問題,因而一般BGP建立對等體都是環回網口來建
BGP配置命令
[R1]bgp 編號 ——#創建bgp編號
[R1-bgp]router-id x.x.x.x ——#配置BGP的Router ID
[R1-bgpl peer x.x.x.x as-number 1 編號 ——#指定對等體的回環網口IP地址及其所屬的AS編號
[R1-bgp]peer x.x.x.x connect-interface LoopBack0 ——#更新發送bgp報文的接口為Loopback0接口
[R1-bgp]peer x.x.x.x next-hop-local——#ASBR從ebgp鄰居學習到的路由傳遞給ibgp鄰居時,修改該命令
[R1-bgp]peer x.x.x.x ebgp-max-hop 2——#兩個AS之間用回環網口建的鄰居要將它們的鄰居的最大跳數改為2,默認的是1 (因為不是直連而是用Loopbacko接口,需要經過2個路由,而默認EBGP傳遞時TTL值為1)
[R1-bgp]network x.x.x.x 反掩碼 ——#宣告指定的IGP、靜態、默認路由進BGP進程
[R1]ip route-static x.x.x.x x.x.x.x x.x.x.x——#兩個AS之間的ebgp對等體需要建立tcp連接,這里用靜態做底層的尋址,也可以使用IGP路由搭建底層尋址(比如RIP)
[R1-bgp]network x.x.x.x 反掩碼——#ebgp用于配置靜態路由或IGP路由的網段或IP需要在兩端ebgp都宣告
③查看命令
1、display bgp peer ###查看bgp的對等信息Established為成功建立
2、display bgp routing-table ##查看bgp的路由表信息
總結
以上是生活随笔為你收集整理的BPG边界网关协议知识(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2023年国内五大 IoT 物联网平台费
- 下一篇: 人工智障