手揣网教程/路由器百科/内容

37张图详细说明MAC地址、以太网、二层转发、VLAN

路由器百科2024-09-09 阅读
37张图详细说明MAC地址、以太网、二层转发、VLAN

MAC 地址

每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。

MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。

37张图详细说明MAC地址、以太网、二层转发、VLAN

现在可以通过软件修改 MAC 地址,虚拟机使用物理机网卡的 MAC 地址,并不能保证 MAC 地址是唯一的。但是只要 MAC 地址相同的设备不在同一个数据链路上就没问题。

为了查看方便, 6 个字节的 MAC 地址使用十六进制来表示。每个字节的 8 位二进制数分别用 2 个十六进制数来表示,例如我的网卡 MAC 地址是 E0-06-E6-39-86-31。

什么是字节?什么是比特?

比特,英文名 bit ,也叫。二进制中最小单位,一个比特的值要么是 0 要么是 1 。

字节,英文名 Byte 。一个字节由八个比特构成。

MAC 地址怎么使用?

最常用的以太网和无线局域网,都是使用 MAC 地址作为地址标识符进行通信的。

以太网

有线局域网中普遍使用以太网,以太网标准简单,传输速率高。常见的网络拓扑结构如下图。

37张图详细说明MAC地址、以太网、二层转发、VLAN

什么是网络拓扑?

网络的连接和构成的形态称为网络拓扑。它不仅可以直观的看到网络物理连接方式,还可以表示网络的逻辑结构。

以太网数据格式

当今最常用的以太网协议标准是 ETHERNET II 标准。 ETHERNET II 标准定义的数据帧格式如下图。

37张图详细说明MAC地址、以太网、二层转发、VLAN

前导码由 7 个字节组成,每个字节固定为 10101010 。之后的 1 个字节称为帧起始定界符,这个字节固定为 10101011 。这 8 个字节表示以太网帧的开始,也是对端网卡能够确保与其同步的标志。帧起始定界符的最后两位比特被定义为 11 ,之后就是以太网数据帧的本体。

37张图详细说明MAC地址、以太网、二层转发、VLAN

最小的数据帧是多少字节?

数据帧的各字段加起来一共是 64 字节,其中数据是 46 字节。再加上前导码就是 72 字节。因此最小的数据帧是 72 字节。在传输过程中,每个数据帧还有 12 字节的数据帧间隙,所以最小的可传输数据帧长度是 84 字节,即 672 比特。

交换机二层转发原理

交换机有多个网络端口,它通过识别数据帧的目标 MAC 地址,根据 MAC 地址表决定从哪个端口发送数据。MAC 地址表不需要在交换机上手工设置,而是可以自动生成的。

37张图详细说明MAC地址、以太网、二层转发、VLAN

交换机是如何添加、更新、删除 MAC 地址表条目的?

在初始状态下,交换机的 MAC 地址表是空的,不包含任何条目。当交换机的某个端口接收到一个数据帧时,它就会将这个数据帧的源 MAC 地址、接收数据帧的端口号作为一个条目保存在自己的 MAC 地址表中,同时在接收到这个数据帧时重置这个条目的老化计时器时间。这就是交换机自动添加 MAC 地址表条目的方式。

37张图详细说明MAC地址、以太网、二层转发、VLAN

在新增这一条 MAC 地址条目后,如果交换机再次从同一个端口收到相同 MAC 地址为源 MAC 地址的数据帧时,交换机就会更新这个条目的老化计时器,确保活跃的的条目不会老化。但是如果在老化时间内都没收到匹配这个条目的数据帧,交换机就会将这个老化的条目从自己的 MAC 地址表中删除

37张图详细说明MAC地址、以太网、二层转发、VLAN

还可以手动在交换机的 MAC 地址表中添加静态条目。静态添加的 MAC 地址条目优先动态学习的条目进行转发,而且静态条目没有老化时间,会一直保存在交换机的 MAC 地址表中。

如何使用 MAC 地址表条目进行转发?

当交换机的某个端口收到一个单播数据帧时,它会查看这个数据帧的二层头部信息,并进行两个操作。一个操作是根据源 MAC 地址和端口信息添加或更新 MAC 地址表。另一个操作是查看数据帧的目的 MAC 地址,并根据数据帧的目的 MAC 地址查找自己的 MAC 地址表。在查找 MAC 地址表后,交换机会根据查找结果对数据帧进行处理,这里有 3 中情况:

  1. 交换机没有在 MAC 地址表中找到这个数据帧的目的 MAC 地址,因此交换机不知道自己的端口是否有连接这个 MAC 地址的设备。于是,交换机将这个数据帧从除了接收端口之外的所有端口泛洪出去。
37张图详细说明MAC地址、以太网、二层转发、VLAN
  1. 交换机的 MAC 地址表中有这个数据帧的目的 MAC 地址,且对应端口不是接收到这个数据帧的端口,交换机知道目的设备连接在哪个端口上,因此交换机会根据 MAC 地址表中的条目将数据帧从对应端口单播转发出去,而其它与交换机相连的设备则不会收到这个数据帧。
37张图详细说明MAC地址、以太网、二层转发、VLAN
  1. 交换机的 MAC 地址表中有这个数据帧的目的 MAC 地址,且对应端口就是接收到这个数据帧的端口。这种情况下,交换机会认为数据帧的目的地址就在这个端口所连接的范围内,因此目的设备应该已经收到数据帧。这个数据帧与其它端口的设备无关,不会将数据帧从其它端口转发出去。于是,交换机会丢弃数据帧。
37张图详细说明MAC地址、以太网、二层转发、VLAN

单播:主机一对一的发送数据。单播地址是主机的 MAC 地址。
广播:向局域网内所有设备发送数据。只有全 1 的 MAC 地址为广播 MAC 地址,即 FF-FF-FF-FF-FF-FF 。
泛洪:将某个端口收到的数据从除该端口之外的所有端口发送出去。泛洪操作广播的是普通数据帧而不是广播帧。

37张图详细说明MAC地址、以太网、二层转发、VLAN37张图详细说明MAC地址、以太网、二层转发、VLAN

VLAN

广播域是广播帧可以到达的区域。换句话说,由多个交换机和主机组成的网络就是一个广播域。

网络规模越大,广播域就越大,泛洪流量也越来越大,降低通信效率。在一个广播域内的任意两台主机之间可以任意通信,通信数据有被窃取的风险。

37张图详细说明MAC地址、以太网、二层转发、VLAN

为了解决广播域扩大带来的性能问题和安全性降低问题, VLAN 技术应运而生。 VLAN 技术能够在逻辑上把一个物理局域网分隔为多个广播域,每个广播域称为一个虚拟局域网(即 VLAN )。每台主机只能属于一个 VLAN ,同属一个 VLAN 的主机通过二层直接通信,属于不同 VLAN 的主机只能通过 IP 路由功能才能实现通信。通过划分多个 VLAN ,从而减小广播域传播的范围,过滤多余的包,提高网络的传输效率,同时提高了网络的安全性。

37张图详细说明MAC地址、以太网、二层转发、VLAN

VLAN 原理

VLAN 技术通过给数据帧插入 VLAN 标签(又叫 VLAN TAG)的方式,让交换机能够分辨出各个数据帧所属的 VLAN 。

VLAN 标签是用来区分数据帧所属 VLAN 的,是 4 个字节长度的字段,插入到以太网帧头部上。 VLAN 标签会插入到源 MAC 地址后面, IEEE 802.1Q 标准有这个格式定义和字段构成说明。

37张图详细说明MAC地址、以太网、二层转发、VLAN

划分 VLAN 后,交换机如何处理广播报文?

交换机上划分了多个 VLAN 时,在交换机接收到广播数据帧时,只会将这个数据帧在相同 VLAN 的端口进行广播

37张图详细说明MAC地址、以太网、二层转发、VLAN

划分 VLAN 后,交换机如何处理目的 MAC 地址不在 MAC 地址表中的单播数据帧?

交换机上划分了多个 VLAN 时,当交换机接收到一个目的 MAC 地址不存在于自己 MAC 地址表中的单播数据帧时,只会将这个数据帧在相同 VLAN 的端口进行泛洪

37张图详细说明MAC地址、以太网、二层转发、VLAN

划分 VLAN 后,不同 VLAN 的主机能否通信?

划分多 VLAN 的环境中,即使交换机 MAC 地址表里保存了某个数据帧的目的 MAC 地址条目,若这个目的 MAC 地址所对应的端口与数据帧的入端口在不同的 VLAN 中,交换机也不会通过 MAC 地址表中的端口发送数据帧。

37张图详细说明MAC地址、以太网、二层转发、VLAN

小结:在不使用路由转发的前提下,交换机不会从一个 VLAN 的端口中接收到的数据帧,转发给其它 VLAN 的端口。

怎么区分不同的 VLAN ?

通过 VLAN ID 进行区分,例如 VLAN 10 和 VLAN 20 就是不同的 VLAN 。

VLAN 技术有哪些好处?

划分 VLAN

我们可以使用不同的方法,把交换机上的每个端口划分到某个 VLAN 中,以此在逻辑上分隔广播域。

交换机通常会使用基于端口划分 VLAN 的方法。在交换机上手动配置,绑定交换机端口和 VLAN ID 的关系。

优点:配置简单。想要把某个端口划分到某个 VLAN 中,只需要把端口的 PVID (端口 VLAN ID )配置到相应的 VLAN ID 即可。

缺点:当终端设备移动位置是,可能需要为终端设备连接的新端口重新划分 VLAN 。

除了这种方法外,还可以使用基于 MAC 地址划分 VLAN基于 IP 地址划分 VLAN基于协议划分 VLAN基于策略划分 VLAN 等方法来划分 VLAN。

PVID :接口默认 VLAN ID ,是交换机端口配置的参数,默认值是 1 。

跨交换机 VLAN 原理

终端设备不会生成带 VLAN 标签的数据帧,它们发出的数据帧叫做无标记帧( Untagged )。它们连接的交换机会给无标记帧打上 VLAN 标签。交换机通过每个端口的 PVID ,判断从这个接口收到的无标记帧属于哪个 VLAN ,并在转发时,插入相应的 VLAN 标签,从而将无标记帧变为标记帧( Tagged )。

当两台交换机通过端口连接时,收到的数据帧是标记帧还是无标记帧?交换机端口会如何处理呢?

37张图详细说明MAC地址、以太网、二层转发、VLAN

交换机根据连接的设备类型,判断各个接口收到的数据帧是否打标,来配置交换机接口的类型。

跨交换机发送数据

37张图详细说明MAC地址、以太网、二层转发、VLAN

主机 A 以主机 F 的 MAC 地址作为目的 MAC 地址封装了一个数据帧,从网卡发送出去。

交换机 A 在 Access 接口收到数据帧。查询 MAC 地址表,发现数据帧的目的地址是与交换机 B 相连的 Trunk 接口。于是交换机给数据帧打上 Access 接口的 PVID 配置,即给数据帧打上 VLAN 10 的标签,并从 Trunk 接口转发给交换机 B 。

交换机 B 在 trunk 接口收到数据帧。查看 MAC 地址表,发现是 VLAN 10 的数据帧,目的地址设备是连接在 VLAN 10 的一个 Access 接口上。于是去掉数据帧的 VLAN 标签,并从这个 Access 接口转发给主机 F 。

模拟实验

Access 接口和 Trunk 接口的配置

实验拓扑图

37张图详细说明MAC地址、以太网、二层转发、VLAN

实验要求

实验步骤

  1. SW 1 上的配置如下:
37张图详细说明MAC地址、以太网、二层转发、VLAN
  1. 检查 SW 1 的接口配置,使用命令 display vlan 查看接口 VLAN 情况。
37张图详细说明MAC地址、以太网、二层转发、VLAN

Hybrid 接口的配置

三种接口类型特点:

实验拓扑图

37张图详细说明MAC地址、以太网、二层转发、VLAN

实验要求

实验步骤

  1. SW 1 的 E0/0/2 接口,只允许通过 VLAN 2 , PC 1 又需要访问 VLAN 10 ,但是无法识别 VLAN 标签信息,因此配置 Hybrid 的 PVID 为 VLAN 2 ,同时放通 VLAN 2 和 VLAN 10 。 E0/0/3 接口配置同理。 E0/0/1 接口需要放通 VLAN 2 、 VLAN 3 和 VLAN 10 的流量,对端交换机又需要识别 VLAN 标签,因此以带 VLAN 标签的形式放通 VLAN 2 、 VLAN 3 和 VLAN 10 的流量。 SW 1 上的配置如下:
37张图详细说明MAC地址、以太网、二层转发、VLAN
  1. SW 2 的 E0/0/1 接口配置和 SW 1 的 E0/0/1 接口同理。SW 2 的 E0/0/10 接口,只允许通过 VLAN 10 , Server 1 又需要放通 VLAN 2 和 VLAN 3 的流量,因此配置 Hybrid 的 PVID 为 VLAN 10 ,同时放通 VLAN 2 、 VLAN 3 和 VLAN 10 。 SW2 上的配置如下:
37张图详细说明MAC地址、以太网、二层转发、VLAN
  1. 检查 VLAN 10 信息,分别在 SW 1 和 SW 2 上使用命令 display vlan 10 查看配置是否正确。
37张图详细说明MAC地址、以太网、二层转发、VLAN37张图详细说明MAC地址、以太网、二层转发、VLAN

结尾

Access 接口接收数据帧处理过程

37张图详细说明MAC地址、以太网、二层转发、VLAN

Access 接口发送数据帧处理过程

37张图详细说明MAC地址、以太网、二层转发、VLAN

Trunk 接口接收数据帧处理过程

37张图详细说明MAC地址、以太网、二层转发、VLAN

Trunk 接口发送数据帧处理过程

37张图详细说明MAC地址、以太网、二层转发、VLAN

参考资料:

图解TCP/IP - 竹下隆史

网络基础 - 田果

路由与交换技术 - 刘丹宁

……

相关阅读