模块三 · 网络层:数据平面
SDN 与中间盒
路由器、防火墙与NAT的一些动作怎样用同一抽象描述?控制规则怎样形成,中间功能又怎样影响观测?先讲分工,再比较架构。
本章要解决的问题:路由器、防火墙与NAT的一些动作怎样用同一抽象描述?控制规则怎样形成,中间功能又怎样影响观测?先讲分工,再比较架构。
本章的证据来源:教材§4.4–4.5、§5.1。旧稿防火墙计数、代理和路由输出为历史转述,本次未重新采集,不能把推测的代理因果当作已确认事实。
先从一个例子理解概念
一个包到达设备:路由规则可能让它从出口A出去,防火墙规则可能丢弃它,NAT规则可能改写地址。这些动作不同,但都可以问“满足什么条件时,做什么”。
匹配与动作
匹配是检查目的地址、协议、端口或状态等条件;动作是转发、丢弃、改写等操作。“匹配+动作”是理解一些处理功能的抽象,不证明设备内部有相同物理结构。
数据平面与控制平面
数据平面执行当前包的处理;控制平面形成和更新规则。更新可能来自拓扑、策略、协议状态等变化,不只在拓扑改变时发生,也没有统一的纳秒/毫秒实现界线。
用一张表比较功能
| 功能 | 匹配例子 | 动作例子 |
|---|---|---|
| IP转发 | 目的地址前缀 | 选择出口和下一跳 |
| 防火墙 | 协议、端口、方向或连接状态 | 允许或丢弃 |
| NAT | 转换方向、地址端口及映射状态 | 改写相关字段并维护映射 |
真实机制还可能依赖状态、处理顺序和其他数据;不能把这张教学表当成完整实现。最长前缀匹配也可用不同软硬件方案,不要求所有设备必须使用TCAM。
分布式控制与SDN
传统路由控制常由各设备运行协议并形成自身转发信息。它不等于“各设备不知道拓扑”:OSPF等链路状态协议可让路由器取得其范围内的拓扑图。
SDN(软件定义网络)强调控制与转发的分离、可编程接口及相应抽象。教材常用逻辑集中控制器统一形成策略、向设备下发规则的模型来解释。
控制应用 → 控制器/控制服务 → 设备支持的接口与规则 → 逐包处理逻辑集中不等于只有一台物理控制器。 控制服务可分布部署;设备也仍需本地管理、状态与控制功能。控制器对网络的视图依赖实际采集范围和状态,不自动保证全局最优。
集中编排可简化某些策略部署,但数据平面能匹配哪些字段、执行哪些动作,仍受硬件、协议与实现能力限制。软件新逻辑不能凭空增加设备不支持的解析或动作能力。
OpenFlow是控制器与交换设备之间的一种接口协议,不是SDN唯一的实现途径。控制服务可用性是设计考虑,但控制器故障是否中断现有转发,要看已安装规则、故障处理及冗余设计。
中间盒是什么
中间盒(middlebox)泛指通信路径中执行普通转发之外功能的实体,例如NAT、防火墙、代理与负载均衡器。它是功能与位置的描述,不是每一种虚拟网卡都天然属于中间盒。
TUN是把IP数据包交给软件处理的虚拟接口。其背后的程序可能实现代理或其他功能;仅有TUN设备名称,不能确认它实施了DNS改写、ICMP代答或TLS终止。
中间功能可提供访问控制、地址转换或缓存,也可能增加排错复杂性、阻碍某些协议扩展。代价并非只来自数量叠加,还包括单个功能的策略、状态与实现。
历史观察与因果推断
旧稿记录过路由表36条、防火墙1056条规则,以及某些域名返回假地址、某些返回公网地址。本次没有原配置和完整采集,不验证这些计数的当前真实性。
即使这些记录准确,推断也要限制范围:
- DNS假地址与真实地址不同,可能与DNS策略有关,不能独立证明实际连接走了代理还是直连。
- 不同DNS查询返回相同答案可能是正常现象,不能单独证明被代理拦截。
- 向文档示例地址建连迅速返回,可能与本地代理有关;需要抓包、配置或对照验证,不能证明这些地址在任何环境都不可能通信。
- ICMP超时或异常跳数,可能受代理、过滤、限速等影响,不能只凭现象确定代答者。
- 单靠私有地址和能上网,也不能定位NAT具体位于何处。
这不是否认代理可能影响测量,而是要求把候选解释与已验证处理链分开。后续抓包与排错模块会学习如何确定捕获位置和路径。
本章小结
| 结论 | 条件 |
|---|---|
| 匹配+动作是统一理解功能的抽象 | 不等于相同硬件结构 |
| 数据平面执行处理,控制平面形成规则 | 不由硬件/CPU划绝对界线 |
| 分布式路由协议也可提供范围内拓扑视图 | 按协议与管理范围理解 |
| SDN的逻辑集中不等于物理单点 | 设备功能仍受实际能力限制 |
| 中间盒可提供有用服务,也会带来兼容与观测问题 | 具体功能需证据确认 |
| DNS、RTT或端口“成功”不能独立证明代理处理链 | 历史观察与因果分开 |
自测题
7 题 · 先自己答,再展开对照
“匹配+动作”能证明路由器、防火墙与NAT使用相同硬件结构吗?
不能,它是功能抽象,设备内部结构、状态与处理能力可能不同。最长前缀匹配必须用TCAM吗?
不必,TCAM是常见方案之一,软件快速查找和其他硬件结构也可实现。规则、算法和实现介质要分开。传统分布式路由器都没有拓扑视图吗?
不是,OSPF等链路状态协议可提供范围内拓扑图。全网范围、策略与信息完整性则依具体协议和部署。SDN逻辑集中控制等于一台控制器、可任意增加硬件功能吗?
不等于。控制服务可分布部署,数据面仍受硬件、接口与实现能力限制,软件不能凭空新增不支持的动作。TUN虚拟接口是否必然是一个执行所有代理功能的中间盒?
不是。TUN提供包与软件的接口,背后程序具体做什么还需配置、抓包等证据。中间盒有什么收益和代价?
可提供安全控制、转换、代理或缓存,但也增加状态、策略、兼容与排错复杂性。代价需按具体功能判断,不能只归因于数量。不同DNS目标返回相同答案、或连接迅速“成功”,能唯一证明代理行为吗?
不能,相同DNS答案可能正常,快速返回也需对照确认实际响应者。代理是候选解释之一,不是从这些现象唯一推出的事实。
参考资料与适用范围
- 《计算机网络:自顶向下方法(原书第8版)》§4.4–4.5,纸书232–239页(PDF251–258页):通用转发、匹配+动作与中间盒;§5.1,纸书247–249页:控制平面组织。
- RFC 7426 §2:SDN术语与抽象
- RFC 3234 §2:中间盒术语与功能
- RFC 5737 §3–4:文档示例地址及其使用范围
修订核对日期:2026-10-13。本章具体日志属于旧稿历史观察,本次未重新采集;对代理造成异常的解释须用配置、报文或对照补充验证。