「NETWORKING」- 网络割接:前期准备阶段
项目调研
在割接开始前,需要与客户网络信息负责人、一线维护工程师、ISP的技术接口人、设备厂家代表等多方进行沟通,同时进行客户网络信息的收集。
现网的静态、动态信息,用于分析网络情况以及割接前后网络情况进行对比分析,判断割接前后业务量是否正常。
静态信息采集分析: 1)详细拓扑信息;设备类型;license;设备配置;设备版本;接口类型;
动态信息分析: 1)网络流量;带宽信息;协议状态;协议表项;时延、抖动;丢包率;
业务模型分析: 1)在调研阶段还需要对客户的业务流量走向、业务流量大小进行观察,包括流量走向的变化和链路流量大小,可用于割接前后进行对比。
现网硬件环境勘察: 1)在调研的最后阶段还需要对网络的现场环境进行观察,主要包括以下内容:光纤接口对应关系;ODF位置;接口标识; 2)对现网环境的观察便于割接时操作,同时相应的接口对应关系要进行记录,涉及到设备替换、线缆替换等割接操作便于割接完进行检查。
项目分析
完成对项目的调研之后,需要对客户的需求进行分析、梳理,分析客户对割接后网络的新需求,如带宽,网络KPI指标,新业务承载能力等; 同时在该阶段将割接方案中的割接变更需求进行明确。 输出《客户需求分析表》。
风险评估
根据调研结果、需求分析结果,以及割接方案的框架进行割接风险分析与评估,针对可能出现的风险项目提前制定应对措施,并将对应的风险项对应措施责任人确认。 风险评估需要涉及的技术人员参与讨论,将各个风险的责任人明确到具体的技术人员。
输出割接方案
根据调研结果、项目分析结果、技术人员风险评估编写相应的割接方案。
在割接方案中,需要将割接前准备阶段、实施阶段、收尾阶段的详细步骤、过程进行明确: 1)前期准备:项目背景;现网概述;割接目标;风险评估; 2)实施方案:割接准备;割接实施;回退方案;应用预案; 3)割接收尾:业务测试;现场守局;资料移接;项目验收;
关于 实施方案 部分: 1)为进行高效、规范地割接,割接中的每个实施步骤都要提前规划,按照割接操作顺序到最小操作动作,细化到具体的命令行,及每个操作步骤执行所需的时间。 2)在割接实施方案中,需要制定相应的割接操作确认记录表,针对每一模块操作的时间点,完成后的结果确认和异常信息记录。
关于 回退方案 部分: 1)当割接失败时(割接之后业务测试失败、割接时间结束未完成割接…)需要将网络退回到割接前初始状态,此时需要按照回退方案进行操作,将网络恢复。 2)在制定割接方案时需要包含详细的回退方案,同割接操作一样,需要精确到每一步操作,这样当割接失败时可以有条不紊地进行回退。
方案验证、评审
一般大型的、重要的割接项目,都要求在实验室内搭建环境进行提前验证,将之前的风险点进行[……]
「NETWORKING」- 网络割接:中期实施阶段
割接前快照
为方便割接回退以及割接之后对比业务是否正常,在正式开始割接之前需要对现网配置、现网数据再进行一次快照,具体包括以下内容: 1)现网配置进行备份 2)现网动态数据采集(端口状态、流量、各路由协议状态、路由数量、STP协议状态、各端口ARP/MAC地址表项)。 3)割接前对业务进行测试,确保割接涉及的业务在割接前属于正常状态。
割接执行
现场割接人员按照提前准备好的割接步骤一步步严格执行,无特殊原因不能临时更改实施步骤。 每一步骤的执行记录下割接实际操作过程的时间点、执行动作、执行结果。
割接回退
如果在指定的时间前未完成割接,需按照提前准备的回退方案一步步进行回退,将网络恢复。 具体回退范围可根据实际情况,与客户协商部分回退或全部倒回退。
割接测试、检查
割接实施完成后为测试割接是否成功,需要从以下几个方面对网络、业务进行测试: 网络运行状态测试:对现网的动态数据在进行一次采集,与割接前进行对比。 业务测试:通过ping、tracert或者客户侧的第三方软件测试网络连通性、延迟、抖动等指标是否到达业务要求 客户应用测试:测试由网络承载的客户应用,检查是否正常。[……]
「NETWORKING」- 网络割接:后期收尾阶段
现场守局
割接操作完成且通过客户应用业务测试后,网络需进入一个特殊的观察期,在此期间工程师一般驻守在客户局点,观察网络运行状态,防止出现意外故障。
割接验收
割接顺利完成并在守局观察无异常之后还需要对客户进行维护培训以及资料移交。 转维护培训:割接项目涉及新的设备、新的配置等需要对客户进行培训赋能的,在割接完成之后还需组织培训对客户进行赋能。 资料移交:为便于客户后期维护,割接完成后将割接涉及的文档转交给客户。[……]
「NETWORKING」- 网络维护日常任务
问题描述
要保证网络各项功能正常运行,需要对网络进行日常维护和故障处理,日常维护是预防性的有计划的维护工作,而故障处理则是基于事件触发的维护工作;
良好的日常维护习惯能帮助网络工程师及时发现隐患,做到防患于未然。当设备出现异常或故障时,网络工程师需要及时准确地收集设备运行过程中发生的事件。日常维护和故障处理都离不开网络相关的信息收集;
解决方案
网络维护可以分为两类:日常维护、故障排除;
日常维护是为了预防问题发生,尽量减少突发的故障。从故障排除工作中找到的问题原因,可为日常维护工作提供参考;
网络维护不仅仅是技术问题,而且也是管理问题。日常维护对操作人员的技术要求不高,但对操作的规范性要求比较高。通过日常维护可以得出网络在正常情况下的各种参数,例如网络设备的版本、网络带宽、网络安全等,从而为故障排除工作打下良好的基础;
维护内容(对象)
分为两大部分:
设备运行的外部环境
硬件运行环境是指设备运行的机房、供电、散热等外部环境,这是设备运行的基础条件;
针对设备环境的维护,工作人员需要亲临现场,甚至借助一些专业工具进行观察、测量;
设备软硬件运行情况
设备软硬件运行情况与设备运行的具体业务密切相关。华为数通设备使用了通用的 VRP 平台,网络工程师应该掌握 VRP 平台的常用维护命令;
针对设备软硬件的维护,工作人员可以现场操作,也可以远程操作,主要通过设备的 display 命令实现;
维护方法(工具)
日常维护可以使用以下两种方法: 1)现场观测:观察设备硬件运行环境; 2)远程操作:了解设备软硬件运行情况;
信息采集工具
信息采集:Information Center 报文捕获:Capture Packet (Huawei VRP) 链路发现:LLDP (Link Layer Discovery Protocol) 流量统计:Traffic Statistic
软件与配置的备份
备份的目的是为了在极端情况下恢复网络功能。备份的实质是把对应的文件传输到备份服务器上,因此方法有很多。通常将设备作为 FTP 或 TFTP 客户端,通过命令行将相应的文件传输到服务器上;
对于配置文件的备份,建议每周例行进行;同时在设备的配置有变更之前,应进行配置文件的备份; 软件与配置(包括 License 文件)都需要备份。备份的目的是为了在极端情况下恢复网络功能: 1)当设备因硬件故障无法启动,或更换同型号的设备后,如果没有备份的配置文件,业务将很难快速恢复; 2)软件版本也有必要备份,但同一个产品、同一个版本只需要备份一次即可;也可以从厂商官网获取对应的版本文件保存到本地; 3)License 文件是一类特殊的文件,它针对具体的产品进[……]
「NETWORKING」- 日常维护:检查清单(Checklist)
解决方案
日常维护工作是有计划的例行工作,因此,针对各项操作整理一份操作清单(Checklist)是十分必要的;
针对网络设备的 Checklist:可以参考相应的产品文档;日常维护检查的项目也可由客户自定义;
Checklist 1)设备环境检查 2)设备基本信息检查 3)设备运行检查 4)接口内容检查 5)业务检查
设备环境检查
设备运行环境正常是保证设备正常运行的前提。然而实际工作的时候,当有故障发生,并不会第一时间检查设备环境,因为设备环境相比较其他的因素来说,更加的稳定和不容易发生故障;
温度和湿度对设备正常运行有重大影响,标准的机房都应该配备温度计和湿度计,并且应每天安排人员例行检查和记录;
机房的清洁和整齐也影响着设备的正常运行:清洁问题影响设备的散热;整齐主要是指设备、线缆的布放。按照规范的安装部署要求,设备和线缆都需要规范布放。但是在网络运行过程中,时常会有临时的调整,比如临时跳线测试。这些活动积累一段时间后,机房就会变乱。设备环境检查就是发现这些问题并及时纠正;
另一方面,非标准的机房更要注意设备环境检查,比如楼层的设备间,需要特别注意清洁和散热问题;
设备位置摆放是否合理,通过观察方法,设备应放在通风、干燥的环境中,且放置位置牢固、平整。设备周围不得有杂物堆积; 机房温度状况,观察 / 温度计,通常要求机房长期工作环境温度:0℃~45℃;短期工作环境温度:-5℃~55℃; 机房湿度状况,观察 / 湿度计,通常机房的长期工作环境相对湿度应在 5%RH~85%RH 之间,不结露;短期工作环境相对湿度应在 0%RH~95%RH 之间,不结露; 机房内空调运行是否正常,观察 / 空调,空调可持续稳定运行,使机房的温度和湿度保持在设备规定范围内; 清洁状况,观察,所有项目都应干净整洁无明显尘土附着。注意防尘网的清洁状况,及时清洗或更换,以免影响机柜门及风扇框的通风、散热; 散热情况,观察,设备正常工作时,要求保持风扇正常运转(清理风扇期间除外),擅自关闭风扇会引起设备温度升高,并可能损坏单板。不要在设备子架上通风口处放置杂物,还应定期清理风扇的防尘网; 线缆布放,观察,电源线与业务线缆分开布放。电源线布放整齐、有序。业务线缆布放整齐、有序。 线缆标签清晰、准确,符合规范; 接地方式及接地电阻是否符合要求,观察,一般要求机房的工作地、保护地、建筑防雷地分开设置,因机房条件限制,可采用联合接地。尤其对于户外使用的设备,设备接地非常重要,如果未接地容易造成雷击损坏; 供电系统是否正常,观察 / 电压表,要求供电系统运行稳定。直流额定电压范围为–48V DC~–60V。交流额定电压范围为 100V~240V; …… 注意,以上各种参数不同设备可能有所差异,以各自产品文档为准;
设备基[……]
「Network」- Next Generation Networks
问题描述
伴随 5G 和 Cloud 时代的到来,VR/AR、直播、无人驾驶等各类创新性业务大量涌现,整个 ICT 产业迸发出蓬勃生机。与此同时,整个网络的流量也呈现出爆炸式增长,华为 GIV(Global Industry Vision,全球产业展望)预计,2025 年新增的数据量将达到 180 ZB。业务的动态复杂性也使得整个网络复杂度不断攀升;
整体来看,这些问题的源头都指向现有的网络系统,只有通过构建自动化、智能化的以用户体验为中心的网络系统才能有效应对;
当前网络的现状:经典 IP 网络,分布式网络;
经典 IP 网络是个分布式的、对等控制的网络。每台网络设备存在独立的数据平台、控制平面、管理平面: 1)管理平面:提供设备管理功能;比如 TELNET、SSH 命令; 2)控制平面:负责执行协议、算法计算;比如转发表、协议、算法等等; 3)转发平面:对数据进行转发操作;
经典 IP 网络的优势在于: 1)设备与协议解耦,所有厂商遵循相同协议; 2)厂家之间兼容性较好且故障场景下协议保证网络收敛;
经典 IP 网络(当前网络)带来问题: 1)网络容易拥塞:网络充斥着各种协议;协议仅能选择最佳路径,却存在空闲,而不能完全利用; 2)网络技术复杂:网络协议多;网络配置难(不同厂商,配置命令差异较多); 3)运维太困难:故障发现难;故障定位难;网络故障定位、诊断困难; 4)业务部署太慢:网络策略变更复杂,通常不调整;新业务部署周期长;物理网络部署效率低;
计算机行业演进(启发)
在计算机产业中,经历如下发展阶段: 1)最早时大型机,软硬件一体化,无法分割,由专门厂商提供; 2)在近现代中,水平集成,开放的接口,大规模跨产业应用,不再由专门厂商提供;
计算产业的开放生态带来了通用硬件、操作系统、虚拟化、中间件、云计算、软件应用等多领域的蓬勃发展;
网络产业的发展(变革)
然而,网络产业也在不断寻求变革与发展,其中 SDN(Software Defined Networking,软件定义网络)与 NFV(Network Functional Virtualization,网络功能虚拟化),是备受瞩目的两个概念。为了避免厂商绑定问题,屏蔽不同厂商的产品和设备区别;
SDN(Software Defined Networking,软件定义网络),SDN 是网络架构的革新,以 Controller(控制器)为主体,让网络更加开放、灵活和简单;
NFV(Network Functional Virtualization,网络功能虚拟化),NFV 是电信网络设备部署形态的革新,以虚拟化为基础,云计算为关键实现电信网络的重构;
基于 Huawei iMaster[……]
「SDN」- 概念术语
网络架构
SDN 网络架构分为协同应用层、控制器层、设备层。不同层次之间通过开放接口连接。以控制器层为主要视角,区分面向设备层的南向接口和面向协同应用层的北向接口。OpenFlow 属于南向接口协议的一种。
协同应用层
主要完成用户意图的各种上层应用,典型的协同层应用包括OSS(Operations Support System,运营支撑系统)、OpenStack等。OSS可以负责整网的业务协同,OpenStack云平台一般用于数据中心,负责网络、计算、存储的业务协同。还有其他的协同层应用,比如用户希望部署一个安全APP,这个安全APP不关心设备具体部署位置,只是调用了控制器的北向接口,例如Block(Source IP,DestIP),然后控制器会给各网络设备下发指令。这个指令根据南向协议不同而不同。简单说,协同应用通知控制器,以表述其需求,然后控制器根据需求来进行网络调整。
控制器层
控制器层的实体就是SDN控制器,是SDN网络架构下最核心的部分。控制层是SDN系统的大脑,其核心功能是实现网络业务编排。
设备层
网络设备接收控制器指令,执行设备转发。
南向 与 北向
南北向是一个相对概念: 1)一般上层系统提供给下层系统的接口称为南向接口; 2)下层系统提供给上层系统的称为北向接口;
站在 Controller 的位置,上北下南: 1)NBI(Northbound Interface,北向接口):是指 Controller 对接 SDN Application 的接口,主要为 RESTful; 2)SBI(Southbound Interface,南向接口):是指 Controller 对接 Switch 接口;其为控制器与设备交互的协议,包括 NETCONF、SNMP、OpenFlow、OVSDB 等。
北向接口
北向接口有多种标准,比如MTOSI、CORBA等。设备商的控制器需要开放相应标准的北向接口以满足运营商综合网管平台的对接要求。
OSS(Operation Support Systems,操作支持系统)是电信业务开展和运营时所必需的支撑平台。 MTOSI(Multi-Technology Operations Systems Interface,多重技术运营系统接口)采用XML消息作为OSS系统的接口。 CORBA(Common ObjectRequest Broker Architecture,公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。
从 MTOSI、CORBA、SNMP 到 REST,北向接口类型可谓是百花齐放,但如今各个设备的北向接口正逐渐向 REST 接口演进。[……]
「SDN」- OpenFlow(SBI)
SDN 起源提出 OpenFlow 协议。随着技术的发展,OpenFlow 成为控制器与交换机之间的诸多南向接口协议的一种。
OpenFlow 是 Controller 与 Switch 之间的一种南向接口协议(还有其他接口协议)。
OpenFlow Message Type
其定义三种类型的消息: 1)Controller-to-Switch:该消息由 Controller 发送,用于 管理 Switch 和 查询 Switch 的相关信息。 2)Asynchronous:该消息由 Switch 发起。当 Switch 状态发生改变时,发送该消息告诉 Controller 状态变化。 3)Symmetric:该消息没有固定发起方,可由 Switch 或 Controller 发起。例如 Hello、Echo、Error 等等。
每种消息又包含更多的子类型。
Controller-to-Switch子类型: 1)Features消息:在SSL/TCP会话建立后,Controller给Switch发送Features请求Switch的相关信息。Switch必须应答自己支持的功能,包括接口名、接口MAC地址、接口支持的速率等等基本信息。 2)Configuration消息:Controller可以设置或查询Switch的状态。 3)Modify-State消息:Controller发送该消息给Switch,来管理Switch的状态,即增加/删除、更改流表,并设置Switch的端口属性。 4)Read-State消息:Controller用该消息收集Switch上的统计信息。 5)Send-Packet消息:Controller发送该消息到Switch的特定端口。
Asynchronous子类型: 1)Packet-in消息:当Flow Table中没有匹配的表项或者匹配“send to Controller”,Switch将给Controller发送packet-in消息。 2)Packet-out消息:从控制器回复的消息。 3)Flow-Removed消息:当给Switch增加一条表项时,会设定超时周期。当时间超时后,该条目就会被删除。这时Switch就会给Controller发送Flow-Removed消息;当流表中有条目要删除时,Switch也会给Controller发送该消息。 4)Port-status消息:当数据路径接口被添加、删除、修改的时候,此消息用于通知控制器。
OpenFlow Flow Table
OpenFlow Switch 基于流表(Flow Table)转发报文。 每个流表项由匹配字段、优先级、计数器、指令、超时、Cookie、Flags这七部分组成。
其中关[……]
「NFV」- Network Functions Virtualization
问题描述
NFV 的背景:同样来自 IT 行业变革的启示
来自 IT 界的启示,给网络产业带来了网络架构和设备架构两个层面的思考。网络架构层面引入对 SDN 控制器的思考,设备架构层面引入对设备部署形态的思考;
网络功能虚拟化被称为 NFV(Network Functions Virtualization),而虚拟化之后的网络功能被称为 VNF(Virtualized Network Function)。当我们谈“VNF”时,我们指运营商 IMS、CPE 这些传统网元在虚拟化之后的实现。在硬件通用化后,传统的网元不再是嵌入式的软硬结合的产品,而是以纯软件的方式安装在通用硬件(即 NFVI)上;
解决方案
NFV 的起源:2012 年 10 月,13 家 Top 运营商(AT&T、Verizon、VDF、DT、T-Mobile、BT、Telefonica 等)在 SDN 和 Open Flow 世界大会上发布 NFV (Network Functions Virtualization)第一版白皮书,同时成立了 ISG(Industry Specification Group)来推动网络虚拟化的需求定义和系统架构制定;
2013 年,ETSI 下 NFV ISG(行业规范工作组)进行第一阶段研究,已完成相关标准制定。主要定义网络功能虚拟化的需求和架构,并梳理不同接口的标准化进程;
应用价值
NFV(Network Functions Virtualization )是运营商为了解决电信网络硬件繁多、部署运维复杂、业务创新困难等问题而提出的;
NFV 在重构电信网络的同时,给运营商带来的价值如下: 1)缩短业务上线时间 2)降低建网成本 3)提升网络运维效率 4)构建开放的生态系统
关键技术
在 NFV 的道路上,虚拟化是基础,云化是关键;
虚拟化是基础
传统电信网络中,各个网元都是由专用硬件实现,成本高、运维难。虚拟化具有分区、隔离、封装和相对于硬件独立的特征,能够很好匹配 NFV 的需求。运营商引入此模式,将网元软件化,运行在通用基础设施上;
但是,并非所有网元设备都能进行虚拟化
云计算是关键
1)美国国家标准与技术研究院(NIST)定义:云计算是一种模型,它可以实现随时随地,便捷地,随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应用、及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度;
2)云计算拥有诸多好处。运营商网络中网络功能的云化更多的是利用了资源池化和快速弹性伸缩两个特征;
架构简介
NFV 架构分如下部分: 1)NFVI[……]
「NETWORKING」- 数通网络:网络排障,故障管理,网络调试
问题描述
网络故障,指由于某种原因而使网络丧失规定功能并影响业务的现象。从用户的角度出发,凡是影响业务的现象都可以定义为故障。
常见的故障现象和分类如下(分类和故障现象的对应关系在不同的场景下会有所不同):
解决方案
常见监测技术
传统的网络监控手段(SNMP、CLI、日志),例如: SNMP 和 CLI 主要采用“拉模式”获取数据,即发送请求来获取设备上的数据。但该方式限制能够监控的网络设备数量,且无法快速获取数据。 SNMP Trap 和日志虽然采用“推模式”获取数据,即设备主动将数据上报给监控设备,但仅上报事件和告警,监控的数据内容极其有限,无法准确地反映网络状况。
传统的网络检测技术已无法满足网络需要,新的检测技术有: CLI(Telnet/SSH)、SNMP 、NETCONF 、NetStream、sFlow、Telemetry、SYSLOG、LLDP、Mirror(镜像)
网络检测技术对比:
Telemetry SNMP Get SNMP Trap CLI SYSLOG
工作模式 推模式 拉模式 推模式 拉模式 推模式
精度 亚秒级 分钟级 秒级 分钟级 秒级[……]
「NETWORKING-TROUBLESHOOTING」- 结构化的网络排障流程(数通网络)
解决方案
如果采取非结构化的网络故障排除流程,即凭直觉在这些步骤之间重复执行,虽然最终也可能找到解决故障的方法,但无法保证稳定的效率。在复杂的网络环境中,有可能会由于非结构化的网络故障排除流程而导致新的故障,从而使网络故障的排除变得更加困难;
报告故障
企业中存在多个部门,这些部门间的网络有互联互访的需求。为了保障网络的正常运行,企业可能存在如下情况: 1)大中型企业成立网络维护部门,构建专业的网络团队; 2)小型企业出于成本考虑,一般不存在单独的网络维护部门,而是将网络托管给专业的网络维护公司; 3)求助设备生产商,拨打厂商的售后服务电话; 通常情况,网络故障的第一感知人员并非网络维护人员,而是其他业务相关的各个部门人员,网络工程师经常接到各种求助电话;
主动沟通确认,询问用户相关内容,并记录在排障报告中: 1)故障报告者:在企业环境中,不同级别的用户可能会有不同的网络访问权限,所以需要了解用户姓名、所在的部门、职位级别、所负责的工作内容、使用电脑的位置(楼层、房间、无线接入还是有线接入)、在使用电脑访问什么网站时发现的问题; 2)故障频率:是突发的、偶尔的、还是频繁的; 3)用户操作:出现故障之前和之后,用户对自己的终端做了哪些操作,如是否更改了 IP 地址和 DNS、是否安装了桌面防火墙软件、安全控制软件等;
确认故障
确认故障的原因是:用户的描述可能是含糊不清的,报告的故障也不一定是真实的故障点,所以需要有经验的工程师进行确认故障的工作;
确认故障的四个要素: 故障的主体:哪个网络业务出现了故障; 故障的表现:故障的现象是什么样的; 故障的时间:用户是什么时间发现的故障,以及专业人员推测的故障出现的真实时间; 故障的位置:哪个网络组件出现了故障;
对故障现象进行准确的描述;
最后应确认该故障是否属于自己的负责范围,即自己是否被赋予相应的权限来处理该故障;
收集信息
需要收集哪些信息:收集信息阶段主要是收集与故障相关的信息,如文档、网络变更情况等;
如何收集这些信息:使用设备自身的操作命令;使用信息收集工具,如抓包工具、网管软件等;
获取授权:在对信息安全要求较高的网络环境中,对信息的收集是需要得到授权的,有时需要签署书面的授权文件;
收集信息阶段的风险评估:有些收集信息的操作,如对路由器或交换机执行”debug”命令,会导致设备的 CPU 占用率过高,严重的情况下甚至会使设备停止响应用户的操作指令,从而引入额外的故障现象。所以在收集信息的时候应评估这些风险,平衡引入新故障的风险与解决现有故障的紧迫性之间的关系,并明确的告知用户这些风险,由用户来决定是否进行风险较大的信息收集工作;
判断分析
判断分析阶段是对收集到的信息进行分析整理。[……]
「NETWORKING」- 网络故障排除的核心思想和方法
故障处理对排障人员的要求
对协议要求有精深的理解; 能够引导客户详细描述出故障现象和相关信息; 充分了解自己所管理和维护的网络; 及时进行故障处理的文档记录和经验总结; 熟悉网络故障排除的方法,将多种方法结合使用;
方法一、以业务流量路径为核心
通常情况下,网络中业务流量的路径是在网络规划阶段就已经设计好的,只需要知道受到网络故障影响的业务的流量往返路径,跟踪此路径,逐步排除即可;
数据转发或许存在多条路径,需要确认业务流量路径: 1)数据链路层:确认业务流量对应的数据帧在二层网络环境中是如何被交换机转发的; 2)网络层:在数据包转发过程中可能存在多条路径,因此需要根据报文转发过程,确认业务流量的传输路径;
方法二、分层故障处理法
分层法很简单,所有模型都遵循相同的基本前提:当模型的所有低层结构工作正常时,它的高层结构才能正常工作;
一般建议在处理故障时,从参考模型自底向上进行故障排查(即从物理层开始): 7)应用层: 6)表示层: 5)会话层: 4)传输层:TCP 连接是否正确建立,TCP、UDP 端口是否打开等 3)网络层:有没有路由,路由协议工作是否正常等等 2)链路层:链路层封装是否正确,接口协议是否 UP,二层寻址是否正常等 1)物理层:接口的物理状态是否 UP、线缆及接头等是否正常等
方法三、对比配置法
对比配置法是指对比正常状态与故障状态下的配置、软件版本、硬件型号等内容,检查两者之间的差异;
经验较少的网络故障排除人员,或无其他排障思路时,可考虑在实践中使用这种方法;
方法四、分块故障处理法
华为的交换机和路由器等网络设备的配置文件具有清晰的组织结构;
当出现一个故障案例现象时,我们可以把它归入以下某一类或某几类中,从而有助于缩减故障定位范围 : 1)管理部分(路由器名称、口令、服务、日志等) 2)端口部分(地址、封装、cost、认证等) 3)路由协议部分(静态路由、RIP、OSPF、BGP、路由引入等) 4)策略部分(路由策略、策略路由、安全配置等) 5)接入部分(Console 登录、Telnet 登录、拨号等) 6)其他应用部分(DNS、DHCP、VPN 配置等)
例如,当使用 display ip routing-table 命令,结果只显示出了直连路由,可能是什么原因呢? 根据上述的分块,该故障可能由以下三部分导致:路由协议、策略、端口。如果没有配置路由协议或配置不当,路由表就可能为空;如果访问列表配置错误,就可能妨碍路由的更新;如果端口的地址、掩码或认证配置错误,也可能导致路由表错误。此时,在排障时,我们首先对这些部分进行检查;
方法五、分段故障处理法
数据包转发过程中可能经过多台路由器和物理链路,每段物理连接都有可能发生故障[……]
「Huawei VRP」- 报文捕获
问题描述
当设备的业务流量出现异常,比如流量状态与流量模型不符时,可以使用报文捕获功能,抓取业务报文进行分析,以便及时处理非法报文,保证网络数据的正常传输;
解决方案
命令 capture-packet 用来在设备捕获符合设置规则的业务报文,并上送到终端显示,或保存到本地;
# capture-packet { interface interface-type interface-number | acl acl-number } * [ vlan vlan-id | cvlan cvlan-id ] * destination terminal [ car cir car-value | time-out time-out-value | packet-num number | packet-len length ] *
terminal :将捕获的报文发送到终端显示;
file file-name:将捕获的报文保存在指定的文件里,
目前不支持捕获管理接口的报文;
目前只支持捕获接口入方向报文,不支持捕获接口出方向报文;
原理简述
WIP
特性特征
某个时刻只能有一个捕获报文实例,即前一次捕获报文流程没有结束,不能启动下一次捕获报文;
捕获的报文有速率限制,如果有突发流量,超过捕获报文的速率限制,可能会存在丢包现象;
应用场景
问题排查;
配置案例
<R1> system-view
[R1] capture-packet interface gigabitethernet 0/0/0 destination terminal
Info: Captured packets will be showed on terminal.
[R1]ping 10.0.12.2
[R1]
Packet: 1
——————————————————-
ff ff ff ff ff ff 00 e0 fc 9f 4b 1d 08 06 00 01 —————————– # 目的 MAC:ffff-ffff-ffff 源 MAC:00e0-fc9f-4b1d 类型:0806,代表 ARP
08 00 06 04 00 01 00 e0 fc 9f 4b 1d 0a 00 0c 02
00 00 00 00 00 00 0a 00 0c 02 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
——————————————[……]
「Network」- 镜像(Mirror)
问题描述
在网络维护的过程中会遇到需要对报文进行获取和分析的情况,比如怀疑有攻击报文,此时需要在不影响报文转发的情况下,对报文进行获取和分析。
解决方案
镜像可以在不影响报文正常处理流程的情况下,将镜像端口的报文复制一份到观察端口,用户利用数据监控设备来分析复制到观察端口的报文,进行网络监控和故障排除。
镜像是指将镜像端口(源端口)的报文复制到观察端口(目的端口)。
应用场景
在某些场景中,我们可能需要监控交换机特定端口的入站或出站报文,或者需要针对特定的流量进行分析,例如上图中,GE0/0/2口上承载了许多流量,基于某种需求,我需要对接口的收发报文进行分析从而进行网络的故障定位。那么我可以在交换机的GE0/0/3口接一个PC,在PC上安装协议分析软件,然后部署端口镜像,将GE0/0/2的入、出站流量镜像到GE0/0/3口上来,接下来我只要在PC上通过协议分析软件查看报文即可。
注意,如果没有端口镜像技术,除非数据包的目的地是监控PC(所连接的端口),否则报文是不会发向该端口的。因此事实上端口镜像就是将某个特定端口的流量拷贝到某个监控端口。
概念术语
镜像方式
端口镜像:是指设备复制一份从镜像端口流经的报文,并将此报文传送到指定的观察端口进行分析和监控
流镜像,是将镜像端口上特定业务流的报文复制到观察端口进行分析和监控。在流镜像中,镜像端口应用了包含流镜像行为的流策略。如果从镜像端口流经的报文匹配流分类规则,则将被复制到观察端口。
镜像角色
镜像端口是被监控的端口,从镜像端口流经的所有报文或匹配流分类规则的报文将被复制到观察端口。
观察端口是连接监控设备的端口,用于输出从镜像端口复制过来的报文。
观察端口组是连接多个监控设备的一组端口。观察端口组中的多个成员端口分别连接多个监控设备,当使用观察端口组镜像报文时,镜像到观察端口组的报文将被复制到所有的成员端口。[……]
「Wireshark」- 网络协议分析工具
安装 Wireshark 工具
How to set up wireshark to run without root on Debian? – Super User
在 Ubuntu 21.04 中,按照如下方法安装:
# apt-get install -y wireshark
# dpkg-reconfigure wireshark-common
…
Should non-superusers be able to capture packets?
<Yes>
…
# adduser <your username> wireshark
# reboot // 或者,退出重新登录当前帐号
编写表达式
6.4. Building Display Filter Expressions
应用场景
通过 tcpdump 抓包,然后通过 Wireshark 分析
https://www.wireshark.org/ https://www.wireshark.org/docs/wsug_html_chunked/
我们能够使用 tcpdump 保存数据包信息,将数据包信息导入 wireshark 中分析: 1)不仅以更规整的格式,展示各个网络包的头部信息; 2)还用不同颜色展示 DNS 和 ICMP 这两种不同的协议; 3)选择某一个网络包后,在其下方的网络包详情中,可以看到这个包在协议栈各层的详细信息
我们将要访问的是 http://example.com/ 站点,并分析流量:
# tcpdump -i any -nn host example.com -w web.pcap
# curl http://example.com
// 按下 Ctrl+C 停止 tcpdump 命令
# wireshark
常用配置
远程主机抓包
How can I sniff the traffic of remote machine with wireshark? – Server Fault [OpenWrt Wiki] How to capture, filter and inspect packets using tcpdump or wireshark tools
ssh root@<SERVER> tcpdump -U -s0 -i <INTERFACE> -w – “<EXPRESSION>” | wireshark -k -i –
# tcpdump
# -U:配合 -w 选项,将数据包[……]
「tcpdump」- A common packet analyzer
打印HTTP请求
Human readable format for http headers with tcpdump Use TCPDUMP to Monitor HTTP Traffic Can I use tcpdump to get HTTP requests, response header and response body?
参考文献
Wikipedia/tcpdump[……]
「Huawei OPS」- 开放可编程系统(Open Programmability System)
问题描述
传统网络设备是一个封闭系统,提供的功能和服务都是固定的,不具有动态性和灵活性。随着网络的迅猛发展和不断普及,多样化、差异化的需求层出不穷,传统网络设备难以满足这些需求。部分用户要求设备提供不同层次的开放性,便于开发一些自定义的功能,部署一些私有的管理策略,实现自动化运维等功能,以降低管理成本。
试想下面的场景: 1)网络开局,硬件安装完成后,大批量设备需进行业务配置。 2)网络管理员希望设备出现某些告警时,自动执行相应处理动作。 3)网络管理员编写脚本远程下发命令,定时收集设备信息,遇到网络不通的情况。
传统网络设备已无法有效解决以上场景存在的问题及想要达成的需求。
解决方案
华为公司推出 OPS(Open Programmability System,开放可编程系统),提供网络设备的开放可编程能力,赋予用户二次开发的能力,充分释放设备潜力。
简单说,我们能够在华为网络设备中运行 Python 脚本。有了OPS功能,用户可以根据自己的需求编写脚本,导入网络设备进行运行,灵活高效。
原理简述
OPS 功能是用户编写 Python 脚本,将脚本安装到网络设备,脚本运行时发送HTTP请求,来实现对网络设备的管理。
1)用户编写 Python 脚本,其调用 OPS 定义的 RESTful API,并在设备上运行, 2)脚本通过发送 HTTP 请求(127.0.0.1)对网络设备的管理对象进行操作, 3)网络设备则会根据操作的执行结果返回 HTTP 响应消息。
特性特征
利用系统开放的 RESTful API,OPS 允许用户或第三方开发商,开发和部署自己的网络管理策略,从而迅速地实现业务功能扩展、自动部署和设备的智能化管理,降低运维成本和操作的复杂度。
应用场景
实现空配设备自动部署
使用OPS可以实现空配置设备自动部署,不需要管理员到安装现场,降低了人力成本,提升了部署效率。
1)DHCP Server:用来为自动部署的网络设备分配临时管理IP地址、缺省网关、脚本文件服务器地址等信息。 2)DHCP Relay:当需要自动部署的网络设备与DHCP服务器位于不同网段时,需要通过DHCP中继转发DHCP交互报文。 3)脚本文件服务器:用来保存网络设备自动部署时需要的脚本文件(Python脚本)。通过运行脚本文件,网络设备可以获取软件和配置文件服务器地址、版本文件、配置文件等信息。 4)软件和配置文件服务器:用来保存网络设备自动部署需要的系统软件、配置文件、补丁文件。
实现设备健康状态自检
通常情况下,对设备的健康状态进行检查时,用户需要登录设备并执行多条命令行,以查看设备的硬件、业务运行状态。
通过OPS功能,设备可以自[……]
「Huawei OPS」- 概念术语
系统架构
OPS 基于 Huawei VRP 开发,通过开放的 RESTful API 与 VRP 的管理平面、控制平面、数据平面的模块进行交互,实现对设备整体功能的扩展。
OPS通过开放管理对象来开放设备,管理对象使用 URI 进行唯一的标识。Client 可以通过标准的HTTP方法对对象进行操作,如GET、PUT、POST、DELETE。
补充说明: 1)管理对象:网络设备中开放出来的,可以被Restful API接口进行调用的对象,如CPU信息,系统信息,接口信息等。 2)目前华为网络设备OPS功能集成了Python语言的运行环境,可以运行Python脚本。Java,C/C++语言运行环境当前版本暂未实现,待扩展。 3)在 OPS 中,使用URI标识开放的管理对象。如CPU信息的URI为/devm/cpuInfos/cpuInfo,其唯一地标识了CPU信息这个管理对象。OPS定义了一套RESTful API。用户可以通过标准的HTTP方法(GET、PUT、POST和DELETE)访问管理对象。
使用介绍(Python)
目前,华为 OPS RESTful API 只支持在 ERE(Embedded Running Environment,内嵌运行环境)中调用。网络设备系统中集成 Python 环境,用户根据 OPS RESTful API 编写 Python 脚本,并将其安装到设备系统中,当Python脚本运行时,通过向系统发送HTTP请求,来实现对设备的管理。
Python 脚本运行流程示意图:
关于维护助手: 1)维护助手是华为网络设备的一个功能,可以设置触发条件及条件满足时执行的Python脚本。系统会实时监控设备的运行,当设定的触发条件满足时,自动执行Python脚本,完成Python脚本中定义的动作。更多关于维护助手的描述可参见华为网络设备产品文档。
请求格式
用户发送的 HTTP 请求需要按照 OPS 定义的 RESTful API 进行构造(即需要查阅官方文档)。
获取系统信息 API 描述如下:
OPS RESTful API 请求报文与响应报文格式与 HTTP 请求报文与响应报文格式类似。
目前,OPS RESTful API 只支持采用 XML 格式传输数据,未来的版本会支持 JSON(JavaScript Object Notation)格式。所以,目前 OPS Restful API 请求报文和响应报文的主体部分都是 XML 格式。
《RESTful API 参考》可在华为support网站 http://support.huawei.com 的对应网络设备页面进行下载。[……]
「Huawei OPS」- 常见问题处理
配置思路
配置思路如下: 1)其中最重要的是编写Python脚本; 2)之后的三个步骤较简单,操作方式和所涉及命令已在下图标注,不再详细展开。
关于脚本编写:Python脚本的作用是向系统下发HTTP请求,来实现对系统的管理。华为公司提供了Python脚本模板,用户只需根据要实现的功能查找相应RESTful API,并对部分代码做相应修改即可。[……]
「Huawei VRP」- 网络排错
查看端口状态
<SW1>display interface brief | include up ————————————- # 查看接口是否出于 Up 状态;
Interface PHY Protocol InUti OutUti inErrors outErrors
GigabitEthernet0/0/3 up up 0% 0% 0 0
GigabitEthernet0/0/4 up up 0% 0% 0 0
GigabitEthernet0/0/10 up up 0% 0% 0 0
GigabitEthernet0/0/11 up up 0% 0% 0 0
<SW1>display interface GigabitEthernet 0/0/10
Description:
Switch Port, PVID : 12, TPID : 8100(Hex), The Maximum Frame Length is 9216
IP Sending Frames’ Format is PKTFMT_ETHNT_2, Hardware address is 4c1f-cc69-6d7b
Hardware address is 4c1f-cc69-6d7b
Last 300 seconds input rate 0 bytes/sec, 0 packets/sec
Last 300 seconds output rate 0 bytes/sec, 0 packets/sec
Input: 430 bytes, 6 packets ———————————————– # 查看接口是否能够收到报文;
Output: 197137 bytes, 1659 packets
物理地址漂移
[SW3]display mac-address flapping
Mac-address Flapping Configurations :
————————————————-
Flapping detection : Enable
Aging time(sec) : 300
Quit-vlan Recover time(min) : 10
Exclude vlan-list : –
————————————————-
<SW3>display mac-address[……]
「Huawei VRP」- 信息中心
解决方案
信息中心是设备的信息枢纽。设备产生的 Log、Trap 和 Debug 信息统一发往信息中心,通过信息中心的统一管理和控制,实现信息的灵活输出;
通过配置信息中心,对设备产生的信息按照信息类型、严重级别等进行分类或筛选,用户可以灵活地控制信息输出到不同的输出方向(例如,控制台、用户终端、日志主机等)。这样,用户或网络管理员可以从不同的方向收集设备产生的信息,方便监控设备运行状态和定位故障;
应用场景
向日志主机输出 Log 信息:信息中心将指定级别的 Log 信息输出到日志主机中,维护人员通过查询日志信息,了解设备的运行情况; 向网管输出 Trap 信息:信息中心向网管中心发送 Trap 信息,网管通过接收到的 Trap 信息,监控设备的运行状态; 向控制台输出 Debug 信息:信息中心向控制台发送 Debug 信息,维护人员通过 Debug 信息来了解设备的运行情况;
信息的类型
Log 信息
主要记录用户操作、系统故障、系统安全等信息: 1)用户日志:记录用户操作和系统运行信息; 2)安全日志:记录包含账号管理、协议、防攻击和状态等内容的信息; 3)诊断日志:记录协助进行问题定位的信息;
Trap 信息
是系统检测到故障而产生的通知,主要记录故障等系统状态信息; 这类信息不同于 Log 信息,其最大特点是需要及时通知、提醒管理用户和对时间敏感;
Debug 信息
是系统对设备内部运行的信息的输出,主要用于跟踪设备内部运行的状态; 只有在设备上打开相应模块的调试开关,设备才能产生 Debug 信息;
信息的分级
设备产生信息比较多时,用户较难分辨哪些是设备正常运转的信息,哪些是出现故障需要处理的信息。对信息进行分级,用户可以根据信息的级别进行粗略判断,及时采取措施,屏蔽无需处理的信息;
根据信息的严重等级或紧急程度,信息分为 8 个等级,信息越严重,其严重等级阈值越小: 0 | Emergencies | 设备致命的异常,系统已经无法恢复正常,必须重启设备; 1 | Alert | 设备重大的异常,需要立即采取措施。如设备内存占用率达到极限等; 2 | Critical | 设备的异常,需要采取措施进行处理或原因分析。如设备内存占用率低于下限阈值和 BFD 探测出设备不可达等; 3 | Error | 错误的操作或设备的异常流程,不会影响后续业务,但是需要关注并分析原因。如用户的错误指令、用户密码错误和检测出错误协议报文等; 4 | Warning | 设备运转的异常点,可能引起业务故障,需要引起注意。如用户关闭路由进程、BFD 探测的一次报文丢失和检测出错误协议报文等; 5 | Notification | 设备正常运转的关键操作信息。如端口 shutdo[……]
「NetStream」- 基于网络流信息的统计技术
问题描述
传统的流量统计的实现方法和局限性: 基于IP报文计数:统计的信息简单,无法针对多种信息进行统计。 使用ACL:要求ACL的容量很大,对于ACL规则以外的流没有办法统计。 SNMP协议:功能不强。要不断的通过轮询向网管查询,浪费CPU和网络资源。 端口镜像:成本高,同时消耗设备的一个接口,对于无法镜像的端口无能为力。 物理层复制:成本高,同时还需要购买专用的硬件设备。
解决方案
NetStream技术是一种基于网络流信息的统计技术,可以对网络中的业务流量情况进行统计和分析。在网络的接入层、汇聚层、核心层上,都可以通过部署NetStream。
NetStream支持IP报文(UDP、TCP、ICMP报文)和MPLS报文的统计。
原理简述
NetStream工作过程: 配置了NetStream功能的设备(即NDE)把采集到的关于流的详细统计信息定期发送给NSC。 信息由NSC初步处理后发送给NDA。 NDA对数据进行分析,以用于计费、网络规划等应用。
在实际的应用中,NSC和NDA一般集成在一台NetStream服务器上。NDE通过NetStream采样获取GE0/0/1接口出方向流量信息,并按照一定条件建立NetStream流,当NetStream缓存区已满或者NetStream流达到老化时间,NDE会将统计的信息封装成NetStream报文发送到NetStream服务器。NetStream服务器对NetStream报文进行分析处理,并显示分析结果。
特性说明
WIP
应用场景
系统组成
典型的 NetStream 系统由三种角色:
NetStream Data Exporter, NDE
1)网络流数据输出器(NetStream Data Exporter, NDE),负责对网络流进行分析处理,提取符合条件的流进行统计,并将统计信息输出给 NDA 设备。 输出前也可对数据进行一些处理, 比如聚合。配置了NetStream功能的设备在 NetStream 系统中担当 NDE 角色。
NetStream Collector, NSC
2)网络流数据收集器(NetStream Collector, NSC):通常为运行于 Unix 或者 Windows 上的一个应用程序,负责解析来自 NDE 的报文,把统计数据收集到数据库中,可供 NDA 进行解析。 NSC 可以采集多个 NDE 设备输出的数据,对数据进行进一步的过滤和聚合。
NetStream Data Analyzer, NDA
3)网络流数据分析器(NetStream Data Analyzer, NDA),是一个网络流量分析工具,它从 NSC 中提取统计数据,[……]
「NETWORKING」- 问题排查案例:流量无法主动进入;
问题描述
最近(11/25/2021)遇到个奇怪的问题: 1)电信给了几个静态 IP 地址,我随便挑了一个,然后绑网关路由器上。 2)阿里云服务器 到 网关路由,是 ping 这个静态地址不通。这时候我们保持长 ping,不要退出 ping 3)此时,如果我从路由器上先 ping 一下电信的网关(哪怕一个 ping 包),然后阿里云服务器 到 网关路由 立马就通了。
原因分析
Router: AR 1220 Optical Modem: ZTE ZXHN F401
# 11/25/2021
## 环境 现在我在 光猫 和 路由器 加个一个中间设备(图中的 MITM),实际是台工控机,两个千兆口 1)MITM 上运行 Linux 系统 2)然后,我把 MITM 的两个千兆口做了桥接, 3)然后在两个千兆口上抓包。这也是加这个设备的目的,还是抓包。
## 现象 Alibaba Cloud Server 主动 ping AR2,当网络不通的时候,MITM 没有收到数据包。 当我从 AR2 主动 ping optical modem ,就发一个 ping 包,然后 Alibaba Cloud Server 到 AR2 马上通。
## 推测 电信光猫 MAC 地址表的问题 1)我从 AR2 上 ping optical modem,这时候它从接口学到我得 MAC 地址。 2)当长时间不发包,optical modem 上的 MAC 地址失效之后,optical modem 就不知道 .125 的 MAC 是多少 1)另外,我在 MITM 上很少看到 optical modem 发来 ARP,也就是 网关很少发 ARP 来问 .125 这个地址的 MAC 是多少。
## 复现的方法 1)根据推测,复现的方法就很简单,直接重启 optical modem,这样它整个 MAC 地址表就没了。 2)然后在从 Alibaba Cloud Server 主动 ping AR2,此时 100% 不通 3)然后 从 AR2 主动 ping optical modem ,就发一个 ping 包,然后 Alibaba Cloud Server 到 AR2 马上通。
## 补充说明 1)当链路 UP 之后,第一个数据包,如果是从远程到本地,则绝对不通。因为电信的光猫没有路由器的 MAC 地址,它也不发 ARP 查。
## 类似问题 【求助】光猫不支持ARP,请问怎么搞 puzzle: when the ISP refuses to use arp requests…
# 12/04/2022 问题在之前得以解决:在我们的场景中,两条宽带存在隔离。所以入 Inbound Tfc 与 Outbound[……]
「Network Telemetry」- 网络遥测技术
问题描述
随着网络的普及和新技术的涌现,网络规模日益增大,部署的复杂度逐步提升,用户对业务的质量要求也不断提高。
为了满足用户需求,网络运维务必更加精细化、智能化。当今网络的运维面临着如下挑战: 1)超大规模:管理的设备数目众多,监控的信息数量非常庞大。 2)快速定位:在复杂的网络中,能够快速地定位故障,达到秒级、甚至亚秒级的故障定位速。 3)精细监控:监控的数据类型更多,且监控粒度更细,以便完整、准确地反应网络状况,据此预估可能发生的故障,并为网络优化提供有力的数据依据。网络运维不仅需要监控接口上的流量统计信息、每条流上的丢包情况、 CPU 和内存占用情况,还需要监控每条流的时延抖动、每个报文在传输路径上的时延、每台设备上的缓冲区占用情况等。
网络设备监控
网络设备的统一监控和性能管理是运维平台的重要功能。设备的监控数据包括数据、控制、管理平面数据。
获取设备监控数据的方式有:SNMP、CLI、Syslog、NetStream、sFlow等。 NetSteam 和 sFlow 为网络流量监控技术,主要针对数据平面数据。SNMP是最主流的方式。
传统网络采集技术的问题
奈奎斯特采样定律表示,当采样频率大于信号频率的2倍时,才能完整保留原始信号中的信息。SNMP的采集周期为5分钟,通常会导致细节信息丢失。
传统运维方式有诸多问题
传统网络通过平均5-15分钟的Pulling拉取采样数据,更密集的Pulling拉取会造成网络设备瘫痪。
监控的粒度太大造成网络可视度低。 以SNMP为主的运维系统效率低。 无法达到IT运维一样的实时监控,全程监控,并保留完整历史数据。 无法检测网络大量Micro Burst(微突发)造成的网络问题。
微突发是指在非常短的时间(毫秒级别)内收到非常多的突发数据,以至于瞬时突发速率达到平均速率的数十倍、数百倍,甚至超过端口带宽的现象。网管设备或网络性能监测软件通常是基于比较长的时间(数秒到数分钟)计算网络实时带宽。在这种情况下,看到流量速率通常是一条比较平稳的曲线,但是实际设备可能已由于微突发导致丢包。
总结:传统采集机制无法满足大数据要求
我们需要一个支持超大规模网络及海量数据运维的机制,具备实时性、高性能,易于扩展等特点。
解决方案
Telemetry(Network Telemetry,网络遥测技术),提供周期采样网络设备内的统计数据和状态数据的能力。是一项远程地从物理设备或虚拟设备上高速采集数据的技术。其是一项监控设备性能和故障的远程数据采集技术。
业界也有将SNMP认为是传统的Telemetry技术,把当前Telemetry叫做Streaming Telemetry或Model-Dr[……]
「Telemetry」- 概念术语
网络模型
Telemetry网络模型分广义和狭义两种: 1)广义Telemetry:包括采集器、分析器、控制器和设备共同构成的一个自闭环系统。 2)狭义Telemetry:指设备采样数据上送给采集器的功能。
利用Telemetry技术,采集器可以收集到大量的设备数据,然后将数据交给分析器进行综合分析,分析器将决策结果发送给控制器,由控制器调整设备的配置,便可以几乎实时地反馈调整后的设备状态是否符合预期。
协议栈
Telemetry协议栈具有分层结构:传输层、通信层、数据编码层、数据模型层。
简单说,协议栈的结构为:HTTP2 | gRPC | GPB[……]
「Telemetry」- 框架解读
狭义的Telemetry框架可以分为四个模块:数据源、数据生成、数据订阅、数据推送。
框架参考RFC草案,https://tools.ietf.org/html/draft-song-ntf-02%E3%80%82 gRPC是google开发的远程过程调用(RPC)系统。 UDP(User Datagram Protocol,用户数据报协议)为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。 Protobuf(Protocol Buffers,协议缓冲区)是一种序列化结构数据的机制。
数据源
Telemetry数据源定义了可被获取的数据。Telemetry采用YANG模型定义设备可获取数据源。支持各类YANG模型,包括Huawei-YANG、IETF-YANG和OpenConfig-YANG。
YANG 模型文件与采样路径:
数据订阅
Telemetry数据订阅定义了数据发送端和数据获取端交互关系。
华为Telemetry订阅方式分为两种: 1)静态订阅:设备作为客户端,采集器作为服务端。由设备主动发起到采集器的连接,然后设备进行数据采集上送。多用于长期巡检。 2)动态订阅:设备作为服务端,采集器作为客户端。由采集器发起到设备的连接。由设备进行数据采集上送。多用于短期监控。
静态订阅
1)网管对设备下发静态配置,包括采样路径,采样周期,上送目标、编码等信息:支持 CLI 下发;支持 Netconf 下发,Netconf 使用的模型是openconfig-telemetry.yang;
2)设备启动采样任务,主动向采集器发起连接并推送数据:支持gRPC上送,RPC方法为dataPublish;支持UDP上送;
自定义事件上报
动态订阅
1)采集器向设备发起gRPC连接。 2)采集器向设备发起动态订阅:RPC方法(Subscribe);指定采样路径、采样周期等信息 3)设备启动采样任务,将采样数据作为rpc方法的应答,源源不断的返回给采集器。
数据生成
Telemetry数据生成采用GPB(Google Protocol Buffers)编码。
数据推送
Telemetry的数据推送有两种方式,基于gRPC方式和基于UDP方式。
基于gRPC的推送流程
gRPC面向连接,只在采集器和主控板CPU之间建立gRPC隧道。
1)采集器充当 gRPC Client 的角色,设备充当 gRPC Server 角色。 2)采集器根据订阅的事件构建对应数据的格式(GPB/JSON),通过Protocol Buffers编写p[……]
「Telemetry」- 常见问题处理
静态订阅案例(华为)
这里我们将简述静态订阅的配置方法。
配置推送:即在设备上进行配置,以指示设备将指标推送到指定服务(gRPC Server);
配置采样、创建静态订阅:即在设备上配置,以选择需要推送的指标;
编译 proto 文件、编写代码:即编写 gRPC Server 服务。可在官网下载华为设备对应发布的 .proto 文件。 结果验证:运行 gRPC Server 以验证能够接收到设备推送来的数据。[……]
「sFlow」- 基于报文采样的网络流量监控技术
问题描述
企业网用户对于接口的流量情况、整体设备运行情况有明确的需求。企业用户更需要一种以设备接口为基本采样单元的流量监控技术来实时监控流量状况,及时发现异常流量以及攻击流量的源头,从而保证企业网络的正常稳定运行。
解决方案
采样流 sFlow(Sampled Flow)是一种基于报文采样的网络流量监控技术,基于Flow采样可以截取原始报文的全部,也可以截取一部分报头。
原理简述
sFlow系统包含一个嵌入在设备中的sFlow Agent和远端的sFlow Collector。
其中,sFlow Agent通过sFlow采样获取接口统计信息和数据信息,将信息封装成sFlow报文发送到指定的sFlow Collector。sFlow Collector对sFlow报文进行分析,并显示分析结果。
如图所示,只需要在支持sFlow Agent的设备上进行部署,远端连接一个sFlow Collector,就可以对流量进行基于接口的搜集和详细的分析。
特性说明
sFlow关注的是接口的流量情况、转发情况以及设备整体运行状况,适合于网络异常监控以及网络异常定位,特别适合于企业网用户。
sFlow 与 NetStream 比较具有以下优势: 节省资源、降低成本:由于不需要缓存区,对网络设备的资源占用少,实现成本低。 采集器灵活、随需的部署:由于网络流的分析和统计工作由采集器完成,采集器可以灵活的配置网络流特征进行统计分析,实现灵活、随需的部署。
仅采样:使用 NetStream 也可以对网络流量进行统计分析, 而 NetStream 是一种基于网络流信息的统计技术,网络设备自身需要对网络流进行初步的统计分析,并把统计信息储存在缓存区,当缓存区满或者流统计信息老化后输出统计信息。与 NetStream 相比, sFlow不需要缓存区,网络设备仅进行报文的采样工作,网络流的统计分析工作由远端的采集器完成。
应用场景
系统角色
sFlow Collector,sFlow Agent:
采样方式
Flow 采样,是sFlow Agent设备在指定接口上按照特定的采样方向和采样比对报文进行采样分析,用于获取报文数据内容的相关信息。该采样方式主要是关注流量的细节,这样就可以监控和分析网络上的流行为。Flow采样可以截取原始报文的全部,也可以截取一部分报头。
Counter 采样,是sFlow Agent设备周期性的获取接口上的流量统计信息,Counter采样支持获取的采样信息。与Flow采样相比,Counter采样只关注接口上流量的数量,而不关注流量的详细信息。[……]
「Network」- 性能
问题描述
该笔记将记录:与网络性能有关(比如延迟、吞吐等等),以及相关解决方案。
解决方案
网络延迟(Latency)与网络吞出(Throughput)
延迟与吞吐是两个不同的概念。但是在理解这两个概念之前,需要先理解另外一个概念 -「带宽」。
带宽(Bindwidth)
在计算机网络中,带宽指在确定时间内可以从一端发送到另一端的数据总量。
延迟(Latency)
延迟,数据包到达目的地所花费时间。
延迟成因 1)延迟成因有很多,但是最后都归结于“路由设备状态”与“网络设备距离”。 2)路由设备需要处理数据包,因此通过路由越多,延迟越明显。 3)另外传输距离越长,延迟越明显。
延迟测试
吞吐(Throuthput)
吞吐,在特定时间内处理数据包的数量。它受限于网络连接标准和网络设备能力。
低吞吐成因
低吞吐的成因由很多,其中主要的壹个原因是“硬件设备性能问题”。
如果设备故障、过期,则会导致低吞吐。当网络中充满大量数据包时,会发生丢包现象。
参考文献
Wikipedia/Bandwidth (computing) Latency vs Throughput – Understanding the Difference[……]
「网络」- 状态统计系统
用于网络数据统计的命令
#!/bin/sh
nstat
ss -s
netstat -i
netstat -s
ifconfig enp0s25
ip -s link
sar -n DEV 1 3
统计TCP连接状态
关于TCP连接建立过程以及其中的各种状态这里不再展开。
可以使用如下命令统计各种状态的连接的数量:
#!/bin/sh
netstat –tcp -na | sed -u ‘1,2d’ | awk ‘{print $6}’ | sort | uniq -c | sort -r
# 如果想要查看动态的输出可以配合watch命令
watch -n 1 “netstat -nat | sed -u ‘1,2d’ | awk ‘{print \$6}’ | sort | uniq -c | sort -r”
ss -s
参考文献
Linux Network Statistics Tools / Commands How to use watch command with a piped chain of commands/programs How to Check TCP connections States in Linux with Netstat[……]