運(yùn)營(yíng)商或大型網(wǎng)絡(luò)中的BGP協(xié)議,一分鐘了解下BGP基礎(chǔ)知識(shí)
一、了解BGP協(xié)議
BGP 是一種路徑矢量路由協(xié)議,用于傳輸自治系統(tǒng)間的路由信息,BGP 在啟動(dòng)的時(shí)候傳播整張路由表,以后只傳播網(wǎng)絡(luò)變化的部分觸發(fā)更新它采用 TCP 連接傳送信息,端口號(hào)為 179 在 Internet 上,BGP 需要通告的路由數(shù)目極大,由于 TCP 提供了可靠的傳送機(jī)制,同時(shí) TCP 使用滑動(dòng)窗口機(jī)制,使得 BGP 可以不斷地發(fā)送分組,而無(wú)需像 OSPF 或 EIGRP 那樣停止發(fā)送并等待確認(rèn)。
1. 使用 BGP 一般有如下情況:
- 一個(gè) AS 允許包穿越它,到達(dá)其他的 AS
- 一個(gè) AS 連接多個(gè) AS
- 必須對(duì)數(shù)據(jù)流進(jìn)入和離開 AS 進(jìn)行控制
2. 不使用 BGP 一般有如下情況:
- AS 只有一個(gè)出口
- AS 的所有出口均為 1 個(gè) ASP
- 路由性能不高,內(nèi)存較小,CPU 較慢,帶寬不大
3. 認(rèn)識(shí)BGP AS-Path
BGP 是路徑矢量協(xié)議,它使用一個(gè) AS 號(hào)列表,數(shù)據(jù)包必須通過(guò)這些 AS 才能到達(dá)目的,同時(shí)對(duì)產(chǎn)生的 AS-path 做一定的策略。AS-Path 對(duì)于路由環(huán)路非常容易檢測(cè)到,如果路由器接受到一條含有本地 AS 號(hào)的 AS-path,說(shuō)明出現(xiàn)環(huán)路。BGP 沒有給出每個(gè) AS 域內(nèi)的拓?fù)浣Y(jié)構(gòu),因此 BGP 只能看到 AS 樹,而 IGP 只能看到 AS 域內(nèi)拓?fù)浣Y(jié)構(gòu).
- R2>show ip bgp//查看路由表
當(dāng)某個(gè)特殊目的網(wǎng)絡(luò)有并列的,等開銷的路徑時(shí),Cisco 缺省執(zhí)行 EBGP 只選擇一條路徑,但可以使用 maximum-paths改變并行路徑缺省的最大數(shù)目,但僅對(duì) EBGP 有效
二、BGP消息類型
1. Open
TCP 對(duì)話建立以后,兩個(gè)鄰居都要發(fā)送一個(gè) Open 消息,每個(gè)鄰居都用該消息來(lái)標(biāo)示自己,并規(guī)定自己的 BGP 運(yùn)行參數(shù)。
- BGP version:它明確了發(fā)起者正在運(yùn)行的 BGP 版本號(hào)(2,3,4),可以通過(guò) neighbor version 修改,缺省版本號(hào)為 4。如果版本號(hào)不相同,路由器將自動(dòng)降低版本號(hào)重發(fā) Open 消息,直到版本一致
- AS number:發(fā)起會(huì)話路由器的 AS 號(hào),用于確認(rèn) EBGP 或者 IBGP 會(huì)話
- Hold time:路由器必須收到一個(gè) keepalive 或者更新消息之前允許經(jīng)過(guò)的最大秒數(shù)。Holdtime 必須是 0(在這種情況下,必須是沒有發(fā)送 Keepalive)或者至少 3s Cisco 默認(rèn)的 holdtime 為 180s,如果兩個(gè)鄰居間 holdtime 不一致,選較短的那個(gè)做為兩者可接受的時(shí)間
- BGP router-ID:選取方式和 OSPF 相同,使用數(shù)值最大的 loopback 口地址,沒有 loopback 則使用物理接口上數(shù)值最大的地址
- Optional parameters:用于一些可選功能的支持.例如鑒別,多協(xié)議支持及路由刷新等
2. Keepalive
如果路由器接受了他在鄰居的 Open 消息中的參數(shù),它就會(huì)發(fā)送一個(gè)應(yīng)答的 Keepalive 消息。
默認(rèn)情況 Keepalive 間隔 60s,或者是達(dá)成一致的保持時(shí)間的 1/3
3. Update
Update message 用來(lái)公布可用的路由,撤銷的路由或者兩者兼顧Network Layer Reachability Information (NLRI)用來(lái)公布 IP 地址前綴和前綴長(zhǎng)度的字節(jié)組,例如<19,198.24.160.0>Path Attributes該屬性為 BGP 提供了選擇最短路徑,檢查到路由環(huán)路以及決定路由策略的信息Withdrawn Routes用來(lái)描述已經(jīng)變成不可達(dá)并正從業(yè)務(wù)中撤銷的目的地址字節(jié)組(長(zhǎng)度和前綴)雖然 NLRI 字段可以包含多個(gè)前綴,但每一個(gè)更新消息只描述一條 BGP 路由(因?yàn)槁窂綄傩灾幻枋鲆粭l路徑,但該路徑可能會(huì)到達(dá)多個(gè)目的地)
4. Notification
當(dāng)檢測(cè)到差錯(cuò)的時(shí)候就會(huì)發(fā)送 Notification 消息,通常會(huì)導(dǎo)致 BGP 連接終止。