今天海翎光電的小編為大家介紹一下BGP的相關(guān)基礎(chǔ)知識,文章淺顯易懂,適合對BGP完全沒有了解的同學(xué)。
BGP(邊界網(wǎng)關(guān)協(xié)議)是將互聯(lián)網(wǎng)聯(lián)合在一起的路由協(xié)議,海翎光電的小編將解釋在哪些情況下我們需要 BGP 以及它是如何工作的。在您繼續(xù)閱讀之前,我應(yīng)該告訴您“忘記”迄今為止您對RIP、OSPF和EIGRP等路由協(xié)議的了解……這三種路由協(xié)議有一個共同點:它們都是 IGP(內(nèi)部網(wǎng)關(guān)協(xié)議)。我們只在我們的自治系統(tǒng)中使用它們,但它們不可擴展以用于像 Internet 這樣大的網(wǎng)絡(luò)。 RIP、OSPF 和 EIGRP 都不同,但它們有一個共同點……它們都想找到到達目的地的最短路徑。當(dāng)我們查看 Internet 時,我們并不關(guān)心找到最短路徑,而是能夠操縱流量路徑更為重要,我們目前在 Internet 上使用的路由協(xié)議只有一種,即 BGP。
為什么需要BGP? 讓我們先看一些場景,以便了解為什么以及何時需要 BGP:
現(xiàn)在幾乎所有東西都連接到互聯(lián)網(wǎng),在上圖中,我們有一個連接到 ISP(Internet 服務(wù)提供商)的客戶網(wǎng)絡(luò),我們的 ISP 正在確保我們可以訪問 Internet,我們的 ISP 為我們提供了一個可用于訪問 Internet 的公共 IP 地址。為了確??蛻舴?LAN 上的每個人都可以訪問 Internet,我們使用NAT/PAT(網(wǎng)絡(luò)/端口地址轉(zhuǎn)換)將我們的內(nèi)部私有 IP 地址轉(zhuǎn)換為這個單一的公共 IP 地址。當(dāng)您只有需要訪問 Internet 的客戶端時,此方案非常適合。在我們的客戶 LAN 上,我們只需要一個指向 ISP 路由器的默認路由,我們就完成了。對于這種情況,我們不需要 BGP...
也許客戶有幾個需要從 Internet 訪問的服務(wù)器……也許是郵件服務(wù)器或網(wǎng)絡(luò)服務(wù)器,我們可以使用端口映射并將正確的端口轉(zhuǎn)發(fā)到這些服務(wù)器,因此我們?nèi)匀恢恍枰粋€ IP 地址,另一種選擇是從我們的 ISP 獲取更多公共 IP 地址,并使用這些地址來配置不同的服務(wù)器。對于這種情況,我們?nèi)匀徊恍枰?BGP……
如果我想要更多的冗余怎么辦?出現(xiàn)單點故障并不是一個好主意,我們可以在客戶端添加另一個路由器并將其連接到 ISP,可以將主鏈接用于所有流量,并使用另一個鏈接作為備份,這種情況我們還是不需要BGP,可以用默認路由解決: 1、在客戶主路由器上面配置低優(yōu)先級的默認路由; 2、在客戶的備路由器上面配置高優(yōu)先級的默認路由; 這將確保您的 IGP 使用主鏈路發(fā)送所有流量,一旦鏈路出現(xiàn)故障,您的 IGP 將確保所有流量都沿備用鏈路發(fā)送,你可以考慮一下......我們可以在這兩個鏈接之間做任何負載平衡嗎?會很難么? 除非出現(xiàn)故障,否則您的 IGP 將沿主鏈路發(fā)送所有流量,而不會沿備用鏈路發(fā)送任何流量。您可以使用相同的度量發(fā)布默認路由,擁有 50/50% 的負載分擔(dān)。如果我想在主鏈路上發(fā)送 80% 的出向流量,在備用鏈路上發(fā)送 20% 怎么辦?上面的方法不會實現(xiàn)此需求,但使用 BGP 是可能的。
一、BGP 含義
Border Gateway Protocol,邊界網(wǎng)關(guān)協(xié)議,協(xié)議優(yōu)先級為 255,目前所使用的版本為 v4。邊界網(wǎng)關(guān)路由協(xié)議,EGP 網(wǎng)關(guān)協(xié)議,適用于大型路由網(wǎng)絡(luò)結(jié)構(gòu),以 AS 為一個節(jié)點,每個 AS 有唯一確定的 AS-ID 用于標(biāo)識。
二、BGP 版本
① 2006 年定義單播 IPV4 網(wǎng)絡(luò) MP-BGP
② MP-BGP 在 IPv6 單播網(wǎng)絡(luò)上的應(yīng)用稱為 BGP4+
③ 在 IPv4 組播網(wǎng)絡(luò)上的應(yīng)用稱為 MBGP(Multicast BGP)
三、BGP 分類 ① IBGP:
Internal Border Gateway Protocol ,內(nèi)部邊界網(wǎng)關(guān)協(xié)議,用于在 AS 內(nèi)部的 BGP協(xié)議
② EBGP:
External Border Gateway Protocol,外部邊界網(wǎng)關(guān)協(xié)議,用于在 AS 之間的 BGP協(xié)議,默認數(shù)據(jù)包中的 TTL 值為 1 跳,鄰居建立使用直連端口建立,通常兩個 AS 之間是不存在 IGP 路由協(xié)議的,所以 AS 之間使用直連鏈路建立鄰居
四、BGP 特性 BGP 路由具有以下特點:
① 可靠的路由更新機制② 豐富的 Metric 度量方法③ 從設(shè)計上避免了環(huán)路的發(fā)生④ 為路由附帶屬性信息⑤ 支持 CIDR⑥ 豐富的路由過濾和路由策略⑦ 支持認證⑧ 默認不使用附載分擔(dān)
01、可靠的路由更新機制
BGP 使用 TCP 進行路由更新,保證路由傳遞的可靠性,源端口號隨機,目的端口號為179。
02、豐富的 Metric 度量方法
BGP 使用 TCP 進行路由更新,保證路由傳遞的可靠性,源端口號隨機,目的端口號為179。
03、從設(shè)計上避免了環(huán)路
IBGP 使用水平分割,EBGP 使用 AS-Path 屬性。
04、為路由附帶屬性信息
路由信息攜帶不同的 BGP 路由屬性,為 BGP 選路提供了多種多樣的方式。
05、支持 CIDR、手動聚合
BGP 支持無類域間(CIDR)路由,支持手工匯總和自動匯總。
(1)、自動聚合:
默認情況下,自動聚合時關(guān)閉的。自動匯總不會自動匯總 BGP 鄰居發(fā)送的路由以及使用 Network 命令通告的路由,只能聚合自身 import 注入的路由條目。當(dāng)開啟自動聚合后,BGP 路由默認會以主類路由進行聚合。此時聚合路由的屬性為 Aggregate 屬性使用以下命令進行自動聚合:[H******-bgp]summary automaticR1:? [H*****-bgp]network 1.1.1.1 32? 只引入 loo2 到 loo4? 啟用路由聚合
(2)、手動匯總:
BGP 手動路由聚合時,可以手動控制聚合路由的掩碼長度,修改聚合路由屬性等,手動路由聚合又有 兩種方式:
① network 靜態(tài)路由② aggregate 宣告③ network 靜態(tài)路由:
首先創(chuàng)建靜態(tài)路由將網(wǎng)段聚合并指向 null0,BGP 采用 network 方式通告出去,由于直連優(yōu)先級高于靜態(tài),優(yōu)先選擇直連的下一跳接口,當(dāng)直連網(wǎng)段出現(xiàn)問題,匹配靜態(tài)送往 Null0。 在 R1 上配置靜態(tài)路由:[Huawei]ip route-static 172.16.0.0 255.255.0.0 NULL 0preference 254 使用 network 宣告出去:[Huawei-bgp]network 172.16.0.0 16
④ aggregate 宣告
直接在 BGP 試圖下進行匯總
使用以下命令進行 aggregate 匯總:
[H****-bgp]aggregate 172.16.0.0 255.255.0.0 detail-suppressed
注 1:
默認聚合路由只繼承 Community 屬性和起源屬性(如果明細都為 i,則為 i,有一個為?,則為?)
注 2:
默認聚合后的路由不會攜帶任何的 AS-path 屬性,為了防止環(huán)路,如果想要攜帶 AS-path 屬性,后面增加命令 as-set,此時匯總路由會繼承所有明細路由的 AS 號,為無序的AS 號,如果增加了 AS-SET 之后,聚合路由會將明細路由的 AS-Path 放入 AS-SET 屬性中,如果明細路由消失或?qū)傩孕薷亩紩斐删酆下酚傻亩秳釉黾?;如果明細路由的AS-PATH id 完全一致,此時聚合路由的 AS-PATH 類型為 AS-Sequence
注 3:
如果不加 detail-suppressed,會將明細路由和匯總路由全部發(fā)送出去,使用detail-suppressed 命令只通告匯總路由,此時匯總路由的屬性為ATOMIC_Aggregate,用于通告下游的路由器成員信息被抑制,此時的匯總路由不會攜帶 Community 屬性
注 4:
為了讓聚合后的路由繼承明細路由的路由屬性,聚合命令后面增加attribute-policy 1,此時在定義 Route-policy,規(guī)劃屬性值
注 5:
origin-policy 的作用,定義 route-policy,當(dāng)滿足 if 條件中的路由條目時,聚合路由才會生效,如果定義的路由消失,則聚合路由為 ATOMIC_Aggregate
注 6:
suppress-policy 的作用是用于過濾掉某些明細路由,定義 route-policy,當(dāng)滿足 if 條件中的路由條目,明細路由就會被過濾掉,如果只抑制了一部分明細路由,屬性依舊為 Aggregate;如過抑制了全部的明細路由,屬性為 ATOMIC_Aggregate
注 7:
同 IGP 路由手動聚合對比,BGP 路由聚合,默認明細匯總都發(fā)布,IGP 只發(fā)布匯總路由;匯總之后 IGP 不會自動生成一條指向 Null0 的路由,而 BGP 路由匯總之后會自動生成一條指向 Null0 的匯總路由
(3)、默認路由發(fā)布
在 peer 對等體的時候,可以使用命令發(fā)布默認路由給對端鄰居:[H******-bgp]peer 192.168.1.1 default-route-advertise
五、豐富的路由過濾和路由策略
BGP 攜帶了大量的屬性信息,并支持 13 種選路規(guī)則。
六、支持認證
BGP 支持 MD5 認證方式,如果是 MD5 方式,路由器會根據(jù) BGP 報文的某些字段和密鑰計算出一個 128bit 的散列值,然后將 BGP 報文連同散列值發(fā)送給鄰居。鄰居路由器收到以后,
會在本地基于收到的 BGP 報文和相同的密鑰在進行一次 HASH 運算。
如果計算出的散列值與接收到的散列值相同,則認證通過。
使用以下命令進行密碼認證:
[H******-bgp]peer 192.168.1.1 password cipher h******/h*****
七、默認不使用附載分擔(dān)
BGP 默認不使用附載分擔(dān),即使存在多條路徑也會使用選路規(guī)則選出一條“最優(yōu)路由”將其放入路由表中。開啟附載分擔(dān)方式:① 選路規(guī)則前 9 條一模一樣(AS ID 順序也一樣),可以使用命令 maximumload-balancing bgp 進行附載分擔(dān),當(dāng)比較到下一跳的 IGP 開銷值一樣時,會進行流量的負載分擔(dān)② 當(dāng) BGP 路由中的下一跳地址在 IGP 路由表中存在附載分擔(dān),此時流量會附載分擔(dān)③ 使用屬性值對多個目標(biāo)流量對半分流實現(xiàn)附載分擔(dān)
八、EBGP 特性EBGP 默認存在以下特性:
① 在通告給 EBGP 鄰居時會將 NEXT_Hop 屬性設(shè)置為自身的接口 IP 地址② 將 Local_PREF 值清空③ 將 MED 數(shù)值除 0③ 在 AS_PATH 屬性中增加自己的 AS-ID
九、擴展性強
BGP 擴展性強,在承載多協(xié)議路由時,在 MP NLRI 中增加屬性值(TLV)進行擴展。
上面海翎光電的小編介紹了BGP的含義、BGP版本、BGP分類、BGP 特性等,接下來咱們繼續(xù)這個話題。
BGP收斂狀態(tài)BGP 收斂主要經(jīng)過以下幾種狀態(tài):
① Idle 初始狀態(tài)
② Connect 連接狀態(tài)
③ Active 失敗等待狀態(tài)
④ Open Sent 協(xié)商狀態(tài)
⑤ Open confirm 連接確立狀態(tài)
⑥ Established 確定建立狀態(tài)
① Idle 初始狀態(tài)
BGP 初始狀態(tài)。在 Idle 狀態(tài)下,BGP 拒絕鄰居發(fā)送的連接請求。只有在收到本設(shè)備的Start 事件后,BGP 才開始嘗試和其它 BGP 對等體進行 TCP 連接,并轉(zhuǎn)至 Connect狀態(tài)。Start 事件是由一個操作者配置一個 BGP 過程,或者重置一個已經(jīng)存在的過程或者路由器軟件重置 BGP 過程引起的。
② Connect 連接狀態(tài)
連接狀態(tài),雙方配置命令后,誰先配置完成誰先主動發(fā)起建立 TCP,源端口隨機,目標(biāo)端口 179,在 Connect 狀態(tài)下,BGP 啟動連接重傳定時器,等待 TCP 完成連接
建立狀態(tài):
? 如果 TCP 連接成功,那么 BGP 向?qū)Φ润w發(fā)送 Open 報文,并轉(zhuǎn)至 OpenSent 狀態(tài)? 如果對方無響應(yīng),則 5S 后發(fā)送第二份組播報文,依舊沒有響應(yīng),等待大約 25S 時候周期后開始下一輪的 TCP 報文發(fā)送,對方一直無響應(yīng),則停留在 Connect(對端沒有去往本端的路由)? 如果對方回應(yīng)拒絕建立 TCP 連接,則不在繼續(xù)發(fā)送 TCP 報文,在大約 25S 后進入Active 狀態(tài)
注:
如果控制 TCP 的主動端和被動端可以使用命令 peer listen-only,此時設(shè)備只偵聽對端,而不主動建立;或者控制主動端的連接端口地址
③ Active 失敗等待狀態(tài)
失敗等待狀態(tài),huawei 設(shè)備依舊為主動建立連接,Active 狀態(tài)一個時間周期(大約25S)只發(fā)送一次 TCP 報文。
建立狀態(tài):
? 如果建立成功,進入 OPENSENT 狀態(tài)? 如果收到拒絕建立 TCP 報文(沒有啟用 BGP),則一個時間周期只發(fā)送一次,并停留在此狀態(tài)? 如果對方無響應(yīng)(無本端路由,比如進入 Active 狀態(tài),對端路由撤銷掉了),一個時間周期后回到 Connect 狀態(tài)
④ Open Sent 協(xié)商狀態(tài)
協(xié)商狀態(tài),TCP 連接建立成功后,發(fā)送 open 報文后,進入 OPENSENT 狀態(tài),開始等待對端接收對端的 Open 報文? 根據(jù) Open 報文中的 AS 號、版本號、認證碼等進行檢查。當(dāng)接收到對端的 Open報文后,發(fā)現(xiàn) Open 報文無誤,會立刻發(fā)送 Keep alive 報文,并進入下一狀態(tài) 。
建立狀態(tài):
? 如果發(fā)現(xiàn)收到的 Open 報文有錯誤,那么 BGP 發(fā)送 Notification 報文給對等體,并轉(zhuǎn)至 Idle 狀態(tài)OPEN 檢測不通過的原因:
① Version 不相同② Route ID 沖突③ TTL 跳數(shù)④ 源 IP 與 Peer 地址不一樣
注:BGP Hold-Timer 時間不一致不影響鄰居的建立
⑤ Open confirm 連接確立狀態(tài)
等待對端的 keep alive 報文,當(dāng)收到對端的 keep alive,進入下一狀態(tài)。
⑥ Established 確定建立狀態(tài)
當(dāng)成功接收對端 Keep Alive 報文后,進入 Established 狀態(tài),是一種穩(wěn)態(tài),并周期的發(fā)送 Keep Alive 報文。
BGP表
BGP 協(xié)議中,連接一旦建立,BGP Speaker 將把自己產(chǎn)生的所有 BGP 路由通告給對等體,有多條路徑時,BGP Speaker 只會選最優(yōu)的給自己使用放入 IP 路由表中,BGPSpeaker 只會選最優(yōu)的給鄰居對等體。
BGP 一共包含三張表:
① 鄰居表② IP 路由表③ BGP 路由表
① 鄰居表
用來查看當(dāng)前的鄰居,使用 display bgp peer 查看:
① Peer Rcv:對端 IP② V:版本③ AS:對端 AS 號④ MsgRcvd:收到了幾條 BGP 消息⑤ MsgSent:發(fā)出了幾條 BGP 消息⑥ OutQ:等待發(fā)送指定對等體的消息⑦ State:狀態(tài)⑧ Pref Rcv:從鄰居學(xué)到多少 BGP 路由條數(shù)
② IP 路由表
全局路由表,包含目前可用的 BGP 路由
③ BGP 路由表BGP 路由表發(fā)送原則:
① IBGP 路由,只發(fā)送給 EBGP 對等體② EBGP 路由,發(fā)布給所有 EBGP 和 IBGP 對等體③ 只將最優(yōu)路由發(fā)布給對等體④ 只發(fā)送增量更新的 BGP 路由
BGP 路由表無效:
① 下一跳不可達(不加入到 IP 路由表中)② IGP 同步開啟,無相應(yīng)的 IGP 路由(不加入 IP 路由表中)③ 存在相同的 IGP 路由(不加入 IP 路由表中)④ AS ID 相同(不接受此 BGP 路由)⑤ Cluster List 中包含本 RR 的簇 ID(不接受此 BGP 路由)⑥ Originator ID 和本路由器的 Router ID 相同(不接受此 BGP 路由)⑦ 使用 BGP 命令 bgp-rib-only(最優(yōu) BGP 路由不會放入 IP 路由表中)
① >為最佳路由,存在多條路徑時,BGP 會選擇最佳路由放入路由表并傳遞給鄰居② *為最優(yōu)化路由,表示當(dāng)前路由有效,當(dāng)沒有*標(biāo)明此路 由不是最優(yōu)③ i 為 IBGP 鄰居學(xué)到的路由條目,如果位空表示本地產(chǎn)生或 EBGP 學(xué)到的路由
審核編輯:湯梓紅
-
交換機
+關(guān)注
關(guān)注
21文章
2640瀏覽量
99640 -
BGP
+關(guān)注
關(guān)注
0文章
83瀏覽量
15331 -
邊界網(wǎng)關(guān)協(xié)議
+關(guān)注
關(guān)注
0文章
4瀏覽量
1555
發(fā)布評論請先 登錄
相關(guān)推薦
評論