1、問題的描述:在ipran的組網環境中,裝置之間建立ldp會話(mpls**中分發標籤的協議),在其中的一台裝置中灌入3kospf路由和3k ldp標籤協議,裝置會生成3k條lsp,由於裝置容量問題,只會生成2k條ldp lsp,裝置容量達到上限。然後裝置進行ha倒換(高可靠性),主備板卡需要平滑資料,ldp會建立gr-lsp。在這個過程中,會存在有的裝置經過ldp gr後業務不通,路由**也不通的現象。這是乙個偶然出現的問題,所以不是簡單的邏輯流程的問題,初步猜測應該是不同任務之間排程問題。備註:當建立ldp lsp後,路由**的下一跳改為mpls**。
2、問題初步定為:之所以出現業務不通,是因為兩台裝置之間出現了不同的**方式。執行ha的裝置因為ldp會話down掉後,將**更新到路由上,出問題的裝置由於沒有清掉ldp lsp,仍然保持mpls**。執行ha的裝置進行路由**,而與之出問題的裝置已仍然走到mpls**上,導致兩台裝置之間的報文無法解封裝,ping包和業務資料報不通。。
3、ldp知識背景: ldp在系統執行ha過程中存在兩個角色,執行ha的裝置稱為re-starter端,與之存在ldp會話的叫做helper端,helper端幫助re-starter恢復**表項。在這個過程中,helper端會建立兩個定時器,乙個是重連定時器:重新建立ldp會話,在規定的時間內如果沒有建立起ldp會話,則刪除**表項。乙個是恢復定時器:當建立起ldp會話後,會建立ldp恢復定時器,等待定時器超時後,更新ldp建立的**表項,刪除在ha過程中建立的ldp lsp。重連定時器在ldp會話建立後刪除,恢復定時器在ldp 會話的down掉後刪除。所以這個恢復定時器在正常過程中都要等待超時,然後刪除ha過程中建立gr-lsp。ldp會話通過傳送訊息的方式,通告本端ldp狀態,比如會話超時等。
4、問題結論: 正因為存在恢復定時器的原因,gr-lsp的刪除只能等待恢復定時器刪除,但是如果在恢復定時器過程中ldp的會話down掉,會將定時器刪除,gr-lsp沒有等到超時刪除,所以導致沒法更新ldp lsp,使得**在這種情況下沒有辦法更新到路由上。出問題的裝置就是因為在ldp恢復過程中有收到對端裝置傳送的會話超時,導致將ldp的狀態的down掉。另一端因為主動的down掉會話,將ldp**表項刪除,恢復路由**。
5、動態協議在執行過程中,不可避免的要建立一些定時器來維護狀態。尤其是基於tcp協議的應用層協議,受到影響的因素會更多。比如在tcp的協議狀態機中就存在很多定時器,對於像ldp這種為資料建立**表項的協議來講,定時器對應著**通道的建立和刪除,所以在清除定時器過程中,需要檢查對應維護的一下資料是否恢復正常。
滑鼠定位問題總結
滑鼠事件發生時的滑鼠定位問題即mouse position,由於標準的滯後及各個瀏覽器廠商的實現不同,目前沒有完美的解決方案。該問題首先受到不同瀏覽器的事件模型有不同的實現方式的影響 ie瀏覽器中,有乙個顯式的window.event物件,可以隨時取用。w3c相容瀏覽器中,使用隱式物件,以第乙個引數...
ios8 系統定位問題
原文 今天在開發的時候發現了乙個ios8的定位問題,執行操作之後,不會呼叫到定位之後的delegate方法中,然後找了一些資料來了解了一下ios8系統下的 定位,發現確實是有所不同的 解決方法 1.在info.plist中新增key nslocationwheninusedescription,允許...
快速定位系統問題之logger
一般系統出問題,我們都會去查詢logger,正常系統都會把log分為正常級別與異常,異常的還好查,但是遇到不是異常的又如何查呢?1 普通查詢 vi log 關鍵字 2 高階查詢 vi log esc v 關鍵字 d 以此查詢出來的log只會把有關鍵字的log顯示出來,精準定位 1 2018 04 2...