高 婷,段 曉
(中國原子能科學研究院 核工程設計研究所,北京 102413)
隨著信息技術的日益成熟,數字化儀控系統逐漸應用于核電領域。目前國際上部分采用數字化儀控系統的核電廠已運行多年,在建的核電機組中,其儀控系統已大都采用數字化儀控系統,如中國田灣核電1、2號機組、中國嶺澳二期1號機組等核電站。儀控系統數字化的引入體現了數字化的優勢,也帶來了新的安全問題。2008年3月,美國喬治亞州的1座核電站因某臺電腦上的軟件更新而被迫緊急停機長達48h;2010年,針對伊朗布什爾核電廠的“震網”病毒也為核電設施的安全敲響了警鐘。以上事例證明,核電工業控制系統中存在的安全脆弱性為工廠財產、人員和環境安全帶來危險[1],核電工業控制系統的安全問題日益突出。
在運行維護方面,也同樣存在新的問題。目前,各電站主要是依靠運行操作員通過操作員站的報警來發現網絡故障,再通知維修人員處理,對故障沒有預判的過程,沒有預先掌握問題隱患,屬于事后處理的糾正性維修[2]。對于網絡結構較為復雜的核電工控網絡來說,故障原因難以查找和定位。隨著設備的老化,運行和維護人員的工作量會越來越繁重。
由于核電廠的特殊性,對核電廠DCS系統網絡的安全性、可靠性、實時性、可用性有較高要求,迫切需要一套簡單高效、安全可靠的網絡管理工具。
軟件自定義網絡(SDN:Software Defined Network)是由美國斯坦福大學clean slate課題組提出的一種新型網絡架構。其設計理念是將網絡的控制平面與數據平面分離開來,通過集中控制器中的軟件編程平臺,定義和控制網絡,從而實現網絡資源的靈活調配,為核心網絡及應用的創新提供了良好的平臺[3,4]。SDN將傳統網絡中的決策權和執行權分離,控制平面負責對不同業務特性進行適配,做出網絡轉發行為的決策。數據平面只負責單純的數據轉發。數據平面根據控制平面下發的流表規則進行已知網絡流的轉發,而對于未知的網絡流,則需要詢問控制平面。控制平面根據全局網絡的拓撲和帶寬等信息,計算最佳的轉發路徑,對數據平面的請求作出應答,下發流表規則,將其安裝到數據平面的設備中去。控制平面通常由一臺或多臺控制器組成[5],所有的控制邏輯都以軟編碼的形式實現,還可以在控制層之上通過特定的接口來開發自己的應用程序對數據平面的設備進行管理,增加了網絡配置的靈活性和可定制性,方便了控制平面的升級換代,加快了新業務引入的速度。數據平面由成百上千個支持SDN相關協議(OpenFlow協議)的交換機組成,根據控制器下發的流表項進行規制匹配和轉發。通過SDN提供的軟件接口,網絡管理員對網絡流量具有完全的控制權,可以對網絡進行自動化地部署和運維故障診斷,省去了數量龐大的網絡轉發設備的配置管理,降低了出錯率和網絡運行成本。
OpenFlow協議是目前SDN事實上的通信協議,用來描述控制器和交換機之間交互的所有信息的標準,以及控制器和交換機之間的標準接口。用戶通過定義好的API在控制器上編寫自己的控制策略,控制器會根據這些策略對OpenFlow交換機上的流表進行管理,從而實現用戶所預期的網絡功能。OpenFlow 1.0協議是最先公開化的、較為全面的草擬標準,在此標準基礎上,學術界得以深入研究SDN網絡的運行機制,業界可以實現相關的試驗產品。此協議可以滿足網絡流量轉發的大部分功能。
SDN是目前國內外研究的一個重點課題,在國際頂級學術研究會議SIGCOMM中有專門的HotSDN子會議議題。從SDN的控制平面到數據平面都有很多相關的研究,如全局流量優化的問題[6,7]、控制器安全問題[8]、控制器性能測試[9-11]等。在國內SDN研究領域,清華大學在控制平面的域內流量識別、域間擴展性以及相關虛擬技術等方面進行了相關研究[12]。西安交通大學開發了自己的SDN/OpenFlow交換機,在交換機優化等方面進行了相關研究工作。國際上,斯坦福大學參與SDN相關標準的制定和更新,還維護了一些SDN/OpenFlow實驗的開源程序,如網絡仿真平臺Mininet[13]、軟定義網絡控制器NOX[14]和POX[15]等。
在圖1所示的SDN架構中,最頂層的是應用層,主要包含各種業務應用;中間是控制層,負責對整個網絡的資源進行管理和控制;最下面是基礎設備層,負責進行數據的轉發。其中,應用層和控制層屬于控制平面,基礎設備層屬于數據平面,兩個平面之間通過OpenFlow協議進行交互。

圖1 SDN網絡架構Fig.1 SDN Network architecture
數據平面進行網絡流量的轉發,與傳統網絡不同的是,數據平面不具備決策功能,如傳統網絡中的交換機能夠路由選路、集線器會自動廣播轉發。數據平面則是將決策權交給控制器,自身只按照規則對符合規則的數據包進行轉發。控制平面則是對各種網絡流量的去向進行決策,所有未識別的流量都會被數據平面反饋給控制平面。控制平面根據上層業務應用的配置,結合全局的拓撲信息,對這些流量進行算路。本質上,控制器是一個網絡控制功能模塊的載體,網絡管理人員可以根據自己的需要編寫或者搭載具有相應網絡功能的模塊,進而完成網絡的控制。OpenFlow協議是兩個平面之間的橋梁,定義了控制器和交換機之間的通信接口。
1)SDN數據平面
SDN的數據平面指由SDN網絡底層基礎設備組成的網絡。目前,SDN使用OpenFlow作為通信協議。所以,SDN的網絡設備就是指能夠支持OpenFlow的網絡轉發設備。雖然業界仍舊將這些網絡設備稱之為switch,即交換機,但這種設備已與傳統網絡中的交換機不再相同。在SDN體系里,數據平面表現出的功能可以是集線器那樣的廣播,也可以是交換機隔離沖突域的高級轉發。
SDN數據平面的網絡設備中包含一個流表。流表中包含不同的流表項用來匹配不同的網絡流量,所有的流表項及其對應的轉發動作都是由控制器進行決策后,通過OpenFlow協議下發到交換機上的。數據平面的轉發設備在收到網絡數據包后,首先匹配流表項,如果能匹配到規則,則按照規則中的動作進行操作。如果不匹配,則將數據包的包頭或整個數據包轉發給控制器,控制器再根據其上的業務應用等邏輯生成對這條流的控制流表項,下發到數據平面中。數據平面的網絡設備在安裝好流表規則后,則按照規則中的動作對該條流進行處理。
2)SDN控制平面
控制平面由控制器組成。控制器通過OpenFlow協議對整個網絡數據平面中的設備進行集中式地控制。控制器擁有網絡的全局信息,所以在路由決策、流量工程等方面具有極大的優勢。目前,較為成熟的控制器有Nox、Pox、Floodlight[16]、Beacon等。
控制平面向上層應用提供統一的接口,上層管理人員可以根據自己的需求定制自己的網絡應用程序來管理網絡。這不僅為新型網絡的科研實驗帶來了極大的方便,也對實際網絡的部署升級帶來極大的便利。
SDN本質上是構建了一個網絡操作系統,管理人員可以在其上構建各種各樣的網絡應用。這與計算機虛擬機的發展趨勢類似,使計算機世界和網絡世界都可以通過軟件編程的方式靈活控制。同時,有了SDN,計算機網絡的研究與發展將不再受傳統設備廠商的束縛。通過簡單的編程就可以實現整個網絡的控制和檢驗,大大提高網絡的發展速度。在SDN的推動下,傳統的設備生產廠商面臨新網絡市場的挑戰,新興SDN技術公司對傳統網絡形成了巨大挑戰。網絡廠商的競爭會加快網絡市場技術的演進,最終受益的將是整個社會。
相對傳統網絡,SDN架構可以解決傳統網絡中結構固化、路由效率低、設備手動管理與配置復雜等問題。在核電廠監控系統網絡在應用SDN后,可以隨時對網絡狀態、網絡性能、網絡安全進行監測和管理。
結合當前主流的分布式控制系統架構,基于SDN的核電工控系統分為現場設備層、現場控制層、操作和管理層、數據轉發層、數據控制層和邏輯應用層。
1)現場設備層由工藝系統的各種設備組成。其包括測量設備(傳感器、變送器等)和驅動器接口設備(驅動器、開關柜、電源設備等)。
2)現場控制層由現場控制級設備組成。其包括各子控制系統的現場I/O控制站,負責反應堆監控系統的信號調制和處理的設備。
3)操作和管理信息層。其包括可以使人員能夠操作反應堆,能夠監測反應堆狀態并對反應堆儀控系統實施運行服務的常規設備和計算機設備,如操作員站、工程師站等設備。
4)數據轉發層由SDN交換器組成,負責現場控制層、操作和管理信息層的通信數據進行轉發,SDN交換器根據控制器下發的流表進行數據轉發。
5)數據控制層由SDN控制器組成,在控制層之上通過北向接口API來開發自定義的應用程序,通過Open Flow協議實現對轉發層設備的管理。
6)邏輯應用層,包括各種不同的業務和應用,如入侵檢測模塊、網絡性能監測模塊、網絡狀態監測模塊、網絡安全防護模塊等。當網絡運行出現異常時,網絡安全防護模塊通過北向API向控制器下發指令,實現相應的安全功能。
基于軟件自定義網絡的核電廠監控系統可以簡單地實現以下功能:
1)基于SDN的網絡狀態監測、網絡性能監測與管理
SDN控制器主要通過LLDP(鏈路層發現協議)進行全局拓撲發現。控制器進行鏈路發現過程時,首先會通過一個Packet_out消息發送LLDP數據包給與之相連的所有交換機。一旦交換機收到Packet_out消息,就會把LLDP數據包通過其所有的端口發送給其他與之連接的設備。收到LLDP數據包的交換機執行流表查找操作,若在流表中沒有匹配項,則發送Packet-in消息給控制器。控制器收到Packet_In消息后,對數據包進行分析并在其保存的鏈路發現表中創建兩臺交換機之間的鏈接記錄,最終控制器創建完備的網絡拓撲視圖。控制器定期發送包含LLDP數據包的Packet_In。所以,SDN天然具備拓撲管理功能,可以隨時監控和采集SDN交換機信息,及時反饋網絡的設備工作狀態和鏈路連接狀態。由于核電工控系統網絡結構相對固定,若鏈路連接狀態發生變化,則意味著網絡故障可能已經發生。運行維護人員可快速定位故障點,及時對網絡故障進行維修檢測。
同時,控制器可以根據不同交換機返回的Packet_In報文的時間差,計算出鏈路時延,從而對網絡狀態進行實時監測,例如網絡的連通性及各種網絡設備的狀態。
帶寬數據是網絡狀態中的重要數據。在SDN網絡中,可以通過Open Flow協議獲取帶寬數據。Open Flow協議中可以通過統計報文來獲取端口、流表、流表項、組表和meter表的統計信息。以端口的統計信息為例,控制器通過周期下發Port statistics消息,可以獲得交換機端口的統計信息。該統計信息中包括:收發的包數、字節數以及這個統計持續的時間。用端口最大帶寬減去當前帶寬,即可得到剩余帶寬;同理,可以計算出對應流表項或者組表等的統計流量。基于以上數據,可以在SDN控制器上部署各種用戶自定義的負載均衡、流量控制等策略。對于DCS網絡中可能出現的網絡風暴問題,也可以在SDN控制器中,設計基于SDN多路徑負載均衡策略,優化整個網絡的傳輸速率,提高核電工控系統網絡利用率。
在SDN中進行網絡管理,無需對底層的多個硬件設備進行反復配置與調試,只需要在SDN控制平臺上編輯自定義的配置策略。SDN控制器會下發相應的策略,網絡中的交換機等設備會自動更新流表。對于在較復雜網絡環境下運行的核電工控系統DCS來說,極大地簡化了運維人員的工作量。
所以,通過SDN在核電工控系統網絡中的應用,維修人員可以迅速得知網絡中的鏈路故障及故障節點;獲取網絡設備端口工作狀態,對網絡中鏈路的帶寬、流量、網絡時延等進行實時監測;通過對DCS網絡狀態的實時監測,在網絡運行出現異常前給出警報或提示,做到預防性維護;對DCS網絡進行全面監測,實現對DCS網絡的統一管理。
2)基于SDN的網絡故障診斷和自動恢復
基于SDN,可對核電工控系統的網絡性能進行分析和診斷。在檢測到鏈路故障后,SDN控制器可根據全局拓撲,按照網絡管理員配置的路由選擇算法,自動更新最優路徑,并將流表下發到底層數據交換機中,迅速完成鏈路故障的恢復。通過SDN在核電工控系統網絡中的應用,可以降低設備的平均故障修復時間,節約人力成本,減少損失。
3)基于SDN的網絡安全監測和管理
在傳統網絡中,防火墻、入侵檢測系統等網絡安全工具需配置在網絡中特定的硬件設備中,需對多個硬件設備進行反復配置與調試以滿足要求。而在SDN網絡中,上述功能均可在SDN控制器中以軟件程序的方式進行配置。通過調用SDN控制器的北向接口,獲得網絡性能等數據,并對其進行分析和判斷,最后通過控制器下發流表來完成網絡配置。例如,當基于SDN的入侵檢測應用,檢測到惡意攻擊時,可以自動下發相應的流表,將惡意攻擊的數據包導向網絡中的安全隔離設備,避免對核電工控系統DCS造成影響。
與傳統網絡相比,基于SDN的核電工控系統在帶來益處的同時,也帶來新的安全風險。SDN控制器對全部網絡資源進行統一管控,使得網絡配置、安全服務部署等都集中在控制器上,控制器的性能問題可能成為全網的制約。SDN北向接口的開放性,也會引入SDN在安全方面的薄弱性。由于核電安全的特殊性,在SDN的應用過程中,需針對以上問題加強SDN的安全防護,設計針對核電工控系統的定制化入侵檢測算法,定期檢測程序漏洞及惡意代碼,采用完備的授權驗證機制,確保控制器安全。
綜上所述,在核電工控系統應用軟件自定義網絡技術可協助運行維護人員對網絡狀態、網絡性能進行集中監測;對網絡故障進行自診斷和恢復;對網絡安全進行監測和管理等。本文提出了在核電工控系統應用軟件自定義網絡技術的框架,為解決核電工控系統的網絡故障、流量控制、故障診斷、安全防護等問題提供了新的思路,期望能對核電工控系統的網絡管理方式提供一定的參考作用。