OSPF ProcessID(進程號)詳解


一、OSPF ProcessID本地有效
 
 
    首先明確一下,OSPF ProcessID,范圍為1-65535,用於在路由器本地標識OSPF進程。
看上圖,R1使用進程號10創建了一個OSPF進程,同時宣告了自己的直連接口;而R2使用進程號20創建了一個OSPF進程,同時也宣告了自己的直連接口。雖然這兩個進程號不一樣,但是我們說,OSPF進程號只是本地有效,這句話的意思是,對於R1而言,它並不關心它的直連OSPF鄰居-R2使用的是什么OSPF進程號,10也號,20也罷,這就有點像“自己的事自己知道” - 本地有效。
    當然,在實際的部署中,我們還是特別建議全網使用一樣的進程號(雖然你可以試着在每台路由器上使用不同的進程號,這當然不影響網絡的運行,但是……你特么不會真這么干吧?)
 
二、一台路由器可創建多個OSPF進程,使用OSPF ProcessID進行區分,不同的進程相互獨立
 
我們再看下圖,

 
    這個圖很有意思,在R2上,常規的做法是,用一個進程號創建一個OSPF進程,同時將自己的兩個直連接口宣告進這個OSPF進程,但是為了講解OSPF進程ID的本地意義,我這里在R2上使用兩個OSPF ProcessID創建了兩個OSPF進程,並且分別宣告了R2的直連接口,換句話說,R2使用OSPF進程20與R1建立鄰居關系,使用OSPF進程30與R3建立OSPF鄰居關系。
 
    如此一來,R2在本地就有了兩個OSPF進程,使用ProcessID 20及30進行區分,這就是進程號的本地意義。  
    那么這兩個進程,都會各自從其鄰居R1和R2學習到OSPF路由,但是值得強調的是:
  • 這兩個OSPF進程相互獨立,換而言之,R2通過OSPF進程20從R1學習到的OSPF路由(嚴格的說,應該是LSA),例如1.1.1.0/24,默認不會直接更新給R3(這是因為在R2,這兩個OSPF進程互相獨立互相隔離),當然,從R3更新過來的OSPF路由,R2雖然自己能學習到,但是,照樣不會傳遞給R1,這就好像,這兩個進程,雖然都在R2上,但是有那么點隔閡,世界上最遙遠的距離,莫過於此啊。
  • 再者,R2這兩個OSPF進程雖然說彼此隔離,但是都可以為R2自身貢獻路由,例如如果R1更新過來一條路由1.1.1.0,R3更新過來一條3.3.3.0,那么在R2的全局路由表里都是能看到這兩條路由的。而且我們上面說了,這兩條路由,不會互相灌進對方的OSPF進程(造成的直接結果是R1沒有R3的路由,R3沒有R1的路由),除非 -- 對了,路由重發布 你懂的
  • 上面說了,這兩個進程都可以為R2的全局路由表貢獻路由條目,但是有一點要注意,如果R1及R3都向R2來更新,同一條OSPF的路由呢?R2將會優選誰? 回憶一下我們在單一進程的情況,R2會根據COST來選,如果等價,R2會對這兩條路由進行負載均衡對吧?但是這里不一樣了,在這個環境中,R2會以“先到先得”的原則,誰的路由先過來,我就優選誰,所以跑的快還是能搶到妹紙的。
 
三,總結
 
  • OSPF ProcessID只是本地有效,用來在本地區分不同的OSPF進程
  • 雖然OSPF ProcessID本地有效,但是我們仍然建議,除非有特殊需求,否則全網使用一致的OSPF進程ID,這將方便網絡管理和維護
  • 什么情況下需要用到多OSPF進程呢?這個問題可就大了,一般而言,一台路由器創建一個OSPF進程,可以實現網絡的需求,但是在一些特殊的、復雜的環境當中,單一的OSPF進程可能無法滿足要求,因此在一台路由器上創建多個OSPF進程,這樣一來的直接好處是,這台路由器從原先的屌絲角色--OSPF interArea Router,華麗麗的變成了一台ASBR,它可以在進程之間重發布、可以過濾路由或LSA、可以操控路由、可以做基於route-map的策略、可以做路由匯總等等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM