日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

HCIP---BGP ---邊界網關協議

作者:Newcomer_L 更新時間: 2022-07-21 編程語言

BGP ---邊界網關協議

IGP:內部網關協議

EGP:外部網關協議(不僅僅有BGP)

BGP:

AS ---自治系統---由單一機構或組織管理的一些列IP網絡及其設備的集合。

1,網絡范圍太大,協議跑不過來,需要進行劃分;

2,自治管理

為了方便區分和標定不同的AS,我們給每個自治系統設計了一個編號

AS號---16位二進制構成---0 -65535;其中0和65535為保留值,不用,所以,AS號真正的取值范圍為1 -65534;我們將64512 - 65534AS號稱為私有AS號。

因為傳統的AS號存在不夠用的問題,所以目前也存在拓展版的AS號---32位構成---目前絕大多數設備已經支持拓展版的AS號

EGP協議在之前還存在一款協議---EGP,但是由于其功能有限,后來在其基礎上進行優化和改進,生成了現在的BGP協議。目前AS之間使用最廣泛的協議就是BGP協議。

在目前IPV4環境下,使用最廣泛發BGP版本是BGPV4。目前市場上已經存在BGPV4+。BGPV4+又可以稱為MP-BGP ---可以支持多種地址族的應用

在沒有BGP協議的情況下,僅使用重發布技術,也可以實現AS之間的路由信息的共享。但是,之所以不采用這種方案,其原因如下:

  1. 重發布技術本省存在缺陷

---在多點重發布中,因為種子度量值問題,必然造成選路不佳

2,ASBR設備的歸屬問題

BGP之間傳遞路由信息的方式一定是和RIP類似,通過傳遞路由條目信息來實現。(只需要學習本地IGP和BGP)

之所以不使用拓撲信息,主要因為:

  1. 拓撲信息資源占用量太大,而BGP需要傳遞的數量是巨大的。
  2. 傳遞拓撲信息將暴露本AS內部的拓撲連接情況。

BGP ---無類別的路徑矢量型協議

距離矢量---在距離矢量型協議中,距離是開銷的體現,將跳數作為開銷值的評判標準。將一個路由器看作是一個單位計算距離。

距離矢量是算法的概念,因為IGP協議本身需要通過算法來計算出未知網段的路由信息。

路徑矢量---是將一個AS看作一個整體路徑矢量不牽扯算法,因為BGP僅僅是將IGP計算出來的路由信息發送到其他AS之中,相當于僅將現成的路由進行傳遞而不需要計算。

IGP?---選路佳,收斂快,占用資源少

BGP協議的關注點:

1,可控性---AS之間需要傳遞大量的路由信息,所謂可控,就是可以更方便的干涉選路,更容易做路由策略

為了保證可控型,BGP舍棄了開銷值。取而代之的是BGP給每條路由信息附加了很多路徑屬性。之后,可以通過這些屬性來進行選路。因為多種屬性的存在,將導致我們的選路變的更加的靈活和方便。使得BGP協議具有強大的可操控型。

因為BGP協議需要傳遞大量的路由信息,所以,其本身不可能存

在周期更新機制。BGP僅存在觸發更新。

2,可靠性---需要保證數據傳輸的可靠BGP為了保證傳輸的

可靠性,其傳輸層協議直接選擇使用TCP協議。使用TCP的179

號端口進行工作。

IGP協議不選擇使用TCP的原因

1,TCP傳輸效率較低?

2,TCP傳輸占用資源較大

3,TCP協議只能實現單播,所以,無法通過組播或者廣播的形式發送,則將導致IGP協議無法自動發現鄰居關系,只能手工指定

因為BGP選擇使用的是TCP協議,所以,BGP需要手工建立鄰居關系。

BGP因為傳輸層使用的是TCP協議,所以,只要在TCP協議可以正常建立會話的基礎上就可以完成BGP的建鄰工作。

BGP支持非直連建鄰(網絡可達)---BGP的非直連建鄰建立在IGP(靜態)之上在BGP中,我們將鄰居關系稱為對等體關系。

EBGP對等體關系---如果建立對等體的兩臺路由器位于不同的AS中,則他們的關系被稱為EBGP對等體關系。

IBGP對等體關系---如果建立對等體的兩臺路由器位于同一個的AS中,則他們的關系被稱為IBGP對等體關系。

因為,EBGP對等體之間一般使用直連建鄰,所以,EBGP對等體之間發送的數據包中的TTL值我們將其設置為1。如果遇到EBGP對等體之間需要進行非直連建鄰,則需要手工修改TTL?值。IBGP對等體關系在AS內部一般都是非直連建鄰,所以TTL值設置為255。

  1. AS-BY-AS---在BGP當中,我們將一個AS看作一個整體。

BGP協議是不支持負載均衡的。----在BGP當中,如果到達同一個目標網段存在多條路徑可以走時,BGP將會根據其中的路徑屬性來選擇一條最優的加載到路由表中,而不會進行負載均衡。

  1. BGP的數據包

BGP協議所有數據包的傳輸的可靠性均由TCP協議來保證。所有BGP數據包均基于TCP建立的會話通道發送。

OSPF的Hello ---可以周期性的發現,建立和保活鄰居關系。

在BGP中,發現鄰居關系的過程變為由人手工指定。主要因為TCP協議需要建立會話通道,之后才會基于通道發送數據包。

open包---建立BGP對等體關系。----鄰居關系的建立無非就是參數協商的過程。BGP建立鄰居關系需要通過OPEN包來攜帶參數,進行比對協商。

AS號---在創建鄰居關系時需要指定鄰居所在的AS號,這個參數將被攜帶在OPEN報文中發送給對方,對方將比對這個AS號和本地所在的AS號是否一致,如果一致,則可以正常建立鄰居關系。

認證---BGP建鄰也可以做認證,做認證后將攜帶認證口令,認證口令雙方需要比對,一致則可以正常建立鄰居關系。

ROUTE-ID----區分和標定路由器的。也是由32位二進制構成,按照IP地址的格式來表示。----1,手工配置;2,自動獲取先看設備是否存在環回接口,如果存在則將選擇環回接口中IP地址最大的地址作為RID,如果沒有環回接口,則將在物理接口中選擇IP地址最大的作為RID)這個RID將在OPEN包中攜帶,發送到對端之后,對端將檢測這個RID,如果和本地的RID不同,則將可以正常的建立鄰居關系。

手工建立鄰居關系時所指定的建鄰的IP地址必須和收到的open?包中的源IP地址相同才能正常建立鄰居關系。否則,鄰居關系將建立失敗。

Holdtime---?;顣r間---默認時間為180S,在?;顣r間內,如果沒有收到對方發送的keeplive包或者update包,則將斷開BGP鄰居關系。這個參數在open報文中將被攜帶,但是,雙方不一致不會影響鄰居關系的建立,但是在執行時,這個時間必須是一致的,則將采用雙方中較小的保活時間來使用。路由器是否支持刷新功能也將成為OPEN報文中所攜帶的一個協商參數。

keeplive包---周期保活---周期發送時間等于?;顣r間的1/3。默認?;顣r間180S,則默認的周期發送時間為60S。

除了保活之外,keeplive包還將在open報文協商參數時臨時充當確認包的作用。

TCP協議進行確認的目的是為了保證數據傳輸的可靠性,而 keeplive報文確認的目的是為了確認認可對方發送的open報文中的參數。

update包---更新包---攜帶需要傳遞的路由信息的數據包。表示一

條路由條目信息,需要攜帶的參數主要就是目標網絡號和子網掩碼信

息,以及路徑屬性。

在更新包中,存在一個撤銷路由條目字段,在這個字段下的路由條目將需要對端刪除,而不再需要通過帶毒傳輸的方式來表達。

notification包---BGP中設計的一個告警機制。

Route-refresh包---用于改變路由策略變更后請求對等體重新發送路由

信息。(前提條件是雙方均支持路由刷新功能才行。)

  1. BGP的狀態機

BGP的狀態機描述的是BGP對等體建立過程中狀態的變化。因為BGP這個協議可以將鄰居建立過程和路由收發過程分開進行。

BGP的狀態機---6種

?

IDLE ---空閑狀態---路由器啟動BGP進程之后,將先處于idle狀態。當你手工指定鄰居關系后,BGP將進入到一個檢查環節,檢查指定的IP地址在本地路由表中是否可達。如果可達,則將進入到下一個狀態---connect。

Connect---連接狀態,該狀態完成TCP會話的建立。

如果TCP會話建立成功,則將進入到opensent狀態,發送open報文。

如果TCP會話建立失敗,則將進入ACTIVE狀態,嘗試重新建立TCP?會話。

在建立TCP會話過程中,因為雙方都會主動發起建立會話的過程,而最終建立的都是一個雙向的會話。所以,最終只需要保持一個會話通道即可。選擇方式是通過后續open報文中的RID進行比較,選擇保留RID大的設備發起的TCP會話。

Opensent---發出本地的open報文。收到對端發送的open報文,查看里面的參數,之后,如果確認參數無誤。則將回復keeplive報文作為確認。

Openconfirm---open報文確認狀態---對端也收到本地發送的open報文,之后根據里面的參數進行確認。如果確認無誤則將發送keeplive報文。本段收到對方發送的keeplive報文之后將進入下一個狀態。

Established---建立狀態---標志著BGP對等體關系的建立。

?

?

  1. BGP的工作過程

1,基于IGP協議實現IP可達?

2,指定鄰居關系,通過三次握手,建立TCP的會話通道。之后所有BGP的數據報都將基于TCP會話通道來進行傳遞。

3,使用open報文和keeolive報文進行鄰居關系的建立。之后將鄰居關

系收集到一張表中---鄰居表

4,通過update報文傳遞路由信息。傳遞的路由條目信息中主要包含目標網絡號,掩碼信息,以及各種路徑屬性。之后,設備會將所有自己發出的以及收到的路由信息記錄在一張表中---BGP表

5,之后將BGP表中的最優路徑加載到路由表(依靠屬性選擇出最優路徑)

6,收斂完成后,BGP將周期使用keeplive報文進行保活?;顣r間默認為180S周期發送時間默認為保活時間的1/3,即60S。?

7,若出現錯誤信息,將使用notification報文進行告警。?

8,若發生結構突變,則將使用update報文進行觸發更。

4,BGP的路由黑洞

?

由于BGP協議支持非直連建鄰,故可能出現BGP協議跨越未運行BGP協

議的路由器。導致BGP路由傳遞后,控制層面可達,但是數據層面,在經

未運行BGP協議的路由器時無法通過。形成路由黑洞。

  1. 在R3上將BGP協議的路由信息重發布到IGP當中。

2,直接在R4上運行BGP協議

3,MPLS

為了避免路由黑洞的情況產生,BGP提出了同步機制---即當一臺路由器從自己的IBGP對等體學習到一條BGP路由時,他將不能把他通告給自己的EBGP對等體,除非他又從IGP協議當中學習到這條路由。

5,BGP的防環

BGP使用的防環機制---水平分割機制

EBGP的水平分割---一種專門應用EBGP對等體之間,用來解決EBGP對等體之間可能出現的環路問題。

BGP協議將在路由條目中記錄所經過的AS編號----AS_PATH ---記錄AS路徑的一個屬性。(這個屬性除了可以完成EBGP的水平分割外,還可以作為選路的依據。)---接收到的BGP路由條目中,其中的AS_PATH屬性中,若存在本地的AS號,則將拒絕接受。

IBGP的水平分割---一種專門應用在IBGP對等體之間,用來解決IBGP對等體之間可能出現的環路問題。

?

IBGP水平分割---當一個路由器從一個IBGP對等體處學習到某條BGP路由時,他將不能在將這條路由信息通告給其他的IBGP對等體關系。

?

因為IBGP水平分割的限制,導致IBGP對等體之間的路由信息只能傳遞

一跳,在這情況下,可能會造成通信障礙。

解決方案:

  1. 構建全連的IBGP對等體關系---這樣的方法弊端在于
    1. 全連建鄰會導致資源消耗增加;
    2. 可能會導致網絡的可拓展性降低。

2,路由反射器

3,聯邦

6,BGP的基本配置

原文鏈接:https://blog.csdn.net/Newcomer_L/article/details/125898346

欄目分類
最近更新