2. 网络基础回顾
中央网关是整车网络的“交通枢纽”,它同时面对 CAN、LIN、以太网、FlexRay 等多种链路,还要完成跨网段报文转发、诊断路由与服务发现。若对 OSI/TCP/IP 分层、IP 编址、交换与路由的基本机制没有清晰认识,后续做网关路由表配置、VLAN 划分、静态路由与诊断寻址时就容易“知其然不知其所以然”。本章把与网关工程最相关的网络基础做一次系统回顾。
一、OSI 与 TCP/IP 模型:分层是排障的地图
OSI 七层模型把通信拆成物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;TCP/IP 模型则简化为网络接口层、网际层、传输层、应用层。对网关工程师而言,分层的价值在于定位问题:链路不通先看物理层与数据链路层,IP 不可达看网络层,端口或连接异常看传输层,服务无响应看应用层。
在车载以太网中,物理层对应 100BASE-T1/1000BASE-T1 的 PHY 与线束;数据链路层对应 MAC、VLAN、ARP;网络层对应 IPv4/IPv6 与 ICMP;传输层对应 TCP/UDP;应用层则包括 DoIP、SOME/IP、HTTP 等。网关通常工作在三层(路由)或二层(桥接),部分场景还需做应用层协议转换。
分层排障口诀:先物理、再链路、后网络、再传输、最后应用。每层都有对应的工具与判据,避免一上来就怀疑应用代码。
二、IP 地址与子网划分:网关寻址的根基
IPv4 地址 32 位,常写成点分十进制。地址由网络号和主机号组成,子网掩码决定分界。例如 192.168.10.20/24 表示前 24 位为网络号,可用主机地址范围是 192.168.10.1~192.168.10.254,广播地址为 192.168.10.255。网关接口必须与所连子网同网段,否则无法直接通信。
子网划分的本质是“借主机位当网络位”。借 1 位得到 2 个子网,借 2 位得到 4 个子网。工程中常用 VLSM 按需分配,避免地址浪费。判断两个 IP 是否同网段,可用“IP 与掩码按位与”得到网络地址后比较。
# 判断 192.168.10.20/24 与 192.168.10.130/24 是否同网段
192.168.10.20 & 255.255.255.0 = 192.168.10.0
192.168.10.130 & 255.255.255.0 = 192.168.10.0
# 网络地址相同,属于同一子网,可直接二层通信
# 查看本机地址与路由(Linux 网关常用)
ip addr show
ip route show
车载网关常见做法是按功能域划分子网,如动力域 192.168.10.0/24、车身域 192.168.20.0/24、诊断域 192.168.30.0/24,网关在各子网各有一个接口地址,形成“多宿主”结构。
三、交换与路由基础:二层转发与三层选路
交换机工作在数据链路层,依据 MAC 地址表转发帧。它通过源 MAC 学习、目的 MAC 查表、未知单播泛洪、广播泛洪来完成转发。VLAN 用于隔离广播域,Trunk 口用 802.1Q 标签承载多 VLAN,Access 口则属于单一 VLAN。
路由器工作在网络层,依据路由表选路。路由来源包括直连路由、静态路由和动态路由。网关工程中最常用的是静态路由,因为它可控、可预测。路由匹配遵循“最长前缀匹配”原则:掩码越长越优先。
# 在网关 Linux 侧添加静态路由示例
ip route add 192.168.20.0/24 via 192.168.10.1 dev eth0
ip route add 192.168.30.0/24 via 192.168.10.2 dev eth0
# 查看路由表
ip route show
# 192.168.20.0/24 via 192.168.10.1 dev eth0
# 192.168.30.0/24 via 192.168.10.2 dev eth0
交换与路由的关键区别:交换看 MAC、在同一广播域内转发;路由看 IP、跨广播域转发。网关往往两者兼具——内部用 VLAN 交换,跨域用路由转发。
四、常见网络设备与接口类型
车载网络中常见设备包括:交换机(含 TSN 交换机)、网关、域控制器、诊断接口 OBD、以太网 PHY、CAN 收发器。接口类型则包括 100BASE-T1、1000BASE-T1、CAN/CAN FD、LIN、FlexRay,以及诊断常用的 DoIP 以太网口。
| 设备/接口 | 工作层次 | 典型用途 | 网关关注点 |
|---|---|---|---|
| TSN 交换机 | 二层 | 车载以太网多节点互联 | VLAN、优先级、时间同步 |
| 中央网关 | 二/三层 | 跨域路由与协议转换 | 路由表、防火墙、诊断路由 |
| 100BASE-T1 | 物理层 | 车载以太网 100M | PHY 状态、链路速率 |
| CAN FD | 数据链路层 | 动力/车身报文 | 报文路由、信号映射 |
| DoIP 接口 | 应用层 | 诊断刷写与读取 | 诊断地址、逻辑连接 |
五、案例场景:一次跨域诊断路由配置
假设诊断仪通过 OBD 以太网口接入网关,诊断域为 192.168.30.0/24,目标 ECU 位于车身域 192.168.20.0/24。网关需在诊断接口与车身域接口之间建立路由,并放行 DoIP 端口 13400。
# 网关路由与防火墙配置示意
ip route add 192.168.20.0/24 via 192.168.20.1 dev eth1
iptables -A FORWARD -p tcp --dport 13400 -j ACCEPT
iptables -A FORWARD -p udp --dport 13400 -j ACCEPT
# 验证连通性
ping -c 3 192.168.20.10
tcpdump -i eth1 port 13400
若诊断仪无法访问目标 ECU,按分层排查:先确认物理链路与 PHY 状态,再确认 VLAN 与 MAC 学习,然后检查网关路由表与防火墙,最后确认 DoIP 逻辑地址与目标 ECU 响应。
工程建议:网关路由表应保持“最小必要”原则,只放行确实需要的网段与端口;每条静态路由都要有注释说明用途与责任人,便于后期维护与审计。
六、常见误区与复盘
- 误区一:同网段却配了网关。同子网通信不需要网关,错误配置可能导致流量绕行或丢包。
- 误区二:掩码写错导致“看似同网段”。例如 /24 写成 /16,会把不同子网误判为同网段,造成路由异常。
- 误区三:只配路由不配防火墙。Linux 网关默认 FORWARD 策略可能丢弃流量,需显式放行。
- 误区四:忽略 VLAN 与 Trunk 配置。二层不通时,先查 Access/Trunk 与 PVID,再查三层。
- 复盘要点:每次跨域不通,按“物理→链路→网络→传输→应用”逐层验证,并保留 tcpdump 与路由表快照。
掌握以上基础后,再看中央网关的路由表、VLAN 配置与诊断路由,就能把“报文从哪来、到哪去、经过哪几层、在哪一跳被丢弃”讲清楚。这是后续学习网关路由策略、网络管理与诊断路由的必要前提。