1. 程式人生 > 實用技巧 >網路管理離不開拓樸圖的構建

網路管理離不開拓樸圖的構建


新浪微博: @wandering

部落格地址: dayong.info


全職做網路工作的時間,差不多快五年了,正好與女兒的年紀相仿,而恰恰這二者又都是自己生命中最重要的經歷。女兒剛出生時,還完全沒有意識到自己角色的變化,隨著女兒不斷成長才越發感受到作為父親的自己身心發生的變化。同樣,經歷了幾乎從零開始的痛苦職業轉型後,通過幾年網路歷練,終於讓自己找到了一種腳踏實地的信心和喜悅。


進入正題,就像在前一篇文章《網管的三個重要服務:AAA、NTP和SYSLOG》所講,在網路工作初期遇到了大量的困難和挑戰,其中最緊急、最重要的是故障處理。


為什麼說故障處理是重中之重呢?

無論是新人或是老人,無論是學習還是交流,無論是優化網路還是架構設計,一旦發生故障,特別是重大故障,那就必須調動足夠的資源優先處理,儘量降低服務所受影響,縮短故障處理時間。而故障處理,特別考驗一個網路工程師的綜合能力,對網路架構的瞭解、對各種裝置的熟悉、對相關技術的掌握、對問題的分析和把控、對產品應用的瞭解以及面對突發事件的心理承受能力等等。


因此,提高自己的故障處理水平,成為了首要發展目標。

為了達到這個目標,採取了一些措施,包括:

1)將全網所有IDC的網管伺服器、核心裝置、邊界裝置、×××裝置、重要匯聚交換機,全部登入若干遍,首先保證發生問題時自己可以登入到故障相關裝置,並對裝置對一定印象和了解。

2)熟悉不同廠商裝置的基礎操作命令,並制定一些任務或場景,例如檢視CPU確定影響CPU的常見因素和解決方法,例如可能發生的各類故障相關的資訊收集、狀態檢測和操作處理,例如關鍵二三層協議的狀態檢測和常用操作方法(STP、OSPF等),例如如何快速上線替換裝置,例如如何快速定位故障位置等等。

3)熟悉不同IDC的關鍵裝置的物理、邏輯連線關係,IP/網段,功能作用,關鍵配置,特殊之處等等。

4)大量閱讀線上裝置相關文件,與工作相關的經典技術書籍中的相關內容,與老同事大量溝通,在處理故障時第一時間諮詢瞭解對方的做法以及自己的處理方法是否得當。

5)重新學習和理解一些網路原理,例如什麼是乙太網,例如GE介面到底能跑到多大頻寬、為什麼?例如為什麼光介面會出現CRC錯誤?

6)開始使用文字記錄一些關鍵網路資訊,後來發展成為個人的CMDB。

*注1:為什麼使用文字?跨平臺、高效檢索、可以被外部程式呼叫。

*注2:為什麼不做線上CMDB?精力能力有限,公司已有CMDB,另如果已有CMDB好用的話……

上述措施讓自己迅速進入了工作狀態,更重要的是身處良好的技術團隊。


接下來,發現越來越多的事務和故障,需要熟悉和了解IDC間的連線關係及其角色功能。

IDC南北向流量靠得是ISP提供的網際網路出口頻寬,而東西向流量依賴大量的專線和×××,當可以解決一些個體、區域性問題後,就自然而然地關注到一些結構性、與互聯相關的問題了。

因此,為自己定下了另一個目標,繪製出公司全網的專線和路由連線拓樸。

而促使自己這樣做的另一個原因是,當時網路團隊內並沒有全網的物理或邏輯結構拓樸。這樣會帶來一些問題,例如團隊新成員需要花費大量時間熟悉網路,雖然這是必須經歷的過程。例如並不是所有人都對整體網路架構十分清楚,每個人心中的網路結構都各不相同,這給溝通和協作帶來不便甚至是障礙等等。


下面六張拓樸,就是幾年來不同時期所繪製的網路拓樸,這些版本基本上是延續發展的。從拓樸圖的變化,能夠反映出自己對網路的理解、認識、態度的變化,也能反映出公司網路的變遷。

014030778.jpg

階段一

拓樸涵蓋的僅僅是自己所關注的幾個重要IDC,及它們之間的重要專線等連線關係,比較簡陋。類似的拓樸,很多同事都畫過,這似乎是網路工程師必經的成長之路。但這個拓樸給我幫助很大,它的存在使自己能夠把每一次思考的收穫都累積起來,並不斷完善和改進。


階段二

內容有所豐富,重要的變化是增加了互聯介面和地址資訊。當時網路內是OSPF與靜態路由混用,路由調整非常複雜。經常因某鏈路發生擁塞而需要找到流量大戶並通過靜態路由拆分流量的情況,稍有不慎就會導致路由錯誤。而當個別鏈路故障中斷時,流量分析、重新選路都是全手工操作,非常恐怖。

當一次一次在深夜裡被叫起,需要在最快的時間內判斷鏈路故障、制定臨時解決方案、進行大量靜態路調整時,下定決心改變現狀,那種經歷真的真的是一種折磨。


階段三

於是有了階段三,此時全網主要鏈路都已經被OSPF覆蓋,雖然在一些窄帶鏈路上還有靜態路由存在,但基本上絕大部分手工切路由的情況沒有了。所關注的範圍擴大到全網所有路由節點,並在拓樸中加入更豐富的資訊,期望可以從拓樸中找到故障處理和日常變更的最關鍵資訊。例如route-id,例如cost值,例如互聯介面和互聯地址。

另外,在繪製拓樸時,儘量做到:將圖縮小看全域性時結構清晰、關係直觀明確,將圖放大看區域性時資訊豐富、易於與外部關聯,儘量在有限空間內把所有路由節點展示清楚。很快,這份網路拓樸圖成為團隊同事人手一份參考檔案,並由自己來定期更新和維護。

當整個團隊面向同一個拓樸時,大家就從在腦海裡構建網路結構的事件中解脫,在相同的資訊基礎上對各種問題進行分析和探討,哪些節點沒有冗餘,哪些鏈路流量走向不合理,哪裡需要擴容等等,事情變得越來越好。


階段四

此時,網路團隊的關注重點變成了如何讓自己從被動擴容和鏈路冗錯處理的事務中解脫出來。

首先,將不重要的節點從拓樸中清除掉,改變以住的三角型IDC承現關係,嘗試利用現有的鏈路,參考位於不同ISP的核心節點,從所有IDC中選出一組環型節點,創建出一個邏輯上的骨幹網,其它節點全部降級為連線到骨幹網的接入節點。

為了滿足兩個主要ISP間的佔整網流量多數的傳輸需要,每ISP選擇2個骨幹節點,分別在兩對不同ISP節點間建立2條邏輯鏈路,以達到兩個ISP間共4條邏輯鏈路的效果。為了達到這個目標,將全網OSPF鏈路cost值全部改為手工指定,嚴格地按照設計的傳輸層次設定。

另外,為了達到骨幹傳輸效果,甚至放棄了幾條大容量專線,就是因為這些專線一旦使用,會導致結構性的破壞。為了使整個團隊接受類似的觀點,花費了大量時間用於溝通、技術交流、基於拓樸模型的故障模擬,經過多次改進和完善。

最終,從階段四的設計和規劃階段,發展到階段五。


階段五

至此,骨幹傳輸網路概念終於確立,之後的IDC選型、專線擴容、網路規劃等一系列工作,都變成了有理可依、有據可查的局面。而網路工作,也慢慢離開了救火隊的角色,儘管網路變得更復雜、更龐大,但一切井然有序,可以清楚地知道有哪些問題存在以及解決問題的優先順序。高度可靠、穩定的網路結構,保證了在發生故障時最大程度地減少了服務中斷情況發生,使網路團隊從巨大的業務影響壓力中解脫,發生故障時可以安心解決故障。

接下來,新的挑戰不期而遇,大量的IDC間資料呼叫,導致傳輸網容量迅速出現不足的情況。正是因為前期解決了結構上的根本不足,所以擴容問題帶給網路團隊的只是選擇哪種擴容方式而己,可以把主要精力用於研究當前和未來需要關注的事情上。

階段六

公司網路的近期情況,最終選擇通過波分技術將現有專線擴容,其擴容能力至少可以滿足未來3年的發展需要。除了傳輸骨幹網容量的提升,還在減少裝置和鏈路單點故障、減少傳輸網與交換網相互干擾、流量分析、網路監控等方面投入了更大的精力。

不久前,網路拓樸維護工作正式交接給進入部門一年多的一位新同事手中,感覺就像把自己精心呵護長大的孩子交給別人一樣。目前,公司在網路互聯上,已經走上正軌,只要不是為了改變而改變、為了業績而改變,而是站在網路發展和業務發展的實際需求上客觀分析問題,尋求解決方法,一定會發展的越來越好。


以上就是自己所在公司網路的發展過程,希望對網路同仁有所幫助。仍然沒有涉及過多細節,因地制宜、因人而異,重要的是想法和思路。

*注:文中拓樸,已盡力縮小和對關鍵資訊處理,力求即不洩露公司機密,又能展示拓樸要素,如有不詳還請見諒。




轉載於:https://blog.51cto.com/wandering/1162456