的轉換方式,本申請包括但不限于以下兩種方式:
[0038]方式一:將第一消息體轉換成至少一個配置對象,將各配置對象的值輸入預設的配置模板中各配置對象對應的位置,得到配置命令行。
[0039]具體地,控制器預先設置了配置模板,將第一消息體轉換得到的各個配置對象的值傳入配置模板中的相應位置后,就可以得到對應的配置命令行。比如:預設的配置模板為.vm格式的Velocity模板,其中,Velocity是一個基于java的模板引擎。
[0040]方式二:根據第一消息體的信息量大小采用對應的轉換方式,包括:
[0041](I)檢測第一消息體的信息量。
[0042](2)判斷該信息量是否小于設定信息量閾值。
[0043](3)若信息量小于設定信息量閾值時,按照設定配置順序將待下發至網絡設備的配置命令中的配置參數拼接成對應的配置命令行。
[0044]具體地,設定信息量閾值可以是控制器根據實際情況設定的閾值。若信息量小于設定信息量閾值時,表明此時的第一消息體的信息量較少,就可以使用較為直接的字符串拼接方式,將第一消息體承載的配置參數按設定配置順序拼接成對應的配置命令行。
[0045](4)若信息量不小于設定信息量閾值時,利用預設的配置模板將第一消息體中轉換成對應的配置命令行。
[0046]步驟230,基于可擴展標記語言(Extensible Markup Language,XML)的網絡配置連接將第一消息體對應的配置命令行發送至網絡設備。
[0047]由上述實施例可見,通過分布式接口接收客戶端發送的配置請求,并根據配置請求中的第一消息體生成對應的配置命令行,以及基于XML的網絡配置連接將第一消息體對應的配置命令行發送至配置請求中的網絡設備標識信息對應的網絡設備,以使對應的網絡設備根據接收到的配置命令行進行配置,從而實現了網絡設備配置的自動化和遠程化,還提高了網絡設備的配置效率,并減少了運維成本。
[0048]在一個實施例中,執行步驟210中接收到的配置請求中第一消息體可以為通用數據交換格式的消息體,并且,配置請求中的URI用于標識配置命令,第一消息體承載該配置命令中的配置參數。
[0049]具體地,為支持跨平臺,客戶端發起的配置請求中的第一消息體格式可以使用 JavaScript 對象表示法(Java Script Object Notat1n,JSON)、可擴展標記語言(Extensible Markup Language,XML)等通用數據交換格式。
[0050]比如:在Linux平臺下可以通過web瀏覽器、curl命令行等方式向控制器發送配置請求;或者,在Windows平臺下可以使用web瀏覽器及其他插件向控制器發送配置請求。
[0051]由上述實施例可見,控制器提供了分布式接口,基于該分布式接口,支持分布式、遠程調用接口實現配置下發,使得技術人員無需到達現場即可進行設備配置,降低了運維成本。
[0052]在一個實施例中,執行步驟220中根據第一消息體生成對應的配置命令行之前,還可以包括:
[0053]對第一消息體進行設定校驗;若設定校驗通過后,確定根據第一消息體生成對應的配置命令行。
[0054]具體地,對第一消息體進行的設定校驗可以包括非空校驗和合法性校驗中的任意一個或多個,只有這些校驗通過后,才可以根據第一消息體生成對應的配置命令行;若這些校驗沒有通過,可以向客戶端發送提示信息,提示客戶端重新發送配置請求。
[0055]上述設定校驗和根據第一消息體生成對應的配置命令行皆可以由控制器的業務邏輯層來完成。
[0056]由上述實施例可見,根據第一消息體生成對應的配置命令行之前,還需要對第一消息體進行的設定校驗,從而保證了配置網絡設備的準確性。
[0057]在一個實施例中,執行步驟230中基于XML的網絡配置(Netconf)協議將第一消息體對應的配置命令行發送至網絡設備,具體過程如下:
[0058](I)建立與待配置的網絡設備之間的基于XML的網絡配置(Netconf)連接。
[0059]具體地,在控制器登錄待配置的網絡設備時,首先從數據庫中獲取利用Netconf協議登錄到待配置的網絡設備上的登錄名和密碼,然后校驗該登錄名和密碼,只有登錄名和密碼皆正確,才能登錄上該待配置的網絡設備,若登錄名和密碼中至少有一個為空,或至少一個為錯誤,都不能登錄上該待配置的網絡設備。
[0060](2)將第一消息體對應的配置命令行添加到XML模板中,得到XML格式的第二消息體,該第二消息體包括配置命令行。
[0061](3)通過基于XML的網絡配置連接將攜帶有第二消息體的簡單對象訪問協議(Simple Object Access Protocol,SOAP)請求發送至網絡設備,以使該網絡設備根據SOAP請求攜帶的第二消息體中的配置命令行進行配置。
[0062]具體地,控制器也可以直接將第二消息體發送至待配置的網絡設備。不管控制器發送成功,還是發送失敗或連接超時,皆會收到待配置的網絡設備返回的對應的反饋信息。
[0063]上述基于XML的網絡配置連接將第一消息體對應的配置命令行發送至網絡設備標識信息對應的網絡設備,易于進行數據交流和開發。另外,利用SOAP協議作為傳輸協議,進一步保證網絡配置連接的安全性和可靠性。
[0064]在一個實施例中,該方法還可以包括:
[0065]將根據第一消息體生成的配置命令行、以及網絡設備的設備信息保存至數據庫中。
[0066]具體地,保存至數據庫中可以為持久化保存至數據庫中,該持久化保存便于控制器對網絡設備的配置和管理,提高了可用性。
[0067]在一個實施例中,該方法還可以包括:
[0068]將數據庫中保存的網絡設備對應的設備狀態更新為在線狀態。其更新過程具體包括:
[0069](I)計算接收到網絡設備發送保活報文的累計次數。
[0070](2)若累計次數到達報文次數閾值時,獲取數據庫中保存的設備狀態。
[0071](3)若設備狀態不是在線狀態,則將設備狀態更新為在線狀態,并將累計次數清零。
[0072]另外,控制器還可以提供一個用于修改報文次數閾值的接口。當報文次數閾值被設置的越大時,操作數據庫的頻率就越低,數據的即時性越低。
[0073]由上述實施例可見,本申請提供了一種具有高伸縮性的設備保活和狀態更新機制,可根據網絡設備發送的保活報文來執行對數據庫的操作;尤其是控制器提供接口可靈活修改報文次數閾值,這樣可以通過設置報文次數閾值來實現數據時效性和控制器性能的權衡。
[0074]參見圖3,為本申請配置網絡設備的方法的另一個實施例流程圖,該實施例從控制器側進行描述,并建立圖2所示實施例的基礎上,執行對網絡設備的注冊功能,可以包括以下步驟:
[0075]步驟310,接收網絡設備發送的注冊報文,該注冊報文包括網絡設備的設備標識。
[0076]具體地,發送注冊報文的網絡設備可能沒有在當前連接的控制器上注冊,也可能已在當前連接的控制器上注冊,也可能已在其他控制器上注冊。并且,注冊報文中的網絡設備的設備標識可以是該網絡設備的網絡之間互連的協議(Internet Protocol, IP)地址,也可以是該網絡設備的物理地址(Media Access Control,MAC)。
[0077]另外,若控制器連續設定次數接收到同一臺網絡設備的注冊報文,將向該網絡設備發送警告信息。比如,設定次數為2次。
[0078]其原因可能是:網絡設備連續向控制器發送注冊報文,表示該網絡設備沒有收到控制器對之前發送的注冊報文的回應,此時鏈路可能是出現擁塞或防火墻規則等原因導致的單向連通。
[0079]步驟320,根據網絡設備的設備標識獲取該網絡設備的設備信息。
[0080]具體地,控制器獲取網絡設備的設備信息的方法有很多