Technorati 標籤: MPLS,CCIE,LDP,LDP session protection,收斂算法
LDP收斂總結Summary:數據庫
若是一個有冗餘鏈路的網絡,主鏈路down了,那麼LDP的收斂時間=IGP的收斂時間.(約等於)網絡
當主鏈路恢復之後,LDP的收斂須要等待IGP收斂完了,LDP才能從新創建鄰居(TCP/UDP 646,創建LPD繪話和鄰居),而後交換標籤.session
在中間會出現空檔期,IGP的下一跳和LSP不一致,且IGP鄰居創建好了,LDP的標籤狀態是drop狀態。LSP不完整,最後走IP進行報文的轉發.ide
------LDP會話保護,能夠解決主鏈路恢復之後的空檔期的問題.加密
那麼問題來了,有沒有一種技術,在冗餘鏈路的網絡環境中,當IGP的鏈路一恢復之後,那麼LDP就當即恢復呢?--下面是LDP的高級feature,全部細節都會涉及到.spa
LPD的計時器:3d
固然是有技術能保障LDP的收斂,該技術是LDP的高級feature.router
對於平常應用來講,其實不須要修改LDP的任何計時器.blog
Directed LDP 鄰居:(LDP直連鄰居,監聽組播224.0.0.2)
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鄰居之間的創建所用的計時器:
咱們知道,LDP的創建,發送的是224.0.0.2的組播,而後直連路由器監聽該組播端口,而後創建LDP鄰居.可是若是是非直連的話,只能發送單播進行鄰居的創建和飽和。
因此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.
直接在全局下面配置的.
注意:
當咱們的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鄰居.
若是在IGP路由進程中配置了mpls ldp autoconfig,就算在接口下面no mpls ip都不行,系統會給一個提示:
這個時候須要在接口下面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的收斂時間.
當主用鏈路恢復了,那麼首先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)
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的標籤.
試驗:
在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
如今將R1和R2的鏈路shutdown.
這裏當R1的e 0/0 shutdown之後,LDP鄰居不是down掉,而是hold up.
這個時候再看看R1的標籤數據庫,咱們驚訝的發現,R1和R2的鄰居雖然down了,可是系統仍是保留了R2爲55.1.1.1/32分配過來的標籤:
並且R1的LDP鄰居,11.1.1.1到22.1.1.1仍是繼續保留的:\
可是這個時候,在R1的MPLS標籤轉發表,由於IGP已經切換到R4爲下一跳了,因此MPLS標籤表也切換到了R4分配的40x的標籤:
鏈路恢復,R1的e 0/0作no shutdown的操做:
這裏能夠看到,LDP鄰居恢復成功.
IGP ospf一旦收斂之後,LDP要作的事情不是創建鄰居,由於LDP鄰居從頭至尾就沒有down過.
LDP要作的事情就是將以前保留在LDP數據庫中的R2分配過來的標籤再次裝載進入MPLS 標籤轉發表中就能達到快速收斂的效果。