《軟件定義網絡在攜程的運維實踐》要點:
本文介紹了軟件定義網絡在攜程的運維實踐,希望對您有用。如果有疑問,可以聯系我們。
作者簡介
鄭升
攜程網絡高級工程師
大家好!今天由我來給大家分享一下軟件定義網絡在攜程的運維實踐.我講的內容主要分為兩塊:
先來看一下攜程數據中心網絡的特點.
第一個特點它是一個傳統網絡.攜程整個數據中心的架構都是已經使用了八、九年的網絡,是一個非常傳統的老的架構.用戶在網絡上的使用習慣,應用在網絡上的部署模式以及網絡上的這種安全的分區,還有網絡對于攜程整個流程系統的適應性都有點根深蒂固,你要輕易改變它是不容易的.而且攜程不像一些大公司,經常會有一些新的項目出來、新的業務,那邊20個機柜上到那邊試一下,然后那20個機柜給你什么樣的嘗試,這種機會很少.所以我們這個網絡是延續了傳統的架構.
第二個特點是要求靈活敏捷.攜程數據中心它對網絡的靈活性要求很高,雖然數據中心數量不多,但是每個數據中心數量都非常大.
從上圖來看,這就是三層的核心、匯聚、接入.針對以上三個特點,攜程對于軟件定義網絡的需求特別迫切,攜程對于軟件定義網絡的理解,我們把定義網絡做成一個網絡運維輔助工具,希望這一工具幫助我們完成兩件事情:
首先我們對設計的要求是高效、準確、靈活.高效是要快很多,然后它必須是準確的,我們在這個工具里面設計了很多防呆、防錯的機制,即使輸入有錯,也不會因為輸入錯誤給網絡下發了錯誤的參數而導致一級事故這種事情,我們是不能容忍的.然后它是靈活的工具,也許底層網絡有變化,但是不能因為底層變化而重新買一些代碼,它需要有一些靈活性.
對于工具具設計的要求是希望他們變成網絡工程師的好榜首.這些工具都是網絡工程師根據日常工作中的經驗總結設計出的工具,我們的網絡工程師非常行,他們在網絡技術方面都很精.有些甚至具備自己碼代碼的能力,所以說由他們設計,按照自己設計出來的工具是適合的,功能非常強大,都是根據自己工作中總結出來的.然后它的界面是簡單易用,最后一個是要準確可靠,網絡工程師只需要關注自己輸入的參數,需要關注底層的結構和數據校驗的問題,這樣網絡工程師利用這些工具策略就會高很多.
這是我們的控制器,名字叫Netranger,結構是這樣的,中間是控制器,向被是提供了用戶界面,用戶主要指網絡工程師,在這個結構上進行網絡變更和信息收集等操作.另外針對流程系統有一個API ?接口,自動與流程系統(Remedy)交互,進行訂單自動化.南下是協議,最主要使用的是Netconf和SNMP,90%的功能是由NETCONF完成,然后還與監控平臺(Netcons、SNMP、Syslog)對接,幫助他們驅動我們的控制器來完成一些功能.
Netranger系統功能,最主要的是信息采集.你要做網絡要知道這個網絡上發生了什么事情,我們測試了很多家的產品,大多數的控制器并不關心網絡現在什么樣子,只是定義網絡.那種東西在網絡工程師的角度是不可接受的,第二個是指令下發,如果它不能下發指令你也沒辦法控制網絡.包括設備配置管理、業務流程對接、操作審計、統計報表.Netranger基于Python來開發的.
第二個Netranger主要功能介紹,它為我們做了什么事情.先介紹的第一個功能是服務器網絡端口操作自動化,也就是工作當中最繁重的任務自動化.這是服務器上架上線的流程,具體的流程下一場服務器專家為大家介紹.我們這塊與網絡相關的兩塊工作,網絡端口開啟和生產網絡的切換兩項工作.
大家可以看到這個工作量是 ?巨大,一批服務器任務過來,網絡工程師通常要在1—2個工作日完成這么大服務器上架工作,因為服務器有很多的網口,網絡工程師要在一個工作日內完成成百上千的服務器交換機端口的開啟,遠程切換,甚至有時還有服務器下線,還要關閉端口,一個工作日完成這么多的事情,你要讓做是不可能的.
第三個服務器網絡端口操作自動化.設計非常簡單,首先要和流程系統對接,因為所有的參數從系統過來,然后拿到參數做校驗,檢查端口當中每一個是否滿足深線的要求.有些傳過來是錯誤的,本來這個端口在線上還要上線,就會造成故障.校驗完在合適的時間把這些配置下發到網絡設備上,通過Netconf協議,這是我們工作中總結出來的,這樣的話萬一造成故障影響比較小,但是事實從來沒有造成過.然后Netranger上線以后完成了這么大的操作,6萬多的端口,然后這樣大家就可以看到前面說的變更繁重什么概念,沒有這個東西完全搞不定.
交換機上線自動化,保障交換機基準配置一致性.包括AAA、LOG、STP、PORT,運維過程中自動的高喚,最終也是最主要的,它要使工程師遠程操作,而不是過去一個工程師跑到現場到交換機上打一堆標簽說不能做,我們讓它變成遠程自動化的東西.
這是我們自動化上線的一個流程,首先有軟件工程師在提供的NetrangerWeb ?UI上面制訂布線計劃,分配設備參數,現場工程師按照布線計劃完成設備上架布線,完成了計劃和布線或者是參數,就會傳遞給Netranger,Netranger根據參數生成配置.現場的交換機上線,也會有交換機的完成和配置的獲取這樣一個工作.
當Netranger校驗是正回的情況下,把上行的接口,包括上行的下一個接口打開進行運行.上線以后會通過收集一些信息核對你現在的沿線和你之前布線計劃是否一致,如果不一致的話會報警或者是關閉不一致的接口.這樣的一個工具幫助網絡工程師在一個工作日完成大量的交換機上線,雖然我們沒有嘗試過多少,但是你隨便兩百臺它是能完成的.
這個是我們上線的數量,不多,這不是我們上線設備不多,而是我們購買的某些廠商的產品由于某些特殊技術不需要我們這個系統,實際上我們的數量是非常大的.
Netranger在網絡管理與網絡安全方面的.攜程是只用防火墻集中安全策略部署的點.所以網絡被它在邏輯上分成很多的安全區域,我們為了達到靈活性的問題.我們使用虛擬路由器,虛擬路由器與安全區域進行一一關聯.
服務器上線只需要加入該虛擬路由器下的網端,就可以進入你所定義的那個安全的區域.我們設計的這一工具就要完成網絡管理,虛擬機路由器管理,電子網的管理,還有防火墻安全區域和 ?VRF的關聯,最終實現路由自動化部署和網絡防火墻安全的自動化.
先看看網絡我們做了什么,第一個是網絡配置可視化,我們首先收集信息,現在數據中有一些什么樣的網絡配制包括vlan、接口、VRF信息.接下來就完成配置的自動化,網絡工程師要給數據中心做配置,是基于每個數據中心來做的,如果我們要加一個Vlan,按照以前的做法,是跑到數據中心去打你的Vlan,現在通常攜程是有400個機柜,你讓網絡工程師一個個去打,浪費時間不說,還不能保證一致性.
現在只要在Netranger界面上輸入,可以保證每一個的配置是一致的.比如說包括Vlan的管理、VRF的管理,以及IP網關的管理.待網絡的自動化完成,剩下的事情就很簡單與網絡安全的區域關聯,只需要網絡管理員在Web界面上將安全區域與VRF建立關聯關系,剩下的接口、路由就可以完成關聯.最主要的是下面張圖,我在VRF創立一個新IP自動,在防火墻和其他關聯路由器上,相關靜態路由會被推上去.
IP路徑發現的一個工具.由于攜程網絡中大量使用VRF,導致實際的發生的路徑與物理拓撲上的路徑是不一致的.這樣導致你排障時非常討厭,某兩臺服務器之間有什么訪問的故障,然后你去排障,在物理上你看不出什么,網絡工程師是登錄IP一個個去看,但是費時間.
所以我們做了這個工具讓網絡工程師一下子發現這個路徑是什么樣子,比如說是否穿過墻了?實際的方案是用Netranger從所有的防火墻和路由器上搜集建立表,網絡工程師需要查的話只需要搜一下,然后Netranger搜索這樣一個路徑以圖形的方式展現出來,所以網絡多路徑對它來說也不是問題.
這個工具幫助我們實現運維過程中排障的自動上線.實際上工程師還會知道路徑防火墻上面,有沒有防火墻策略與用戶的需求相匹配.
在Netranger當中有一個模塊可以幫助我們完成SYSLOG的分析與告警.設備發出SYSLOG,然后有一份數據會給到,然后根據網絡工程師定的策略,將不同優先集的報警以不同方式處理.一些會以短信的方式,一些以郵件的方式.
網絡工程師收到郵件以后通過Wew界面轉到Netranger上看就會發現很多的事情.這是我們的界面,網絡工程師篩選不同級別的信息,可以調整時間顯示所有時間段內的SYSLOG,在這里調整報警規則和屏蔽一些告知.
最有趣的是知識庫,根據我們SYSLOG的報警和排障的經驗,當某些與知識庫匹配的時候,網絡工程師會點詳情,知識庫里的內容就會指導他下一步怎樣做.上面是現有的功能,我們正在做的是Netranger上的可視化,我們要做網絡性能分析.在性能分析的前提下,根據性能分析的結果對網絡進行優化.
我介紹了攜程的這樣一個產品叫Netranger,給大家看了它實現的功能、自動化、網絡管理、網絡排障工具和分析告警功能,以及我們還將進一步實現網絡可視化.
文章出處:高效運維