以太网交换技术讲解

电子说

1.3w人已加入

描述

导读

当前园区网大多使用交换机组网,使用交换机组建的网络管理非常灵活,可以根据同一部门或者具有相同管理要求的需要创建虚拟局域网(Vlan)。那么园区内的交换机是如何进行数据包交换的?不同部门之间是如何进行隔离的?今天这篇文章,将通过对以太网帧、MAC地址、Vlan等的介绍来讲解以太网交换技术。

作者:李培杰

单位:中国移动智慧家庭运营中心

  Part 01 ●  以太网基础 ● 

1.1 MAC地址

MAC地址又称为物理地址,是制造商为网卡分配的地址,MAC地址是唯一的,如同我们每个人都有一个身份证号码来标识自己一样,网卡就用MAC地址来标识自己。一个MAC地址有48位,一般采用十六进制数的方式来表示。如图为MAC地址的表示方式:

Mac

图1 MAC地址

1.2 以太网帧格式

以太网技术所使用的帧称为以太网帧,简称以太帧,以太帧一般使用Ethernet Ⅱ格式,下图为Ethernet Ⅱ格式的以太帧:

Mac

图2 EthernetⅡ以太帧

(1)目标MAC地址:该字段表示的是帧的接收者,可以是一个单播地址,也可以是组播或者广播地址。

(2)源MAC地址:该字段表示的是该帧的发送者。源MAC地址只能是一个单播MAC地址。

(3)类型:表示载荷数据的类型,该字段2字节。若是是一个IPv4包,则为是0x0800。

(4)载荷数据:表示数据帧的有效载荷,它的长度可变。

(5)CRC字段:循环冗余校验,它是用来对帧进行检错校验的。

Part 02 ●  以太网交换机 ● 

2.1 交换机转发操作

交换机有一张MAC地址表,交换机会基于此表进行帧的转发。交换机的转发操作一般有三种:转发、丢弃、泛洪。转发即为收到帧之后,从另一个接口转发出去;丢弃即为收到帧之后将其丢弃,不进行转发;泛洪是指将从某一接口收到的帧通过其他所有的接口转发出去。下图为交换机的三种转发方式示意图:

Mac

图3 交换机转发操作

Mac

图4 交换机泛洪操作

Mac

图5 交换机丢弃操作

2.2 交换机转发流程

前面已经介绍,交换机是基于MAC地址表进行帧转发的,而一开始交换机的MAC地址表是空的,交换机能够通过收到的帧的源MAC地址自动构建MAC地址表。如图所示,PC1给PC2发送一个帧x,当帧到达交换机的时候,交换机就会在MAC地址表中添加源MAC地址和对应接口的映射条目。交换机会在MAC地址表中查找该帧的目的MAC对应的接口,假如在MAC地址表中查找到了就会进行转发,假如没有找到,交换机就会将此帧x进行泛洪。其中PC3收到此帧时会将其丢弃。PC2收到此帧之后就会回应一个源MAC为PC2 MAC地址,目的地址为PC1 MAC地址的帧y,交换机收到之后,就会查询MAC地址表,此时,会查到MAC对应的接口,然后从此接口转发出去。同时会在MAC地址表中添加PC2 MAC地址和对应接口的映射条目。

Mac

图6 交换机转发流程

Part 03 ●  Vlan ● 

3.1 什么是Vlan

一台交换机就是一个广播域,整台交换机的所有端口均属于同一个广播域。通常一个广播域就是一个逻辑子网。当一个网络中有多个交换机的时候,网络会变得特别大,此时,网络中的设备有可能被大量的广播损耗资源,而且也无法根据业务需求灵活的规划网络结构。虚拟局域网(Vlan)可以解决上述问题。通过将交换机的端口划入特定的Vlan,可以起到隔离广播域的作用。不同的Vlan是不同的广播域,就算两个Vlan之间的PC的IP地址在同一网段也无法进行通信。不同的Vlan之间无法进行二层互访。可根据业务需求灵活的进行Vlan的规划。如图所示,PC1、PC2、PC3属于Vlan 1,PC4、PC5、PC6属于Vlan 2,当PC1发送一帧x的时候,交换机刚开始MAC地址表查不到进行泛洪,此时,只有同一Vlan的PC2、PC3才能收到此帧,PC4发送的帧y同理。

Mac

图7 交换机上不同Vlan通信过程

3.2 Vlan的划分方式

在一个支持Vlan的网络中,计算机发出的帧是不带tag的帧,当这个帧到达交换机的时候,交换机就会根据划分方式将其划分到某个Vlan中,一般主要有以下四种划分方式:

基于接口划分的Vlan:将Vlan id映射到交换机的物理接口上,pc发送的数据帧都是没有tag的,都会被划分到该接口的vlan id 所表明的Vlan。

基于MAC地址的Vlan:通过查询并记录端口所连PC上网卡的MAC地址来决定数据帧属于哪个Vlan。

基于子网的Vlan:通过所连计算机的IP地址,来决定端口所属Vlan的。

基于用户的Vlan:根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个Vlan。

3.3 交换机的接口类型

普通交换机的二层接口一般分为以下三种类型:access、trunk、hybird。一般常用的为access接口和trunk接口,下面通过对Vlan tag的处理过程分别来介绍这access和trunk端口类型:

(1)Access:通常用于直连终端,常用于连接PC、服务器或其他终端,交换机连路由器一般也用Access。Access接口只能加入一个Vlan,一旦加入特定的Vlan后,该接口所连接的设备也就加入了该Vlan。缺省的话默认加入Vlan 1。Access接口收数据时如果收的是untag数据,会打上此接口的vlan id进行接收,如果是tag数据,比较tag数据vlan id与此接口vlan id是否一致,一致则接收,否则丢弃。发数据时首先比较待发数据的vlan id ,如果和此接口vlan id一致,则剥离标签,并以untag形式发送;如果和此接口vlan id不一致,则不发。如下图所示:A、B、C、D属于Vlan 1, E、F、H、G属于Vlan 2。计算机A 给 D 发送一个帧,进入交换机接口加上Vlan 1标记,从接口出去,去掉Vlan 1标记。计算机发送和接收的帧不带 Vlan标记。

Mac

图8 交换机access接口收发数据过程图

(2)trunk:当一条链路,需要承载多Vlan信息的时候,需要使用trunk来实现。trunk一般用于交换机之间或者交换机和防火墙之间。trunk端口可以属于多个Vlan。trunk接口在收数据时如果收的是untag数据,会打上此接口的vlan id进行接收,如果是tag数据,首先查看接口的列表是否存在此vlan id,如果存在,则接收,否则丢弃。发数据时首先查看接口的列表,如果待发数据的vlan id在此列表中,则允许发送,否则不会从此接口发送。其次如果数据允许发送,则比较此待发数据的tag是否和此接口vlan id是否一致,一致则发untag数据,否则发tag数据。如下图所示:A、B、C、D属于Vlan 1,E、F、H、G属于Vlan 2,它们分别连在两个交换机上。计算机C给D 发送一个帧,进入交换机接口加上Vlan 1标记,从trunk接口出去的时候仍然带有Vlan tag。

Mac

图9 交换机trunk接口收发数据过程图

Part 04 ●  总结 ● 

综上所述,二层交换机主要通过MAC地址进行数据帧的转发,使用交换机搭建组网管理非常灵活,而且可以增加网络的吞吐量,通过使用Vlan技术来隔离广播域可以减少大量广播带来的资源损耗,过滤一部分不需要转发的报文。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分