BGP的報文種類:
Open:打招呼“你好,和我交個朋友吧”
KeepAlive:我還活着哪,別不理我;
Update:有新聞……
Notfication:我不跟你玩了
BGP協議的狀態機:
BGP的路由屬性:
表達了路由的特徵;
過渡和非過渡的;(過渡指的是經過其他自治區域後還可以保留的屬性)
必遵和可選的;
便於擴展;
截止目前共16種屬性;
起點(origin)屬性:
一般的,具體的實現按如下方式決定一條路由的Origin屬性;
某條路由是直接而具體的注入到BGP路由表中的,則Origin屬性爲IGP;
路由是通過EGP得到的,則origin屬性爲EGP;
其他情形下,Origin屬性都爲incomplete;
AS路徑(AS-PATH)屬性:(該屬性只有在離開自治系統的時候纔會加上;該屬性有倆個作用,1用來優選路由;2防止環路,如果BGP收到一條標記自己自治系統路徑的路由,將不會接受)
下一跳(Next Hop)屬性:
在自治系統之間傳送路由的時候邊檢路由器會強制改變下一跳的路由地址爲本機,但是在自治系統內部傳送的時候不改變,但是這樣會導致有些情況下,路由不可達。
爲了解決這樣的問,可以使用以下方法:
1、在IBGP鄰居上通告路由的時候修改下一跳爲自己(推薦使用);
2、添加一個靜態路由,或者用其他方法保證改BGP路由的下一跳可達;
如果一個ASDR的BGP路由器,從自己的IBGP鄰居收到某條路由,準備轉發給自己的EBGP鄰居,如果說IBGP與EBGP鄰居的地址在一個子網內,則本路由器通告該路由時不改變下一跳,這樣可以防止次優路徑的出現;
本地優先屬性
該屬性在自治系統內使用,缺省值100;
MED(Multi-Exit-DISC)屬性
該屬性在自治系統間使用,可以發送到其他自治系統內,缺省值0;
MED可以來自3個地址:
1、IGP的METRIC因爲在重發布import-route IGP路由時,MED就是METRIC;
2、IGP的直連路由被重發布,那此時MED等於0;
3、通過彙總的BGP路由則無MED字段;
BGP路由器上用default med 1000 修改所有從此路由轉發的路由的med值;
通過路由策略修改;
團體(community)屬性
團體是一組有相同性質的目的地的路由,一個團體不限於一個網絡或一個自治系統,它沒有物理邊界;
公認的團體:
no-export:不通告給聯盟/AS外的EBGP相鄰體;
no-advertise:不通告給任何BGP相鄰體;
local-AS:不通告給EBGP相鄰體;
BGP路由選擇過程:
1、如果此路由的下一跳不可達,忽略此路由;
2、選擇本地優先級較大的路由;
3、選擇本地路由器始發的路由(本地優先級相同);
4、選擇AS路徑較短的路由;
5、依次選擇起點類型爲IGP,EGP,Incomplete類型的路由;
6、選擇MED較小的路由;
7、選擇Router ID較小的路由;