日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BGP属性+13条选路原则(转载)

發布時間:2024/9/5 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BGP属性+13条选路原则(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文:http://blog.sina.com.cn/s/blog_be409c2f0102x6sg.html

BGP(Border Gateway Protocol)邊界網關協議

BGP(Border Gateway Protocol)邊界網關協議是一種運行在TCP上用于AS(Autonomous System,自治系統)之間的動態路由協議,BGP是唯一一個用來處理像因特網大小的網絡協議,也是唯一能夠妥善處理好不相關路由域間連接的協議。默認不負載(最大負載數量:6)
BGP可以支持classless interdomain routing(CIDR)無類別域間路由

首先介紹一下AS:
目前,通常還是使用2字節長度的AS,也就是0-65535;
公有的AS范圍是:0-64511
私有的AS范圍是:64512-65535
公有AS只能用于互聯網,并且全球唯一,不可以重復;而私有AS可以在得不到合法公有AS的企業網使用,可以重復,私有AS不允許傳入互聯網,ISP在企業用戶的邊緣,需要過濾掉帶有私有AS號的路由。
2009.1月之后,(IANA)決定使用4字節長度的AS,范圍是65536-4294967295
只能在一個AS內部傳遞更新的IGP路由協議有:RIP、EIGRP、OSPF、IS-IS;可以在AS之間傳遞路由更新的路由協議只有BGP。

BGP路由器之間的數據傳輸使用TCP協議的179端口,并且指定回話的目標端口為179,而會話源端口號是隨機的
BGP的鄰居必須手工指定才可以。
open報文用于發現鄰居,只發一次;維持鄰居關系的數據包稱為Keepalive=60s(默認);Holdtime=180
當全網每一臺路由器都擁有所有的路由信息,并且完全一致時,這種狀態被稱為收斂狀態,一個網絡只有在收斂狀態時,才能保證路由全網可達。

建議使用Lookback接口建立鄰居的原因:
為了使擁有多條鏈路的BGP鄰居之間永遠保持連接,考慮到路由器的Loopback接口在設備正常工作的情況下,不會像物理接口那樣出現中斷,所有建議在BGP鄰居之間使用Lo接口地址來建立TCP連接。
當指定鄰居時,不再將鄰居的地址指定為對方物理接口地址,而改為指定對方的Lo地址,即使物理接口中斷,只要還有通暢的鏈路,那么BGP鄰居仍然可以保持連接。再將BGP鄰居地址指定為對方Lo地址時,為了使數據包的目標IP與對方的BGP源地址相同,所以鄰居也要將BGP源地址更改為自己的Lo接口地址,從而使得雙方正常建立BGP連接。

BGP的兩種AD值:EBGP20、IBGP200
因為BGP的鄰居類型分為兩種:EBGP和IBGP;所以BGP路由的AD值也有區分,如果BGP路由是從EBGP學習到的,AD=20 EBGP鄰居學習到的路由優于任何IGP協議;從IBGP學習到路由AD=200,優先級低于任何IGP協議。 BGP除了以上兩種AD值之外,如果BGP路由是從本地手工導入的(本地路由),則BGP本地路由的AD=200,與IBGP路由的AD值相同,優先級低于任何IGP協議。

1、鄰居:不需要直連,只要有能到達對方的路由,使用單播TCP建立
2、BGP只傳路由不傳數據,控制層面(路由)源、目的地址每過一路由器都變;而數據層面源、目的地址一直不變,若中間路由器沒有該目的地址,數據層面可能會造成路由黑洞。
解決辦法:物理線路全互連、BGP鄰居邏輯全互連、MPLS(最好)
3、BGP的水平分割原則:(防環)
1)EBGP:不接受包含自己AS號的BGP路由
2)IBGP:從IBGP學到的路由不會通告給其他的IBGP鄰居(BGP路由在AS內部只傳一跳),所以IBGP鄰居需要全互連(路由反射器、聯邦)
4、配置:
router bgp 123
bgp router-id 11.1.1.1
neighbor 22.1.1.1 remote-as 123
neighbor 22.1.1.1 update-source lo 0(自己的回環接口地址,單向就可以建立,建議雙向)
neighbor 22.1.1.1 next-hop-self
neighbor 22.1.1.1 ebgp-multihop 2
IBGP鄰居之間用環回口建立鄰居,默認的源地址是物理接口,如果用環回口建立鄰居必須手動指定源地址;而EBGP一般使用物理接口,若用回環口,需要改成多跳,默認是1跳,EBGP間若用環回口建立鄰居,因為不通IGP,沒有對端環回口路由,所以還必須運行靜態路由或者IGP動態路由協議。

5、IGP:network宣告的是接口
BGP:network宣告的是路由,只要是本地AS內的路由,都可以宣告出去,路由表中存在的路由,才能被BGP通告出去,必須精確匹配
network 4.4.4.0 255.255.255.0 宣告前看路由表,精確匹配才能宣告出去

6、非最優路由:不傳給其他BGP鄰居、也不會放入路由表
造成非最優路由的原因:
1)不同步:
從IGP學到、寫靜態路由或者關閉同步(保證不存在路由黑洞的前提下,中間路由也運行BGP,建立全互連IBGP鄰居)
2)下一跳不可達:
從IBGP學到、寫靜態路由或者改變下一跳(在邊界路由器寫)neighbor 3.3.3.3 next-hop-self
7、同步:從IBGP學到的路由,同時也在IGP學到,才能傳給其他BGP鄰居、放進路由表(防止數據層路由黑洞)

Peer Group(減少Buffer,減少命令行)
router bgp 1
neighbor WOOW peer-group
neighbor WOOW remote-as 1
neighbor WOOW update-source lo 0
neighbor 22.1.1.1 peer-group WOOW
neighbor 33.1.1.1 peer-group WOOW

8、MA網絡的下一跳特性:ICMP重定向(自動完成)
9、用r標識的路由:IGP和BGP學到同一條路由,但是IGP學到的路由管理距離更小,該路由就會標識r,不放進路由表,但是會傳遞給鄰居
10、清理和重啟BGP:
1)硬清:clear ip bgp *
2)軟清:clear ip bgp * soft (in/out) 不斷TCP連接
11、BGP聚合:
1)手工寫靜態路由指向Null0(路由匯總)在用network 發布匯路由
2)network明細路由,一條一條的宣告,再aggregate-address做聚合,默認是把聚合和明細都宣告進去
aggregate-address 192.168.16.0 255.255.252.0 summary-only :僅宣告聚合路由,此時明細路由標識了s,表示抑制路由,不會傳給鄰居
可選擇宣告特定路由,寫抑制列表:aggregate-address 192.168.16.0 255.255.252.0 suppress-map WOOW,在調用route map WOOW配合ACL或者prefix-list。
在接收方做聚合:
明細路由來自源方,聚合路由在接受方生成,并反傳給源方,可能導致丟包,所以不能讓路由回傳(把明細路由的屬性加入到聚合鏈路上)
aggregate-address 192.168.16.0 255.255.252.0 summary-only as-set:當匯總路由繼承了明細路由的AS-path,源方就不會接受該路由了。
12、在重分布 或者BGP中使用route-map,如果要讓明細路由過來,必須寫一條空的。

BGP路由要被標為最優路由必須達到以下兩個條件:

★下一跳可達

★如果是從iBGP收到的路由,則必須滿足IGP與iBGP同步,除非該規則已被關閉。

如果某BGP路由的狀態為RIB-Failure,則不能被使用,被定為RIB-Failure的原因有:

★該路由在IGP中已經擁有比BGP更高優先級的AD值。

★內存錯誤

★超出VRF中的路由限制數。

BGP建立鄰居的條件如下:

★雙方需要建立鄰居的IP地址在網絡上是互通的,可以建立TCP會話。

★雙方指定的AS號碼必須匹配。

★雙方BGP數據包必須可達(eBGP默認TTL為1,需要注意)。

★對方BGP數據包的目的IP和自己的源IP必須相同(單向滿足即可)。

Weight屬性為Cisco私有屬性

BGP還能夠傳遞除IP協議之外的其它網絡層協議,能夠傳遞的協議如下:

IP Version 4 (IPv4),

IP Version 6 (IPv6),

Virtual Private Networks version 4 (VPNv4),

Connectionless Network Services (CLNS),

Layer 2 VPN (L2VPN).

這些協議被稱為address family,配置需要進入相應的協議address family模式,而Ipv4除外。所有命令在address family中獨立配置,獨立生效,并且都擁有獨立的數據庫。正常的BGP配置模式被稱為NLRI 模式,而address family模式稱為AFI模式;MPLS,只能在AFI中配置;在NLRI 模式中配置的參數只對Ipv4單播生效。

BGP的路徑屬性可以劃分為以下四類:

公認強制 (Well-Known Mandatory)

公認自選 (Well-Known Discretionary)

可選可傳遞 (Optional Transitive)

可選不可傳遞(Optional Nontransitive)

BGP路由必須攜帶的公認強制屬性有三個:Origin,Next_Hop,AS-path。

1.Origin(公認強制屬性):

默認情況下,任何路由都不會自動進入BGP路由表,只能手工導入,對于路由是怎么進入BGP路由表的,這種方式會被記錄在路由條目中,稱為Origin屬性,Origin屬性就反映出了路由是如何進入BGP路由表的。

1、將IGP表中的相應路由導入BGP路由表,并且需要指定掩碼,只有network后面的網段和掩碼在IGP路由表中能找到時,才會進入BGP路由表,并不能通過這種方式將一條不存在的路由憑空導入BGP,通過命令network被導入BGP的路由的Origin屬性為IGP屬性。

2、BGP路由表除了從IGP和EGP獲得路由外,還可以將路由重分布進BGP路由表,而重分布的路由的Origin屬性為Incomplete。

3、當BGP路由表中到達同一目的地存在多條路徑時,會通過比較路由的Origin屬性來選擇最優路徑,它們的優先級為IGP優于EGP,EGP優于Incomplete,即:IGP>EGP>Incomplete。

2.AS_Path(公認強制屬性):

AS_Path還能細分為:

1、AS_SEQUENCE(有序的AS號碼,即AS號碼在AS_Path中是按一定順序排列的)

2、AS_SET(無序的AS號碼,即AS號碼在AS_Path中的排列是沒有順序的,通常是將多條擁有不同AS_Path的路由匯總后產生的)

當BGP路由表中到達同一目的地存在多條路徑時,會優選AS-Path最短的路徑。

3.Next_Hop(公認強制屬性):

1、默認情況下,一臺BGP路由器將路由傳遞給eBGP鄰居時,會將Next-hop屬性改為自己的地址,也就是和對方建立鄰居所使用的地址,而在將路由傳遞給iBGP鄰居時,不會改變Next-hop屬性。

2、BGP路由表中由本地產生的路由而不是從BGP鄰居學習來的,即本地發起路由的Next-hop屬性都為0.0.0.0。

4.Local_Pref(公認自選屬性):

1、Local_Pref稱為本地優先級,其中的(Local)本地就是指本AS,Local_Pref屬性的傳遞范圍,只在同一個AS內有效,一條路由的Local_Pref屬性只能在同一AS內部傳遞,出了AS后就會被還原成默認值。

2、Local_Pref屬性在BGP鄰居之間自動傳遞,只有在將路由發給iBGP時才會傳遞,而在發給eBGP時,沒有Local_Pref值,Local_Pref的默認值為100,一條路由在AS內所有路由器上的默認值是100.

3、本地優先級屬性是用于區分到同一目的地的各個路由優先程度的。本地優先級越高,路由優先級越高;推薦使用Local_Pref屬性來控制一個AS的路由器去往目的地在其它AS的路徑。

5.MULTI_EXIT_DISC(MED,可選不可傳遞屬性):

1、MED就是BGP路由中的metric,是被設計用來影響在多個下一跳都為eBGP鄰居時,如何選擇最優路徑;多條路徑中擁有最小MED值的路徑會被優先使用。MED默認值為0。MED只能在AS之間傳遞,只有在將路由發給eBGP鄰居時,才會傳遞MED,在發給iBGP時,是不會傳遞MED的。

2、同一個AS內,所有發給iBGP鄰居的路由的MED值都為0,這是為了讓所有AS內部路由器都能夠擁有相同的選路結果。

6.Weight

1、Weight屬性為Cisco私有屬性,只有Cisco的路由器才能認識和理解Weight。路由的Weight屬性只在路由器本地起作用,BGP將路由傳遞給鄰居時,并不會保留Weight。Weight值的范圍為0~65535,默認為0,如果是BGP本地路由,則Weight值為32768。

2、當BGP路由表中到達同一目的地存在多條路徑時,會優選Weight值最大的路徑。在Cisco路由器中,比較最優路徑的第一條規則就是比較Weight值,所以只要改動Weight值,就絕能夠控制Cisco路由器的BGP選路。

BGP最優路徑選擇

在默認情況下,到達同一目的地,BGP只走單條路徑,并不希望在多條路徑之間執行負載均衡。

1.最高Weight值(選擇最高Weight值的路由,Weight值為Cisco私有,并且只有本地有效,默認Weight值為0,本地發起路由為32768。

2.最高LOCAL_PREF值(如果Weight值相同,則選擇擁有最高LOCAL_PREF值的路由,默認為100。)
3.本地發起路由

(如果LOCAL_PREF值相同,則選擇BGP本地發起的路由: 也就是下一跳為0.0.0.0的路由,本地發起的路由有多種方式,如通過在BGP進程下命令network命令從IGP路由表導入,將其它路由協議重分布進BGP路由表,最后是匯總路由表。而通過命令network和重分布的路由優先于手工匯總的路由。)

4.最短AS_PATH

(如果本地發起路由無法比出最優路徑,則選擇擁有最短AS_PATH的路由,但是可以跳過這一步,輸入命令bgp bestpath as?path ignore后,就會忽略對AS_PATH的比較,而直接比較下一屬性。需要更加注意的是,AS_SET被認為是1個AS,而無論AS_SET中包含多少個AS,并且BGP聯邦內部AS不被計算。)

5.最低Origin類型

(如果AS_PATH無法比出最優路徑,則選擇擁有最低Origin類型的路由,Origin表示路由最初是如何進入BGP路由表的,目前有三種進行BGP路由表的方法,從IGP導入,從EGP學習,以及重分布,它們的優先級為IGP優于EGP,EGP優于Incomplete,即IGP>EGP>Incomplete。

6.最小MED值

(如果Origin類型無法比出最優路徑,則選擇擁有最小MED值的路由,并且只有當多個下一跳鄰居在同一AS時才比較MED值。如果要在多個不同AS的下一跳中比較MED,可在BGP進程中輸入命令bgp always-compare-med,注意須保證此命令在整個AS的路由器上輸入,否則可能產生路由環路。默認的MED值為0,如果收到一條沒有MED的路由,也認為是0。)
7.eBGP優于iBGP

(如果MED值無法比出最優路徑,則選擇下一跳為eBGP的鄰居而不選擇iBGP鄰居。都知道eBGP的路由AD值為20,而iBGP的路由AD值為200,但BGP并不在eBGP與iBGP之間比較AD值,并且在比到此步時,鄰居類型才影響了最優路徑的選擇,這種影響是受鄰居類型的影響,而不是受AD值的影響。注意:BGP聯邦內部沒有此規則。)

8.最小IGP metric到達下一跳的路由

(如果多條路徑的下一跳鄰居同為eBGP或iBGP,則選擇擁有最小IGP metric到達下一跳的路由。)

9.負載均衡(如果開啟的話)

(BGP并不是不能負載均衡的,如果之前的屬性都無法選出最優路徑,則執行負載均衡,但必須是之前的所有屬性均完全相同,缺一不可。需要注意:只有負載均衡功能開啟了,BGP才會執行負載均衡,否則,繼續比較下一屬性。)

在開啟負載均衡功能時,在BGP進程下輸入以下命令:

maximum-paths n (多條路徑的下一跳鄰居都為eBGP時,輸入此命令)

maximum-paths ibgp n(多條路徑的下一跳鄰居都為iBGP時,輸入此命令)

其中n為執行負載均衡的路徑數量,最大值為6,默認為1,也就是不執行負載均衡。

如果在eBGP和iBGP鄰居之間同時執行負載均衡,輸入命令maximum-paths eibgp n,此命令只支持在Ipv4 VRF模式下輸入,就是只能支持MPLS VPN下的eBGP和iBGP鄰居之間負載均衡。

10.如果下一跳都為eBGP,則選擇最早學習到的路由(即時間最長的路由)

(為了避免路由翻動,所以選擇最早學習到的路由,如果要忽略比較路由學習到的時間長短,可在BGP進程下輸入命令bgp best path compare?routerid,某些IOS已經自動加入此命令,并且不能刪除。如果多條路由擁有相同的Router-ID,比如路由是從同一個鄰居學習到的,同樣也會忽略比較路由學習到的時間長短。)

11.最低Router-ID下一跳

(BGP的Router-ID選舉如同OSPF,在此步,擁有最低Router-ID的下一跳路由將被選為最優路徑。)

12.最短cluster list(如同AS_PATH)

[cluster list只在BGP reflector (RR)的環境下才有,功能如同AS_PATH]

13.最小下一跳的鄰居地址

(如果比較之前的所有屬性都無法選出最優路徑,最終選擇下一跳的鄰居地址最小的路由,這個地址就是在建立鄰居時所指的地址,也是鄰居和自己建立TCP連接所使用的源地址,建立不同鄰居,不可能使用相同地址,所以不可能兩個不同路徑的鄰居地址是相同的,在這一步一定能夠選出最優路徑.)

原文:http://blog.sina.com.cn/s/blog_be409c2f0102x6sg.html

轉載于:https://www.cnblogs.com/OceanF/p/9200875.html

總結

以上是生活随笔為你收集整理的BGP属性+13条选路原则(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。