1. 1. 网络世界的邻居和陌生人:网段内与网段间通信
    1. 1.1. 一、什么是“网段”?从 IP 地址与子网掩码说起
      1. 1.1.1. 🎯 举个例子:
      2. 1.1.2. 💡 补充说明:设备的 IP,究竟指的是“谁”的 IP?
      3. 1.1.3. 🔍 小提醒:
      4. 1.1.4. 🌐 网络地址与广播地址
      5. 1.1.5. 🧭 网关地址的约定
      6. 1.1.6. 🧮 常见子网掩码及用途:
      7. 1.1.7. 💡 示例总结:
    2. 1.2. 二、网段内通信:交换机如何帮我们进行“局域聊天”
      1. 1.2.1. 🧠 交换机到底在做什么?
        1. 1.2.1.1. ❓ 什么是 MAC 地址?
      2. 1.2.2. 📡 通信过程:从 PC0 ping Laptop0 会发生什么?
      3. 1.2.3. 🔁 问题1:交换机内部有什么?它是怎么知道谁是谁的?
      4. 1.2.4. 🔍 问题2:那每台 PC 自己记录的 MAC 又是什么?会记录交换机端口吗?
      5. 1.2.5. 📟 问题3:怎么查看这些表?
        1. 1.2.5.1. 在交换机中查看 MAC 地址表:
        2. 1.2.5.2. 在 PC 上查看 ARP 表(IP ↔︎ MAC 映射):
      6. 1.2.6. 🧭 小结:交换机和主机如何各司其职
    3. 1.3. 三、网段间通信:路由器如何帮我们和“陌生人”打交道
      1. 1.3.1. 📌 网络拓扑概览
      2. 1.3.2. 🧩 网段内配置:加上“默认网关”的那一步
        1. 1.3.2.1. ❓ 什么是“默认网关”?
      3. 1.3.3. 🚧 路由器配置(一):接口配置(网口 IP 和子网设置)
        1. 1.3.3.1. 📌 什么是“接口配置”?
        2. 1.3.3.2. 🧱 示例:配置连接子网 A 的 LAN 接口
        3. 1.3.3.3. 🔗 接下来:连接其他路由器(点对点链路)
          1. 1.3.3.3.1. 📌 点对点链路配置原则:
        4. 1.3.3.4. 🧠 总结一下接口配置的基本原则:
      4. 1.3.4. 🧭 路由器配置(二):配置路由规则,让网络“通起来”
        1. 1.3.4.1. 📦 路由器工作在哪一层?
        2. 1.3.4.2. 🔍 什么是“路由”?
        3. 1.3.4.3. 📚 路由功能是靠什么实现的?
        4. 1.3.4.4. 🧾 路由表的内容长什么样?
        5. 1.3.4.5. 🔖 路由表中的三类常见路由类型
          1. 1.3.4.5.1. ✅ C - Connected(直连路由)
          2. 1.3.4.5.2. ✅ S - Static(静态路由)
          3. 1.3.4.5.3. ✅ R - RIP(动态路由协议)
          4. 1.3.4.5.4. 🧠 小结:可以这样理解这些路由条目
          5. 1.3.4.5.5. 📌 路由表的匹配规则是怎样的?
        6. 1.3.4.6. 🧱 示例:在 Router0 中配置静态路由
          1. 1.3.4.6.1. 🔄 路由配置为什么必须是“双向”的?
          2. 1.3.4.6.2. 📘 小结:静态路由配置原则
    4. 1.4. 🛰️ 从 PC0 ping PC4,数据包是怎么“翻山越岭”的?
      1. 1.4.1. 📍 网络环境:
      2. 1.4.2. 🔄 步骤一:PC0 构建数据包
      3. 1.4.3. 🔄 步骤二:交换机转发帧
      4. 1.4.4. 🔁 步骤三:Router0 查路由表
      5. 1.4.5. 🔁 步骤四:Router1 查路由表
      6. 1.4.6. 🔁 步骤五:Router2 查路由表
      7. 1.4.7. ✅ 步骤六:PC4 收到 ping 请求 → 回复 Echo Reply
      8. 1.4.8. 🔁 步骤七:数据包反向返回
      9. 1.4.9. ✅ PC0 收到 Echo Reply,ping 成功!
      10. 1.4.10. 🧠 小结:一次跨网段通信涉及到什么?
    5. 1.5. 🧾 小结

网络世界的邻居和陌生人:网段内与网段间通信

网络世界的邻居和陌生人:网段内与网段间通信

我们每天都在通过互联网进行通信,从刷视频、发微信到打开网页,但你有没有想过,这些信息到底是怎么准确无误地送达的?我们常听说“交换机”和“路由器”这两个词,它们到底负责什么?又有什么区别?

大体上来说:交换机负责“同一个网段里的通信”,而路由器则负责“不同网段之间的通信”。

那么,网段到底是什么?为什么设备之间有时候可以直接通信,有时候却必须“转一道路由”?路由器和交换机又是怎么各司其职、完成整个数据转发过程的?

这篇博客将通过理论结合实践的方式,带你理解 IP 网络中的网段概念,掌握交换机和路由器的基本功能,并通过 Cisco Packet Tracer 搭建一个三网段互联的网络结构,来演示整个通信流程的具体细节。

一、什么是“网段”?从 IP 地址与子网掩码说起

IP 地址是用于标识网络中设备的编号,由网络号主机号两部分组成,总共 32 位,通常以四组十进制数字表示,每组之间用点 . 分隔,这种表示方法被称为点分十进制表示法,如:192.168.1.1

在 IP 网络中,“网段”是指具有相同网络部分的一组 IP 地址。判断两个 IP 地址是否处于同一个网段,是通过将它们分别与子网掩码进行按位与(AND)运算得出的。


🎯 举个例子:

假设某台设备的 IP 地址是:192.168.1.1,子网掩码是:255.255.255.0

转换为二进制后进行 AND 运算:

1
2
3
IP地址:      11000000.10101000.00000001.00000001 (192.168.1.1)
子网掩码: 11111111.11111111.11111111.00000000 (255.255.255.0)
与运算结果: 11000000.10101000.00000001.00000000 → 即 192.168.1.0

结果为 192.168.1.0,也就是说该设备位于 192.168.1.0 这个网段中。凡是计算结果同为 192.168.1.0 的 IP 地址,系统都会认为它们属于同一网段,他们之间的通信就属于网段内通信。

💡 补充说明:设备的 IP,究竟指的是“谁”的 IP?

当我们说“这台设备的 IP 地址是 192.168.1.10”时,其实更准确地说,这是这台设备的某一个“网络接口”的 IP 地址

一个设备可能有多个网络接口(Network Interface),每个接口都可以被配置一个独立的 IP 地址和子网掩码,它们可以分别属于不同的网段。

🧩 例如:

  • 一台路由器可能有多个物理网口,比如 GigabitEthernet0/0GigabitEthernet0/1,每个都可以连到不同的网段,配置不同的 IP。这个接口命名中的 GigabitEthernet 指的是接口类型,这里表示千兆以太网接口;第一个数字表示模块号或槽位号,第二个数字表示端口号或接口号。这个编号方式其实是为适应模块化设备而设计的,在高端设备中,每个“插槽”可以插一个模块;每个模块上可以有多个接口,从 0 开始编号。因此 GigabitEthernet0/1,表示的是模块 2 上的第 3 个千兆接口。
  • 一台笔记本电脑可能有:
    • 一个有线接口(Ethernet)
    • 一个无线接口(Wi-Fi)
    • 甚至还有一个虚拟 VPN 接口
  • 每个接口都可以拥有自己的 IP 地址,分别用于不同网络环境。

🔁 还有一个特殊的接口:回环接口(Loopback Interface)

  • 每个设备通常都有一个名为 Loopback 的虚拟接口,它不会实际连接到网络线缆,但他的表现和行为和物理网口基本一致。
  • 它的典型地址是:127.0.0.1,被称为“本地回环地址”或“localhost”。
  • 作用:用于测试网络协议栈是否正常工作,或者作为路由器配置中识别设备的逻辑地址。

📌 小结

类型 说明
物理接口(Ethernet、Wi-Fi) 连接实际网络,每个都可以有独立的 IP 和子网设置
虚拟接口(Loopback、VPN) 不依赖实际物理连接,通常用于本地通信或特殊用途
多接口设备 可以同时存在多个 IP,分别作用于不同网段,也可实现跨网段路由或桥接功能

所以说,一个“设备的 IP 地址”只是其某个网络接口的 IP,如果设备连接了多个网络,每个接口都需要被合理配置,才能实现通信功能。


🔍 小提醒:

虽然网络上可能存在多台设备使用了类似的 192.168.1.* 地址,但它们并不一定处于同一个“实际网段”。这是因为 IP 地址分为私有地址(Private IP)公网地址(Public IP)。例如:

  • 192.168.0.0/16 是一个保留的私有地址范围,只能在局域网中使用,不会在互联网中传递。
  • 所以,即使不同网络中都有设备使用 192.168.1.1,只要它们不在同一个私有网段内,它们也无法直接通信。

🌐 网络地址与广播地址

在每个子网中,还有两个特殊的地址不能分配给终端设备:

  • 网络地址:代表整个子网,用于标识网络,而不是某个具体设备。 例如 192.168.1.0/24 中的 192.168.1.0 就是网络地址,这里的 /24 表示前24位为子网掩码。
  • 广播地址:用于向该子网中所有设备同时发送数据包。 在 192.168.1.0/24 中,广播地址为 192.168.1.255

这两个地址都是系统保留的,不能分配给主机使用。


🧭 网关地址的约定

在实际配置中,每个子网内通常会保留一个 IP 地址作为“默认网关”,供该网段内的所有设备进行跨网段通信使用。也就是说,当进行跨网段通信的时候,子网内的设备会先将数据包发送到这个网关IP,再由网关设备将数据包转发到其他网络。

默认的做法是将子网内的第一个可用地址(如 192.168.1.1)分配给连接该网段的路由器接口,其他设备的默认网关就设置为这个地址。

举例:在 192.168.1.0/24 网段中:

  • 网络地址:192.168.1.0(不可分配)
  • 广播地址:192.168.1.255(不可分配)
  • 可分配主机地址范围:192.168.1.1 ~ 192.168.1.254
  • 默认网关通常设为:192.168.1.1

🧮 常见子网掩码及用途:

子网掩码 CIDR 表示 可分配主机数 用途说明
255.255.255.0 /24 254 最常见的局域网子网配置
255.255.255.252 /30 2 点对点连接,适合路由器间通信

💡 示例总结:

  • 192.168.1.10 + 255.255.255.0 → 所在网段:192.168.1.0/24
  • 10.0.0.5 + 255.255.255.252 → 所在网段:10.0.0.4/30

这些基本知识,是理解设备能否直接通信、是否需要路由器转发的基础。在下一节中,我们就将看看:如果两个设备在同一网段,它们之间是如何“聊天”的?

二、网段内通信:交换机如何帮我们进行“局域聊天”

当两台设备在同一个网段时,它们可以直接通信,这时候并不需要路由器的参与,只需要一台交换机将它们连接在一起就可以了。

在配置方面也非常简单。以下面的这个例子为例,我们有三台设备,它们的 Ethernet0 接口都连接到一台交换机上:

设备名称 接口 IP 地址 子网掩码
PC0 Ethernet0 192.168.1.2 255.255.255.0
Laptop0 Ethernet0 192.168.1.3 255.255.255.0
Laptop1 Ethernet0 192.168.1.4 255.255.255.0

我们在每台设备的接口上配置 IP 和子网掩码,并确保它们属于同一个网段(192.168.1.0/24)。这时,它们就可以直接互相访问了。

image-20250419104201749


🧠 交换机到底在做什么?

交换机是工作在 OSI 第二层(数据链路层) 的网络设备,它的主要作用是根据设备的 MAC 地址 来转发以太网帧。

❓ 什么是 MAC 地址?

MAC(Media Access Control)地址是每个网卡的唯一标识符,由厂商出厂时烧录,通常写作 00:D0:D3:64:90:D4 这样格式的十六进制串。它像是“物理地址”或设备的身份证。


📡 通信过程:从 PC0 ping Laptop0 会发生什么?

假设 PC0 想 ping Laptop0,过程如下:

  1. PC0 先判断是否同网段
    • IP 与子网掩码进行 AND 运算,发现 192.168.1.2192.168.1.3 同属 192.168.1.0/24
  2. PC0 查本地 ARP 缓存
    • 如果没有找到 Laptop0 的 MAC 地址,PC0 就会广播一个 ARP 请求
  3. 交换机收到广播
    • 交换机会将这个广播帧发送到所有端口(除了来源端口)
    • 同时,记录 PC0 的 MAC 和端口到 MAC 地址表中
  4. Laptop0 响应 ARP
    • 回复自己的 MAC 地址,PC0 更新 ARP 表
    • 交换机同时记录 Laptop0 的 MAC 和端口
  5. PC0 发送 ping 包(ICMP)
    • 使用目标的 MAC 作为帧的目标地址,发送出去
    • 交换机查 MAC 表,定向转发给 Laptop0

20250414_213032

🔁 问题1:交换机内部有什么?它是怎么知道谁是谁的?

交换机内部维护了一张 MAC 地址表(MAC Address Table),记录的是:

1
<交换机端口> ↔ <设备的 MAC 地址>

不关心 IP,也不关心设备是谁和谁通信,它只关心哪个 MAC 是从哪个端口进来的。例如:

交换机端口 MAC 地址
Fa0/1 00:D0:D3:64:90:D4
Fa0/2 00:11:22:33:44:55

这张表是动态学习的,设备第一次发送数据时,交换机会记录来源 MAC 和入口端口。


🔍 问题2:那每台 PC 自己记录的 MAC 又是什么?会记录交换机端口吗?

不会!PC 维护的是一张 ARP 表,记录的是:

1
<IP 地址> ↔ <目标设备的 MAC 地址>

当你输入 ping 192.168.1.3 时,PC 其实并不知道这个 IP 对应的 MAC 地址,它会发送一个ARP 广播请求,询问:

“192.168.1.3,请问你是谁?你的 MAC 地址是多少?”

目标设备(如果 IP 匹配)就会回应自己的 MAC 地址。PC 收到响应后,就会将这个对应关系记录在 ARP 表中。

📌 注意:PC 只知道 IP 和 MAC 的关系,交换机负责 MAC 和端口的对应关系,它们互相配合实现转发。


📟 问题3:怎么查看这些表?

在交换机中查看 MAC 地址表:

进入 CLI,输入:

1
show mac address-table

输出类似:

1
2
3
4
Vlan    Mac Address       Type        Ports
---- ----------- -------- -----
1 00d0.d364.90d4 DYNAMIC Fa0/1
1 0011.2233.4455 DYNAMIC Fa0/2

说明 MAC 地址为 00:D0:D3:64:90:D4 的设备是通过 Fa0/1 接入的。

在 PC 上查看 ARP 表(IP ↔︎ MAC 映射):

在 PC 的命令行里输入:

1
arp -a

你会看到:

1
2
Internet Address         Physical Address      Type
192.168.1.3 00-d0-d3-64-90-d4 dynamic

🧭 小结:交换机和主机如何各司其职

设备/模块 记录内容 用途
PC 主机 IP ↔︎ MAC(ARP 表) 把“逻辑地址”翻译为“物理地址”
交换机 MAC ↔︎ 端口(MAC 表) 把帧转发到正确的物理端口

✅ 主机知道“你是谁”,交换机知道“你在哪”。


下一节我们将探索:当目标设备不在同一个网段时,PC 又该怎么办?此时,交换机就“管不到了”,需要更聪明的设备——路由器登场。

三、网段间通信:路由器如何帮我们和“陌生人”打交道

在上一节中我们已经看到,只要设备在同一个网段内,通过交换机和 ARP 协议,它们就可以直接“聊天”。但现实中,不同子网之间的通信才是互联网通信的真正核心。这时候,就需要引入“路由器”这个能帮我们跨子网转发数据的设备。

📌 网络拓扑概览

image-20250419113518244

我们使用 Cisco Packet Tracer 搭建了一个包含三个子网的网络拓扑:

  • 每个子网包含一台路由器 + 一个交换机 + 两到三台终端设备
  • 三台路由器之间通过点对点链路连接(使用 /30 子网)
  • 每个子网配置了独立的 IP 地址段,不能直接通信,需要通过路由器转发
子网 主机 IP 范围 路由器 LAN 口 IP
子网 A 192.168.0.10 ~ .11 192.168.0.1
子网 B 192.168.1.10 ~ .11 192.168.1.1
子网 C 192.168.2.10 ~ .12 192.168.2.1
路由器间链路 网段 使用接口 IP 地址
Router0 ↔︎ R1 10.0.0.0/30 G0/1 ↔︎ G0/1 10.0.0.1 ↔︎ 10.0.0.2
Router1 ↔︎ R2 10.0.0.4/30 G0/2 ↔︎ G0/1 10.0.0.5 ↔︎ 10.0.0.6

🧩 网段内配置:加上“默认网关”的那一步

设备在同一个网段时,我们只需要配置每台 PC 的 IP 和子网掩码,它们就可以通过交换机直接通信。然而,在有路由器参与的网络中,我们还必须配置一个额外参数:默认网关(Default Gateway)

❓ 什么是“默认网关”?

默认网关是主机在不知道目的地址属于哪个具体网段时,用来“兜底转发”的网络出口地址

在实际部署中,默认网关就是你所在子网连接的那台路由器的接口地址。主机并不负责决定复杂的转发路径,它只知道:

“这个地址我不认识,那我就交给默认网关吧。”

默认网关的工作机制大体可以总结为:

  • 当设备发送一个数据包,先通过子网掩码判断目标 IP 是否与自己在同一网段
  • 如果在同一网段:直接通过 ARP 获取 MAC,局域网通信
  • 如果不在同一网段:封装数据帧给“默认网关”的 MAC 地址,让它来帮忙转发
  • 所以,没有默认网关,就无法进行跨网段通信

比如对于 PC0 来说:

  • ping 192.168.0.11(同网段)→ 直接发

  • ping 192.168.1.11(不同网段)→ 没有明确路由 → 发给默认网关 192.168.0.1

在 Windows 上,可以通过 ipconfig 来查询各个网口的默认网关。PC 通常只有一个默认网关,而路由器可以有手动设置多个网关,可以有多个“下一跳”,通过静态或动态路由手动指定每个网段怎么走,在后文关于路由器的部分会更详细介绍。

image-20250419115219337

PC 所属网段 IP 地址 默认网关
PC0 192.168.0.0/24 192.168.0.10 192.168.0.1
PC2 192.168.1.0/24 192.168.1.10 192.168.1.1
PC5 192.168.2.0/24 192.168.2.11 192.168.2.1

🚧 路由器配置(一):接口配置(网口 IP 和子网设置)

路由器之所以能够连接不同网段,正是因为它具备多个网络接口(也称为端口或网口),每个接口都可以连接一个独立的网段,并配置不同的 IP 地址与子网掩码。


📌 什么是“接口配置”?

接口配置,指的是为路由器的每一个连接口分配对应的 IP 地址与子网掩码,以便它能正确接入某个网络、并参与通信。

你可以理解为:

“每个网口就是路由器的耳朵,只有配置好 IP 地址,它才能听懂这个网段的‘语言’。”


🧱 示例:配置连接子网 A 的 LAN 接口

image-20250419113433592

以网段 A 为例(连接了 PC0 和 PC1),它们的配置如下:

设备 接口 IP 地址 子网掩码
PC0 192.168.0.10 255.255.255.0
PC1 192.168.0.11 255.255.255.0
Router0 LAN 口 192.168.0.1 255.255.255.0

✅ 我们通常把路由器在局域网内的 IP 设置为网段内的第一个地址(例如 .1),并作为默认网关使用。


🔗 接下来:连接其他路由器(点对点链路)

除了连接子网,路由器之间也需要互相通信。这种连接通常是点对点连接,即两个路由器直接通过一根线缆相连,没有其他设备参与。在这种情况下,我们可以使用非常小的子网,只包含两个主机地址,节省 IP 资源。


📌 点对点链路配置原则:
  • 使用 /30 子网掩码(255.255.255.252),可用地址仅 2 个(用于两端路由器)
  • 每对接口分配一个唯一的点对点网段

例如:

链接 接口名 IP 地址 子网掩码
Router0 ↔︎ Router1 G0/1 ↔︎ G0/1 10.0.0.1 ↔︎ 10.0.0.2 255.255.255.252

Router1 侧则配置为 10.0.0.2,掩码相同。


🧠 总结一下接口配置的基本原则:

接口类型 IP 地址设定 子网掩码 用途
连接子网的口(LAN) 与子网其他设备处于同一网段 一般为 /24(255.255.255.0) 为该网段内设备提供出入口
路由器间链路(WAN) 与对端接口处于同一点对点网段 一般为 /30(255.255.255.252) 建立跨子网通信的“中继”

通过正确地配置这些接口,路由器才能够“听懂”来自不同网段的流量,并做好准备去转发它们。


🧭 路由器配置(二):配置路由规则,让网络“通起来”

我们知道路由器之所以被称为“路由”器,是因为它的核心工作就是:做路由(Routing),即判断一个数据包该走哪条路径才能抵达目标。

📦 路由器工作在哪一层?

路由器是工作在 OSI 模型的第三层(网络层) 的设备,它处理的就是 IP 地址层面 的信息,而不是 MAC 层(交换机)或物理层(网线)上的内容。


🔍 什么是“路由”?

“路由”本质上就是:

为数据包规划一条从“源地址”到“目的地址”的最合理路径。

这条路径并不一定是一条物理线缆,而是可能要经过多个网络设备(路由器),跳过多个网段,最终找到“最合适”的下一跳。


📚 路由功能是靠什么实现的?

路由器内部维护着一张名为“路由表(Routing Table)”的结构,它就像是一个导航地图,记录着:

“要去哪个网段,应该通过哪个接口、发给哪个下一跳。”

每当收到一个 IP 包,路由器就会查这张表,决定转发路径。


🧾 路由表的内容长什么样?

可以通过命令:

1
show ip route

在路由器的 CLI 中查看当前路由器的完整路由表。

例如,Router0 的路由表可能如下所示:

1
2
3
4
5
6
7
8
Router# show ip route

Codes: C - connected, S - static, R - RIP, O - OSPF, ...

C 192.168.0.0/24 is directly connected, GigabitEthernet0/0
S 192.168.1.0/24 [1/0] via 10.0.0.2
S 192.168.2.0/24 [1/0] via 10.0.0.2
C 10.0.0.0/30 is directly connected, GigabitEthernet0/1

路由表中的每一项都代表了一个“怎么去”的路径信息, 比如对于:

S 192.168.1.0/24 [1/0] via 10.0.0.2

其各字段的含义为:

字段 含义
S 路由类型:Static(静态路由)
192.168.1.0/24 目标网络:你想要到达的目的网段
[1/0] 跃点数(Administrative Distance / Metric):1 表示静态路由的默认值
via 10.0.0.2 下一跳地址:表示包应该先发到谁(Router1)

📌 这条的意思是:“要访问 192.168.1.0/24,就把包转发给 10.0.0.2。”

看路由表,就像在读“交通指引”,每条都是“去哪里,走哪条路”的说明书。

🔖 路由表中的三类常见路由类型

我们在查看路由器的路由表时,会看到类似这样的代码前缀:

符号 类型 含义
C Connected(直连) 该网段由某个接口直接连接上
S Static(静态) 手动添加的转发路径
R RIP 动态路由 通过 RIP 协议自动学到的路由
C - Connected(直连路由)

当你在某个接口上配置了 IP 地址后,系统会自动把该网段加入到路由表中。比如在上一节中我们设置了 Router 0 的网口 0 的 IP, 那么路由表中就会自动生成:

1
C 192.168.0.0/24 is directly connected, GigabitEthernet0/0

表示:Router0 直接连接了 192.168.0.0/24 这个网段,不需要中转,直接转发。


S - Static(静态路由)

静态路由是你通过命令 手动添加的路由路径,告诉路由器:“如果你要去某个网段,就把包交给这个下一跳。” 比如我们设置 Router 0 的静态路由, 规定如果数据包要去 192.168.2.0/24,就请把包交给 10.0.0.2(Router1 的地址), 这个条目就会出现在路由表中:

1
S 192.168.2.0/24 [1/0] via 10.0.0.2

R - RIP(动态路由协议)

如果你在多个路由器上开启了 RIP 协议,它们就会自动相互交换自己的路由表,学习到“我虽然没直接连接这个网段,但我知道谁能到那儿”。

📍示例:

Router2 直连了 192.168.2.0/24,Router1 通过直连知道这个网段。 如果 Router0 和 Router1 启用了 RIP 协议:

  • Router1 会告诉 Router0:“我能通往 192.168.2.0”

  • Router0 的路由表就会自动添加:

1
R 192.168.2.0/24 [120/2] via 10.0.0.2

这时候,Router0 没有直接连到 192.168.2.0,也没手动配置,但能自动学会怎么走,这就是动态路由的强大之处。

🧠 小结:可以这样理解这些路由条目
类型 你配置了吗? 是否自动加入? 来自哪里?
C 配了接口 IP ✅ 是 路由器接口自动发现(直连)
S 手动添加 ❌ 否 你通过 ip route 命令指定的路径
R 开启 RIP 协议 ✅ 是 从邻居路由器动态学来的信息
📌 路由表的匹配规则是怎样的?

当一个数据包到达路由器时,路由器会:

  1. 查看目的 IP 地址
  2. 在路由表中查找最精确匹配(最长前缀匹配)的条目
  3. 找到对应的“下一跳”或“出接口”
  4. 将包发出

🧱 示例:在 Router0 中配置静态路由

在实验网络拓扑中,我们使用的是最常见也最基础的 静态路由(Static Route)

  • 为什么选它?因为结构清晰、配置简单,非常适合学习与演示。
  • 所有跨子网通信的路径,都由我们手动告诉路由器:“你要去哪,就走哪个下一跳”。

比如,我们在 Router0 的 Config 页面 → Routing → Static 路由配置中,添加了两条静态路由:

  • 去往 192.168.1.0/24 走 10.0.0.2(Router1)
  • 去往 192.168.2.0/24 走 10.0.0.2(Router1 再转发)

image-20250419115021920

这些配置告诉 Router0:

“如果你想找 192.168.1.0 或 192.168.2.0 的主机,请把包发给 10.0.0.2,那是 Router1,它知道怎么继续转发。”


🔄 路由配置为什么必须是“双向”的?

✅ 单向路由:请求能发出去,但回应回不来!

举个例子:

  • PC0 想访问 PC5,发出 ping 请求 → 包从 Router0 → Router1 → Router2,成功发出
  • 但是如果 Router2 没有返回路径的静态路由,回应包就找不到“回家的路”,最终通信失败!

📌 路由器不会自动记住“谁来找过我”,它必须靠完整的路由表,才能把回应也转发回去。

所以,每个方向都必须配置对应的路由,才能实现双向通信


📘 小结:静态路由配置原则
步骤 操作内容
1. 识别目标网段 明确你想让路由器通向哪个子网
2. 指定下一跳 IP 告诉路由器“包发给谁”
3. 配置双向路由 每个涉及通信的路由器都需要添加相应静态路由
4. 验证配置 使用 show ip route 命令查看路由表是否正确

🛰️ 从 PC0 ping PC4,数据包是怎么“翻山越岭”的?

经过前面的学习,我们已经知道了交换机怎么工作、路由器怎么转发、默认网关的意义以及路由表的功能。那么现在我们来一个真实例子,以 ping 为起点,看看数据包是如何从 PC0 发往 PC4,并最终完整返回的。

20250419_112746

📍 网络环境:

  • PC0:192.168.0.10,默认网关:192.168.0.1
  • PC4:192.168.2.10
  • 路由路径: PC0 → Switch0 → Router0 → Router1 → Router2 → Switch2 → PC4

🔄 步骤一:PC0 构建数据包

  1. PC0 判断目标 IP 192.168.2.10 是否在同一网段(通过掩码与运算)
  2. 发现不在同一网段 → 查 ARP 表,没有网关地址的 MAC → 发出 ARP 请求
  3. 路由器 Router0 接收到广播 → 回复自己的 MAC 地址
  4. PC0 构造 ICMP Ping 包,封装成帧:
    • 源 MAC:PC0
    • 目标 MAC:Router0 的接口(192.168.0.1)
    • 源 IP:PC0 的 IP
    • 目标 IP:PC4 的 IP

🔄 步骤二:交换机转发帧

  • Switch0 根据 MAC 表,将帧定向转发给 Router0
  • Router0 接收到帧,解封装得到 IP 数据包

🔁 步骤三:Router0 查路由表

1
show ip route

发现:

1
S 192.168.2.0/24 via 10.0.0.2

→ 决定下一跳是 Router1 的接口:10.0.0.2

  • Router0 封装新帧:
    • 源 MAC:Router0(G0/1)
    • 目标 MAC:Router1(G0/1)→ 如果没有,则先发 ARP 请求
  • 发出数据包到 Router1

🔁 步骤四:Router1 查路由表

  • 目标是 192.168.2.10

  • 查路由表,发现:

    1
    S 192.168.2.0/24 via 10.0.0.6

→ 决定下一跳是 Router2(10.0.0.6)

  • 封装新帧,发往 Router2 的 MAC 地址

🔁 步骤五:Router2 查路由表

  • Router2 直接连接了 192.168.2.0/24(直连路由)
  • 解封装,判断目标 IP 在本地网段
  • 查 ARP → 找到 PC4 的 MAC 地址
  • 重新封装帧,发往 Switch2 → 再转发给 PC4

✅ 步骤六:PC4 收到 ping 请求 → 回复 Echo Reply

  1. 构造 ICMP Echo Reply(回复)
  2. 目标 IP 是 192.168.0.10,与自己不在同一网段 → 查默认网关(192.168.2.1)
  3. 向 Router2 发出帧,交给它转发回 PC0

🔁 步骤七:数据包反向返回

  • Router2 → Router1 → Router0 → Switch0 → PC0
  • 每一跳都重复查路由表、封装帧、发 ARP(如果需要)等操作

✅ PC0 收到 Echo Reply,ping 成功!

最终,PC0 的屏幕上显示:

1
2

Reply from 192.168.2.10: bytes=32 time<1ms TTL=...

这就说明:整个网络配置正确,数据包已经成功“来回通关”。


🧠 小结:一次跨网段通信涉及到什么?

网络组件 功能
PC0 判断网段、查 ARP、发送数据到默认网关
交换机 负责本地网段内的 MAC 地址学习与帧转发
Router0 查路由表、封装、转发到下一跳
Router1 中转转发,根据静态路由或动态学习的路由表决定方向
Router2 最终送达目的网段,交给目标主机
PC4 构造回应包,反方向走同样的路径回去

🧾 小结

通过本篇博客,我们首先理解了“网段”的基本概念:IP 地址配合子网掩码,用于划分不同的网络范围。在每个网段中,地址的分配、网络号、广播地址以及默认网关的设置,共同决定了网络中设备如何识别彼此、判断对方是否属于“本地邻居”,这是后续通信判断的基础。

随后我们讲解了网段内的通信机制,交换机作为二层设备,负责根据设备的 MAC 地址进行数据帧的学习和转发。它本身不需要任何配置,只要将设备连接到交换机上,并确保 IP 地址和掩码设置在同一网段,通信就能顺利进行。ARP 协议在这个过程中起到了桥梁作用,帮助设备获取目标 IP 对应的 MAC 地址。

最后是网络的核心——路由器,它工作在三层,连接多个子网。每个接口可以配置不同网段的 IP 和掩码,负责将跨网段的数据进行转发。我们学习了如何配置接口 IP、添加静态路由,了解了路由表的作用及路由类型(直连、静态、动态),并通过一次从 PC0 到 PC4 的 ping 实验,完整梳理了数据包在多个设备间的转发路径,也明白了为什么路由必须双向配置。至此,一个完整的网络通信流程便清晰呈现。