BGP路由收斂環路

1.根本原因

導致路由收斂環路的根本原因是:同前綴的不同路徑,比較順序不同,最佳路徑選擇的結果不同——存在路徑比較環路

例如Net A有三條路徑abc,如果存在如下關係,則可能會發生路由收斂環路

a > bb > cc > a

而如果不滿足上述條件,三條路徑相互比較,一定能夠比較出優先級序列,例如

a > bc > ba > c,則有a > c > b

在此情況下,由於選路優先級明確,即便在收斂過程中可能會出現浮動,但是最終一定能夠收斂到預測的結果


BGP中,具體表現爲AS_PATH中最近的AS不一致時,不比較MED;而AS_PATH中最近的AS相同時比較MED

當有多條路徑時,可能導致某些路徑比較MED值,而某些路徑比較其它選路參數


2.收斂環路現象及解決辦法

2.1 現象

BGP Table Version值不斷增加

and

BGP路徑不斷切換,路徑數量也會發生浮動

2.2 解決辦法

①配置deterministic-med,防止路由比較環路的產生——推薦做法

always-compare-med

③將MED值置爲0(可以配合community使用)


3.iBGP全互聯環境下的收斂環路

220353157.png

如上圖所示,聯盟內某個AS 4臺設備分別收到4條相同前綴的更新,其優先情況爲R1> R2 > R3R4 > R1R2 > R4R3 > R4

3.1 初始情況

R1

Path

Next Hop

AS_PATH

MED

RID

1

-

100

1

10.10.10.10

其它設備同理,這裏不一一列出,紅色路徑表示當前選擇的最佳路徑

3.2 4臺設備相互發送更新後,其BGP轉發表分別如下

R1

Path

Next Hop

AS_PATH

MED

RID

1

R2

100

2

2.2.2.2

2

R4

200

1

4.4.4.4

3

R3

100

3

3.3.3.3

4

-

100

1

10.10.10.10

R1上選路未發生改變,下一步本地無操作

R2

Path

Next Hop

AS_PATH

MED

RID

1

R3

100

3

3.3.3.3

2

R4

200

1

4.4.4.4

3

R1

100

1

10.10.10.10

4

-

100

2

2.2.2.2

此時R2上的選路發生改變,R2下一步將回收向R1R3R4通告的更新

R3

Path

Next Hop

AS_PATH

MED

RID

1

R2

100

2

2.2.2.2

2

R4

200

1

4.4.4.4

3

R1

100

1

10.10.10.10

4

-

100

3

3.3.3.3

此時R3上的選路發生改變,R2下一步將回收向R1R2R4通告的更新

R4

Path

Next Hop

AS_PATH

MED

RID

1

R2

100

2

2.2.2.2

2

R3

100

3

3.3.3.3

3

R1

100

1

10.10.10.10

4

-

200

1

4.4.4.4

R4上選路未發生改變,下一步本地無操作

3.3 R2、R3的更新被回收

R1

Path

Next Hop

AS_PATH

MED

RID

1

R4

200

1

4.4.4.4

2

-

100

1

10.10.10.10

R1上的最佳路徑發生改變,R1將回收通告的更新

R2

Path

Next Hop

AS_PATH

MED

RID

1

R4

200

1

4.4.4.4

2

R1

100

1

10.10.10.10

3

-

100

2

2.2.2.2

R2上最佳路徑發生改變,R2將通告更新

R3

Path

Next Hop

AS_PATH

MED

RID

1

R4

200

1

4.4.4.4

2

R1

100

1

10.10.10.10

3

-

100

3

3.3.3.3

R4

Path

Next Hop

AS_PATH

MED

RID

1

R1

100

1

10.10.10.10

2

-

200

1

4.4.4.4

R4上最佳路徑未發生改變,下一步無操作

3.4 R1回收更新,R2、R3通告更新

R1

Path

Next Hop

AS_PATH

MED

RID

1

R3

100

3

3.3.3.3

2

R2

100

2

2.2.2.2

3

R4

200

1

4.4.4.4

4

-

100

1

10.10.10.10

R1上的最佳路徑發生改變,R1將通告更新

R2

Path

Next Hop

AS_PATH

MED

RID

1

R3

100

3

3.3.3.3

2

R4

200

1

4.4.4.4

3

-

100

2

2.2.2.2

R2上最佳路徑未發生改變

R3

Path

Next Hop

AS_PATH

MED

RID

1

R2

100

2

2.2.2.2

2

R4

200

1

4.4.4.4

3

-

100

3

3.3.3.3

R3上最佳路徑發生改變,R3將回收通告的更新

R4

Path

Next Hop

AS_PATH

MED

RID

1

R3

100

3

3.3.3.3

2

R2

100

2

2.2.2.2

3

-

200

1

3.3.3.3

R4上最佳路徑發生改變,R4將回收通告的更新

3.5 R1通告更新,R3、R4回收更新

R1

Path

Next Hop

AS_PATH

MED

RID

1

R2

100

2

2.2.2.2

2

-

100

1

10.10.10.10

R1上最佳路徑未改變

R2

Path

Next Hop

AS_PATH

MED

RID

1

R1

100

1

10.10.10.10

2

-

100

2

2.2.2.2

R2上最佳路徑發生改變,將回收更新

R3

Path

Next Hop

AS_PATH

MED

RID

1

R1

100

1

10.10.10.10

2

R2

100

2

2.2.2.2

3

-

100

3

3.3.3.3

R3上最佳路徑發生改變,下一步無操作

R4

Path

Next Hop

AS_PATH

MED

RID

1

R1

100

1

10.10.10.10

2

R2

100

2

2.2.2.2

3

-

200

1

3.3.3.3

R4上最佳路徑發生改變,將通告更新

3.6 R2回收更新,R4通告更新

R1

Path

Next Hop

AS_PATH

MED

RID

1

R4

200

1

4.4.4.4

2

-

100

1

10.10.10.10

R2

Path

Next Hop

AS_PATH

MED

RID

1

R4

200

1

4.4.4.4

2

R1

100

1

10.10.10.10

3

-

100

2

2.2.2.2

R3

Path

Next Hop

AS_PATH

MED

RID

1

R4

200

1

4.4.4.4

2

R1

100

1

10.10.10.10

3

-

100

3

3.3.3.3

R4

Path

Next Hop

AS_PATH

MED

RID

1

R1

100

1

10.10.10.10

2

-

200

1

4.4.4.4

此時情況與(3)完全相同,收斂環路發生

3.7 小結

iBGP全互聯網絡存在路由收斂環路的風險,但是其發生概率相對較小,尤其是在非聯盟環境中,由於MED之後將比較iBGPeBGP通告的更新(eBGP由於iBGP),當AS_PATH不同時,這往往會導致設備優選eBGP通告的更新,進而防止收斂環路發生

而在聯盟內由於聯盟內iBGP與聯盟內eBGP優先級相同,此時路由會收到下一跳IGPmetricRID的影響,導致收斂環路發生的概率上升


4.RR環境下clients之間的收斂環路

220422133.png

如上圖所示

R2收到更新爲Net AAS_PATH 200 400MED 10R2RID22.22.22.22

R3收到更新爲Net AAS_PATH 300 400MED 5R3RID33.33.33.33

R4收到更新爲Net AAS_PATH 300 400MED 6R4RID4.4.4.4

三條更新如果直接比較有如下關係:

R2 > R3R3 >R4R4 > R2,存在路由比較環路

在該環境下,R2R3R4分別將更新通告給R1R1選擇最優路徑進行通告,依次下去,將產生路由收斂環路,這裏不再詳細分析


iBGP全互聯相比,這裏區別在於:

①選路由中間設備RR完成

RR上當MED無法比較出最優路徑時,往往比較下一跳IGP開銷或RID,而不存在eBGP由於iBGP的比較關係


5.RR網絡的收斂環路

220444438.png

如上圖所示

R2收到更新爲Net AAS_PATH 200 400MED 10

R3收到更新爲Net AAS_PATH 300 400MED 5

R4收到更新爲Net AAS_PATH 300 400MED 6

R1上如果同時收到3條更新,IGP metric分別爲

to R215

to R320

to R411

R8上入股同時收到3條更新,IGP metric分別爲

to R220

to R325

to R46

三條更新如果在R1R8上直接比較有如下關係:

R2 > R3R3 >R4R4 > R2,存在路由比較環路

在該環境下同樣存在路由收斂環路,這裏不再詳細分析


6.Confederation環境下的路由收斂環路

220511367.png

如上圖所示,R5R6通告的更新內容與之前幾個案例中相同,聯盟內同一子AS中建立全互聯iBGP會話,由於聯盟內的子AS其長度爲0,因此實際上該環境與RR網絡中是相同的(R1R2R3中只選擇最優的路徑通告給R8,整體上講,兩個子系統都只將本地選擇的最佳路徑通告給另一個子系統),這裏同樣不再做詳細分析


注意:

在上例與RR網絡的收斂案例中,通過修改IGP metric確實也可以解決出現的問題,但是筆者認爲,爲了解決根本問題,還是應當配置deterministric-med這樣的命令,一方面保證選路的合理性(相比較於always-compare-med),另一方面確保網絡環境變化時的適用性


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章