zserv 是什么
346 号 TCP/UDP 的 IANA 登记名是 zserv,全称 Zebra server,对应 GNU Zebra 与 FRR 这类开源路由软件的内部接口。这套软件把功能拆成多个守护进程:ospfd、bgpd 等协议守护进程不直接写内核路由表,而是通过 zserv 把路由信息交给 zebra 统一处理,再由 zebra 落实到内核。
基本信息
| 服务名 | zserv(Zebra server) |
|---|---|
| 端口 | 346(TCP 与 UDP 同名登记) |
| 软件 | GNU Zebra / FRR |
| 用途 | 路由守护进程之间的内部通信接口 |
| 部署特点 | 通常仅在本机监听 |
典型使用场景
- 软路由运维:在 Linux 上跑 FRR 承载 BGP/OSPF 时的内部通信
- 排障:协议邻居正常但路由不入表时确认 zebra 与协议守护进程是否连通
- 安全核查:确认 346 仅监听本机,未暴露给其他主机
- 改造评估:把软路由方案与专用设备方案做对比
- 故障恢复:守护进程崩溃后确认路由表是否被正确清理
查看本机谁在监听 zserv
查看本机谁在监听 zserv
ss -ltnp | grep ':346 ' # 346 监听与对应进程
ss -ltnp | grep -E 'ospfd|bgpd|zebra' # 按进程名核对协议守护进程
vtysh -c 'show ip route' 2>/dev/null | head -10 # 查 FRR 当前路由表
systemctl status frr 2>/dev/null | head -10 # 服务整体状态
ip route | head -10 # 与内核路由表对照软路由组件分工
| 组件 | 职责 | 排查要点 |
|---|---|---|
| zebra | 汇总路由并写入内核 | 路由不入表先看它是否在运行 |
| ospfd / bgpd 等 | 运行具体路由协议 | 邻居状态与协议日志 |
| zserv 接口 | 守护进程之间传递路由 | 通常仅本机监听,关注异常外联 |
| 内核路由表 | 最终生效的转发依据 | 与 FRR 视图对照是否一致 |
zserv 一般只在本机监听,属于典型的内部接口。如果发现它绑在可达地址上并允许其他主机连接,说明配置偏离了默认形态,应确认是否存在自研改动或额外组件依赖。
排查「邻居建立成功但路由不生效」时,先确认协议守护进程与 zebra 之间是否正常通信,再看协议一侧是否真的产生了路由条目,最后核对内核路由表。分层验证比反复重启服务有效。
软路由方案的优势在于配置自动化与可编程性,代价是需要自行负责高可用与升级节奏。生产环境使用时应把进程监控、配置版本管理与回滚流程一起纳入方案设计。