☰
监控和日志的网络协议
2026/9/27 9:02:37 网站建设 项目流程

前言

  • 网络运维离不开两件事:监控要知道设备现在怎么样,日志要知道设备过去发生了什么。前者靠管理站主动查询,后者靠设备主动上报。
  • 围绕这两个需求,常用协议有SNMP(UDP 161/162)、Syslog(UDP 514),以及 NetFlow、NTP 等。其中 SNMP 和 Syslog 最基础,也最容易被混淆。
  • 本文先讲清 SNMP 与 Syslog 的理论区别,再以华为设备为例给出 SNMPv1/v2c/v3 和 Syslog 的配置、验证与排错步骤。一句话记忆:UDP 514 管“日志”,UDP 161 管“管理”。

理论部分

一、UDP 161

1.1 基本定义

  • 所属协议:SNMP 简单网络管理协议
  • 核心功能:网络管理,管理站主动查询或设置设备参数
  • 通信方向:管理站 ⇄ 设备(请求 / 响应,双向)

1.2 工作模式

  • 代表设备上的 SNMP代理(Agent)所监听的端口
  • 管理站向设备的 161 端口发送GetRequest(查询)或SetRequest(设置)命令
  • 设备处理后再返回响应

1.3 补充:UDP 162

  • SNMP 的另一个常用端口
  • 专门用于接收设备主动发送的告警信息(Trap)
  • 可看作 SNMP 体系里的“异步通知”机制

二、UDP 514

2.1 基本定义

  • 所属协议:Syslog 系统日志协议
  • 核心功能:网络日志的集中传输与收集
  • 通信方向:设备 → 日志服务器(单向推送)

2.2 主要用途

  • 集中收集来自服务器、路由器、防火墙等设备的事件通知和日志信息
  • 方便管理员统一监控、排错和安全审计

2.3 支持的设备

支持 UDP 514 日志传输的设备(部分)

设备类型具体型号 / 系列
Dell 交换机S4820T、S6100-ON、Z9100-ON、S4048-ON、S3048-ON、S6000-ON、Z9500、S4810、MXL、S3148、S3100 系列等
Dell SONiC 交换机E3200-ON、N3200-ON、S5200 系列、Z9264F-ON、Z9332F-ON、Z9432F-ON
Extreme NetworksSLX-OS 设备(默认 UDP 514,支持 TLS 6514)
Ubiquiti EdgeRouter所有 EdgeRouter 型号(EdgeOS 固件,端口不可自定义)
Brocade 交换机Brocade 4100 系列(OS v6)已验证
华为交换机S5700、S6700 系列(V200R024C10)
Cisco 安全设备ASA 系列(默认 Syslog 端口)、Secure Firewall 3100/4200/6100
安防对讲设备2N IP 系列(IP 对讲/门禁)

如何确认设备是否支持

  1. 在设备手册中搜索 “Syslog” 或 “logging host”
  2. 在 CLI / Web 界面查看是否有配置日志服务器地址和端口的选项
  3. 若端口默认为 514,通常就支持 UDP 传输

2.4 补充:安全性提醒

  • UDP 无连接、不可靠,网络拥堵时可能丢日志
  • 数据明文传输,缺乏认证,易被窃听或伪造
  • 建议:安全要求高时改用 TCP + TLS(如 RFC 5425),或通过防火墙限制访问来源

三、核心区别与对比

3.1 UDP161 和 UDP514 的区别

特性UDP 161UDP 514
所属协议SNMP(简单网络管理协议)Syslog(系统日志)
核心功能网络管理:管理站主动查询或设置设备参数日志传输:设备主动发送事件和日志信息
通信方向管理站 ⇄ 设备(请求/响应,双向)主要是 设备 → 日志服务器(单向推送)
可靠性同样基于 UDP,但有超时和重传机制默认尽力而为,不保证送达
角色比喻“被询问者”——等待查询并回应“广播员”——主动播报事件

3.1 UDP161 和 UDP162 的区别

UDP是无连接,不需要建立连接,两个端口流量方向相反,这就是能收到Trap、查询超时的根本原因。

端口监听位置流量方向角色用途
UDP 161网络设备(交换机/路由器)网管主机 → 设备设备被动监听端口网管主动查询/修改设备数据:Get / GetNext / GetBulk / Set 👉 你现在超时就是这条流量不通,数据包到不了交换机161端口
UDP 162网管/监控主机设备 → 网管主机网管被动监听端口设备主动上报告警Trap(接口down、配置变更等事件) 交换机主动发包推给网管162端口,不需要网管提前发起请求

一句话记忆:
161:设备被查;162:设备主动发告警。
Trap:交换机出方向流量;SNMP查询:去往交换机入方向流量。ACL/防火墙可以分开控制进出方向,所以会出现单通。


3.2 SNMP v1 / v2c / v3 对比

项目SNMPv1SNMPv2cSNMPv3
认证方式明文团体字community明文团体字community用户名 + 认证 + 加密(无团体字)
报文支持Get、GetNext、Set、Trapv1全部 +Get-Bulk(批量读取)支持Get-Bulk,支持Inform(带确认的告警)
加密❌ 无加密,抓包能看到团体字❌ 无加密,抓包能看到团体字✅ 可选加密(AES/DES),生产推荐
安全等级低低高(企业生产首选)
适用场景老旧设备、简单实验实验室、中小型监控生产环境、安全要求高场景

备注:行业里说的SNMPv2一般指SNMPv2c(带团体字版本),原始SNMPv2几乎不用。

SNMPv3 3种安全级别

  1. noAuthNoPriv:不认证、不加密(仅用户名,测试用,不安全)
  2. authNoPriv:身份认证,报文不加密
  3. authPriv:身份认证 + 报文加密(推荐)

操作部分

一、华为设备配置 snmp-agent

前置前提:全局开启snmp-agent,网络层面放行UDP 161入方向流量,否则无论哪个版本都会查询超时!

1.1 SNMPv1 配置

system-view # 开启SNMP全局开关 snmp-agent # 启用v1版本 snmp-agent sys-info version v1 # 配置只读、读写团体字 snmp-agent community read dumima snmp-agent community write xiemima

验证命令

display snmp-agent sys-info # 查看启用的SNMP版本 display snmp-agent community # 查看团体字 display snmp-agent statistics # 查看收发SNMP报文计数(判断包有没有到达交换机)

网管设置:版本SNMPv1,Read community=dumima,端口161;v1不支持Get-Bulk

1.2 SNMPv2c 配置

推荐实验环境使用。

system-view snmp-agent # 同时开启v1+v2c,兼容更好,也可以只写 version v2c snmp-agent sys-info version v1 v2c # 团体字和v1共用,不用重新创建 snmp-agent community read dumima snmp-agent community write xiemima

验证命令

display snmp-agent sys-info display snmp-agent community display snmp-agent statistics
sudopacman-Snet-snmp snmpwalk-v2c-cdumima192.168.200.1 sysName
SNMPv2-MIB::sysName.0 = STRING: LSW1

网管设置:版本SNMPv2,Read community=dumima,端口161;支持Get-Bulk,默认参数0/10无需修改

1.3 SNMPv3 配置

authPriv 认证+加密,推荐生产环境使用。

system-view snmp-agent snmp-agent sys-info version v3 # 创建MIB视图,开放全部MIB节点 snmp-agent mib-view included iso-view iso # 创建用户组,安全级别privacy(authPriv) snmp-agent group v3 snmp-group privacy read-view iso-view # 创建v3用户 snmp-agent usm-user v3 snmpuser group snmp-group snmp-agent usm-user v3 <用户名> <用户组名> # 旧版本 # 设置认证算法SHA,输入密码≥8位 snmp-agent usm-user v3 snmpuser authentication-mode sha # 设置加密算法AES128,输入加密密码≥8位 snmp-agent usm-user v3 snmpuser privacy-mode aes128

验证命令

display snmp-agent sys-info display snmp-agent usm-user # 查看v3用户 display snmp-agent group v3 # 查看v3用户组 display snmp-agent statistics

网管配置:版本SNMPv3,用户名snmpuser,安全等级authPriv,SHA+AES128,填写认证/加密密码,端口161

1.4 SNMPv3 Trap配置

可选,告警上送网管UDP162

# 替换为你的网管主机IP snmp-agent target-host trap address udp-domain 网管IP udp-port 162 params securityname snmpuser v3 privacy snmp-agent trap enable

1.5 通用排错验证步骤

重点!你当前故障排查流程

  1. display snmp-agent statistics
    • 发包测试后,收到报文计数不变:UDP161报文根本没到达交换机,网络拦截(ACL/接口traffic-filter)
    • 计数上涨:报文到达交换机,排查版本/团体字/v3用户名密码错误
  2. 检查接口ACL:display this interface Vlanif X,看是否存在traffic-filter inbound acl,入方向ACL会拦截访问交换机CPU的UDP161报文
  3. 抓包确认
    • 网管电脑Wireshark:udp.port ==161,看查询报文是否发出
    • 交换机抓包:display capture-packet interface Vlanif X udp port 161,确认报文是否抵达交换机

1.6 常见坑总结

  1. SNMPv1不能使用Get-Bulk,只有v2c/v3支持。
  2. 所有版本的查询请求,都使用UDP 161端口。
  3. Trap使用UDP162,流量方向相反,容易出现单通(能收告警,不能查询)。
  4. SNMPv3修改engine-id会清空所有v3用户,不要随意修改。
  5. v3密码必须≥8字符,否则配置报错。

二、华为设备配置 Syslog

项目内容
设备型号Quidway S5700-28C-HI
软件版本VRP 5.110 (S5700 V200R001C00)
设备主机名LSW1
管理地址192.168.200.1
日志服务器192.168.200.254 (Arch Linux)

该版本属于早期 VRP,部分新命令(如transport tcp、ssl-policy)不支持,配置时需注意向下兼容。

2.1 交换机侧配置

2.1.1 使能信息中心
system-view info-center enable

缺省情况下信息中心是开启的,但建议显式确认。

2.1.2 配置日志主机
info-center loghost 192.168.200.254

注意:不配置local-time参数时,设备发送的日志时间为UTC 时间。如需本地时间,使用info-center loghost 192.168.200.254 local-time。
系统最多可配置 8 个日志主机(IPv4 + IPv6)。

2.1.3 配置日志输出规则(可选)
info-center source default channel 2 log level informational

缺省情况下,向 2 号通道(loghost 方向)输出日志的状态为on,最低级别为informational。如需调整过滤级别,可显式配置。

2.1.4 保存配置
save

2.2 rsyslog服务端配置

本次使用的发行版是ArchLinux

2.2.1. 安装 rsyslog
sudopacman-Srsyslogsudosystemctlenable--nowrsyslog
2.2.2 启用 UDP514 端口监听

编辑/etc/rsyslog.conf,确保以下行未被注释:

module(load="imudp") input(type="imudp" port="514")

CentOS/RHEL 系旧版配置语法为$ModLoad imudp+$UDPServerRun 514。Arch 上使用新版module()/input()语法。

2.2.3 限制可信来源(可选)
$AllowedSender UDP, 192.168.200.0/24

防止日志洪水或伪造攻击,$AllowedSender必须放在输入模块加载之后、规则之前才生效。

2.2.4 重启 rsyslog
sudosystemctl restart rsyslog
2.2.5 查看日志文件

默认远程日志通常写入/var/log/messages或/var/log/syslog:

sudotail-f/var/log/messages

2.3 验证方法

方式一:服务器侧 tcpdump 抓包
sudotcpdump-iany-nport514-Asudotcpdump-iany-nhost192.168.200.1 and port514-A

参数说明:

参数作用
-i any监听所有接口
-n不解析主机名和端口名
-A以 ASCII 形式打印日志正文

预期输出示例:

00:37:31.740584 IP 192.168.200.1.38514 > 192.168.200.254.514: SYSLOG local7.notice, length: 151 E....................r....2.<189>Sep 22 2026 08:37:30 LSW1 %%01SHELL/5/CMDRECORD(l)[11]:Record command information. (Task=VT0 , Ip=192.168.200.254, User=admin, Command="shutdown")

源端口 38514 是华为交换机默认的 Syslog 源端口。

方式二:交换机侧确认

检查日志主机配置:

display info-center

重点确认Log host:字段下是否列出了目标 IP。

查看本地日志缓冲区:

display logbuffer display logbuffer brief

确认交换机本身在记录日志。

方式三:手动触发日志

选一个空闲端口,执行shutdown再undo shutdown,会产生PORT_DOWN/PORT_UP日志:

system-view interface GigabitEthernet0/0/2 shutdown undo shutdown

然后观察 tcpdump 是否捕获到新报文。

2.4 日志格式解读

华为 Syslog 格式:

<优先级> 时间 主机名 模块/级别/事件: 具体描述

以实际抓到的日志为例:

<189>Sep 22 2026 08:37:30 LSW1 %%01SHELL/5/CMDRECORD(l)[11]:Record command information. (Task=VT0 , Ip=192.168.200.254, User=admin, Command="shutdown")
字段含义
<189>Syslog 优先级,数值越小越严重
Sep 22 2026 08:37:30日志时间(注意:未配local-time时为 UTC,比本地时间慢 8 小时)
LSW1设备主机名
%%01SHELL/5/CMDRECORD模块SHELL,级别5(notice),事件CMDRECORD
(l)[11]日志序列号
Task=VT0操作来源(VTY 0 终端)
Ip=192.168.200.254操作来源 IP
User=admin操作用户
Command="shutdown"执行的命令

2.5 常见日志类型速查

模块/事件含义
SHELL/5/CMDRECORD命令审计记录(谁在什么时候执行了什么命令)
DS/4/DATASYNC_CFGCHANGE配置变更通知(每次修改配置触发)
L2IF/6/PORT_DOWN端口状态变为 Down
L2IF/6/PORT_UP端口状态变为 Up

2.6 安全提醒

  1. Syslog 默认走 UDP,无认证、无加密、不保证送达。关键环境建议评估是否支持 TCP 传输(取决于 VRP 版本)。
  2. 限制来源 IP:在 rsyslog 侧配置$AllowedSender,防止日志伪造或洪水攻击。
  3. 时间同步:建议先配置 NTP,确保交换机和日志服务器时间一致,否则日志时间戳难以用于追溯。
  4. 日志轮转:rsyslog 侧配置logrotate,防止日志文件无限增长占满磁盘。

结语

UDP 514 管“日志”,UDP 161 管“管理”
协议本身不复杂,难的是排错时能分清“谁主动、往哪走、被谁拦”。SNMP 查询是管理站去往设备 161 的入方向流量,Trap 是设备去往网管 162 的出方向流量,Syslog 是设备去往服务器 514 的单向推送——方向不同,ACL、防火墙和排错思路就不同。建议在实验环境中先用display snmp-agent statistics和tcpdump把正常流量跑通,再上生产。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询