网络层设备

掌握路由器的组成和功能,以及掌握路由表的画法,会在选择题和大题中考察。

路由器

路由器(Router)是一种实现网络互连的设备,在 OSI 网络模型中的第三层,提供 路由转发 的两种重要机制;可以决定数据包从来源端到目的端所经过的路由路径,这个过程称为 路由;将路由器输入端的数据包移至适当路由器输出端,称为 转发

组成

交换结构
1
2
3
1
2
3
输入端口
输出端口
3
2
1
3
2
1
输出端口
输出端口
路由引擎
3 — 网路层
2 — 数据链路层
1 — 物理层
路由
选择
分组
转发

简单来说,路由器主要由以下软硬件组成:

  • 硬件:
    • CPU:运行操作系统,处理 路由协议
    • 交换结构:高速传输数据包,连接输入输出端口。
    • 网络接口:以太网、光纤等,收发数据包。
  • 软件:
    • 操作系统:运行专用的嵌入式 操作系统,提供 路由协议 支持、配置管理等功能。

路由表

路由表 是路由器内部的数据结构,其中包含了有关网络之间如何进行 路由 的信息。路由表 是根据 路由协议(如 RIP、OSPF、BGP 等)和手动配置动态生成和维护的。

路由表包含如下信息:

  • 目标网络(Network Destination):表示数据包要传递到的目标网络或主机。
  • 子网掩码(Network Mask):确定了 目标网络 的范围,路由器 使用它来匹配数据包的 目标地址
  • 网关(Gateway):数据报转接口的 IP 地址。
  • 接口(Interface):指明了路由器上哪个物理或逻辑 接口 将被用来 转发 数据包。
  • 跳数/度量值(Metric):跳数或度量值是 路由选择 的一个度量标准,用来表示到达 目标地址 的成本。如果存在多条 路由 到同一个目的地,路由器通常会选择跃点数最低的 路由

功能

路由表的 核心功能 就是 路由决策分组转发,接收数据包,查询路由表,然后从某个端口 转发出去。

分组转发

分组转发 是指路由器根据数据包的 目的 IP 地址 和其内部的 路由表,决定将数据包发送到下一个网络节点(下一跳)或 目标设备 的过程。其详细工作流程如下:

  1. 接收和解析 数据包
  2. 查询 路由表:
    • 路由器将 目的 IP 地址 与路由表中的条目进行匹配,使用 最长前缀匹配(Longest Prefix Match, LPM)算法选择 最佳路由
  3. 处理 TTL 和其他字段:
    • 路由器减少数据包的 TTL(Time To Live)值,防止循环转发。
    • 如果需要,执行其他处理,如分片、重组或 NAT
  4. 转发 数据包
    • 根据 路由表 查找结果,将数据包发送到指定的 下一跳 地址或直接连接的设备。
注意

路由表在分组转发的时候,需要修改 IP 数据包中的哪些字段?

  1. TTL:TTL 减 1。
  2. checksum:因为 IP 首部有字段被修改,所以校验和需要重新计算。
  3. 如果是 NAT 路由器的话,需要修改 源 IP 或者 目的 IP 地址。
  4. 如果 IP 数据包长度超过输出链路的 MTU,则 总长度字段标志字段片偏移字段 都需要修改。
最长前缀匹配

当路由器收到一个数据包时,它会提取数据包的 目的 IP 地址,并与 路由表 中的条目进行比较。最长前缀匹配的核心是选择与目的 IP 地址 前缀匹配最长 的路由表项,因为更长的前缀表示更具体的路由,优先级更高。

举个实际例子,假设有如下路由表:

网络前缀子网掩码下一跳
192.168.1.0/24255.255.255.0接口 A
192.168.0.0/16255.255.0.0接口 B
0.0.0.0/00.0.0.0接口 C

对于 目的 IP 地址 192.168.1.100

1.192.168.1.0/24 匹配:前 24 位完全匹配。
2.192.168.0.0/16 匹配:前 16 位匹配。
3.0.0.0.0/0 匹配:默认路由,总是匹配。

由于 /24最长的前缀,路由器选择接口 A 作为下一跳。

NAT

NAT(Network Address Translation,网络地址转换)的核心作用是把一个 IP 地址空间映射到另一个 IP 地址空间,常见的情形是把局域网内部的 私有 IP 地址 转换为 公网 IP 地址(或将公网地址转换回私有地址),从而实现内部设备与外部网络(如 Internet)的互联。NAT 主要有以下功能:

  • 解决 IPv4 地址匮乏:在 IPv4 中,公网地址资源有限。通过 NAT,整个局域网可以共享同一个或少量的公网 IP,极大地节约了地址分配。
  • 提供安全屏障:外部主机只能看到 NAT 设备的公网地址,内部的真实 IP 地址被隐藏,形成了一个简单的防护层,降低了直接攻击的风险。
192.168.100.3
192.168.100.4
192.168.100.5
Default Gateway
192.168.1.1
Router/NAT Device
145.12.131.7
(Public IP Address)
private network
the internet

NAT 表

上图中路由器的 NAT 表 的示例如下:

私有 IP 地址私有端口公有 IP 地址公有端口协议连接状态
192.168.100.312345145.12.131.754321TCPESTABLISHED
192.168.100.48888145.12.131.754322UDPNEW
192.168.100.515839145.12.131.754323TCPSYN_SENT
192.168.100.37890145.12.131.754324TCPESTABLISHED

表中条目包含如下内容:

  • 内部私有 IP 地址:局域网中设备的私有 IP 地址。
  • 内部端口号:发送数据包的私有网络设备所使用的端口号。
  • 外部公有 IP 地址:路由器 在广域网(WAN)侧使用的 IP 地址,通常是单个 IP 地址,但也可能有多个。
  • 外部端口号:与内部端口号对应的,由 NAT 分配用于标识特定会话的公有端口号。
  • 协议类型:数据包使用的协议(如 TCP、UDP 等)。

NAT 表的条目通常是 动态创建 的。当内部设备发起到外部网络的连接时,路由器会在 NAT 表中创建一个条目。通过 NAT 表,路由器可以将从外部网络收到的数据包转发到正确的内部设备。当 NAT 表中的条目因为超时或者NAT 表容量限制而被删除时,新的数据包会触发创建新的NAT条目。

地址转换过程

在 NAT(网络地址转换)中,数据包的地址会根据其流向进行相应的改写,主要可以分为两种情况:

  1. 从内网发送到公网

    • 当内网主机向外部(Internet)发起通信时,数据包首先经过 NAT 路由器。
    • 在此过程中,NAT 会把数据包的 源 IP 地址和源端口 替换为 路由器的公网 IP 地址和分配的公网端口(即进行源地址/端口转换,SNAT)。
    • 这样,外部主机只能看到公网 IP+端口,而看不到内部私有地址,确保内网结构对外部保持透明。
  2. 从公网返回到内网

    • 当外部主机向 NAT 路由器的公网 IP+端口发送响应报文时,报文同样会先到达 NAT 路由器。
    • NAT 根据之前记录的映射表,将报文的 目的 IP 地址和目的端口 改写回对应的 私有 IP 地址和私有端口(即进行目的地址/端口转换,DNAT),随后将报文转发给内网的目标主机。

简要概括

  • 出站(内网 → 公网):修改 地址/端口为公网地址。
  • 入站(公网 → 内网):修改 目的 地址/端口为对应的私有地址。

通过上述两步映射,NAT 实现了内网主机对外通信的隐藏与地址复用,同时保证了返回流量能够正确回到发起请求的内部主机。

私有 IP 地址

在局域网(内部网络)中常用的 私有 IP 地址 共有三个连续的地址段。它们分别对应不同规模的网络,使用时只需在相应范围内任选一个未被占用的地址即可。

地址段(CIDR 表示)起始地址结束地址适用场景
10.0.0.0/810.0.0.010.255.255.255大型网络、企业内部骨干网
172.16.0.0/12172.16.0.0172.31.255.255中型网络,例如校区网、部门网
192.168.0.0/16192.168.0.0192.168.255.255小型网络、家庭或小型办公网

路由器 IP 地址

路由器接口的 IP 地址 配置方式取决于其连接的网络类型。常见有以下两种场景:

  1. 点对点连接:当两个路由器通过专用链路直接相连时,通常为该链路划分一个小型子网,例如 IPv4 的 /30

    • /30 子网提供 2 个可用主机地址,正好分配给两端路由器接口。
    • 这种方式能够高效利用地址空间,特别适合点对点链路。
  2. 连接到局域网或子网:当路由器接口接入一个局域网(LAN)或更大的子网时,需要分配该子网中的一个 IP 地址。

    • 通常选择子网的第一个或最后一个可用地址,作为网络中设备的 默认网关
    • 例如,在 192.168.1.0/24 子网中,路由器接口常被配置为 192.168.1.1192.168.1.254
192.168.1.2/26
192.168.1.3/26
192.168.1.66/26
192.168.1.67/26
H1
H2
H3
H4
Internet
IF1
IF2
IF3
Network Destination
Network Mask
Interface
Gateway
default
0.0.0.0
IF1
192.168.1.254
192.168.1.0
255.255.255.192
IF2
192.168.1.1
192.169.1.64
255.255.255.192
IF3
192.168.1.65
192.168.1.253/30
101.1.2.10
Router 1
Router 2
Routing Table For Route2