二层交换机

二层交换机的特点

  • 二层交换机可以充当网桥,将计算机网络系统的各种终端设备连接在一个平台上。它们能够非常快速且有效地将数据从LAN 网络的源端传输到目标端。
  • 二层交换机通过从交换机的地址表中学习目的节点的 MAC 地址,执行交换功能,将数据帧从源端重新排列到目的端。
  • MAC地址表为二层设备提供了唯一的地址,用于标识数据下发的终端设备和节点。
  • 二层交换机将庞大复杂的 LAN 网络拆分为一个个小的 VLAN 网络。
  • 通过在一个大型的 LAN 网络中配置多个 VLAN,在没有物理连接的情况下,交换变得更快。

二层交换机的应用

  • 通过二层交换机,我们可以轻松地将位于同一 VLAN 内的数据帧从源端发送到目的端,而无需物理连接或位于同一位置。
  • 因此,软件公司的服务器可以集中放置在一个位置,而分散在其他位置的客户端可以轻松访问数据而没有延迟,从而节省服务器成本和时间。
  • 组织可以通过使用这些类型的交换机将主机配置在同一个 VLAN 中,而不需要任何互联网连接,从而实现内部通信。

交换机二层转发原理

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

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

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

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

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

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

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

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

单播:主机一对一的发送数据。单播地址是主机的 MAC 地址。

广播:向局域网内所有设备发送数据。只有全 1 的 MAC 地址为广播 MAC 地址,即FF-FF-FF-FF-FF-FF

泛洪:将某个端口收到的数据从除该端口之外的所有端口发送出去。泛洪操作广播的是普通数据帧而不是广播帧。

VLAN

冲突和广播域

在二层交换中,当两个或多个主机试图在同一网络链路上以相同的时间间隔进行通信时,可能会发生冲突。当数据帧发生冲突,设备必须重新发送数据。冲突对网络性能有严重的负面影响,因此绝对要避免冲突。

广播是一种信息的传播方式,指网络中的某一设备同时向网络中所有的其他设备发送数据,这个数据所能广播到的范围即为广播域。简单点说,广播域就是指网络中所有能接收到同样广播消息的设备的集合。

使用一个或多个交换机组成的以太网,所有站点都在同一个广播域。随着交换机变多,这个广播域的范围也会变大,于是就会出现难以维护、广播风暴以及安全等问题。

一个主机想要获取另外一个网段的主机 MAC 地址,需要发送 ARP 广播请求获取对方主机的 MAC 地址。这个广播请求会广播到每一个主机身上,容易导致广播风暴。

在一个广播域内的任意两台主机之间可以任意通信,通信数据有被窃取的风险。

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

VLAN 原理

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

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

  • TPID(标签协议标识符):长度 2 个字节,值为0x8100,用来表示这个数据帧携带了 802.1Q 标签。不支持 802.1Q 标准的设备收到这类数据帧,会把它丢弃。
  • TCI(标签控制信息):长度 2 个字节,又分为三个子字段,用来表示数据帧的控制信息:
  • 优先级:长度为 3 比特,取值范围 0 ~ 7,用来表示数据帧的优先级。取值越大,优先级越高。当交换机发送拥塞是,优先转发优先级高的数据帧。
  • CFI(规范格式指示器):长度为 1 比特,取值非 0 即 1。
  • VLAN ID(VLAN 标识符):长度为 12 比特,用来表示 VLAN 标签的数值。取值范围是 1 ~ 4094。

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

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

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

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

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

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

小结:在不使用路由转发的前提下,交换机不会从一个 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)。

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

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

  • 如果交换机接口收到无标记帧,由交换机根据这个接口所在 VLAN 为数据帧打上 VLAN 标签;同时接口发送数据帧时,也不携带 VLAN 标签。应该把这类接口配置为Access(接入)接口,Access接口连接的链路称为Access链路。
  • 如果交换机接口收到多个 VLAN 的流量,也就是收到了标记帧;同时为了让对端设备能够区分不同 VLAN 的流量,通过接口发出的流量会打上 VLAN 标签。应该把这类接口配置为Trunk(干道)接口,相应的链路称为Trunk链路。

跨交换机发送数据

主机 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 接口的配置

实验拓扑图

实验要求

  • 将 SW1(即交换机 1)和 SW2(即交换机 2)相连的接口配置为Trunk接口,允许传输 VLAN 5 的数据;
  • 将 PC(即主机)与 SW 相连接口配置为Access接口,接口的 PVID 配置为 VLAN 5。

实验步骤

SW 1 上的配置如下:

检查 SW1 的接口配置,使用命令display vlan查看接口 VLAN 情况。

Hybrid 接口的配置

三种接口类型特点:

  • Access接口:这种接口只能属于一个 VLAN,只能接收和发送一个 VLAN 的数据。通常用于连接终端设备,比如主机或服务器等。
  • Trunk接口:这种接口能够接收和发送多个 VLAN 的数据,通常用于连接交换机。
  • Hybrid接口:这种接口能够接收和发送多个 VLAN 的数据,可用于交换机的链路,也可用于终端设备。与Trunk接口的区别是,发送数据时Trunk接口只会摘掉 PVID 标签,而Hybrid接口能够不携带 VLAN 标签发送多个 VLAN 数据。

实验拓扑图

实验要求

新建 3 个 VLAN,PC1 属于 VLAN 2,PC2 属于 VLAN 3,Server 1(即服务器 1)属于 VLAN 10;

通过Hybrid接口实现 VLAN 2 和 VLAN 3 不能互通,但 VLAN 2 和 VLAN 3 都能与 VLAN 10 进行通信。

实验步骤

SW1 的E0/0/2接口,只允许通过 VLAN 2,PC1 又需要访问 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 的流量。SW1 上的配置如下:

SW2 的E0/0/1接口配置和 SW1 的 E0/0/1 接口同理。SW2 的E0/0/10接口,只允许通过 VLAN 10,Server1 又需要放通 VLAN 2 和 VLAN 3 的流量,因此配置Hybrid的 PVID 为 VLAN 10,同时放通 VLAN 2、VLAN 3 和 VLAN 10。SW2 上的配置如下:

检查 VLAN 10 信息,分别在 SW1 和 SW2 上使用命令display vlan 10查看配置是否正确。

结尾

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

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

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

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

打赏
  • Copyrights © 2017-2023 WSQ
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信