彭太翀 梁建青 王海峰 王多才 田家興 趙廉斌
(中國石油西氣東輸管道公司壓縮機處,湖北 武漢 430073)
生成樹實例在西氣東輸一線SCADA系統中的應用
彭太翀 梁建青 王海峰 王多才 田家興 趙廉斌
(中國石油西氣東輸管道公司壓縮機處,湖北 武漢 430073)
通過對西氣東輸一線站場監控和數據采集(SCADA)系統的局域網結構和冗余性特點進行分析,找出了系統網絡環路形成的原因和解決方法。在局域網Cisco交換機上,應用生成樹實例對交換機配置進行修改,在不改變網絡結構和冗余性的同時,使交換機能夠對網絡環路進行自動阻塞。結果表明,應用生成樹實例后,網絡環路問題得到有效解決,設備間通信質量和設備工作性能得到提升,SCADA系統局域網的穩定性和可靠性也相應提高。
監控和數據采集(SCADA)系統 局域網(LAN) 網絡環路 交換機 生成樹
在西氣東輸一線站場監控和數據采集(supervisory control and data acquisition,SCADA)系統局域網中,由于HIMatrix ESD系統模塊的硬件結構和功能特性[1],HIMatrix控制器F30[2]與兩臺Cisco交換機間的物理連接以及網絡通信的冗余要求,使得HIMatrix控制器F30、兩臺Cisco交換機在物理連接上形成了環路。這種環路在沒有被很好地處理時極易誘發廣播風暴,進而造成交換機死機、HIMatrix ESD系統模塊錯誤等,給站場的安全平穩運行造成很大影響。
目前,在應對網絡環路問題上,生成樹無疑是一種既經濟又有效的解決方法,它能夠自動阻塞可能導致環路的冗余路徑,確保網絡中所有設備間在正常情況下只有一條邏輯路徑。
本文在充分研究和實踐的基礎上,通過在站場Cisco交換機中運用生成樹實例,有效解決了站場網絡環路問題,消除了環路對網絡設備間通信質量和設備工作性能的影響。
典型站場SCADA系統配置圖如圖1所示。

圖1 站場SCADA系統配置圖Fig.1 SCADA configuration of the station site
由圖1可以看出,整個網絡結構并不復雜,SCADA系統設備基本都以雙網的方式接入到局域網中,如PLC、ESD系統、操作員工作站、通信服務器、路由器等。它們各自都分別連接到兩臺Cisco交換機,并且兩臺交換機間用1根交叉線互連(交叉線分別連接兩臺交換機的端口Fa0/24),保證了整個網絡通信的冗余性[3]。
HIMatrix ESD系統包括控制器模塊和遠程I/O模塊。控制器多為F30,遠程I/O模塊主要為F3 DIO 20/8 01、F3 DIO 20/8 02、F2 DO 8 01 等[4-5],每個模塊在硬件上都具有一個集成交換機,這與操作員工作站、PLC、RCI、路由器等不同。HIMatrix控制器F30的集成交換機上有4個RJ45口,遠程I/O模塊的交換機上有2個RJ45口。每個HIMatrix模塊都有唯一的MAC地址和IP地址,通過專用軟件ELOP II Factory對其進行IP設置[6]。以控制器F30為例,其結構圖如圖2所示。

圖2 HIMatrix控制器F30結構圖Fig.2 Structure of HIMatrix controller F30
HIMatrix控制器F30與遠程I/O模塊之間通過網線串聯,并通過以太網進行數據交換。遠程I/O模塊只需與控制器F30進行通信,F30再與局域網中其他設備如PLC通信。F30分別與兩臺Cisco交換機相連,實現ESD系統與外部通信的冗余,其網絡接線如圖3所示,其中F3A、F3B和F3C為遠程I/O模塊。

圖3 站場局域網物理環路Fig.3 LAN physical loop of the station
圖3中,HIMatrix F30模塊和兩臺Cisco交換機間形成了環路,這是網絡冗余性要求與設備硬件特性所造成的。
當局域網中兩臺設備間存在多條路徑時,如果其間的交換機上禁用了生成樹協議(spanning tree protocol,STP),則可能會出現第2層(數據鏈路層)環路[7],即局域網環路。這是在實現網絡冗余的過程中經常會遇到的問題。
局域網環路對網絡中設備間的通信質量以及設備的工作性能影響極大。網絡中的廣播幀不包含與它們相關的生存時間參數[8],在局域網環路中,它們很可能會在交換機間無休止地傳輸,占用大量的網絡帶寬,直到鏈路斷開或環路解除為止。另外,環路還會使參與環路的所有交換機相互之間不斷轉發相同的幀,使得交換機CPU不得不處理大量的無用數據,導致CPU負載過高,而無法高效處理正常接收到的數據,極大地影響到網絡中設備間的正常通信。同時,由于交換機MAC地址表不斷使用廣播幀的內容進行更新,造成交換機無法明確使用哪個端口才能將單播幀轉發到以太網幀指定的目的MAC地址,造成單播幀也在網絡中不斷循環。隨著網絡中循環的幀越來越多,便形成了廣播風暴[9],極大地降低了網絡性能,被卷入網絡環路的主機將無法被網絡中的其他主機訪問。
在西氣東輸一線站場中,還出現過因廣播風暴造成如交換機死機、HIMatrix ESD系統模塊出錯、操作員站上出現大面積設備通信中斷以及各類誤報警[10]等故障,對站場的安全平穩運行影響很大。
生成樹協議的國際標準是IEEE 802.1d,在Cisco交換機中利用生成樹協議能夠很好地解決局域網環路問題。STP會阻塞可能導致環路的冗余路徑,以確保網絡中正常情況下所有設備間只有一條邏輯路徑。當一個端口阻止流量進入或離開時,該端口便視為處于阻塞狀態,一旦需要啟用該阻塞端口來消除網絡電纜損壞或其他故障造成的數據中斷時,STP就會將處于阻塞狀態的端口解除阻塞,使冗余路徑轉入活動狀態,保證數據傳輸的延續性[7]。
在此需要指出的是,HIMatrix控制器F30的集成交換機與Cisco交換機不同,用戶只能對F30的集成交換機進行IP地址、子網掩碼、默認網關等的設置,不能進行生成樹配置,因此生成樹的設置只能在Cisco交換機中進行。以圖2為例進行說明,其中Cisco交換機以Catalyst 2950 Series為例,交換機上STP默認為啟用,但是仍然需要對交換機的相關配置進行修改,使得數據的傳輸沿著期望的路徑走,以達到最佳效果。
生成樹實例首先需要指定圖3中兩臺Cisco交換機中的一臺為根橋,以根橋作為生成樹計算的參考點來確定哪條冗余路徑應被阻塞。哪臺交換機為根橋是通過其網橋ID(bridge ID,BID)大小來決定的,BID最小的將成為根橋。BID包括網橋優先級、擴展系統ID(即VLAN ID)、MAC地址3個字段。
在此,通過修改交換機的網橋優先級實現對根橋的指定,網橋優先級值越小,優先級越高。登錄1#交換機,在全局配置模式下使用“spanning-tree vlan 1 root primary”,將1#交換機設置為主根橋,其指令如下:
Switch1#configure terminal
Switch1(config)#spanning-tree vlan 1 root primary
登錄2#交換機,在全局配置模式下使用“spanningtree vlan 1 root secondary”,將2#交換機設置為輔根橋,其指令如下:
Switch2#configure terminal
Switch2(config)#spanning-tree vlan 1 root secondary
配置修改后,在特權模式下輸入“show spanningtree”指令查看生成樹配置信息,可以看到1#交換機和2#交換機的網橋優先級將分別變為24 576和28 672。因為24 576<28 672,所以1#交換機的優先級比2#交換機的高,且在1#交換機的生成樹配置信息中可以看到“This bridge is the root”語句,表示1#交換機已經成為根橋。另外,在2#交換機的生成樹配置信息中可以看到“Port 24(FastEthernet0/24)”語句,表示2#交換機的根端口為Fa0/24;而“Cost 19”語句則表示從2#交換機根端口到1#交換機的路徑開銷等于19。
虛擬局域網(VLAN)中繼是以太網交換機接口和另一臺聯網設備(如路由器或計算機)以太網接口之間的點對點鏈路,負責在單個鏈路上傳輸多個VLAN的流量[7]。
對圖3中兩臺交換機互連的端口Fa0/24都進行VLAN中繼配置,使這兩個端口更改為永久中繼模式,從而將它們間的鏈路強制作為中繼鏈路。在交換機端口Fa0/24配置模式下使用“switchport mode trunk”指令:
Switch1#configure terminal
Switch1(config)#interface fa0/24
Switch1(config-if)#switch port mode trunk
Switch2#configure terminal
Switch2(config)#interface fa0/24
Switch2(config-if)#switch port mode trunk
配置修改后,通過在特權模式下輸入“show interface fa0/24 switchport”指令,對端口Fa0/24管理和運行狀態進行查看,兩臺交換機的端口Fa0/24信息相似。比如1#交換機端口Fa0/24的管理和運行狀態,其中“Administrative Mode:trunk”表示該口的管理模式已經變為中繼,“Trunking VLANs Enabled:ALL”表示該口對所有的VLAN都啟用中繼。
STP使用的交換機端口開銷值由IEEE定義,默認情況下,端口開銷由端口的鏈路速度決定,100 Mbit/s快速以太網端口開銷為19,10 Mbit/s以太網端口開銷為100[7]。為指定的生成樹實例選舉出根橋后,生成樹算法(spanning tree algorithm,STA)便開始確定從廣播域內所有節點到根橋的最佳路徑。把從某臺交換機到根橋路徑上沿途的每個端口開銷加在一起即為路徑開銷,路徑開銷最少的路徑將成為首選路徑,所有其他冗余路徑都會被阻塞。環路舉例如圖4所示。

圖4 環路舉例Fig.4 Example of the network loop
圖4中,Switch2通過路徑1到根橋Switch1的路徑開銷是19,而使用路徑2的路徑開銷是38(即19+19)。由于路徑1到根橋的路徑開銷更少,因此它是首選路徑,生成樹協議(STP)隨后將冗余路徑2阻塞,以防形成環路。
盡管交換機端口具有與它們相關的默認端口開銷,但是端口開銷是可以配置改變的。將圖3中1#交換機和2#交換機互連的端口Fa0/24都進行開銷修改,把它們的開銷由默認值19改為10,在端口Fa0/24配置模式下使用“spanning-tree vlan 1 cost 10”指令:
Switch1#configure terminal
Switch1(config)#interface fa0/24
Switch1(config-if)#spanning-tree vlan 1 cost 10
Switch2#configure terminal
Switch2(config)#interface fa0/24
Switch2(config-if)#spanning-tree vlan 1 cost 10
修改好后,在特權模式下輸入“show spanningtree”指令查看生成樹配置信息,可以看到1#交換機端口Fa0/24的開銷由原來的19修改成了10。同樣,2#交換機的端口Fa0/24的開銷也修改成了10。
HIMatrix控制器F30與兩臺交換機的網絡連接及數據傳輸路徑如圖5所示。
圖5中,路徑1為兩臺Cisco交換機端口Fa0/24間的鏈路,路徑2為HIMatrix控制器F30模塊集成交換機上的兩個以太網口分別接到兩臺Cisco交換機后形成的鏈路。經過對兩臺交換機端口Fa0/24開銷的修改后,路徑1的路徑開銷為10,路徑2的路徑總開銷≥19,即Swich2到Swich1的首選路徑為路徑1,而冗余路徑2將被STP阻塞,防止了環路的形成。這樣當接到Swich2上的PC0要與接到Swich1上的PC1進行通信時,數據包所走的路徑必定為路徑1,而非路徑2,除非路徑1中斷。局域網環路問題因此得到了有效解決。

圖5 站場局域網環路舉例Fig.5 Example of the LAN loop of the station
通過在兩臺Cisco交換機上運用生成樹實例,對交換機配置進行了修改,消除了網絡環路,避免了由環路引起的廣播風暴,同時保證了網絡的冗余性,從而提高了SCADA系統局域網內設備間相互通信的穩定性和可靠性。將該技術推廣到西氣東輸一線SCADA系統局域網更為復雜的站場,采用類似的方法同樣取得了很好的效果。
[1] HIMatrix Paul Hildebrandt GmbH+Co KG.HIMatrix safety-related controller system manual compact systems[DB/OL].[2011-08-05].[2011-08-12].http://www.hima.com/Products/HIMatrix/Documentation__HIMatrix_default.php.
[2] HIMatrix Paul Hildebrandt GmbH+Co KG.HIMatrix safety-related controller F30 manual[DB/OL].[2010-06-23].[2011-08-12].http://www.hima.com/Products/HIMatrix/Documentation HIMatrix_default.php.
[3]王寶智,馬潮技.局域網設計與組網實用教程[M].2版.北京:清華大學出版社,2010:165-166.
[4] HIMatrix Paul Hildebrandt GmbH+Co KG.HIMatrix safety-related controller F3 DIO 20/8 02 manual[DB/OL].[2010-06-23].[2011-08-12].http://www.hima.com/Products/HIMatrix/Documentation__HIMatrix_default.php.
[5] HIMatrix Paul Hildebrandt GmbH + Co KG.HIMatrix safetyrelated controller F2 DO 8 01 manual[DB/OL].[2010-06-23][2011-08-12].http://www.hima.com/Products/HIMatrix/Documentation__HIMatrix_default.php.
[6] HIMatrix Paul Hildebrandt GmbH +Co KG.PC-based systems ELOP II factory first steps[DB/OL].[2011-08-12].http://www.hima.com/Products/ELOP_II_Factory/Documentation_ELOP_II_Factory_default.php.
[7]Lewis W.中國思科網絡技術學院校.思科網絡技術學院教程CCNA Exploration:LAN交換和無線[M].思科系統公司,譯.北京:人民郵電出版社,2009:96-107,152-191.
[8]Jacobson D.網絡安全基礎——網絡攻防、協議與安全[M].仰禮友,趙紅宇,譯.北京:電子工業出版社,2011:58-67.
[9]Lewis W.思科網絡技術學院教程CCNA 3交換基礎與中級路由[M].北京工業大學,北京郵電大學,思科網絡技術學院,譯.北京:人民郵電出版社,2008:164-168.
[10]田家興,王海峰,趙廉斌,等.HS與Viewstar兩種HMI系統在西氣東輸的應用[J].自動化與儀器儀表,2011(4):107-109.
Application of the Spanning-tree Instance in the SCADA System of West-East Natural Gas Line I
Through analyzing the structure and redundancy features of LAN of the SCADA in the station site of West-East Natural Gas Line I,the forming reasons of the system network loop and solutions are found.On the Cisco switches in LAN,by adopting the spanning-tree instance,the configuration of switches is modified;thus the switches can block the network loop automatically while the structure and redundancy of the network are unchanged.The result indicates that after applying the spanning-tree instance,the problem of network loop is solved effectively,the communication quality and performance of devices are enhanced,and the stability and reliability of LAN of the SCADA are improved.
Supervisory control and data acquisition(SCADA)system Local area network(LAN)Network loop Switch Spanning tree
TN915+.2
A
修改稿收到日期:2011-10-24。
彭太翀(1986-),男,2008年畢業于北京理工大學自動控制系,獲學士學位,助理工程師;主要從事天然氣長輸管道自動化系統運行維護和研究工作。