尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

风电场一区路由器转发集控配置实操与故障排查

风电场一区路由器转发集控配置实操与故障排查 风电场搞集控最难的不是风机本体不是SCADA画面而是那台夹在升压站和集控中心之间的路由器。上个月刚给一个风电场做了一区数据转发集控的整网整改从升压站交换机、风机环网到集控中心的防火墙、核心交换机最后把问题集中在路由器上——路由不通、转发丢包、ACL把104报文挡了、QoS没做远动通道隔三差五断。这篇就把这次整改里路由器转发集控的完整配置思路和实操命令写出来给做新能源场站网络、电力监控系统运维的朋友做个参考。1. 先搞清楚一区转发集控到底转的是什么1.1 安全分区里的一区不是随便叫的风电场站内的网络不是一张网搞定按电力监控系统的行业规范生产控制大区分成实时控制区一区和非控制生产区二区管理信息大区另算。一区里跑的是直接影响设备控制和电网调度的业务风机主控的数据采集、升压站测控装置、远动装置、AGC/AVC、保护信息管理这些数据要是断了或者被篡改后果不是看不了画面那么简单。集控中心的定位是把方圆几十上百公里的多个风电场数据汇聚到一起集中监视、集中控制。每个场站到集控之间通常就是靠一台路由器把一区的业务报文逐跳转发过去。路由器在这里的角色类似于一个分拣中心接口收到风机的Modbus TCP、升压站的104报文查路由表决定往哪个物理接口送再把报文从对应链路发出去。这个过程中路由表必须干净、下一跳必须准确、转发路径上的ACL必须只放行该放行的协议。实际运维中很多人把路由器当傻瓜交换机用网线插上能ping通就完事。结果一上业务就出问题104报文时通时断、集控下发指令丢包、某台风机的数据在路由器上被ACL静默丢掉。这些问题基本都出在转发这件事没做透。1.2 一区转发集控承载的业务流梳理清楚转发的业务类型是配置路由器的大前提。一区典型业务流如下远动104报文IEC 60870-5-104场站远动装置到集控调度主站TCP 2404端口实时性要求高链路断了要告警。Modbus TCP风机主控、箱变测控到SCADA服务器端口502采集周期通常几秒一次。OPC UA / 私有规约部分风机厂家用私有协议上送数据端口不固定需要提前确认。NTP对时场站和集控的时间同步UDP 123。运维管理流量SSH、SNMP端口22、161量小但不能被业务流量挤死。这里有个容易被忽略的方向问题转发不只是场站到集控的上行还有集控到场站的下行。下发AGC指令、远程重启风机PLC、调整保护定值这些下行报文走的是同一条反向路径。做ACL的时候只放行上行、把下行挡了就出大事。1.3 集控组网的常见拓扑形态一区路由器的位置取决于组网形态。常见三种星型直连每个风电场一台路由器通过运营商专线或光纤直连集控中心路由器。优点是故障隔离一个场站断链不影响其他场站缺点是费用高。链型串联多个场站通过路由器串成一条链数据逐站转发到集控。省链路但可靠性差中间断一处后面全断一般配合环网保护使用。环网组网场站路由器组成环通过STP/RRPP或路由协议实现冗余。可靠性高但配置复杂度也高。实际运维中风电场多以星型为主集控中心侧用一台高性能路由器或三层交换机做汇聚。场站侧路由器选型不必高但功能不能省静态路由、ACL、QoS这三种必须支持这是后面所有配置的基础。2. 路由器的角色定位与IP规划2.1 从AR201到中端路由器怎么选华为AR201这种入门级路由器在小型风电场很常见它的定位是分支接入比如单场站的远动、视频、管理网接入。AR201转发性能不高但处理几十条静态路由、几十条ACL规则、简单QoS完全够用关键是稳定、功耗低、支持宽温环境。如果是集控中心的核心汇聚一台AR201扛不住建议用AR2220或更高端的AR3260E系列也可以因为集控侧要终结多条场站链路路由表规模、ACL规则数、QoS队列数都会成倍增加。选择路由器时重点看三个指标整机转发性能包转发率、路由表容量、ACL/QoS规则数。很多人只盯着千兆口看以为接口是千兆就够用实际上路由器是转发设备接口快不等于转发快小包转发能力不足一样会丢包。104报文都是小包如果路由器包转发率低在风暴或多场站并发时就会出现延迟和丢包。2.2 IP地址与VLAN规划给每一类设备留好挡位把IP规划好转发配置就成功了一半。我做场站整改时第一步就是把原来混乱的网段全部重拍。一区通常用独立网段不同业务用不同子网便于ACL按网段放行。场站一区典型规划风机环网192.168.10.0/24 到 192.168.20.0/24箱变、风机主控升压站测控192.168.30.0/24远动装置192.168.40.0/24路由器上行到集控10.255.1.0/30点对点链路只需2个地址集控中心侧10.200.0.0/16这里有个原则场站侧用私有地址上行链路用独立的30位掩码网段集控侧单独规划。点对点链路用30位掩码能少浪费地址也好做路由汇总写静态路由时下一跳非常明确。设备IP建议留一个专门的管理地址段比如192.168.99.0/24给路由器本身、交换机管理VLAN用。不要拿业务网段的地址当设备管理地址否则ACL做限制时不好写规则排查问题也不好定位。2.3 链路类型光纤、MSTP还是无线专网路由器上行链路决定了MTU、封装和路由下一跳。目前风电场常见三种光纤直连场站和集控距离不远时用单模光纤直连。二层通透MTU按1500处理最省事。MSTP/SDH专线运营商提供的点对点以太网专线中间走SDH承载。注意MTU通常要改小部分专线封装后有额外开销1500的帧会卡在中间网络。无线专网部分偏远场站LTE/无线专网时延和抖动大需要在路由器上做TCP优化不建议承载远动实时控制流量一般只在紧急情况下使用。无论哪种链路路由器上都要确认接口的物理状态和协议状态都是UP再往下配IP。MSTP链路经常出现物理UP、协议UP但丢包率高的隐蔽问题本质是中间链路MTU或缓冲区问题这个后面排障部分再展开。3. 转发集控的核心配置实操3.1 开局console密码忘了怎么处理很多到场站干活的人第一关就卡在路由器console密码上。如果是老设备前任运维走时没交接console密码设备上不了手。华为AR系列的常规恢复思路是设备断电重启在启动阶段按CtrlB进入BootROM菜单选择Clear console password或恢复出厂配置确认后重启。需要提醒两点第一这会清掉设备上的所有配置操作前必须确认没有更好的办法最好有离线备份第二这个操作需要物理接触设备如果设备在远端场站就得先安排人到现场。恢复出厂后先别急着拔console线依次完成基础配置、导入备份配置或重新配置再让设备上线。不要一上来就恢复出厂先试试从BootROM里只清除console密码的老菜单版本。配置完基础信息后记得设好enable密码和console口密码不然下次又得跑一次现场。3.2 接口、VLAN和静态路由转发的骨骼路由器上电后第一步是给接口配IP。一台AR201接升压站核心交换机一台接集控链路以华为VRP平台为例system-view sysname WindFarm-I-Router interface GigabitEthernet0/0/0 description To_PLC_Switch ip address 192.168.30.1 255.255.255.0 quit interface GigabitEthernet0/0/1 description To_JK_Center_MSTP ip address 10.255.1.1 255.255.255.252 quit如果是通过VLAN子接口和上层交换机对接需要创建VLANIFvlan batch 100 200 interface Vlanif100 description To_Fengji_Ring ip address 192.168.10.1 255.255.255.0 quit interface GigabitEthernet0/0/0.1 dot1q termination vid 100 arp broadcast enable quit接着配路由。一区业务网段都在场站内路由器只需要知道两件事怎么去集控中心网段、怎么把集控来的数据送回场站设备。用静态路由最合适一个场站的网络拓扑简单没必要跑OSPF跑动态路由反而把故障域扩大。ip route-static 10.200.0.0 255.255.0.0 10.255.1.2 ip route-static 0.0.0.0 0.0.0.0 10.255.1.2注意默认路由和到集控中心的明细路由可以同时存在明细路由优先。如果场站还要访问其他外部网络默认路由兜底。这里有个常见错误下一跳写错。点对点链路两端下一跳一定是对端路由器接口地址不能写集控中心核心交换机的地址除非中间还有一层网关。写错了ping不通查路由表会发现报文一直送到一个沉默的接口。3.3 转发路径验证路由表、ARP和tracert配置完必须验证转发路径不能只看接口状态。先看路由表有没有缺项display ip routing-table重点看目的10.200.0.0/16的路由是否ActiveProtocol是不是StaticNextHop是不是10.255.1.2。如果NextHop显示的是本机接口地址说明这是直连路由跟预期不符得回头查接口IP。再看ARP表点对点链路对端必须能解析出MACdisplay arp如果对端IP显示Incomplete说明ARP请求没回应链路二层有问题或者对端接口没配IP。然后逐段tracerttracert 10.200.1.100从场站路由器出发看第一跳和第二跳。第一跳是对端路由器第二跳是集控侧交换或防火墙。如果第一跳就返回超时问题在专线链路如果第二跳超时问题在集控侧。最后做一次大报文ping测试用length参数发1500字节的包ping -a 192.168.30.1 -c 100 -s 1472 10.200.1.100如果小包通、大包不通或丢包率陡增基本可以判定MTU问题后面有专节讲。3.4 ACL策略一区只放行该放行的一区路由器不能做成透明转发必须用ACL做访问控制。核心原则只放行业务需要的协议和端口其余全部拒绝。同时注意不要在生产控制大区里放行跨区的危险访问集控和场站之间也建议只开业务端口。以华为AR为例在路由器上配置ACL应用在面向集控的接口acl number 3001 rule 5 permit tcp source 192.168.0.0 0.0.255.255 destination 10.200.0.0 0.0.255.255 destination-port eq 2404 rule 10 permit tcp source 192.168.0.0 0.0.255.255 destination 10.200.0.0 0.0.255.255 destination-port eq 502 rule 15 permit udp source 192.168.0.0 0.0.255.255 destination 10.200.0.0 0.0.255.255 destination-port eq 123 rule 20 permit tcp source 192.168.0.0 0.0.255.255 destination 10.200.0.0 0.0.255.255 destination-port eq 22 rule 25 permit icmp source 192.168.0.0 0.0.255.255 destination 10.200.0.0 0.0.255.255 rule 30 deny ip然后应用在接口interface GigabitEthernet0/0/1 traffic-filter inbound acl 3001 traffic-filter outbound acl 3001 quit这里有人会问outbound也要做对双向都做防止集控侧被攻破后反向进到场站。inbound方向是从场站到集控outbound方向是从集控到场站两个方向规则可以一样但要注意端口匹配方向源和目的要按实际报文方向写对。写ACL有两点容易踩坑。第一是规则顺序ACL按rule编号从小到大匹配先放的宽松规则可能让后面的deny失效比如先放行全部TCP再拒绝某个端口结果拒绝永远不会生效。第二是隐式拒绝华为ACL末尾有一条默认deny all规则里最后写rule 30 deny ip只是明确表达意图不写也一样拒绝但容易让人误以为没拒绝所以还是建议写出来排障时一眼能看清策略意图。3.5 集中转发还是本地转发这个说法借用了无线网络里AC/AP的架构概念但在风电集控场景同样适用。集中转发模式所有风机数据不管本地是否需要全部打包上送集控中心。本地转发模式数据在风电场站侧先做聚合、缓存只把必要的实时数据转发给集控。风电场一区的业务决定了两者必须结合。远动104、AGC/AVC指令必须集中转发实时性高中间不能有缓存延迟风机历史数据、波形文件这类非实时数据可以在场站侧本地保存定期或按需上送避免占用有限的专线带宽。在路由器上体现为实时业务网段直接走静态路由转发到集控非实时业务可以通过策略路由或QoS优先级调整闲时再传。有人把历史数据也做成实时转发结果遇到大风天气数据量大时小带宽链路被塞满104报文在队列里排队远动通道直接超时这个反而是最常见的集控故障原因。3.6 NAT与端口映射能用路由就别做NAT风电场一区网络建议优先使用纯路由模式保持IP地址端到端可见排查问题时能直接定位到具体设备。但在部分场景下无法避免NAT集控侧和场站侧规划了冲突网段或链路中间设备的ARP隔离要求必须转换。这时可以在路由器上用NAT转换interface GigabitEthernet0/0/1 ip address 10.255.1.1 255.255.255.252 nat outbound 2000 quit acl number 2000 rule 5 permit source 192.168.0.0 0.0.255.255NAT出接口一般放在上行接口ACL匹配需要转换的内部网段。这里提醒一点做NAT后集控中心看到的源地址都是路由器出口地址一旦要精确定位到具体哪台风机上报的异常数据就麻烦了。能不NAT就不NAT非要NAT时在集控侧留好地址映射表。端口映射一般用于远程运维比如从集控访问场站路由器的SSH管理端口。不建议把场站内部SCADA的端口映射到外部网络等于把生产控制大区暴露出去风险极高。4. 冗余、时延与QoS转发集控的可靠性设计4.1 双链路与浮动静态路由单链路集控的风险不用多说链路断一次远动中断考核就来一次。有条件的话一定要做双链路一条主一条备。路由器上实现最简单的就是浮动静态路由备路由优先级调低主路由失效时自动切到备路由ip route-static 10.200.0.0 255.255.0.0 10.255.1.2 preference 60 ip route-static 10.200.0.0 255.255.0.0 10.255.3.2 preference 80默认静态路由优先级是60备路由设80平时只有preference 60那条生效。主链路接口down掉后设备自动把备用路由注入路由表。注意这个机制依赖接口状态——如果主链路的物理层一直是UP、但中间专线已经断了路由器无法感知就会继续往主链路送包。解决方法是配置链路探测NQA联动静态路由nqa test-instance admin track_mstp test-type icmp destination-address ipv4 10.255.1.2 frequency 5 quit nqa schedule test-instance admin track_mstp start-time now lifetime forever然后再和静态路由联动用NQA去探测对端探测失败就切换。4.2 VRRP网关冗余集控中心侧的核心网关如果只有一台设备也是单点。用两台路由器或三层交换机做VRRP虚拟IP做网关。配置示意interface Vlanif100 description GW_For_JK_Net ip address 10.200.1.253 255.255.255.0 vrrp vrid 1 virtual-ip 10.200.1.254 vrrp vrid 1 priority 120 preempt-mode timer delay 20 quit另一台上配相同VRID、相同虚拟IP优先级默认100。主设备故障后备用设备在几秒内接管网关场站侧的静态路由下一跳还指向虚拟IP不用改动。VRRP的Priority不能两端相同否则来回切换造成网络震荡。4.3 QoS给104远动报文让路集控链路上流量复杂平时看起来带宽够用一旦风机数据大并发或者有人在跑备份实时控制报文就会被挤到队列后面。QoS要做的是把104、AGC/AVC这些实时性敏感报文放到高优先级队列里。华为AR的基本配置逻辑先定义ACL匹配报文再绑定分类器再把分类器映射到队列acl number 3002 rule 5 permit tcp destination-port eq 2404 rule 10 permit tcp destination-port eq 2404 source 10.200.0.0 0.0.0.255 quit traffic classifier c_YunDong if-match acl 3002 quit traffic behavior b_YunDong queue ef bandwidth 30 quit traffic policy p_JK classifier c_YunDong behavior b_YunDong precedence 5 quit interface GigabitEthernet0/0/1 traffic-policy p_JK inbound traffic-policy p_JK outbound quit这里要注意queue ef是低延迟队列带宽30表示保证30Mbps具体数值根据链路带宽调整。如果链路只有10M那EF带宽要给到3-5M如果是100M专线给30M合理。EF队列不能太大否则其他业务全走BE队列拥塞时反而把非实时业务全堵死。4.4 MTU与分片问题前面提到过MSTP链路MTU问题。实际遇到过链路两端MTU 1500但运营商中间网元MTU限制在1476导致场站上行的大报文被静默丢弃或分片丢失。现象就是小包ping通发1500字节的包就断。排查方式用大包ping逐步降MTU找到能通过的最大值然后在路由器接口上设置相应MTUinterface GigabitEthernet0/0/1 mtu 1400 quit注意改MTU可能导致所有经过该接口的报文都需要分片对实时控制业务有负面影响。更好的方式是让上层业务感知较小MTU比如104和Modbus的TCP会话会自动协商MSS但前提是TCP握手报文能正常通过。如果中间链路限制MTU建议在路由器上同时配置TCP MSS调整interface GigabitEthernet0/0/1 tcp adjust-mss 1200 quit这个命令会把经过接口的TCP SYN报文里的MSS值改小避免后续大包超过链路能力。5. 模拟验证与现场排障实录5.1 用eNSP和GNS3先搭一套试验环境改生产网络前强烈建议先在模拟器里把配置跑一遍。eNSP模拟华为AR设备比较方便适合验证静态路由、ACL、VRRP这些基础功能。GNS3可以跑更真实的路由器镜像也能接了主机做报文分析。我在GNS3里搭过一套跟现场完全对照的拓扑两台路由器分别接一台主机模拟场站设备和集控设备中间跑一条点对点链路。先给主机配好IP然后在路由器A上写默认路由指向路由器B在路由器B上写回程路由指向路由器A。两台主机互ping前在路由器接口上开抓包能看到完整的ARP交互和IP报文转发过程主机A先发ARP请求目标IP是路由器A的网关地址请求MAC。路由器A回复ARP应答。主机A把ICMP报文封装成帧目的MAC是路由器A接口MAC。路由器A查路由表发现目标网段下一跳是路由器B接口于是把报文重写为出接口的源MAC和下一跳的目的MAC再发到链路上。路由器B收到后查路由表朝主机B接口转发。这个过程最能解释转发的本质——路由器不改IP地址只改写MAC地址和重新封装帧。很多人搞不懂为什么ping通后看抓包会有两个源MAC拆开一个帧看就明白了。5.2 常见故障排查速查表把现场高频故障整理成一张表遇到问题直接对照故障现象排查方向典型原因某网段ping不通集控查路由表、ACL静态路由没写全或ACL把ICMP挡了小包通大包不通查MTU链路限制MSTP中间网元MTU限制TCP MSS不适配104通道时通时断查QoS队列占用率非实时业务挤占带宽104在BE队列排队集控能ping通但无法下发指令查下行ACLoutbound方向没有放行对应端口或源地址ARP表显示Incomplete查对端接口和二层链路对端接口地址配置错误或线路故障双链路切不过去查NQA探测状态只做了浮动路由没有链路探测联动主链路沉默排查时最忌讳逐台设备上去试先理清路径场站PC→场站交换机→场站路由器→中间链路→集控路由器→集控核心→服务器。每一段都做ping和端口连通性测试逐步缩小范围。5.3 一次真实的远动通道中断排障这次整改遇到一个典型问题集控报某场站104通道中断场站侧看远动装置到路由器是通的路由器上ping集控调度服务器也通但调度主站就是报中断。排查过程先在场站路由器上看会话表发现TCP 2404的SYN报文一直在重传没有ACK回应。再查ACLinbound方向只放行了源192.168.40.0/24的2404端口但远动装置实际源地址是192.168.41.32属于另一个网段——ACL把合法业务当成非法流量给静默丢弃了。这是典型的配ACL时用了想当然的网段没核对真实设备地址。改了ACL放行源网段后通道恢复。后来我把所有ACL规则的源和目的都整理成一张表逐个核对真实设备再上模拟器验证一遍才落到生产。这个习惯帮我避免了好几次同类事故。6. 运维经验配置之外的一些建议6.1 把配置变成可审计的文档路由器配置不是敲完就完事。我一定会在用收到的方案之外补一份文档内容包括当前生效的路由表完整截图和文字版所有ACL规则对应的业务说明接口IP、VLAN、MTU参数表双链路切换测试记录备品备件的版本和license信息这份文档最大的价值不在平时而在故障时和一个老运维交接时。很多路由器问题最后不是技术多复杂而是没人知道当初为什么这么配。6.2 升级和备份的节奏生产路由器的软件版本不建议频繁升级稳定压倒一切。挑选版本时看release notes里的已知问题和修复项特别是跟OSPF、VRRP、ACL相关的修改。升级时间一定选在风力小、调度无操作的时间窗口提前做配置备份用display current-configuration和save两条命令备份到本地有条件再导出一份到离线FTP。6.3 别忽视物理层和审计日志再好的路由配置也怕光纤被挖断。场站侧路由器最好配置SNMP网管把接口状态、CPU、内存、温度纳入监控链路状态变化能在网管侧第一时间产生告警。Syslog日志建议开启记录ACL的deny次数和登录记录既能发现非法访问也能排查规则冲突。我个人在实际操作中的体会是风电场一区路由器转发集控这件事难度不在命令而在对业务流的理解和整体网络观。把每一类报文走哪条路径、经过哪些设备、需要哪些端口全部梳理清楚再去写配置基本一遍就能调通。反过来不懂业务、上来就配IP写路由的人往往要在现场反复试错还可能因为ACL或者MTU问题把远动通道弄断。另外每次改完配置一定记得save不然设备一重启所有改动全丢这是运维里最简单的教训也是我最想提醒新手的一点。
返回列表