BGP的路徑屬性描述了BGP路由的路徑信息脉让,是每個Update數(shù)據(jù)包的一部分副渴;
一、BGP路徑屬性可分成4大類:
1缚够、公認(rèn)必遵? ? ? ? BGP路由器必須識別這類屬性,Update報文必須攜帶這類屬性鹦赎;
如果收到的更新報文中缺少這類屬性谍椅,BGP鄰居關(guān)系會被重置;
2古话、公認(rèn)任意? ? ? ? BGP路由器必須識別這類屬性雏吭,Update報文可選攜帶這類屬性;
3陪踩、可選過渡? ? ? ? BGP路由器可選識別這類屬性杖们,不識別也可以轉(zhuǎn)發(fā)這類屬性;
4肩狂、可選非過渡? ? BGP路由器可選識別這類屬性摘完,不識別不轉(zhuǎn)發(fā)這類屬性;
二傻谁、BGP常用的路徑屬性有13個
1孝治、origin? ? ? ? ? ? ? ? 公認(rèn)必遵
用來代表BGP路由的起源,標(biāo)記一條路由是如何進入BGP审磁,有3種類型:
(1)IGP? ? ? ??
IGP學(xué)到的路由谈飒,通過network方式注入到BGP中的路由或者聚合路由,用i表示态蒂;
(2)EGP
EGP學(xué)到的路由杭措,EGP協(xié)議幾乎沒有使用,只能手工調(diào)整吃媒,用e表示瓤介;
(3)incomplete
來源未知的路由吕喘,通過import方式引入到BGP中的路由或者聚合路由赘那,用?表示氯质;
聚合路由的起源屬性依賴于成員路由的起源屬性:
(1)成員路由的起源屬性都是IGP募舟,聚合路由的起源屬性是IGP;
(2)成員路由的起源屬性都是incomplete闻察,聚合路由的起源屬性是incomplete拱礁;
(3)成員路由的起源屬性既有IGP琢锋,又有incomplete,聚合路由的起源屬性是incomplete呢灶;
origin屬性3種路由比較優(yōu)先級:
IGP起源的路由優(yōu)于EGP起源的路由吴超,優(yōu)于incomplete起源的路由;
2鸯乃、as_path? ? ? ? ? ?公認(rèn)必遵
用于記錄路由沿途所經(jīng)過的AS鲸阻,路由在離開AS時,當(dāng)前的AS號會自動添加到AS_PATH序列的前面(最左面)缨睡;
路由在AS內(nèi)傳遞時鸟悴,不對路由的AS_PATH屬性做任何改動;
BGP的AS_PATH屬性內(nèi)容由segment構(gòu)成奖年,有4種segment類型:
(1)AS_SET? ? ? ? ? ? AS號的無序集合
(2)AS_SEQUENCE? ? ? ? AS號的有序列表
(3)AS_CONFED_SET? ? ? ? ? ? 聯(lián)盟中成員AS號的無序集合
(4)AS_CONFED_SEQUENCE? ? ? ? 聯(lián)盟中成員AS號的有序列表
每種segment類型在AS_PATH屬性中僅能出現(xiàn)一次细诸;
AS_PATH中可能僅攜帶一種segment類型,也可能同時攜帶多種segment類型陋守;
AS_SET和AS_CONFED_SET一定是聚合路由的才會包含的segment類型震贵;
多種segment類型同時出現(xiàn)在AS_PATH中,則前后順序一定是AS_CONFED_SEQUENCE水评、AS_CONFED_SET屏歹、AS_SEQUENCE、AS_SET;
AS_PATH的長度是由AS_SEQUENCE這種segment的AS號數(shù)量來決定的之碗,而AS_CONFED_SEQUENCE蝙眶、AS_CONFED_SET和AS_SET的長度都不計入AS長度計算;
不論何種類型的segment褪那,若其中攜帶的AS號等于接收設(shè)備所在的AS號幽纷,則該路由都將因為環(huán)路問題而被丟棄,可通過peer x.x.x.x allow-as-loop使接收設(shè)備接收含有自己AS號的路由博敬;
3友浸、next_hop? ? ? ? 公認(rèn)必遵
用來記錄BGP路由的下一跳信息,BGP設(shè)備會忽略下一跳地址不可達的BGP路由;
BGP下一跳屬性遵循如下規(guī)則:
(1)BGP設(shè)備將本地始發(fā)路由發(fā)布給所有BGP對等體時偏窝,會把路由信息的下一跳屬性設(shè)置為本地與對端建立BGP鄰居關(guān)系的接口地址收恢;
(2)BGP設(shè)備向EBGP對等體發(fā)布路由時,會把路由信息的下一跳屬性設(shè)置為本地與對端建立BGP鄰居關(guān)系的接口地址祭往;
(3)BGP設(shè)備在IBGP對等體發(fā)布從EBGP學(xué)來的路由時伦意,不改變路由信息的下一跳屬性;
可以通過如下兩條命令修改下一跳屬性缺省行為:
peer next-hop-local
peer next-hop-invariable
關(guān)于下一跳帶來的問題:
區(qū)別于IGP中下一跳是直連路由器的IP地址硼补,BGP路由的下一跳往往都是非直連設(shè)備的IP地址驮肉,所以出現(xiàn)了下一跳地址不可達問題、路由黑洞問題以及負載分擔(dān)問題已骇;
(1)下一跳地址不可達問題
下一跳是非直連地址离钝,必須保證路由表存在到達下一跳地址所在網(wǎng)絡(luò)的路由票编;
(2)路由黑洞問題
從數(shù)據(jù)平面分析,如果數(shù)據(jù)流訪問目標(biāo)BGP網(wǎng)絡(luò)卵渴,R5根據(jù)下一跳發(fā)給R2慧域,但中間IGP路由器R3和R4沒有對應(yīng)的BGP路由,所以會出現(xiàn)路由黑洞浪读;
方法1:
全都運行BGP吊趾,運營商網(wǎng)絡(luò)中使用較多,IBGP全互聯(lián)瑟啃、RR论泛、聯(lián)盟;
方法2:
IGP同步蛹屿,將BGP路由引入IGP屁奏,保證路由全網(wǎng)可達。
此種方法不建議使用错负,過量的BGP路由會加重IGP路由器的負荷坟瓢,同時IGP路由也不適合承擔(dān)過大的AS間數(shù)據(jù)流量,可以根據(jù)需要引入少量路由或?qū)σ氲穆酚勺霰匾膮R總犹撒;
方法3:
開啟MPLS標(biāo)簽交換折联,在運行BGP的設(shè)備R2和R5之間為下一跳地址所對應(yīng)的路由創(chuàng)建LSP隧道,所有發(fā)往下一跳地址的數(shù)據(jù)包執(zhí)行標(biāo)簽轉(zhuǎn)發(fā)识颊,中間設(shè)備不需要存在相應(yīng)的BGP路由诚镰;
方法4:
把運行BGP的設(shè)備直連,這樣AS間的數(shù)據(jù)流量將不需要經(jīng)過IGP路由器祥款;
(3)負載分擔(dān)問題
默認(rèn)情況下清笨,BGP只把最佳路由放進IP路由表,即BGP缺省沒有等價路由刃跛;
如果下一跳地址路由是負載分擔(dān)的路徑抠艾,可以保證R5到R2的數(shù)據(jù)流量負載分擔(dān);
4桨昙、local_pref? ? ? ? 公認(rèn)任意
Local_Pref屬性用來判斷流量離開AS時的最佳路由检号,僅在IBGP鄰居間傳遞,不通告給其他AS蛙酪;
當(dāng)AS內(nèi)BGP設(shè)備通過不同的IBGP對等體得到目的網(wǎng)段相同但下一跳不同的多條路由時齐苛,將優(yōu)先選擇Local_Pref屬性值較高的路由;
Local_Pref屬性將會在整個AS內(nèi)傳遞滤否,在本AS內(nèi)的所有路由器都將收到該優(yōu)先級脸狸,如果路由沒有配置Local_Pref屬性最仑,將按缺省值100來處理藐俺;
5炊甲、med? ? ? ? ? ? ? ? ? ?可選非過渡
MED屬性用來判斷流量進入AS時的最佳路由,僅在兩個相鄰的AS之間傳遞欲芹,收到此屬性的AS一方不會再將其通告給任何其他第三發(fā)AS卿啡;
MED值越小,路由的優(yōu)先級越高菱父;
BGP路由器默認(rèn)只對相同的AS傳遞過濾的路由進行MED的比較颈娜,不會比較不同AS傳遞的路由,可以使用命令compare-different-as-med來使其比較不同AS傳遞的路由浙宜;
如果路由沒有配置MED屬性官辽,將按照缺省值0來處理;
6粟瞬、originator_id? ? 可選非過渡
專為RR開發(fā)同仆,用來在AS內(nèi)防環(huán),由RR添加到路由更新中裙品,并隨路由在AS內(nèi)傳遞俗批,離開AS時會被剝離;
OriginatorID屬性值為AS內(nèi)第一臺通告該路由的BGP設(shè)備的RouterID市怎;
如果路由器接收路由時岁忘,路由攜帶的OriginatorID與自身RouterID相同,丟棄該路由区匠,實現(xiàn)集群內(nèi)防環(huán)干像;
7、cluster_list? ? ? ? 可選非過渡
專為RR開發(fā)驰弄,用來在AS內(nèi)防環(huán)蝠筑;
Cluster_List是路由經(jīng)過RR反射時由RR添加的一個集群列表,記錄路由經(jīng)過的Cluster_ID揩懒;
如果RR在接收到路由的Cluster_List中存在自身Cluster_ID什乙,丟棄該路由,實現(xiàn)集群間防環(huán)已球;
8臣镣、atomic_aggregate? ? 公認(rèn)任意
用于路由聚合時,告知對等體智亮,原始的明細路由AS_Path出現(xiàn)了丟失忆某,只在抑制明細路由時攜帶;
如果聚合路由將所有明細路由抑制了阔蛉,就會為聚合路由生成該屬性弃舒;
9、aggregator? ? ? ? ? ? 可選過渡
聚合后的路由一定攜帶aggregator屬性,指明聚合路由設(shè)備所在的AS號和RouterID聋呢;
10苗踪、community? ? ? ? 可選過渡
Community團體屬性用來標(biāo)識具有相同特征的BGP路由,提高路由策略使用效率削锰;
可以用十進制和十六進制來表示該屬性通铲,范圍0x00000000(0)-0x0000FFFF(65535)和0xFFFF0000-0xFFFFFFFF是被保留的,其中定義了4中公認(rèn)團體屬性:
(1)Internet? ? 0x00000000
設(shè)備收到具有此屬性的路由后器贩,可以向任何BGP對等體發(fā)送該路由颅夺,路由的缺省屬性;
(2)No_Advertise? ? 0xFFFFFF02
設(shè)備收到具有此屬性的路由后蛹稍,將不向任何BGP對等體發(fā)送該路由吧黄;
(3)No_Export? ? 0xFFFFFF01
設(shè)備收到具有此屬性的路由后,將不向AS外發(fā)送該路由唆姐;
(4)No_Export_Subconfed? ? 0xFFFFFF03
設(shè)備收到具有此屬性的路由后稚字,將不向AS外發(fā)送該路由,也不向AS內(nèi)其他子AS發(fā)送該路由厦酬;
除了公認(rèn)團體屬性外胆描,如果需要定義私有團體屬性控制BGP路由時,可以利用團體屬性的前2個字節(jié)作為AS號仗阅,用后面的2個字節(jié)定義與該AS相關(guān)的數(shù)值昌讲;
多條路由可以擁有相同的團體屬性,bgp路由器需要對這些路由實施策略時减噪,只需匹配該團體屬性短绸;
一條路由也可以擁有多個團體屬性,BGP路由器可以根據(jù)其中的一部分或全部屬性進行匹配筹裕;
11醋闭、MP_Reachable? ? 可選非過渡
12、MP_Unreachable? ? 可選非過渡
13朝卒、擴展團體屬性
除了標(biāo)準(zhǔn)團體屬性外证逻,擴展團體屬性是對BGP團體屬性的擴展,長度8字節(jié)抗斤,主要用于MPLS VPN的Route Target(前面2字節(jié)代表類型囚企,后面6字節(jié)代表數(shù)值);