BGP 邊界網(wǎng)關協(xié)議

2020-06-12 16:28 更新

一、簡介

1.簡介

邊界網(wǎng)關協(xié)議(BGP)是運行于 TCP 上的一種自治系統(tǒng)的路由協(xié)議。 BGP 是唯一一個用來處理像因特網(wǎng)大小的網(wǎng)絡的協(xié)議,也是唯一能夠妥善處理好不相關路由域間的多路連接的協(xié)議。 BGP 構建在 EGP 的經(jīng)驗之上。 BGP 系統(tǒng)的主要功能是和其他的 BGP 系統(tǒng)交換網(wǎng)絡可達信息。網(wǎng)絡可達信息包括列出的自治系統(tǒng)(AS)的信息。這些信息有效地構造了 AS 互聯(lián)的拓樸圖并由此清除了路由環(huán)路,同時在 AS 級別上可實施策略決策。

2.作用

BGP用于在不同的自治系統(tǒng)(AS)之間交換路由信息。當兩個AS需要交換路由信息時,每個AS都必須指定一個運行BGP的節(jié)點,來代表AS與其他的AS交換路由信息。這個節(jié)點可以是一個主機。但通常是路由器來執(zhí)行BGP。兩個AS中利用BGP交換信息的路由器也被稱為邊界網(wǎng)關(Border Gateway)或邊界路由器(Border Router)。

由于可能與不同的AS相連,在一個AS內(nèi)部可能存在多個運行BGP的邊界路由器。同一個自治系統(tǒng)(AS)中的兩個或多個對等實體之間運行的BGP 被稱為 IBGP(Internal/Interior BGP)。歸屬不同的AS的對等實體之間運行的BGP稱為EBGP (External/Exterior BGP)。在AS邊界上與其他AS交換信息的路由器被稱作邊界路由器(border/edge router)。在互聯(lián)網(wǎng)操作系統(tǒng)(Cisco IOS)中,IBGP通告的路由的距離為200,優(yōu)先級比EBGP和任何內(nèi)部網(wǎng)關協(xié)議(IGP)通告的路由都低。其他的路由器實現(xiàn)中,優(yōu)先級順序也是EBGP高于IGP,而IGP又高于IBGP。

3.BGP基本概念:

自治系統(tǒng)ASAutonomous System: AS是指在一個實體管轄下的擁有相同選路策略的IP網(wǎng)絡。BGP網(wǎng)絡中的每個AS都被分配一個唯一的AS號,用于區(qū)分不同的AS。AS號分為2字節(jié)AS號和4字節(jié)AS號,其中2字節(jié)AS號的范圍為1至65535,4字節(jié)AS號的范圍為1至4294967295。支持4字節(jié)AS號的設備能夠與支持2字節(jié)AS號的設備兼容。 BGP分類: BGP按照運行方式分為EBGP(External/Exterior BGP)和IBGP(Internal/Interior BGP)。

EBGP:運行于不同AS之間的BGP稱為EBGP。為了防止AS間產(chǎn)生環(huán)路,當BGP設備接收EBGP對等體發(fā)送的路由時,會將帶有本地AS號的路由丟棄。 IBGP:運行于同一AS內(nèi)部的BGP稱為IBGP。為了防止AS內(nèi)產(chǎn)生環(huán)路,BGP設備不將從IBGP對等體學到的路由通告給其他IBGP對等體,并與所有IBGP對等體建立全連接。為了解決IBGP對等體的連接數(shù)量太多的問題,BGP設計了路由反射器和BGP聯(lián)盟。

二、報文

1.報文格式

2.BGP使用如下四種消息類型:

Open消息:Open消息是TCP連接建立后發(fā)送的第一個消息,用于建立BGP對等體之間的連接關系。 Keepalive消息:BGP會周期性地向?qū)Φ润w發(fā)出Keepalive消息,用來保持連接的有效性。 Update消息:Update消息用于在對等體之間交換路由信息。它既可以發(fā)布可達路由信息,也可以撤銷不可達路由信息。 Notification消息:當BGP檢測到錯誤狀態(tài)時,就向?qū)Φ润w發(fā)出Notification消息,之后BGP連接會立即中斷。

BGP鄰居建立中的狀態(tài)和過程如下:

  1. 空閑(Idle):為初始狀態(tài),當協(xié)議激活后開始初始化,復位計時器,并發(fā)起第一個TCP連接,并開始傾聽遠程對等體所發(fā)起的連接,同時轉(zhuǎn)向Connect狀態(tài)。。
  2. 連接(Connect):開始TCP連接并等待TCP連接成功的消息。如果TCP連接成功,則進入OpenSent狀態(tài);如果TCP連接失敗,進入Active狀態(tài)。
  3. 行動(Active):BGP總是試圖建立TCP連接,若連接計時器超時,則退回到Connect狀態(tài),TCP連接成功就轉(zhuǎn)為Open sent狀態(tài)。
  4. OPEN發(fā)送(Open sent):TCP連接已建立,自己已發(fā)送第一個OPEN報文,等待接收對方的Open報文,并對報文進行檢查,若發(fā)現(xiàn)錯誤則發(fā)送Notification消息報文并退回到Idle狀態(tài)。若檢查無誤則發(fā)送Keepalive消息報文,Keepalive計時器開始計時,并轉(zhuǎn)為Open confirm狀態(tài)。
  5. OPEN證實(Open confirm):BGP等待Keepalive報文,同時復位保持計時器。如果收到了Keepalive報文,就轉(zhuǎn)為Established狀態(tài),鄰居關系協(xié)商完成。如果系統(tǒng)收到一條更新或Keepalive消息,它將重新啟動保持計時器;如果收到Notification消息,BGP就退回到空閑狀態(tài)。
  6. 已建立(Established):即建立了鄰居(對等體)關系,路由器將和鄰居交換Update報文,同時復位保持計時器。

三、BGP路由通告原則

BGP在進行路由通告的時候,需要遵循以下原則:

  1. 多條路徑時,BGP Speaker只選最優(yōu)的給自己使用(負載均衡和FRR除外)。
  2. BGP Speaker只把自己使用的路由(最優(yōu)路由)通告給相鄰體。
  3. BGP Speaker從EBGP獲得的路由會向自己所有BGP相鄰體通告(包括EBGP和IBGP)。
  4. BGP Speaker從IBGP獲得的路由不向自己的IBGP相鄰體通告(反射器除外)。
  5. BGP Speaker從IBGP獲得的路由是否通告給自己的EBGP相鄰體要根據(jù)IGP和BGP同步的情況來決定。
  6. 當收到對端的refresh報文并且本端鄰居支持refresh能力,BGP Speaker將把自己所 有BGP路由通告給對等體。
  7. GR過程中,主備倒換方在GR結束時BGP Speaker會把自己所有BGP路由通告給對等體。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號