主页 > 网络知识 > 交换机工作原理

交换机工作原理

交换机工作原理

以太网交换机,在不做特别说明的情况下,一般指的是二层交换机。这种设备工作在OSI参考模型的第二层。依靠二层消息中的源和目标转发数据,可以提供多个接口,让各种设备互相连接起来。

交换机主要有三个功能

  • 地址学习
  • 帧的转发和过滤
  • 环路防止

地址学习

首先在刚开机时,MAC地址表是空的。交换机依靠这张表转发数据。可是在刚开机时,这张表里没有任何信息。这里以思科的设备为例。在设备上使用show mac address-table查看mac地址表

这张表根据设备的不同,存储条目的上限也有不同。交换机学习mac地址的过程如下:

假设主机A发送数据帧给主机C。会带着自己的源mac地址发送数据。这里先不管目标mac是多少,交换机会先从E0接口学习到一个条目。那就是E0接口连接的设备mac地址是0260.8c01.1111.这是由源地址学习过来的。那么交换机上的mac表这时会多一个条目,变成如下所示的样子。

但是这个时候给C的消息由于mac表中依然没有对应C的条目,所以这个时候交换机会做一个操作叫做泛洪。泛洪是指,当交换机收到未知的单播帧(目标mac地址在mac表中没有对应条目)时,将会把这个数据发送给除了收到这个帧的接口的所有接口,在图中,交换机会将从E0收到的未知单播帧发给E1,E2,E3。这样一来C一定会收到这个消息。C在回复A的时候由于之前已经记录过一次MAC地址,所以回复的帧不会泛洪,并且同时可以由E2学习到C的MAC地址。

帧的过滤

02

VLAN

由于交换机在不做任何配置的情况下,收到广播会往所有接口转发,这样一来,广播域的范围便是整个交换机本身。会带来不便与管理和安全隐患。所以人们希望能够通过某种技术在交换机上逻辑地分隔广播范围。VLAN技术便应运而生了。

  • 一个VLAN中的所有设备都是在同一广播域内,不同VLAN为不同的广播域。
  • VLAN之间相互隔离,广播不能跨越VLAN传播,所以不同的VLAN之间的设备一般需要通过三层设备实现互相通信
  • 一个VLAN一般就是一个子网。
  • VLAN的成员大多数是基于端口划分的。划分VLAN就是对交换机的端口划分。
  • VLAN工作在二层

VLAN工作原理

交换机内部的数据一律带有VLAN Tag,当一个数据进入交换机端口时,如果没有带VLAN Tag,且该端口配置了PVID(Port VLAN ID)那么该数据就会被标记上端口的PVID。如果该数据已经带了VLAN Tag,那么即使该端口已经配置了PVID,交换机也不会再给数据帧标记VLAN Tag.PVID是指“端口缺省ID”的意思。

交换机端口类型一共有三种,由于端口类型不同所以对帧的处理过程也不同。

1.Access端口处理帧的流程:

1) 收到一个二层帧

2) 判断该帧有没有VLAN tag

  • 没有,则标记上Access端口的PVID,进行第三步
  • 有Tag,则比较该Tag和端口的PVID是否一致。若一致,进行第三步,否则丢弃。

3) 根据帧的目标MAC地址和VLAN ID查找VLAN配置信息,决定从哪个端口把帧发送出去。

4) 交换机根据查到的出接口发送帧。

  • 当数据从access接口发出时,交换机先剥离VLAN Tag。然后再发送出去。
  • 当数据帧从Trunk接口发出时,直接发送帧。
  • 当数据从Hybrid接口发出时,交换机先判断VLAN在本端口的属性时Untag还是Tag。如果是Untag,则剥离VLAN Tag之后再发送,如果是Tag,则直接发送帧。

2.Trunk端口处理帧的过程

1) 收到一个二层帧。

2) 判断帧是否有VLAN Tag。

  • 没有Tag,则标记上Trunk端口的PVID,进行下一步处理。
  • 有Tag,则判断该trunk接口是否允许该Tag通过,允许则进行下一步处理,否则丢弃。

3) 二层交换机根据目标MAC和VLAN ID,查找VLAN信息并把帧转发出去。

4) 交换机根据查到的出接口转发数据帧。

  • 当数据从access接口发出时,先剥离VLAN tag 再发送出去。
  • 当数据从trunk接口发出时,直接发送帧。
  • 当数据从hybird接口发出时,交换机先判断该接口的属性时tag还是untag。如果是tag则直接发送,如果是untag则剥离标签后再发送。

03

Native Vlan

在802.1q中,Native Vlan是不打标签的Vlan。默认的Native Vlan是Vlan1。建议将一个生僻的Vlan设置为Native Vlan。两个互联的交换机的Native Vlan必须一致。否则将会出现流量互串的问题。

如上图,首先两边的vlan2互相通信肯定是没有问题的,但是当vlan3,vlan4通信时就会出现问题了。首先假设vlan3的用户发送一个数据,到了左边交换机的trunk接口,发现vlan3时native vlan 不打标签,就直接出去了。到了右边的交换机,由于native vlan为4,右边的交换机会认为这个流量属于vlan4。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!