计算机网络自顶向下方法44——网络层 ICMP:因特网控制报文协议 网络控制与管理协议 管理信息库 NETCONF、YANG
网络控制与管理协议详解
一、ICMP:因特网控制报文协议
1. 角色定位:网络的“信使”或“诊断工具”
ICMP是IP协议的“助手”,用于在主机和路由器之间传递网络层的控制与错误信息。
它本身不是用户数据传输协议,而是为了提高IP数据报交付成功的机会。
2. 典型应用与报文类型
目的不可达:当路由器或主机无法将数据报交付给目的端时,会向源端发送“目的不可达”报文。
回显请求与应答:这就是我们最熟悉的
ping命令。用于测试另一台主机是否可达。超时:当IP数据报的TTL字段减为0时,路由器会丢弃它并向源端发送“超时”报文。
traceroute命令就是利用了这个机制。源点抑制:早期用于拥塞控制(通知源端放慢发送速率),现在已很少使用。
简单来说,ICMP就是网络出现问题(丢包、不可达、超时)时,向你“打小报告”的协议。
二、简单网络管理协议与管理信息库
1. SNMP:简单网络管理协议
角色定位:网络管理员的“远程控制台”。
工作模型:采用客户端/服务器模型,但术语相反:
管理器:运行在网络管理站上的软件,是“控制端”。
代理:运行在被管理的网络设备(路由器、交换机、服务器等)上的软件,是“被控端”。
基本操作:
Get:管理器向代理查询一个或多个变量的值。
Set:管理器向代理设置一个或多个变量的值(如配置设备)。
Trap:代理主动向管理器报告发生的特定事件(如链路故障、重启)。
2. MIB:管理信息库
角色定位:被管理设备的“信息蓝图”或“数据字典”。
工作原理:
MIB是一个层次化、结构化的数据库,它定义了设备上哪些信息可以被SNMP管理。
每个可被管理的对象(如系统名称、接口状态、流量计数器)都有一个唯一的对象标识符。
SNMP管理器通过OID向代理请求或设置具体的值。
简单来说,SNMP是“问问题”的语言,而MIB是定义了“你能问哪些问题”的目录。
三、NETCONF与YANG:现代网络管理的“黄金组合”
1. NETCONF:网络配置协议
角色定位:SNMP
Set操作的现代化、更强力的替代品,专为配置管理而设计。核心特点:
使用XML进行数据编码。
基于可靠的传输层(如SSH),操作更可靠。
提供清晰的配置数据库划分(运行配置、启动配置、候选配置)。
支持事务性操作,可以执行一系列配置,要么全部成功,要么全部回滚。
2. YANG:数据建模语言
角色定位:NETCONF的“灵魂伴侣”,为NETCONF定义配置数据和状态数据的模型。
核心特点:
它本身不是协议,而是一种语言。
用于定义设备支持哪些配置参数,这些参数的数据类型(如字符串、数字)、约束条件以及它们之间的层次关系。
你可以把它理解为网络设备的 “API接口说明书”。
3. NETCONF + YANG 如何协同工作?
下图直观地展示了NETCONF与YANG在现代网络管理中的分工与协作:

其工作流程是:
管理员或自动化脚本(依据YANG模型)生成一个XML格式的配置文档。
通过NETCONF协议的
<edit-config>操作,将这个配置文档发送给网络设备。设备上的NETCONF服务器根据相同的YANG模型来验证收到的配置数据是否合法。
如果合法,则将其应用到设备的配置中。
简单来说,YANG是“图纸”(定义结构),NETCONF是“运输队和施工队”(安全传输并执行配置)。
总结
ICMP:用于诊断网络连通性和故障。
SNMP/MIB:经典的监控和简单配置组合,擅长读取设备状态和性能数据。
NETCONF/YANG:现代的自动化配置组合,提供更强大、更可靠、更结构化的设备配置能力,是SDN和网络自动化不可或缺的基石。
从SNMP到NETCONF/YANG的演进,反映了网络管理从“只读监控”到“可编程配置”的巨大转变。
