天天看點

LDP的快速收斂---LDP會話保護(進階feature)

LDP收斂總結Summary:

如果一個有備援鍊路的網絡,主鍊路down了,那麼LDP的收斂時間=IGP的收斂時間.(約等于)

當主鍊路恢複以後,LDP的收斂需要等待IGP收斂完了,LDP才能重建立立鄰居(TCP/UDP 646,建立LPD繪話和鄰居),然後交換标簽.

在中間會出現空檔期,IGP的下一跳和LSP不一緻,且IGP鄰居建立好了,LDP的标簽狀态是drop狀态。LSP不完整,最後走IP進行封包的轉發.

------LDP會話保護,可以解決主鍊路恢複以後的空檔期的問題.

那麼問題來了,有沒有一種技術,在備援鍊路的網絡環境中,當IGP的鍊路一恢複以後,那麼LDP就立即恢複呢?--下面是LDP的進階feature,所有細節都會涉及到.

LPD的計時器:

當然是有技術能保障LDP的收斂,該技術是LDP的進階feature.

<a href="http://s3.51cto.com/wyfs02/M01/74/44/wKiom1YXZW7xYC44AAMG6ukoSro508.jpg" target="_blank"></a>

對于日常應用來說,其實不需要修改LDP的任何計時器.

Directed LDP 鄰居:(LDP直連鄰居,監聽多點傳播224.0.0.2)

<a href="http://s3.51cto.com/wyfs02/M02/74/44/wKiom1YXZXDiElmoAADjltijyCA960.jpg" target="_blank"></a>

session hold time=180s, keepalive=60s.----這兩個時間是針對TCP連接配接的時間.

mpls ldp holdtime

Discovery hello: hold time =15s, interval=5s. -------這個是UDP的hello包.當鄰居建立之前和鄰居建立之後.

需要用UDP的hello進行飽和。來感覺鄰居的存在.

指令: mpls ldp discovery hello holdtime xxxx

mpls ldp discovery hello interval xxxx

Targeted LDP鄰居:

下面的計時器,是用于非直連的LDP鄰居之間的建立所用的計時器:

<a href="http://s3.51cto.com/wyfs02/M00/74/44/wKiom1YXZXGzt3X4AADdaH7X1EA230.jpg" target="_blank"></a>

我們知道,LDP的建立,發送的是224.0.0.2的多點傳播,然後直連路由器監聽該多點傳播端口,然後建立LDP鄰居.但是如果是非直連的話,隻能發送單點傳播進行鄰居的建立和飽和。

<a href="http://s3.51cto.com/wyfs02/M01/74/44/wKiom1YXZXOD5PTZAABxy87CZwM150.jpg" target="_blank"></a>

是以targeted LDP鄰居不能自動發現,需要手動定義.

holdtime=90s interval=10s.

指令:

ldp discovery targeted hello holdtime xxx

ldp discovery targeted hello interval xxx

LDP的認證:

LDP的認證采用的是MD5的雜湊演算法進行加密:

mpls ldp neigbhor 22.1.1.1 password Hank

22.1.1.1是鄰居的router-id,後面配置密碼,采用md5.

<a href="http://s3.51cto.com/wyfs02/M02/74/44/wKiom1YXZXPhLkkUAABElKZQRzU786.jpg" target="_blank"></a>

直接在全局下面配置的.

注意:

當我們的LDP鄰居已經起來以後,再配置密碼,這個時候不管是否鄰居是否超過holdtime,都不會down掉.因為鄰居已經建立好了,而keepalive也一直都是進行飽和的,隻要鍊路沒有問題,那麼鄰居永遠不會down掉,是以配置密碼需要在ldp建立鄰居以前做認證.

LDP的自動配置(auto config):

該功能運作以後,就不需要再在接口下面打上mpls ip.

例如路由協定是ospf:

router ospf 1

mpls ldp autoconfig area x

network 0.0.0.0 255.255.255.255 a 0

exit

這樣的話,就可以讓該路由器所有處于OSPF的接口自動運作mpls ip,并且運作LDP協定.

建立LDP鄰居.

<a href="http://s3.51cto.com/wyfs02/M00/74/44/wKiom1YXZXWTayQ3AAHTWUeDGgw119.jpg" target="_blank"></a>

如果在IGP路由程序中配置了mpls ldp autoconfig,就算在接口下面no mpls ip都不行,系統會給一個提示:

<a href="http://s3.51cto.com/wyfs02/M01/74/44/wKiom1YXZXbCMlodAACKh7u22lM975.jpg" target="_blank"></a>

這個時候需要在接口下面no mpls ldp igp autoconfig才能将該接口移除了.

LDP會話保護:(LDP收斂的進階feature)

-----LDP快速收斂

R1到R5有兩個路徑:

主用鍊路:R1--R2--R4--R5

備用鍊路:R1--R3--R2--R4--R5

當主用鍊路R1--R2 down掉了。這個時候IGP會在核心路由表删除R1到R5下一跳的R2路徑.當IGP收斂以後,因為LDP資料庫中有R3配置設定過來的标簽,是以當主用鍊路down了,那麼IGP的收斂時間約等于LDP的收斂時間.

<a href="http://s3.51cto.com/wyfs02/M02/74/44/wKiom1YXZXexjzvpAAC078Jl4pY481.jpg" target="_blank"></a>

當主用鍊路恢複了,那麼首先R1和R2需要建立IGP的鄰居.

當R1和R2 IGP鄰居建立好以後,R1和R2的LDP才開始建立鄰居。這中間IGP和LSP的路徑不一緻,最後導緻的結果是:

當R1和R2的主用鍊路恢複以後,R1和R2的IGP鄰居建立好以後,R3配置設定給R1的标簽會立即将狀态切換到Drop.标簽是不可用的。這個時候再來封包,R1因為沒有MPLS标簽,而會直接走IP進行轉發.這樣實際上是沒有走MPLS的.

要解決這個問題,有兩種方式:

1) LDP的會話保護

2) LDP,IGP同步時間縮短.

LDP鍊路保護:(targeted LDP)

<a href="http://s3.51cto.com/wyfs02/M00/74/44/wKiom1YXZXihpljaAAFVaWVzsDY593.jpg" target="_blank"></a>

Session protection

主鍊路故障,down了:

R1---R2---鍊路OK, LDP neighbor OK.Targeted LDP.

R1---R2---鍊路down掉,那麼IGP收斂(R1和R2的LDP鄰居關系不會down掉,因為是target LDP).

R1到R5,路徑為R1-R4-R2-R3-R5.(LDP收斂約等于IGP收斂)

主鍊路恢複:

R1和R2 IGP收斂.那麼R1到R5的下一跳一定會變成R2,這個時候,從LDP binding 表中把R2配置設定給我關于55.1.1.1/32的标簽再次裝載到MPLS Forwarding table中去,這樣LDP就完成了收斂.

Summary:

用targeted LDP,當主鍊路恢複的時候,幾乎LDP的收斂時間可以等于IGP收斂時間,或者說略長于IGP的收斂時間.因為LDP不用重建立立鄰居. 這就是Targeted LDP neighbor的好處.

解決方案:在LDP鄰居兩端啟用target LDP session, 實作跨越多跳來維持session.

配置方法:

1, 在所有支援session保護的路由器上面配置:mpls ldp session protection

2, 在不支援session保護的路由器上面配置: mpls ldp discovery targeted-hello accept

會話保護的意思:主鍊路恢複以後,IGP收斂完成以後,需要LDP建立鄰居,這裡會話保護和targeted LDP neighbor技術可不重建立立鄰居.這樣就大大縮短了LDP收斂時間,因為LDP不需要重建立立鄰居,隻需要重新裝載MPLS Forwarding table的标簽.

<a href="http://s3.51cto.com/wyfs02/M01/74/44/wKiom1YXZXjyCElwAAAxyUQRfdg937.jpg" target="_blank"></a>

試驗:

<a href="http://s3.51cto.com/wyfs02/M02/74/44/wKiom1YXZXrCKoRIAAFVaWVzsDY161.jpg" target="_blank"></a>

在R1和R2上面,全局打上:mpls ldp session protection

這樣一來, 其他的配置和以往一樣.

現在來觀察一下現象.

R1要到R5的55.1.1.1/32,首選的路徑是R1--&gt;R2--&gt;R3--&gt;R5

在主用鍊路正常的情況下,我們看看R1的表項:

下面可以看到,标簽,R2和R4都配置設定了标簽給R1.

在R1上面show mpls ldp nei,可以發現,R2顯示的是Targeted hello 11.1.1.1--&gt;22.1.1.1, active.passive

<a href="http://s3.51cto.com/wyfs02/M02/74/41/wKioL1YXZZWDUW2RAAbnpwofudQ291.jpg" target="_blank"></a>

現在将R1和R2的鍊路shutdown.

<a href="http://s3.51cto.com/wyfs02/M00/74/44/wKiom1YXZX-Sws87AAMamT049zU229.jpg" target="_blank"></a>

這裡當R1的e 0/0 shutdown以後,LDP鄰居不是down掉,而是hold up.

這個時候再看看R1的标簽資料庫,我們驚訝的發現,R1和R2的鄰居雖然down了,但是系統還是保留了R2為55.1.1.1/32配置設定過來的标簽:

<a href="http://s3.51cto.com/wyfs02/M01/74/44/wKiom1YXZYCSxpK2AAD5YzzdGIU811.jpg" target="_blank"></a>

而且R1的LDP鄰居,11.1.1.1到22.1.1.1還是繼續保留的:\

<a href="http://s3.51cto.com/wyfs02/M00/74/41/wKioL1YXZeSz_J4yAAOu0U2t7-0968.jpg" target="_blank"></a>

但是這個時候,在R1的MPLS标簽轉發表,因為IGP已經切換到R4為下一跳了,是以MPLS标簽表也切換到了R4配置設定的40x的标簽:

<a href="http://s3.51cto.com/wyfs02/M01/74/41/wKioL1YXZeajQlV2AAJ-E4xjpLg514.jpg" target="_blank"></a>

鍊路恢複,R1的e 0/0做no shutdown的操作:

<a href="http://s3.51cto.com/wyfs02/M02/74/41/wKioL1YXZeiB7z13AAMaDFQfm8U786.jpg" target="_blank"></a>

這裡可以看到,LDP鄰居恢複成功.

IGP ospf一旦收斂以後,LDP要做的事情不是建立鄰居,因為LDP鄰居從頭到尾就沒有down過.

LDP要做的事情就是将之前保留在LDP資料庫中的R2配置設定過來的标簽再次裝載進入MPLS 标簽轉發表中就能達到快速收斂的效果。

<a href="http://s3.51cto.com/wyfs02/M00/74/41/wKioL1YXZemCRzYfAAJEMhEWth8396.jpg" target="_blank"></a>

本文轉自 hny2000 51CTO部落格,原文連結:http://blog.51cto.com/361531/1701214