主页 > 自动化 > IT 网络工程师如何规划自动化网络?

IT 网络工程师如何规划自动化网络?

栏目: 作者: 时间:

一、IT 网络工程师如何规划自动化网络?

背景介绍

本文通过一次产线实际排查事例:如何自动获取路由器session从而解决路由器异常流量问题

路由器排查思路

  1. 通过流量监控软件查看路由器带宽高峰使用量
  2. CLI到路由器线上查看nat sessions
  3. 分析找出可疑流量的source ip 信息
  4. 采取相应的措施引流解决异常流量器

传统网络排查缺点

  • 需要蹲守路由器带宽高峰使用区间,并及时上线查看sessions
  • session 信息众多,每次要用terminal emulator先录写下来,在打开录制文件查看
  • 人为统计source ip耗时耗力,即便使用搜索功能丰富的text editor,也要费一般功夫
  • 以上几点在排查中要重复劳动,在劳动过程中没有"价值"体现

以下是排查过程中的CLI回显,产线信息已经过脱敏处理

 [router]dis nat session all
   NAT Session Table Information:
      Protocol          : TCP(6)
      SrcAddr  Port Vpn : 1.1.81.228    36526                                
      DestAddr Port Vpn : 122.239.172.211 57114                                
      NAT-Info
        New SrcAddr     : 2.2.2.110  
        New SrcPort     : 34197
        New DestAddr    : ----
        New DestPort    : ----
      Protocol          : TCP(6)
      SrcAddr  Port Vpn : 1.1.81.228    45290                                
      DestAddr Port Vpn : 46.82.174.69    443                                  
      NAT-Info
        New SrcAddr     : 2.2.2.110  
        New SrcPort     : 30275
        New DestAddr    : ----
        New DestPort    : ----
      Protocol          : TCP(6)
      SrcAddr  Port Vpn : 1.1.81.228    51244                                
      DestAddr Port Vpn : 120.38.216.46   57114      

Diagnose模式下的输出,更容易统计source ip信息

   [router]display session protocol tcp
   Session Table Information:
      Protocol          : TCP(6)
      SrcAddr  Port Vpn : 1.1.81.228    36526                                
      DestAddr Port Vpn : 122.239.172.211 57114                                
      Protocol          : TCP(6)
      SrcAddr  Port Vpn : 1.1.81.228    51244                                
      DestAddr Port Vpn : 120.38.216.46   57114                                
      Protocol          : TCP(6)
      SrcAddr  Port Vpn : 1.1.81.228    37606                                
      DestAddr Port Vpn : 171.104.244.178 57114                                
      Protocol          : TCP(6)
      SrcAddr  Port Vpn : 1.1.81.228    48428                                
      DestAddr Port Vpn : 115.209.122.197 57114                                
      Protocol          : TCP(6)
      SrcAddr  Port Vpn : 1.1.81.228    46260                                
      DestAddr Port Vpn : 183.146.67.184  57114                                
      Protocol          : TCP(6)

Python paramiko 与 pandas 模块来解放排查的双手

以上传统网络排查可以通过python实现自动化。由于初学python且排查时间紧迫,我把程序分成两块:

  1. 使用paramiko远程登录路由器,将session信息保存至本地
  2. 使用pandas引入session文件,读取与整理session信息

拉取路由器session信息并保存到本地的脚本

 # -*- coding: utf-8 -*-
 import paramiko
 import time
 
 ip_address = "1.1.1.1"
 port = 12345
 username = "paramiko"
 password = "paramiko"
 nat_session = []
 
 
 ssh_client = paramiko.SSHClient()
 ssh_client.load_system_host_keys()
 ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 ssh_client.connect(
     hostname=ip_address,
     port,
     username=username,
     password=password
 )
 
 print("Connected to the network Device", ip_address)
 
 remote_connection = ssh_client.invoke_shell()
 
 remote_connection.send("screen-length 0 temporary" + "\n")
 remote_connection.send("system-view" + "\n")
 remote_connection.send("diagnose" + "\n")
 remote_connection.send("display session protocol tcp" + "\n")
 
 time.sleep(30)
 remote_connection.send("quit\n")
 output = remote_connection.recv(65535).decode("ASCII")
 
 
 print(output)
 f1 = open(f"D:/Router_Session_statistics/router_session.txt", "w")
 f1.write(output)
 f1.close()
 
 remote_connection.send("quit\n")
 remote_connection.send("quit\n")
 remote_connection.close()
 ssh_client.close()

阅读保存在本地的session信息

 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
 import sys
 import os
 import time
 import re
 import pandas as pd
 
 file = open(
     '.vscode/Python_Praticle/001_Project_Paramiko/005_Router_Session_statistics/router_session_1.txt', 'r')
 
 srcadd_tuple = []
 with open(f"D:/Router_Session_statistics/router_session.txt", 'r', encoding='utf-8') as f:
  for line in f.readlines():
      text=line.strip()
      if 'SrcAddr' in text:
          Srcadds = text.split(":")[1]
          srcadd = Srcadds.split("  ")[0]
          srcadd_tuple.append(srcadd)
 dataframe=pd.DataFrame(srcadd_tuple,columns=list("A"))
 dataframe['counter'] = range(len(dataframe))
 #print(new_dataframe)
 groupby=dataframe.groupby("A")
 print(groupby.count().sort_values(by = 'counter',ascending=False))

运行结果如下:

                 counter
 A
  185.69.47.112     1589246
  1.1.81.224        84
  1.1.81.250        73
  1.3.31.207        13
  1.1.81.228        12
  1.3.63.30         10
  1.3.48.117        10
  1.3.4.193         10
  1.3.177.8         10
  1.3.208.255       10
  1.3.83.161         9
  1.3.32.153         9
  1.3.116.211        8
  1.3.241.136        7
  1.3.30.225         7
  1.3.99.163         7
  1.3.187.119        6
  1.3.72.217         5
  1.3.203.4          5
  1.3.32.217         5
  1.1.81.225         4
  1.3.72.244         4
  1.3.81.2           3
  1.1.81.219         2
  1.3.207.200        2
  1.3.79.119         2
  1.3.47.233         2
  1.3.157.144        2
  1.3.22.127         2
  1.3.61.213         2
  1.3.156.250        2
  1.3.64.49          2
  1.3.213.111        1
  1.3.57.114         1
  1.3.174.213        1
  1.3.21.122         1
  1.3.238.200        1
  1.3.49.37          1

通过统计,我们很快就能快速定位到产生异常流量的源IP信息,并及时采取相应的防护措施。上面两个程序可以在服务器上设置未定时任务自动运行。

网络自动化近年来成为网络工程师的发展趋势,感谢 @朱嘉盛 朱哥在知乎的开源写作,为我们树立了开源互助的榜样,并鼓励我们多做分享实践,才有了我的第一篇知乎文章。

详情可参考

朱嘉盛:【网工手艺】专栏入口(总目录 | 我全开源写作 | 你别买盗版书)

二、去韩国留学,想学网络自动化,哪一所好点的大学有这个专业,忠北大学,忠南大学,全南大学有吗,需要什么入学条件 (几级韩语,要高考成绩吗)?

韩国主要大学有:国立汉城大学、延世大学、高丽大学、国立忠南大学、国立安东大学、国立釜京大学、国立釜山大学、国立群山大学、国立庆北大学、国立全南大学、国立忠北大学、国立昌原大学、西江大学、檀国大学、东国大学、建国大学、庆熙大学、成功会大学、韩国外国语大学、成均馆大学、釜山外国语大学、梨花女大、汉城女大等。一般韩国人公认的最好的三所大学是首尔国立大学、高丽大学、延世大学。中国学生要想读这三所大学,需要韩国语三级以上和专业考试。一般被录取的成功率不是很高。语言学院的学费是比较昂贵的,而且持有语言签证的学生如果在韩国得不到延期,只能回国重新申请。庆熙大学有一个非常着名的专业:观光与酒店经营专业。目前该大学的语言学院面向中国学生招生,但要入读大学专业,则需要韩国语三级以上和综合考试。庆熙大学语言学院学费较高,加之食宿,一年总费用大约6万元左右。

三、网络工程与自动化哪个好?

是两个不同的学科领域,它们各自有不同的特点和发展方向。以下是对两个学科的简要介绍,但是选择哪个更好取决于您的兴趣、职业目标以及个人能力和倾向。

网络工程:网络工程主要关注计算机网络的设计、实施、管理和维护。它涵盖了网络基础设施、网络协议、网络安全、网络优化等方面的知识。网络工程师通常负责设计和维护企业或组织的计算机网络,确保网络的正常运行和安全性。随着互联网和信息技术的快速发展,网络工程领域的需求也在不断增长。

自动化:自动化学科涉及自动控制系统的设计、开发和应用。它结合了工程学、计算机科学和控制理论,旨在实现自动化生产、制造和运行。自动化工程师通常负责设计和优化自动化系统,如工业控制系统、机器人技术和智能制造等。随着工业自动化程度的提高,自动化领域的需求也在不断增加。

无论是网络工程还是自动化,都是具有发展前景和就业机会的领域。选择哪个更好要考虑您的兴趣和个人特长,以及对职业发展的追求。建议您深入了解两个学科的课程内容、职业前景和相关领域的发展趋势,与学长、学姐、教师或从业人员交流,以便做出符合自己兴趣和目标的选择。

四、网络工程和自动化哪个好?

网络工程和自动化都是当前就业市场上非常热门的专业领域,它们各有不同的优势和就业前景。以下是对这两个专业的简要比较:

1. 就业前景:

   - 网络工程:随着互联网的普及和信息化的快速发展,网络工程专业的就业前景广阔。毕业生可在互联网公司、电信运营商、IT服务公司等行业就业,从事网络运维、网络安全、网络架构设计等工作。

   - 自动化:自动化专业涉及到工业自动化、智能制造等领域,具有广泛的应用。毕业生可在制造业、能源领域、自动化设备制造企业等行业就业,从事自动化控制系统设计、工艺优化、智能装备开发等工作。

2. 技术发展:

   - 网络工程:网络技术一直在迅猛发展,无线通信、云计算、物联网等新技术不断涌现,为网络工程师提供了更多的发展机会和挑战。

   - 自动化:自动化技术也在不断进步,智能制造、人工智能、机器学习等新技术的应用,为自动化专业提供了更多的发展空间。

3. 个人兴趣与能力:

   - 网络工程:如果你对计算机网络及其应用有浓厚的兴趣,并且具备良好的计算机基础和编程能力,那么网络工程可能更适合你。

   - 自动化:如果你对自动化控制技术和工业生产过程有浓厚的兴趣,并且对电路、控制系统等方面有一定的理解和能力,那么自动化专业可能更适合你。

综上所述,选择网络工程还是自动化取决于你的个人兴趣、能力和职业发展规划。你可以进一步了解这两个专业的课程设置、就业前景和发展方向,以做出更加明智的选择。

五、自动化网络运维需要学什么?

自动化网络运维需要学习网络基础知识、操作系统、脚本编程、网络设备配置、网络安全和故障处理等方面的知识。此外,还需要了解自动化工具和框架,如Ansible、Puppet、Python等,以及网络管理和监控工具,如Nagios、Prometheus等。

六、网络空间安全和自动化哪个好?

自动化相对好些。

自动化是中国普通高等学校本科专业,主要学习电子技术、计算机技术、网络技术、软件技术、控制技术等知识,是一个多学科交叉的专业。

自动化不仅涉及国防军工、航空航天、机械、化工、电子等诸多领域等传统领域,随着自动化技术的不断普及和发展,机器人、人工智能、互联网、医疗、经济、环保、城市规划等都是自动化专业的研究范畴。

七、自动化和网络工程哪个专业好?

个人感觉网络工程不错

以杭州为例本科毕业到工作2年内,机械设计与自动化薪资大概4-6k每月不等,工作环境大多是工厂,要么是加工车间总体比较艰苦大部分在市郊好在消费低。网络工程的话起步薪资差不多,上限要高一点。工作环境是写字楼办公室,每月的隐形消费高。

进一步说3-5年工作经验机械能到10-15k每月,但一个成熟的网络工程做做后端数据对接15-20k每月,你要是厉害一点python 嵌入式Linux,plc都懂能到25k每月。个人意见就打工而言做机械年收入35万是个坎不转职项目经理即使是技术总监也少能超过这个数(请极其出色的机械工程师不要杠你们没有上限)大多数在20-30万之间。做网络工程这个上限要再高一点40万左右吧

八、智能制造中,如何统一的规划整个工厂的网络,包括自动化网络?

导读:老鬼在之前关于物联网的文章中提到,要实现智能制造的首要前提是保证“物”的互联互通,确保数据的上传下达。由于工业环境的特性(实时性、可靠性、现场作业性等等),各种物理上的设备、传感器等其实不可能直接连接到物联网平台的,需要通过一些信息化的系统、工业场景下的通信来进行数据的转发。这样带来的问题,要实现工业现场的物的连接,就必须有一个工业网络来连接这些设备、系统、应用。因而规划一个适合工业环境交互的网络环境就显得非常重要了!

原创版权声明:本文为自媒体-老鬼非鬼的原创文章,转载需得到老鬼非鬼许可后方可转载并附上原文出处链接及本声明。这是老鬼非鬼写的第142篇文章


认识工业通信的特殊性

在工业系统、设备中,应用,往往会根据它们的主要功能、信息的处理、通信方式等,逐渐的形成了类似金字塔式的工业架构:管理层、操作层、控制层、现场层。

这样在各个应用、系统、设备中进行连接进行数据交互的时候,就出现了针对网络通信中关键属性(数据量、响应时间、传送频率)的不同要求:

比如在操作层(一般工业现场中常见的HMI、报警、显示)数据量达到KB两集,响应时间在1s级别,传送速率在秒级或者分钟级别。相反的在现场层(比如使用的一些传感器、执行器)数据量只有位级别(比如一个开关信号,一个报警信号等等),响应时间为ms级别,传输速率也需要在ms级别以保证现场的事实通信的问题。

像工业现场尤其是在运动控制相关的领域中的通信(比如伺服、机器人、机床等)对于实时通信,等时通信的要求就更加严格(需要达到ns级别),比如像我们常用的工业以太网协议PROFINET(基于TCP/IP协议)都不得不进行改动,对物理链路层进行改动。虽然其还是工业以太网协议,但是已经不在是基于标准以太网TCP/IP的协议了。

另外,在工业现场一旦建设好了一个系统的数据交互方式后,一般可能5年到10年都不会发生改变,这种“传统型”导致其就像一个中年大叔一样,不会轻易做出改变,也不会立即使用很多最新的通信技术和手段。因为工业网络最大前提需要稳定、可靠,否则再好的通讯都是无用的!

对于消费者来说,工业制造往往处于整个供应链源头位置。消费者始终追求物美价廉的产品。作为源头为了获取更好的利润,就必须控制投入。这种时候在其工厂建设过程中工业网络就不得不在满足需求的情况下,需要进行各种形式的妥协。比如采用比工业以太网价格较低的总线网络、串口、开关量、模拟量等等形式来打真个工业网络的通信要求。

因而,由于工业现场控制的需求不同,对数据量、响应时间、传输速率、经济型的不同要求,工业现场的网络规划并不能像传统办公网络一样进行规划。

其将更加复杂和多变,都是网络,工业网络规划同办公网络规划却是迥然不同的

为什么需要做工业网络的规划?

相比较于早几年,那时候智能制造、物联网的概念还没有像现在被这么多人重视,以及各种学术研究、技术研发、实践面临的各种调整和挑战,目前智能制造越来越多的被接受。

智能制造下,需要实现尽可能多的系统、设备的联网集成。这样传统上自动化工程师可能只需要负责单程一个系统的集成,当这种集成逐步的有一个设备,变成了一个系统,一条产线,一个车间,一个工厂,一个集团的复杂网络的时候,网络的性能如何可靠、高效管理优化,就变得非常的棘手。

在工业环境中,目前很多国内的企业都在自动化、信息化方面大力的推进,以保证工业环境下各种各样的“物”的互联互通,以支持后续的接入工业物联网平台,实现数据的上云。

这种工厂内部的网络集成的需求越来越多,以及前述中提高了工业网络的特殊性,为了保证工厂的整体目标能够以更低的投入,更清晰的建设指导,长期的建设过程等等。

一个良好的工业环境规划将显得尤其重要!

工业网络规划的难点有哪些?

虽然工业以太网由于其价格低廉、稳定可靠、通信速率高、软硬件产品丰富、应用广泛以及支持技术成熟等优点,以及在通信中支持信息的强大性跟控制的快捷性,能够实现快速的串联跟控制,能够保证企业未来的网络发展以及大规模的IT网络和OT网络的融合发展。

但是目前目前很多企业仍会采用“中间方案”,继续使用一些现场总线、自定义通信协议等方式来满足当前预算下的网络建设目标。

因而工业网络要想实现网络的标准化、统一化等期望,还需要很长的路来走。

除了以上的当前环境下的限制以外,工业网络规划还有那些难点呢?

1.独立性

对于一个制造企业的工业网络,往往需要连接各种应用、系统、设备。而这些组件构成业务功能往往可以跨越企业层、监视层、控制层、设备层等全层级的业务需求。如何保证业务与业务之间独立可靠运行,以及各层级数据的交互实现就是非常重要的一点

同时,系统与系统之间,设备与设备之间,各种供应商之间如何进行独立工作,同时又能够实现同其他的系统、设备、应用之间的联通,以及对访问的管控,流量的控制,实时数据与非实时数据的优先级等等。

像目前工业中通过使用防火墙、安全隔离区、路由链路、VLAN、NAT、安全策略配置、系统性能优化等等技术和手段按照区域切割,按照系统切割,按照功能切割,按照用户切割通信的广播域,其实就是在保证工厂内部的“分”与“合”之间的需求。

2.安全性

正如在独立性中提到的,工业网络中为了保证各种独立性的需求,一定程度上也是在保护网络的安全性。

而在工业网络中安全性往往需要的考虑的是两个方案:性能的安全可靠性以及网络安全防护性。

前者性能的安全性,主要目的在于确保数据总是在让其流动的地方流动,在于在规定的时间要求下将数据能够正确的传递到正确的位置。

另外像工业中除了使用工业以太网以外,像总线的终端电阻的可靠稳定工作等等,都是在确保网络的性能和安全性。各种冗余链路,控制器,服务器等等的规划,环网的支持,网络的树形、星型、线性结构等等,都将影响这个网络的性能安全

而后者网络安全防护性,比如需要确保数据在链路上传输是安全的,下载PLC程序、关键工艺参数的时候不会被人网络攻击,ARP攻击,程序被人恶意修改,恶意植入病毒等等

3.集中分散性

由于地理位置的分散,控制位置的分散,网络的异构分散,造成在现场中根据工业的需求设备会安装在不同的位置,将这些分布在不同地理位置上的设备连网。

那么是采用数据直连,还是采用串口、总线、WIFI、Bluetooth、nb-iot、OPC、标准工业以太网、非标准工业以太网、RFID、NFC等等形式和协议的选择将显得非常重要

同时不同系统之间的、楼宇之间、厂房之间的骨干网络是独立,还是公用,是采用光纤、线缆、总线、无线等等需要从经济性、可扩展性、可靠性、可用性等等进行抉择。

4.网络规模

智能制造环境下,可能在当前业务中需要挖掘和使用的数据大多数是生产工艺相关的数据。

后期随着业务面对于数据的需求越来越多,原始的网络是否能够满足快速获取数据,并传输到相应的位置,比如工厂财务统计备件预算与实际到货、消耗情况,往往需要采购、申请部分、生产部门、设备管理部门反复交流获取相应的数据,才能完成工作。

而智能制造中工业网络需要满足业务面的这种信息化需要,就需要保证未来很长一段时间可能存在的数据需求变化,网络规模的扩大,节点接入的增多等等情况。

5.法规要求

像一些比较特殊的行业尤其一些特殊的法规要求,比如化学生产行业的安全管理,需要有独立的安全控制系统网络,防爆网络,像制药、食品、药械行业存在GMP相关性的范围认证的要求(可能带来运营管理的不同),像石油行业的露天、远距离传输、无人值守等等要求,都将影响到着整个工业网络的规划。

做一个好的工业网络规划

1.站在智能制造的角度,考虑当前的业务,包括生产管理、供应链管理、设备管理、工艺管理、质量管理、EHS管理、人事管理等等的业务需求,提前识别潜在业务开展模型以及所需要的数据信息。在早期阶段就实现对于工厂的整体网络规模、网络节点的了解

2.再确认了基本的网络规模以后,需要结合到工业网络的层级特点分层进行设计,比如全厂的纵深工业以太网,比如监视层使用工业以太网,设备层采用总线或者开关量直连等等分层设计

3.分区、分块,针对不同的业务,不同的系统,不同的使用者提供网络区域的换分,同时也是优化网络性能,确保使用安全

4.良好的网络结构,比如树形、冗余、环形、线性、有源总线终端电阻、尽量少的网关转化等等,都是非常重要的手段

5.由于存在局部的网络拥塞有可能导致整个网络性能的瓶颈,因此各子网通过顶级交换机转发的流量要尽可能均衡分布。同时网络和网络设备的性能监控维护也是非常重要一点。


老鬼非鬼-致力于关注智能制造、工业4.0转型升级的知识和经验的传播,致力于帮助那些期望进行数字化转型或从事数字化工作的人,提供一个专业、严谨、科学的新媒体平台!

九、现代自动化系统与网络通信技术的关系?

现代自动化系统是在网络通信技术发展的基础上丰富了自己。可以说通信技术完善了电气及其自动化技术控制系统的功能。同时自动化控制系统的技术特点在通讯技术领域有更大的发展空调。

自动化把网络通信互联互通信息共享的理念发展为分布式控制,数据交换,远动操作,遥控,遥调,遥信,遥测。自动化会不断的践行其它技术带来自身发展的机遇。

十、什么是通信技术和自动化系统网络结构?

通信技术,专业课程包括计算机网络基础、电路基础、通信系统原理、交换技术、无线技术、计算机通信网、通信电子线路、数字电子技术、光纤通信等。

自动化网络系统结构是分层实现的:现场设备与总线级、基础自动化级、过程控制级、制造执行级和资源规划级。