交换机工作原理详解
交换机工作原理
1、交换机的作用:
- 连接多个以太网物理段,隔离冲突域
- 对以太网帧进行高速而透明的交换转发
- 自行学习和维护MAC地址信息
交换机工作在二层,可以用来隔离冲突域,在OSI参考模型中,二层的作用是寻址,这边寻址指的是MAC地址,而交换机就是对MAC地址进行转发,在每个交换机中,都有一张MAC地址表,这个表是交换机自动学习的。
所以,总得来说交换机的作用是寻址和转发,这边需要注意的是寻址和转发都是MAC地址,需要跟上周分享的路由器区分开来,路由器寻址寻的是IP地址,而交换机是MAC地址。
2、交换机的特点:
- 主要工作在OSI模型的物理层、数据链路层
- 提供以太网间的透明桥接和交换
- 依据链路层的MAC地址,将以太网数据帧在端口间进行转发
3、交换机MAC地址表转发过程:
MAC地址表初始化:
交换机刚启动时,MAC地址表中无表项。以上图中的交换机就是刚刚启动的时候的MAC地址表。可以看出并没有任何的表项,当接入PC的时候,交换机开始进行学习MAC地址,见下图:
MAC地址表学习过程(1)
- PCA发出数据帧
- 交换机把PCA的帧中的源地址MAC_A与接收到此帧的端口E1/0/1关联起来
- 交换机把PCA的帧从所有其他端口发送出去(除了接收到帧的端口E1/0/1)
MAC地址表学习过程(2)
PCB、PCC、PCD发出数据帧交换机会把接收到的帧中的源地址与相应的端口关联起来,至此,交换机的MAC地址表学习完成,开始进行数据的转发。
4、交换机对数据帧的转发与过滤
单播帧的转发:
- PCA发出目的到PCD的单播数据帧
- 交换机根据帧中的目的地址,从相应的端口E1/0/4发送出去
- 交换机不在其他端口上转发此单播数据帧
广播、组播和未知单播帧的转发:
交换机会把广播、组播和未知单播帧从所有其他端口发送出去(除了接收到帧的端口)
VLAN基本原理
1、广播风暴
所谓广播帧就是在二层环境中设备发出的广播帧在广播域中传播,这样会导致广播镇占用网络带宽,降低设备性能。
2、使用三层设备路由器隔离广播域
广播帧属于二层并不会跨越三层,所以为了解决广播风暴,可以使用三层设备隔离广播域,减小广播域范围。比如使用路由器来隔离广播域,由于路由器是三层设备,对数据的转发容易形成瓶颈,所以一般我们使用VLAN来隔离广播域。
3、VLAN隔离广播
二层交换机使用VLAN(虚拟局域网)隔离广播,用来减小广播域范围。这样的话,不同VLAN之间是无法进行通信的,假设PCA发送一个广播帧,只会在VLAN1之间传播并不会传播到VLAN2,这样既限制了广播域的范围,又保证了VLAN2的安全性。
4、VLan优点
- 有效控制广播域范围
- 增强局域网的安全性
- 灵活构建虚拟工作组
5、VLAN分类(VLAN的划分方法)
基于端口的VLAN:
基于端口的VLAN划分方法是最常用的一种划分方法,就是一个或者几个端口属于一个VLAN,这个端口下面的用户也就属于该 VLAN。假设以上图中,E1/0/1和E1/0/2属于VLAN10,E1/0/3和E1/0/4属于VLAN20,那么PCA和PCB也都都属于 VLAN10,可以互相通信,PCC和PCD属于VLAN20,也可以互相通信。
这种划分方法的优先就是配置比较方便,只要在交换机上将相应的端口加入相应的 VLAN 即可,缺点是对于用户来说如果更改了交换机的端口也就更换了VLAN ID。
基于MAC地址的VLAN:
基于 MAC 地址的 VLAN 就是在划分 VLAN 的时候根据 MAC 地址划分 VLAN,比如将 PCA和 PCB 的 MAC 地址划分在 vlan10中,那么 PCA 和 PCB 就属于 VLAN10,PCC 和 PCD 同理。
这种划分方法的优点是对于用户来说不受地理位置的闲置,不管PCA用户接在哪个接口,都属于VLAN10,缺点是配置较基于端口的划分方法繁琐。
基于协议的VLAN:
这种划分方法是指运行不同的协议划分到相同的VLAN中,比如PCA和PCB都运行的是IP协议,属于VLAN10,PCC和PCD同理。
此种划分方法优点依旧是不受物理位置的影响,不管PCA接在交换机的哪个接口,都属于VLAN10。缺点的其实PC真正可以运行的协议并没有很多,有划分vlan数量上的限制。
基于子网的VLAN:
这种划分方法是根据子网划分,比如10.0.0.0/24属于VLAN10,20.0.0.0/24属于vlan20;
以上四种划分方法最常用配置最方便是基于端口的VLAN划分方法,后面的实验示例也是以基于端口的划分方法。
6、Vlan技术原理
VLAN标签:
对于交换机来说,是根据VLAN标签来区分不同VLAN的以太网帧的。比如PCA发送一个目的地址为PCB的数据帧,到达交换机,交换机会打上VLAN 10的标签,然后根据vlan表确定从PCB的端口转发出去交给PCB。下面会详细介绍VLAN标签的操作。
802.1Q帧格式:
我们知道PC发送的数据并不带VLAN标签,那么VLAN ID的标签是什么时候打上的呢,其实是在数据中进入交换机端口的时候打上的。在标准的以太网帧的源地址SA和类型Type之间打上的Tag标签,此tag标签中含有VLAN ID,VLAN ID的范围为4096,去掉一个默认的vlan 1和vlan4096作为保留vlan,实际可用的vlan ID个数为4094个。
单交换机VLAN标签操作:
上面已经提过PC发送的数据不带VLAN标签,所以实在进入交换机的时候打上vlan标签,既然PC发出的数据不带VLAN标签,那么在出交换机的时候交换机需要对数据帧的VLAN标签进行剥离再转发给相对应的PC。
例如:PC发送一个保标准的以太网帧,源地址为PCA的地址,目的地址为PCC的地址,到达交换的时候端口的时候,交换机会打上VLAN10的标签,然后根据vlan表从PCC所在的端口转发,同时需要将VLAN 10的标签剥离,也就是说此数据帧到达PCC的时候依旧是标准的以太网帧,并不带VLAN标签,PCB和PCD同理。
Access链路类型端口:
VLAN 有三种链路类型,常用的是 Access 和 trunk 链路类型,下面也是介绍这种链路类型。第一种是 Access 链路类型,此链路类型的特点是指允许缺省的 VLAN 通过,同时仅发送和接收一个 VLAN 的数据帧。
所以 access 链路类型一般适用于连接用户设备,也就是交换机直接接 PC使用 access 链路。
跨交换机VLAN标签操作:
上面讲过,vlan 标签是在进入交换机的时候打上的,出交换机剥离标签,那么在如上的拓扑中,PCA 发送一个目的地址到PCC的数据帧,到达 SWA,SWA 打上 VLAN10的标签,然后从E1/0/24剥离标签然后转发出去,到达 SWB 打上vlan10的标签,从E1/0/1转发到 PCC,这是正常数据帧的转发,但是上面说过Access链路类型只支持一个数据帧通过,那么入股 PCB 同时再发一个 VLAN20 的数据帧的话就无法进行转发,为此,通过 trunk 链路类型实现。
Trunk 链路类型端口:
Trunk 链路类型的有点久是允许多个 VLAN 通过,可以接收和发送多个 VLAN 的数据帧。同时对于缺省的 VLAN 也就是 PVID 的以太网帧是不带标签的。
所以 trunk 链路类型一般用户交换机之间的连接。