一、IT 网络工程师如何规划自动化网络?
背景介绍
本文通过一次产线实际排查事例:如何自动获取路由器session从而解决路由器异常流量问题
路由器排查思路
- 通过流量监控软件查看路由器带宽高峰使用量
- CLI到路由器线上查看nat sessions
- 分析找出可疑流量的source ip 信息
- 采取相应的措施引流解决异常流量器
传统网络排查缺点
- 需要蹲守路由器带宽高峰使用区间,并及时上线查看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且排查时间紧迫,我把程序分成两块:
- 使用paramiko远程登录路由器,将session信息保存至本地
- 使用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信息,并及时采取相应的防护措施。上面两个程序可以在服务器上设置未定时任务自动运行。
网络自动化近年来成为网络工程师的发展趋势,感谢 @朱嘉盛 朱哥在知乎的开源写作,为我们树立了开源互助的榜样,并鼓励我们多做分享实践,才有了我的第一篇知乎文章。
详情可参考
朱嘉盛:【网工手艺】专栏入口(总目录 | 我全开源写作 | 你别买盗版书)二、自动化工程师含金量?
含金量很高,自动化系统工程师含金量是没有判断的标准,是属于见仁见智的说法,很多学员往往要用到证书的时候才想到考,但考证是一个过程,需要时间,往往很多学员无证错过很多机遇,损失很大,所以,如果自身现阶段一直从事相关工作或以后也是长期一直从事该方面工作,还是有必要考,未雨绸缪。
三、自动化工程师待遇?
自动化工程师薪酬范围在8000-12000元的是最多,占比是34.3%,其次是5000-8000元,占比是29.3%,
随着信息自动化的发展,自动化工程师越来成为一个热门职业。自动化工程师主要负责了解客户需求,编写自动化控制项目方案书、负责PLC编程、组态软件编写、组织自动化工程施工,负责自动化控制项目技术指导要求,并遵循软件开发流程,进行独立的嵌入式软件模块的设计和实现,和其它部门配合共同完成产品的设计、开发和测试。
四、自动化工程师与电气自动化工程师有什么不同?
1、研究方向不同:自动化指的是自动控制,涉及的内容很多,研究方向主要是工业控制类。而电气自动化专业偏重的是强电方向,弱点也会涉及一些,但是没有自动化专业包含的范围广。
2、学习课程不同:自动化专业学习的课程主要涉及模拟电路基础、电磁场与电磁波技术、DCS与组态软件之类的内容,而电气自动化专业学习的内容除了电路原理、电子技术基础之外,还涉及计算机原理及应用、计算机软件技术基础的内容。
材料补充:
五、网络维护工程师?
主要工作:
1、负责管理项目工程设施设备的日常运行及维护保养,确保各系统设备正常运行;
2、负责管理项目设施设备的日常巡查,发现问题及时处理和上报;
3、负责管理项目设施设备的日常维修、应急维修等工作;
4、保管整理各类资料及物料;
5、完成领导所交办的其他工作。
职位要求:
1、大专及以上学历,工程相关专业毕业;
2、3年以上机电设备维护维修工作经验;3、参与有关软件的开发的优先
4、反应敏捷,表达能力强,具有较强的沟通能力;
5、从事过维护安防、弱电、强电等工作优先
6、良好的服务意识;
7、熟练操作CAD、OFFICE等软件,会识图认图制图。
六、电气自动化工程师证书?
除了一般的四六级证书和计算机二三级证书外。电气工程及其自动化专业可以考的证书:
(1)注册电气工程师:
注册电气工程师是指取得《中华人民共和国注册电气工程师执业资格证书》和《中华人民共和国注册电气工程师执业资格注册证书》,从事电气工程设计及相关业务的专业技术人员。注册电气工程师考试包括基础考试和专业考试,专业考试难度较大。
注册电气工程师执业范围涉及很广,可以从事电气专业的监理、招投标、评标、技术咨询等工作。
(2)建造师(机电方向):
分为一级建造师和二级建造师,考取一级建造师后可以担任建设工程项目施工的项目经理。一级建造师考试包括《建设工程经济》、《建设工程法规及相关知识》、《建设工程项目管理》和《专业工程管理与实务》4个科目,难度较大。
七、自动化仿真工程师前景?
自动化仿真工程师是目前热门专业前景应该不错
八、自动化工程师待遇如何?
差不多是这个薪水。薪水和能力成正比的。
九、自动化工程师报名时间?
自25日开始,我国第二批自动化系统工程师资格认证开始报名,报名时间截止到12月10日。
十、自动化工程师电脑推荐?
做自动化的建议用MagicBook Pro、锐龙系列笔记本,整体使用情况良好,主要优势有几点:锐龙的笔记本CPU性价比较高,Pro系列采用了锐龙标压板的处理器,性能完全不亚于Intel,且由于锐龙cpu内置显卡性能极高,基本上可以当作独显使用(玩大型游戏或者专业图像设计性能可能不足,但是应付日常工作,包括用ps,pr做一些剪辑也足够了);
MagicBook的窄边框设计非常合理,15.6寸的本子和之前14寸的大小差不多,非常轻便;如果用的是华为手机,那么还可以享受一系列性能加成,比如笔记本和电脑间快速互传文件等等,不一而足。
- 相关评论
- 我要评论
-