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-->R2-->R3-->R5
在主用鍊路正常的情況下,我們看看R1的表項:
下面可以看到,标簽,R2和R4都配置設定了标簽給R1.
在R1上面show mpls ldp nei,可以發現,R2顯示的是Targeted hello 11.1.1.1-->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