彭太翀 梁建青 王海峰 王多才 田家兴 赵廉斌
(中国石油西气东输管道公司压缩机处,湖北 武汉 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年毕业于北京理工大学自动控制系,获学士学位,助理工程师;主要从事天然气长输管道自动化系统运行维护和研究工作。