应用层固定组播地址
很多局域网服务不靠配置发现对方,而是约定一组固定组播地址与端口:时间同步、局域网名称解析、设备发现都走这条路。终端加入这些组之后,同一网段内的设备能彼此看见,不需要任何中心服务器。这类地址在标准里是固定的,不同厂商的实现都必须遵守。
为什么跨网段会失效
组播默认只在本网段内转发,路由器不会主动跨网段传播除非显式配置。于是同一栋楼的打印机可见、隔壁楼不可见,就成了极常见的现象。遇到“设备发现不了”的问题,先分清楚是网络不通还是组播没有跨网段,两者的排查路径完全不同。
基本信息
| 时间同步组 | 224.0.1.1 |
|---|---|
| 局域网名称解析组 | 224.0.0.251,端口 5353 |
| 本段名称解析组 | 224.0.0.252,端口 5355 |
| 设备发现组 | 239.255.255.250,端口 1900 |
| 共性与约束 | 均不跨网段,需要专门的网关或代理才能传递 |
典型使用场景
- 排查设备发现失败:打印机、投屏、智能音箱找不到时先确认所在网段是否允许组播
- 时间同步验证:局域网内以组播方式分发时间时,确认组地址与端口是否被策略放行
- 名称解析调优:局域网内主机名解析走组播,禁用后只能依赖集中式解析服务
- 访客网络设计:出于隔离考虑通常会阻断组播,代价是访客无法发现本地设备
- 抓包分析:在固定端口上抓包,一眼看出是查询没发出、还是应答没回来
- 跨网段方案评估:需要在多个网段内发现设备时,评估部署组播网关或代理的成本
Linux 侧验证局域网名称解析
Linux 侧验证局域网名称解析
avahi-resolve -n hostname.local # 能解析说明组播解析可用
tcpdump -ni any udp port 5353 # 观察组播查询与应答
tcpdump -ni any udp port 1900 # 观察设备发现流量
tcpdump -ni any udp port 5355 # 观察本段名称解析常见应用组地址
| 组地址与端口 | 协议 | 用途 |
|---|---|---|
| 224.0.1.1 | 时间同步 | 局域网时间分发 |
| 224.0.0.251:5353 | 局域网名称解析 | 主机名到地址 |
| 224.0.0.252:5355 | 本段名称解析 | 同网段主机名查询 |
| 239.255.255.250:1900 | 设备发现 | 设备与服务的描述获取 |
| 224.0.0.1 | 全部主机 | 本网段所有主机 |
企业网络禁用组播时,打印设备发现、跨平台投屏都会失效;这与“网络不通”是两类问题,前者需要调整组播策略或部署代理,后者才需要查路由与链路。
不要把名称解析端口当成扫描行为一律封禁:封掉它能阻断攻击面,但同时会打断正常的局域网名称解析与设备发现,需要按业务权衡后再决定。