1. 环境搭好以后,先看看数据怎么走
在上一篇环境搭建记录里,我整理了 VMware 中运行 eNSP,以及通过路由器完成跨网段通信的过程。
接下来,把课堂上分散的概念重新串起来。
这一篇主要整理第一天、第三天和第六天的笔记。先从一个很小的问题开始:
两台电脑插在同一台交换机上,为什么就有机会互相通信?
这里面至少有三件事:线缆能传信号,交换机能转发帧,主机知道应该把帧交给哪个 MAC 地址。
NOTE本系列按主题重组九天笔记。文中的地址、拓扑和部分配置是为了讲解补充的练习示例;实际接口名称和命令支持情况以使用的 eNSP 设备为准。
2. 网线传的是信号,速率单位是 bit
应用里的文字、图片最终都会变成二进制数据,再由物理层通过电信号或光信号传出去。
课堂提到的介质可以放在一起比较:
| 介质 | 可以先记住的特点 |
|---|---|
| 同轴电缆 | 早期共享式以太网曾使用的介质 |
| 双绞线 | 常见网线由四对、共八根铜线构成,绞合有助于减小干扰 |
| 光纤 | 通过光传输,收发模块负责电信号与光信号转换 |
日常说的 RJ-45 网口通常使用 8P8C 连接器。超五类双绞线在符合布线要求时可承载千兆以太网,常见铜缆以太网通道长度上限是 100 米;不能把这个距离套到所有以太网介质上。线缆与速率、距离的对应关系可参照 Cisco 的接口排查文档。
光纤又有单模和多模之分。单模通常用于较远距离,多模常见于较短距离互联,但具体能跑多远、多快,要把光纤类型、光模块和接口标准一起看。
交换机可以把多个链路连接起来,却不能让单段线缆的距离限制消失。
2.1 100 Mbps 为什么不是每秒下载 100 MB
1 Byte = 8 bit100 Mbps ÷ 8 = 12.5 MB/s1000 Mbps ÷ 8 = 125 MB/s这是单位换算后的理论值。实际文件下载还受到协议开销、链路利用率、服务器和磁盘等因素影响。
课堂中的 100 ÷ 8 × 0.85 = 10.625 可以当作估算练习,但 0.85 不是固定的网络效率系数。
另外,GE 是 Gigabit Ethernet,表示千兆以太网;百兆通常写作 FE。设备命令中的 Ethernet 是接口命名的一部分,不能仅凭这个单词推断实际速率,仍要看接口状态。
3. 从集线器到交换机
集线器主要在物理层重复信号。多个设备共享介质时,同时发送可能发生冲突,传统半双工以太网用 CSMA/CD 处理这类问题:先侦听,发生冲突后退避,再尝试发送。
交换机则能够根据帧里的 MAC 地址决定转发方向。现代交换式以太网通常工作在全双工模式,一条链路两端可以同时收发,不再依靠 CSMA/CD 争用介质。
但全双工并不代表永远不会丢包。出口拥塞、缓存不足、线缆故障依然可能影响通信。
4. 交换机先学源地址,再查目的地址
以太网中常见的 MAC 地址长 48 位,也就是 6 字节,通常写成六组十六进制数:
02:00:00:00:00:0A这个地址用于本文示意。MAC 可以由厂商分配,也可能被软件修改或随机化,所以“物理地址”不意味着永远不变,更不能据此认定设备身份。
假设有三台主机:
PC A ── GE0/0/1 ┐PC B ── GE0/0/2 ├── LSW1,同一个 VLANPC C ── GE0/0/3 ┘当 A 发出的帧进入交换机,交换机会学习:
源 MAC_A + 所属 VLAN → GE0/0/1随后检查目的 MAC:
| 查表结果 | 基本处理方式 |
|---|---|
| 已知目的 MAC,出口与入口不同 | 从对应出口转发 |
| 已知目的 MAC,但就在入口方向 | 不再从其他端口转发 |
| 未知单播目的 MAC | 在所属 VLAN 的其他可转发端口泛洪 |
| 广播 MAC | 在所属 VLAN 的其他可转发端口传播 |
注意顺序:学习靠源 MAC,转发查目的 MAC。
如果端口后面接着另一台交换机,这个端口可以学到很多 MAC。同一 VLAN 内,同一个普通动态 MAC 表项通常指向一个端口或一个逻辑聚合接口;不能把它简化成“一个端口只能接一个 MAC”。
动态表项会老化。课堂记录的 300 秒是常见示例,具体值要看设备配置。
5. 广播是地址属性,泛洪是转发动作
以太网广播目的地址是:
FF:FF:FF:FF:FF:FF它表示这个帧要交给本广播域中的设备。
未知单播也可能被交换机泛洪,但其目的 MAC 仍然是某一台主机,并没有变成广播地址。收到帧的其他主机通常会根据目的 MAC 丢弃它。
因此,看到“多个端口都收到了帧”,不能马上判断它一定是广播。
普通二层网络里,一个 VLAN 通常对应一个广播域。连接几台交换机不会自动缩小广播域;三层接口一般不会把二层广播原样转发到另一个网络。
6. 主机有目标 IP,为什么还需要 ARP
现在给 A 和 B 配置地址:
| 主机 | IP 地址 | 掩码 |
|---|---|---|
| PC A | 192.168.1.10 | 255.255.255.0 |
| PC B | 192.168.1.20 | 255.255.255.0 |
A 执行 ping 192.168.1.20 时,知道的是目标 IP;但要把 IPv4 数据包放进以太网帧,还需要目的 MAC。
于是 ARP 补上这个映射:
本地链路上的 IPv4 地址 → MAC 地址如果缓存中没有 B 的记录,基本过程是:
- A 广播 ARP Request,询问谁拥有
192.168.1.20。 - 交换机学习 A 的源 MAC,并在同一 VLAN 内传播广播。
- B 发现询问的是自己的 IP,通常单播回复自己的 MAC。
- 交换机从回复中学到 B 的 MAC 和入口对应关系。
- A 缓存这个映射,随后才能把 ICMP 请求装进发给 B 的以太网帧。
交换机也可能在此前已经学到了相关 MAC;这里描述的是从空表开始的教学过程。
IMPORTANT不能把笔记里的“所有设备都会记录 ARP 请求的源地址”当成统一规则。ARP 接收过程区分更新已有映射和新增映射,实际系统也可能有额外限制。能收到广播,不等于一定会新增一条 ARP 表项。参见 RFC 826 的接收处理。
7. ARP 表与 MAC 表不是同一张表
| 表 | 典型查看位置 | 回答的问题 |
|---|---|---|
| ARP 表 | 主机或三层设备 | 这个邻居 IP 对应哪个 MAC? |
| MAC 地址表 | 二层交换机 | 这个 VLAN 中的 MAC 应该从哪个端口走? |
Windows 或支持该命令的 eNSP PC:
arp -a华为设备:
display arpdisplay mac-addressARP 缓存也会更新、老化,但不能把课堂中的 180 秒当成所有系统的固定值。
7.1 免费 ARP 与反向 ARP
免费 ARP 常用于宣告自己的地址映射,也与地址冲突检测有关。它并不是“不要钱的另一种协议”,而是在没有收到普通查询时主动发送的 ARP 信息。
更严谨地说,使用地址前的 ARP Probe 与宣告已使用地址的 ARP Announcement,报文字段和目的并不完全一样,具体区分见 RFC 5227。入门阶段先记住:不要把所有地址检测报文都当作普通的“查询别人 MAC”。
反向 ARP(RARP)则是历史上根据硬件地址获取协议地址的机制。现在常见的自动获取地址过程由 DHCP 完成,不能把 DHCP 简单当作 ARP 的反向操作。
8. 在 eNSP 中可以怎样观察
建立两台 PC 和一台 LSW 的小拓扑,把两台 PC 放在同一 VLAN,并配置上面的地址。这个同网段练习暂时不需要网关。
在 A 与交换机之间抓包,再从 A Ping B。Wireshark 显示过滤器可以写:
arp || icmp重点观察三个问题:
- ARP Request 的目的 MAC 是否为全 F?
- ARP Reply 返回的 MAC,是否对应后续 ICMP 请求的目的 MAC?
- 再次 Ping 时,如果缓存还有效,是否不再重复整个 ARP 查询过程?
第一次 Ping 可能因为地址解析或设备启动过程而超时,但持续丢包不能只归因于 ARP。应继续检查地址、掩码、VLAN 和接口状态。
这时再看“插上网线就能通信”,就能把它拆成三个具体动作:链路传信号,交换机查 MAC 表,主机通过 ARP 找到本地下一跳。
下一篇:IPv4、子网掩码与 DNS。