一文读懂以太网交换技术
创始人
2025-07-08 13:41:46
0

Labs 导读

当前园区网大多使用交换机组网,使用交换机组建的网络管理非常灵活,可以根据同一部门或者具有相同管理要求的需要创建虚拟局域网(Vlan)。那么园区内的交换机是如何进行数据包交换的?不同部门之间是如何进行隔离的?

Part 01、  以太网基础 

1.1 MAC地址

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

图1 MAC地址


1.2 以太网帧格式

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

图2 EthernetⅡ以太帧

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

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

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

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

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

Part 02、以太网交换机 

2.1 交换机转发操作

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

图3 交换机转发操作

图4 交换机泛洪操作图4 交换机泛洪操作

图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地址和对应接口的映射条目。

图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同理。

图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标记。

图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。

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

Part 04、  总结 

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...