1. 先建立整体认识
交换机、路由器和防火墙分别解决三个不同问题:
| 设备 | 核心问题 | 主要依据 |
|---|---|---|
| 交换机 | 数据在局域网内应送到哪个端口? | MAC 地址、VLAN |
| 路由器 | 数据应通过哪条路径到达目标网络? | 目标 IP 地址、路由表 |
| 防火墙 | 这条通信是否允许通过? | 安全策略、五元组、会话状态、应用信息 |
一句话概括:
text
交换机负责"接得上";
路由器负责"走得通";
防火墙负责"管得住"。
三者不是简单的上下级关系,而是分别承担局域网接入、跨网络互联和安全控制职责。
2. 先理解数据在网络中如何传输
2.1 帧、数据包和端口号
网络通信在不同层次使用不同标识:
| 层次 | 数据单元 | 关键标识 | 主要设备 |
|---|---|---|---|
| 数据链路层 | 以太网帧 | MAC 地址、VLAN | 交换机 |
| 网络层 | IP 数据包 | IP 地址 | 路由器 |
| 传输层 | TCP 段或 UDP 数据报 | TCP/UDP 端口号 | 操作系统、防火墙 |
| 应用层 | 应用数据 | HTTP、NTRIP、SSH 等协议内容 | 服务器、防火墙、代理设备 |
需要注意:
- MAC 地址用于当前二层链路内的转发;
- IP 地址用于端到端的逻辑寻址;
- TCP/UDP 端口号用于标识主机中的具体服务;
- 交换机、路由器和防火墙处理的是同一份通信数据的不同层次。
2.2 同网段通信
假设两台设备的配置如下:
text
设备 A:192.168.1.10/24
设备 B:192.168.1.20/24
/24 表示 IPv4 地址的前 24 位为网络前缀,对应子网掩码:
text
255.255.255.0
主机判断目标是否与自己在同一网段,可简化表示为:
text
(本机 IP & 子网掩码) == (目标 IP & 子网掩码)
其中:
&表示按位与运算;- 本机 IP 是发送端地址;
- 目标 IP 是接收端地址;
- 子网掩码用于提取网络号。
设备 A 和设备 B 的网络号都是 192.168.1.0,因此属于同一网段。
通信过程是:
- 设备 A 通过 ARP 查询设备 B 的 MAC 地址;
- 设备 A 把目标 MAC 写入以太网帧;
- 交换机根据目标 MAC 地址转发该帧;
- 数据直接到达设备 B,不需要经过默认网关。
2.3 跨网段通信
假设设备 A 要访问:
text
设备 A:192.168.1.10/24
默认网关:192.168.1.1
服务器:192.168.2.20/24
设备 A 判断服务器不在本地网段,因此不会查询服务器的 MAC 地址,而是:
- 通过 ARP 查询默认网关
192.168.1.1的 MAC 地址; - 将以太网帧发送给默认网关;
- 路由器根据目标 IP
192.168.2.20查询路由表; - 路由器把数据转发到服务器所在网络。
此时:
- IP 数据包的目标 IP 始终是最终服务器地址;
- 当前链路中以太网帧的目标 MAC 是下一跳设备的 MAC;
- 每经过一个路由器,二层 MAC 地址通常会重新封装;
- 源 IP 和目标 IP 通常不变,除非执行了 NAT。
IPv4 使用 ARP 获取邻居 MAC 地址;IPv6 使用邻居发现协议 NDP 完成相近功能。
3. 交换机:负责局域网内部通信
3.1 核心角色
普通以太网交换机主要工作在 OSI 模型第 2 层,即数据链路层。
它主要根据:
- 目标 MAC 地址;
- VLAN;
- 端口状态;
决定以太网帧从哪个端口发出。
3.2 MAC 地址学习与转发
交换机收到以太网帧后,会根据源 MAC 地址学习:
text
MAC 地址 → 交换机端口
然后根据目标 MAC 地址执行不同操作:
| 目标类型 | 处理方式 |
|---|---|
| 已知单播 | 只转发到对应端口 |
| 未知单播 | 在同一 VLAN 内泛洪 |
| 广播 | 在同一 VLAN 内泛洪 |
| 组播 | 根据组播表转发;未配置时可能按泛洪处理 |
动态 MAC 表项通常会在一段时间未使用后老化。
交换机根据源 MAC 学习,根据目标 MAC 转发。
3.3 交换机的主要功能
3.3.1 设备接入和端口扩展
交换机可以连接:
- 电脑;
- 服务器;
- GNSS 接收机;
- 工控机;
- 网络摄像头;
- 无线 AP;
- 打印机和其他以太网设备。
3.3.2 VLAN 划分
VLAN 可以在一台物理交换机上划分多个逻辑二层网络。
| VLAN | 使用示例 |
|---|---|
| VLAN 10 | 办公网 |
| VLAN 20 | GNSS 设备网 |
| VLAN 30 | 服务器网 |
| VLAN 40 | 运维管理网 |
一个 VLAN 通常对应一个广播域。不同 VLAN 默认不能直接进行二层通信,需要路由器、三层交换机或防火墙完成三层转发。
常见端口类型:
- Access 端口:通常连接普通终端,承载一个业务 VLAN;
- Trunk 端口:通常连接交换机、路由器、防火墙或虚拟化服务器,可承载多个 VLAN。
3.3.3 防止二层环路
二层环路可能导致:
- 广播风暴;
- MAC 地址表反复变化;
- 网络拥塞甚至瘫痪。
常见保护协议包括:
- STP;
- RSTP;
- MSTP。
3.3.4 链路聚合
LACP 可以把多条物理链路组合成一条逻辑链路,用于:
- 提高链路总带宽;
- 提供链路冗余;
- 降低单链路故障影响。
单条通信流通常由哈希算法分配到某一条成员链路,不一定能同时占用全部成员链路带宽。
3.3.5 其他常见功能
可管理交换机还可能支持:
- QoS;
- PoE 供电;
- 端口镜像;
- 802.1X 接入认证;
- 端口安全;
- DHCP Snooping;
- 动态 ARP 检测;
- SNMP 管理。
这些功能可以增强接入控制和运维能力,但不能完全替代专业防火墙。
3.4 交换机能做什么,不能做什么
交换机擅长:
- 同一 VLAN 内高速转发;
- 扩展网络端口;
- 划分 VLAN;
- 管理局域网接入。
普通二层交换机通常不能独立完成:
- 不同 IP 网段之间的路由;
- 互联网出口选择;
- NAT;
- 完整的状态安全检测。
在全双工以太网中,一般不会发生传统共享介质中的碰撞,因此现代交换网络中"冲突域"概念的重要性已经明显降低。
4. 路由器:负责不同 IP 网络之间通信
4.1 核心角色
路由器主要工作在 OSI 模型第 3 层,即网络层。
它的核心任务是:
根据目标 IP 地址查询路由表,选择出接口和下一跳。
默认网关本质上就是终端用于访问其他网络的三层转发节点。它可以由以下设备承担:
- 路由器;
- 三层交换机;
- 防火墙;
- 软件路由主机。
4.2 路由器如何转发数据包
IPv4 路由器收到数据包后,典型处理过程如下:
- 解析收到的二层帧;
- 读取目标 IP 地址;
- 查询路由表;
- 按最长前缀匹配选择最具体的路由;
- 将 TTL 减 1;
- 确定出接口和下一跳;
- 获取下一跳 MAC 地址;
- 重新封装二层帧并发送。
IPv6 中与 TTL 对应的字段称为 Hop Limit。
例如,路由表中同时存在:
text
192.168.0.0/16 → 下一跳 A
192.168.1.0/24 → 下一跳 B
访问 192.168.1.20 时,路由器选择更具体的 /24 路由,即下一跳 B。
4.3 路由表中的常见路由
直连路由
设备接口配置 IP 地址并启用后,系统自动得到相应网段的路由。
静态路由
由管理员手工配置目标网段和下一跳。
适合:
- 网络规模较小;
- 网络拓扑稳定;
- 路径关系简单。
动态路由
路由器通过路由协议自动学习和更新路径。
常见协议包括:
- OSPF;
- IS-IS;
- BGP。
动态路由的主要价值是自动适应网络变化,并不意味着路径一定比静态路由更短或更快。
默认路由
当路由表中没有更具体的匹配项时,使用默认路由:
text
IPv4:0.0.0.0/0
IPv6:::/0
4.4 NAT 是地址转换,不是路由本身
NAT 用于修改 IP 地址,有时还会修改端口号。
| 类型 | 作用 |
|---|---|
| SNAT | 修改源地址,常用于内网访问外网 |
| DNAT | 修改目标地址,常用于将外部访问映射到内部服务器 |
| PAT/NAPT | 利用不同端口,让多个连接共享一个公网 IPv4 地址 |
| 端口映射 | 把公网地址和端口映射到内部服务器地址和端口 |
需要明确:
- 路由负责决定数据往哪里走;
- NAT 负责修改地址或端口;
- 防火墙负责决定通信是否允许;
- 三者经常部署在同一设备上,但概念不同。
访问互联网并不一定必须使用 NAT:
- 私有 IPv4 地址访问公网时通常需要 NAT;
- 设备使用可路由公网地址时可以不做 NAT;
- IPv6 通常可以直接使用全球单播地址通信。
NAT 不能等同于安全防护。对外发布服务时,即使配置了 DNAT 或端口映射,也必须配置访问控制和主机安全策略。
4.5 路由器的其他常见功能
许多路由器还支持:
- DHCP;
- DNS 转发;
- ACL;
- NAT;
- QoS;
- VPN;
- 多 WAN 接入;
- 链路探测和故障切换。
这些是常见集成功能,路由器的核心职责仍然是跨网络转发和路径选择。
4.6 VPN 与普通隧道的区别
常见技术包括:
- IPsec;
- TLS/SSL VPN;
- WireGuard;
- GRE;
- L2TP。
需要区分:
- IPsec、TLS 和 WireGuard 可以提供加密与完整性保护;
- GRE 是隧道封装,本身不提供加密;
- L2TP 本身通常不提供足够的加密能力,常与 IPsec 配合使用。
因此:
建立了隧道,不等于数据已经加密。
5. 防火墙:负责访问控制和安全隔离
5.1 核心角色
防火墙通常部署在不同安全区域之间,例如:
- 内部网络与互联网之间;
- 办公网与生产网之间;
- 接入区与服务器区之间;
- DMZ 与核心网络之间。
它主要回答:
哪个源可以使用什么协议,访问哪个目标和服务?
5.2 五元组和会话状态
防火墙常根据以下五项识别一条通信流:
text
源 IP
目标 IP
源端口
目标端口
传输层协议
这五项合称五元组。
例如:
text
源 IP:192.168.20.10
目标 IP:203.0.113.10
源端口:51836
目标端口:2101
协议:TCP
其中 203.0.113.10 属于文档示例地址,不代表真实服务器。
状态防火墙会维护会话表:
- TCP:可以跟踪连接建立、传输和关闭状态;
- UDP:虽然协议本身无连接,防火墙仍可根据双向流量和超时时间维护逻辑会话。
5.3 防火墙的主要能力
5.3.1 包过滤
根据以下条件允许或拒绝流量:
- 源 IP;
- 目标 IP;
- 协议;
- 源端口;
- 目标端口;
- 接口或安全区域。
5.3.2 状态检测
识别返回报文是否属于已经允许的连接,避免每个方向都只做孤立判断。
5.3.3 应用和威胁检测
下一代防火墙还可能支持:
- 应用识别;
- IPS 入侵防御;
- URL 过滤;
- 恶意文件检测;
- 用户身份识别;
- DNS 安全;
- TLS 流量检查。
TLS 检查涉及解密、证书部署、隐私、合规和性能开销,不能简单理解为防火墙可以直接看懂所有加密流量。
5.3.4 NAT、VPN 和日志
许多防火墙还可以承担:
- NAT;
- 端口映射;
- VPN 网关;
- 日志审计;
- 告警;
- 带宽管理;
- 双机热备。
这些附加能力不改变防火墙的核心定位:执行安全策略。
5.4 安全区域和最小权限
常见安全区域包括:
| 区域 | 典型用途 |
|---|---|
| Trust | 内部可信网络 |
| Untrust | 互联网等不可信网络 |
| DMZ | 对外提供服务的隔离区 |
| Server | 内部服务器区 |
| Management | 运维管理区 |
一条安全策略通常需要说明:
- 源区域和源地址;
- 目标区域和目标地址;
- 服务或应用;
- 允许或拒绝;
- 是否记录日志;
- 是否启用安全检测。
推荐原则:
text
默认拒绝、按需放行、最小权限、定期审计。
5.5 路由模式与透明模式
路由模式
防火墙接口配置三层 IP 地址,可以同时承担:
- 网关;
- 路由;
- NAT;
- 安全控制。
透明模式
防火墙以二层桥接方式串接在链路中,通常不需要大幅调整原有 IP 地址规划。
透明模式下,防火墙不一定承担默认网关角色,也不一定隔离原有广播域。
6. 三者之间是什么关系
6.1 分工关系
| 通信阶段 | 主要设备 | 主要动作 |
|---|---|---|
| 终端接入局域网 | 交换机 | 学习 MAC,转发帧 |
| 数据跨越不同网段 | 路由器或三层设备 | 查询路由,选择下一跳 |
| 数据跨越安全边界 | 防火墙 | 匹配策略,维护会话,记录日志 |
一台物理设备可能同时承担多个角色。例如:
- 家用无线路由器通常集成交换机、路由、NAT、DHCP、无线 AP 和基础防火墙;
- 三层交换机同时具备二层交换和三层路由能力;
- 企业防火墙可以同时承担路由、NAT 和 VPN 网关功能。
因此,应根据设备实际配置判断其角色,不能只看设备名称。
6.2 一次完整的 GNSS 数据通信
假设 GNSS 终端访问一个 NTRIP Caster:
text
GNSS 终端:192.168.20.10/24
默认网关:192.168.20.1
NTRIP Caster:203.0.113.10:2101
传输协议:TCP
典型拓扑:
#mermaid-svg-QP5h22wVHxihdB9F{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-QP5h22wVHxihdB9F .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-QP5h22wVHxihdB9F .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-QP5h22wVHxihdB9F .error-icon{fill:#552222;}#mermaid-svg-QP5h22wVHxihdB9F .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-QP5h22wVHxihdB9F .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-QP5h22wVHxihdB9F .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-QP5h22wVHxihdB9F .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-QP5h22wVHxihdB9F .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-QP5h22wVHxihdB9F .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-QP5h22wVHxihdB9F .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-QP5h22wVHxihdB9F .marker{fill:#333333;stroke:#333333;}#mermaid-svg-QP5h22wVHxihdB9F .marker.cross{stroke:#333333;}#mermaid-svg-QP5h22wVHxihdB9F svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-QP5h22wVHxihdB9F p{margin:0;}#mermaid-svg-QP5h22wVHxihdB9F .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-QP5h22wVHxihdB9F .cluster-label text{fill:#333;}#mermaid-svg-QP5h22wVHxihdB9F .cluster-label span{color:#333;}#mermaid-svg-QP5h22wVHxihdB9F .cluster-label span p{background-color:transparent;}#mermaid-svg-QP5h22wVHxihdB9F .label text,#mermaid-svg-QP5h22wVHxihdB9F span{fill:#333;color:#333;}#mermaid-svg-QP5h22wVHxihdB9F .node rect,#mermaid-svg-QP5h22wVHxihdB9F .node circle,#mermaid-svg-QP5h22wVHxihdB9F .node ellipse,#mermaid-svg-QP5h22wVHxihdB9F .node polygon,#mermaid-svg-QP5h22wVHxihdB9F .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-QP5h22wVHxihdB9F .rough-node .label text,#mermaid-svg-QP5h22wVHxihdB9F .node .label text,#mermaid-svg-QP5h22wVHxihdB9F .image-shape .label,#mermaid-svg-QP5h22wVHxihdB9F .icon-shape .label{text-anchor:middle;}#mermaid-svg-QP5h22wVHxihdB9F .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-QP5h22wVHxihdB9F .rough-node .label,#mermaid-svg-QP5h22wVHxihdB9F .node .label,#mermaid-svg-QP5h22wVHxihdB9F .image-shape .label,#mermaid-svg-QP5h22wVHxihdB9F .icon-shape .label{text-align:center;}#mermaid-svg-QP5h22wVHxihdB9F .node.clickable{cursor:pointer;}#mermaid-svg-QP5h22wVHxihdB9F .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-QP5h22wVHxihdB9F .arrowheadPath{fill:#333333;}#mermaid-svg-QP5h22wVHxihdB9F .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-QP5h22wVHxihdB9F .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-QP5h22wVHxihdB9F .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-QP5h22wVHxihdB9F .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-QP5h22wVHxihdB9F .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-QP5h22wVHxihdB9F .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-QP5h22wVHxihdB9F .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-QP5h22wVHxihdB9F .cluster text{fill:#333;}#mermaid-svg-QP5h22wVHxihdB9F .cluster span{color:#333;}#mermaid-svg-QP5h22wVHxihdB9F div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-QP5h22wVHxihdB9F .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-QP5h22wVHxihdB9F rect.text{fill:none;stroke-width:0;}#mermaid-svg-QP5h22wVHxihdB9F .icon-shape,#mermaid-svg-QP5h22wVHxihdB9F .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-QP5h22wVHxihdB9F .icon-shape p,#mermaid-svg-QP5h22wVHxihdB9F .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-QP5h22wVHxihdB9F .icon-shape .label rect,#mermaid-svg-QP5h22wVHxihdB9F .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-QP5h22wVHxihdB9F .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-QP5h22wVHxihdB9F .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-QP5h22wVHxihdB9F :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} GNSS终端
192.168.20.10/24
交换机
三层网关
防火墙
互联网或专网
NTRIP Caster
示例地址 203.0.113.10:2101
通信过程:
- GNSS 终端判断 Caster 不在本地网段;
- 终端查询默认网关的 MAC 地址;
- 交换机把帧转发到网关端口;
- 网关查询路由表,选择出口;
- 防火墙检查 TCP 2101 端口、源和目标地址、会话状态及安全策略;
- 如果终端使用私有 IPv4 地址,出口设备通常执行 SNAT/PAT;
- 数据到达 NTRIP Caster;
- 返回流量根据路由返回,并匹配防火墙中已有会话。
三层网关和防火墙可以是两台设备,也可以由同一台防火墙承担。
6.3 部署顺序没有唯一答案
常见企业网络可以是:
text
互联网
↓
边界路由器
↓
防火墙
↓
核心三层交换机
↓
接入交换机
↓
终端
也可以是:
text
互联网
↓
防火墙(同时承担边界路由)
↓
核心交换机
↓
接入交换机
设备顺序取决于:
- 运营商接入方式;
- 路由协议;
- NAT 部署位置;
- 安全区域设计;
- 设备性能和冗余要求。
因此,"路由器必须在防火墙前面"或"防火墙必须在路由器前面"都不是普遍规律。
7. 三者的核心区别
| 对比项 | 交换机 | 路由器 | 防火墙 |
|---|---|---|---|
| 核心职责 | 局域网接入和二层转发 | 不同网络之间互联 | 安全区域之间访问控制 |
| 主要依据 | MAC 地址、VLAN | 目标 IP、路由表 | 五元组、会话状态、安全策略、应用 |
| 典型工作层次 | 第 2 层 | 第 3 层 | 第 3~7 层,部分支持二层透明模式 |
| 是否隔离广播域 | 通过 VLAN 划分 | 通常可以 | 路由模式通常可以,透明模式不一定 |
| 是否执行路由 | 二层交换机不执行 | 核心功能 | 可以支持 |
| 是否支持 NAT | 普通二层交换机通常不支持 | 很多型号支持 | 很多型号支持 |
| 安全控制能力 | 基础接入控制 | 通常是基础 ACL | 状态检测和深度安全策略 |
| 典型位置 | 接入层、汇聚层 | WAN 边界、网段之间 | 互联网出口、DMZ、内部安全边界 |
8. 容易混淆的设备和概念
8.1 二层交换机与三层交换机
| 对比项 | 二层交换机 | 三层交换机 |
|---|---|---|
| 主要转发依据 | MAC 地址 | MAC 地址和 IP 地址 |
| 同 VLAN 转发 | 支持 | 支持 |
| VLAN 间路由 | 通常不支持 | 支持 |
| 典型位置 | 接入层 | 汇聚层、核心层 |
三层交换机适合园区网内部高速转发,但通常不具备专业防火墙完整的威胁检测能力。
8.2 路由器与三层交换机
两者都可以进行三层转发,但侧重点不同:
- 路由器更关注 WAN 接入、复杂路由、多运营商和 VPN;
- 三层交换机更关注园区网内部高速以太网转发。
具体能力取决于设备型号,不能只凭名称判断。
8.3 ACL 与防火墙策略
传统 ACL 通常根据地址、协议和端口进行无状态匹配。
专业防火墙通常还具备:
- 会话跟踪;
- 安全区域;
- 用户和应用识别;
- 内容安全检测;
- 日志审计。
部分路由器和交换机也支持状态 ACL,因此"ACL 一定无状态"并不是绝对结论。
8.4 NAT 与防火墙
- NAT 修改地址或端口;
- 防火墙决定是否允许通信;
- NAT 可能隐藏内部地址结构,但不是完整安全机制;
- 配置端口映射后,仍需配置安全策略和主机防护。
8.5 无线 AP 与无线路由器
- 无线 AP 主要把无线终端桥接到有线局域网;
- 无线路由器通常集成 AP、交换、路由、NAT、DHCP 和基础防火墙。
8.6 光猫或 ONU 与路由器
光猫或 ONU 主要负责接入运营商光纤网络和完成光电转换。
常见模式:
- 桥接模式:后级路由器建立公网连接;
- 路由模式:ONU 自身承担部分路由、NAT 和 DHCP 功能。
因此,应根据实际工作模式判断 ONU 是否承担路由角色。
9. GNSS 工程中的典型场景
9.1 GNSS 远程测站
#mermaid-svg-tmXNodDdELgpjIqg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-tmXNodDdELgpjIqg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tmXNodDdELgpjIqg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tmXNodDdELgpjIqg .error-icon{fill:#552222;}#mermaid-svg-tmXNodDdELgpjIqg .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tmXNodDdELgpjIqg .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tmXNodDdELgpjIqg .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tmXNodDdELgpjIqg .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tmXNodDdELgpjIqg .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tmXNodDdELgpjIqg .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tmXNodDdELgpjIqg .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tmXNodDdELgpjIqg .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tmXNodDdELgpjIqg .marker.cross{stroke:#333333;}#mermaid-svg-tmXNodDdELgpjIqg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tmXNodDdELgpjIqg p{margin:0;}#mermaid-svg-tmXNodDdELgpjIqg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-tmXNodDdELgpjIqg .cluster-label text{fill:#333;}#mermaid-svg-tmXNodDdELgpjIqg .cluster-label span{color:#333;}#mermaid-svg-tmXNodDdELgpjIqg .cluster-label span p{background-color:transparent;}#mermaid-svg-tmXNodDdELgpjIqg .label text,#mermaid-svg-tmXNodDdELgpjIqg span{fill:#333;color:#333;}#mermaid-svg-tmXNodDdELgpjIqg .node rect,#mermaid-svg-tmXNodDdELgpjIqg .node circle,#mermaid-svg-tmXNodDdELgpjIqg .node ellipse,#mermaid-svg-tmXNodDdELgpjIqg .node polygon,#mermaid-svg-tmXNodDdELgpjIqg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tmXNodDdELgpjIqg .rough-node .label text,#mermaid-svg-tmXNodDdELgpjIqg .node .label text,#mermaid-svg-tmXNodDdELgpjIqg .image-shape .label,#mermaid-svg-tmXNodDdELgpjIqg .icon-shape .label{text-anchor:middle;}#mermaid-svg-tmXNodDdELgpjIqg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tmXNodDdELgpjIqg .rough-node .label,#mermaid-svg-tmXNodDdELgpjIqg .node .label,#mermaid-svg-tmXNodDdELgpjIqg .image-shape .label,#mermaid-svg-tmXNodDdELgpjIqg .icon-shape .label{text-align:center;}#mermaid-svg-tmXNodDdELgpjIqg .node.clickable{cursor:pointer;}#mermaid-svg-tmXNodDdELgpjIqg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tmXNodDdELgpjIqg .arrowheadPath{fill:#333333;}#mermaid-svg-tmXNodDdELgpjIqg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tmXNodDdELgpjIqg .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tmXNodDdELgpjIqg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tmXNodDdELgpjIqg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tmXNodDdELgpjIqg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tmXNodDdELgpjIqg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tmXNodDdELgpjIqg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tmXNodDdELgpjIqg .cluster text{fill:#333;}#mermaid-svg-tmXNodDdELgpjIqg .cluster span{color:#333;}#mermaid-svg-tmXNodDdELgpjIqg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tmXNodDdELgpjIqg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tmXNodDdELgpjIqg rect.text{fill:none;stroke-width:0;}#mermaid-svg-tmXNodDdELgpjIqg .icon-shape,#mermaid-svg-tmXNodDdELgpjIqg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tmXNodDdELgpjIqg .icon-shape p,#mermaid-svg-tmXNodDdELgpjIqg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tmXNodDdELgpjIqg .icon-shape .label rect,#mermaid-svg-tmXNodDdELgpjIqg .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tmXNodDdELgpjIqg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tmXNodDdELgpjIqg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tmXNodDdELgpjIqg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} GNSS接收机
工控机
远程电源控制器
工业交换机
4G/5G工业路由器
运营商网络
专网或加密VPN
数据中心防火墙
数据接入服务器
各设备职责:
- 工业交换机:连接测站内部设备;
- 4G/5G 路由器:负责蜂窝网络接入和路由;
- VPN:保护测站到中心的数据链路;
- 数据中心防火墙:限制测站只能访问指定服务器和端口。
移动运营商网络可能采用 CGNAT,测站通常不能直接通过公网 IPv4 被访问。常见解决方式包括:
- 测站主动建立 VPN;
- 专用 APN;
- 云端中继;
- IPv6;
- 运营商专网。
9.2 GNSS/CORS 数据中心
数据中心可以划分为:
- 测站接入区;
- 实时数据处理区;
- 产品生成区;
- 数据库区;
- NTRIP 服务区;
- 运维管理区;
- DMZ。
建议遵循:
- 测站只访问必要的接入服务;
- 对外服务不直接访问核心数据库;
- 数据库只接受授权服务器访问;
- 运维访问通过 VPN、堡垒机和身份认证;
- 关键设备和链路考虑冗余;
- 防火墙策略能够关联到具体业务。
9.3 GNSS 终端访问 NTRIP Caster
排查重点包括:
- 终端 IP、掩码和默认网关是否正确;
- DNS 是否可用;
- 路由是否存在;
- 防火墙是否允许目标地址和端口;
- NAT 是否正常;
- Caster 地址和端口是否正确;
- 用户名、密码和挂载点是否正确;
- 服务端连接数和授权是否达到上限。
NTRIP 常使用 TCP,端口 2101 是常见默认值,但实际端口可以由服务端配置。
10. 如何根据场景选择设备
| 场景 | 建议设备 |
|---|---|
| 同一网段多台设备互联 | 交换机 |
| 划分多个 VLAN | 可管理交换机 |
| 不同网段互通 | 路由器、三层交换机或路由模式防火墙 |
| 局域网访问互联网 | 路由器或具备路由功能的防火墙 |
| 对不同区域实施严格访问控制 | 专业防火墙 |
| 远程 GNSS 测站接入 | 工业交换机 + 4G/5G 工业路由器 + VPN |
| 对外发布 NTRIP、Web 或 API 服务 | 路由/NAT + 防火墙 + 主机安全 |
| 小型家庭网络 | 一体化无线路由器通常即可 |
大型网络通常采用分层设计:
text
接入交换机
↓
核心或汇聚三层设备
↓
防火墙
↓
互联网或专网
11. 分层故障排查方法
当 GNSS 设备无法访问服务器时,应从底层向上排查。
11.1 物理层
检查:
- 设备是否上电;
- 网线、光纤和光模块是否正常;
- 端口指示灯是否正常;
- 端口速率和双工是否协商成功;
- 4G/5G 信号和 SIM 卡状态是否正常。
11.2 二层交换
检查:
- 交换机是否学习到设备 MAC 地址;
- 端口是否属于正确 VLAN;
- Trunk 是否允许对应 VLAN;
- 是否存在环路;
- ARP 或邻居表是否正常;
- 是否触发端口安全或接入认证限制。
Linux:
bash
ip link
ip neigh
Windows:
powershell
getmac
arp -a
11.3 IP 和路由
检查:
- IP 地址;
- 子网掩码或前缀长度;
- 默认网关;
- DNS;
- 本机路由表;
- 中间设备路由;
- 返回路由;
- 是否存在 IP 地址冲突。
Linux:
bash
ip addr
ip route
ping <网关地址>
traceroute <服务器地址>
Windows:
powershell
ipconfig /all
route print
ping <网关地址>
tracert <服务器地址>
ping 或 traceroute 失败不一定表示业务完全不可达,因为网络设备可能过滤 ICMP。
11.4 防火墙和 NAT
检查:
- 安全策略是否放行;
- TCP/UDP 端口是否正确;
- NAT 前后地址是否符合预期;
- 防火墙是否建立会话;
- 是否存在非对称路由;
- 服务器本机防火墙是否放行;
- 蜂窝网络是否处于 CGNAT 后面。
Linux:
bash
nc -vz <服务器IP> <TCP端口>
curl -v http://<服务器IP>:<端口>
tcpdump -ni any host <服务器IP>
Windows:
powershell
Test-NetConnection <服务器IP> -Port <TCP端口>
TCP 端口测试成功不代表应用协议一定正确。UDP 没有连接握手,通常更依赖抓包和服务端日志。
11.5 应用层
检查:
- 服务进程是否启动;
- 服务监听地址和端口是否正确;
- 用户名、密码和挂载点是否正确;
- 客户端与服务端协议是否兼容;
- TLS 证书和系统时间是否正常;
- 服务端是否触发连接数、授权或限流;
- 应用日志中是否存在认证或协议错误。
12. 工程选型关注点
12.1 交换机
关注:
- 端口数量和速率;
- 交换容量和包转发率;
- VLAN、STP 和 LACP;
- PoE 标准和功率预算;
- 工业温度;
- 冗余电源;
- SNMP 和日志;
- 光口及光模块兼容性。
12.2 路由器
关注:
- WAN 接口类型;
- IPv4/IPv6;
- 路由吞吐量;
- NAT 会话数;
- VPN 加密吞吐量;
- 双 SIM 或双 WAN;
- 动态路由;
- 远程管理;
- 工业环境适应性。
12.3 防火墙
关注:
- 基础防火墙吞吐量;
- 开启 IPS 后的实际吞吐量;
- 并发会话数;
- 每秒新建连接数;
- VPN 性能;
- 策略规模;
- 日志审计;
- 高可用;
- TLS 检查性能;
- 授权订阅和特征库更新。
选型时不能只看宣传中的最大吞吐量,应确认该指标是否在开启实际所需功能后仍能满足业务需求。
13. 常见误区
13.1 交换机可以让设备自动访问互联网
不准确。交换机只负责局域网连接,访问互联网还需要网关、路由和出口;私有 IPv4 地址通常还需要 NAT。
13.2 路由器一定比交换机高级
不准确。两者职责不同:交换机负责局域网内部转发,路由器负责不同网络之间互联。
13.3 NAT 就是防火墙
不准确。NAT 负责地址转换,防火墙负责安全控制。
13.4 有路由器就不需要防火墙
不准确。路由器 ACL 可以进行基础过滤,但生产网络通常还需要状态检测、区域隔离、应用识别和日志审计。
13.5 不同 VLAN 接在同一交换机上就能直接通信
不准确。不同 VLAN 默认属于不同广播域,需要三层网关转发。
13.6 防火墙可以阻止所有攻击
不准确。安全还需要身份认证、最小权限、主机加固、漏洞修复、应用安全、日志监控和数据备份。
13.7 能 ping 通就说明应用正常
不准确。ping 只验证 ICMP 通信的一部分,不能证明 TCP、UDP、DNS、TLS、认证和应用协议正常。
14. 总结
交换机、路由器和防火墙的分工可以归纳为:
| 设备 | 最核心的问题 |
|---|---|
| 交换机 | 以太网帧应发往哪个端口? |
| 路由器 | IP 数据包应走哪个接口和下一跳? |
| 防火墙 | 这条通信是否符合安全策略? |
在实际工程中,一台设备可能同时承担多个功能,因此设计、配置和排障时,应先确认设备承担的实际角色,而不是只根据设备名称下结论。