园区网架构基础

交换技术/二层技术

路由技术不一定都是三层技术(如RIP封装在UDP 520,OSPF封装在IP 89)

二层交换机工作在数据链路层,对数据帧进行操作。在收到数据帧后,交换机会根据数据帧的头部信息对数据帧进行转发

数据交换 业务 流程 架构 数据交换技术的原理_数据交换 业务 流程 架构

数据链路层

位于网络层和物理层之间

数据交换 业务 流程 架构 数据交换技术的原理_数据交换 业务 流程 架构_02

数据链路层的功能

(1)数据链路的建立,维护和拆除 

物理地址、网络拓扑

(2)帧包装,帧传输, 帧同步 

组帧:把数据封装在帧中,按顺序传送。定界与同步:产生/识别帧边界

(3)帧的差错恢复 

差错恢复:采用重传的方法进行

(4)流量控制

流量控制以及自适应:确保中间传输设备的稳定以及收发双方传输速率的匹配

流量控制 (较高的发送速度和较低的接收能力的不匹配,会造成传输出错因此流量控制也是数据链路层的一项重要工作)

以太网帧格式

Ethernet II帧格式

数据交换 业务 流程 架构 数据交换技术的原理_数据交换 业务 流程 架构_03

前导码(Preamble)包含8字节。前7字节的值为0xAA,而最后1字节的值为 0xAB。在 DIX以太网中,前导码被认为是物理层封装的一部分,而不是数据链路层的封装。给发送的数据一个头部,作为这次所传数据的开头。

注:前导码作用是使目的主机接收器时钟与源主机发送器时钟同步。紧接着是帧开始节"10101011",于指示帧的开始。前导码和起始定界符是为了隔离每个以太网帧的,也是定位符目的地址(DA)包含6字节。DA标识了帧的目的站点的 MAc地址。DA可以是单地址(单个目的地)、组播地址(组目的地)或广播地址。

目的地址就是写入接收方的MAC地址

源地址(SA)包含6字节。SA标识了发送帧的站点的 MAC地址。SA一定是单播地址(即第8位是0)类型域包含2字节,用来标识上层协议的类型,如0800H表示IP协议,发送端自己的MAC地址。

数据域包含46~1500字节。数据域封装了通过以太网传输的高层协议信息。由于CSMA/CD算法的限制,以太网帧不能小于某个最小长度。高层协议要确保这个域至少包含46字节。如果实际数据不足46字节,则高层协议必须执行某些(未指定)填充算法。数据域长度的上限是任意的,但已经被设置为1500字节。

帧校验序列(FcS)包含4字节。PCS 是从 DA开始到数据域结束这部分的校验和。校验和的算法是 32位的CRC (cyclic Redundancy Check,循环冗余校验法)

MTU:1500最大传输单元

总长度:64-1518

交换机的作用

  • 连接多个以太网物理段,隔离冲突域
  • 对以太网帧进行高速而透明的交换转发
  • 自行学习和维护MAC地址信息

交换机工作在二层,可以用来隔离冲突域,在OSI参考模型中,二层的作用是寻址,这边寻址指的是MAC地址,而交换机就是对MAC地址进行转发,在每个交换机中,都有一张MAC地址表,这个表是交换机自动学习的。

所以,总得来说交换机的作用是寻址和转发,这边需要注意的是寻址和转发都是MAC地址,需要跟上周分享的路由器区分开来,路由器寻址寻的是IP地址,而交换机是MAC地址。

交换机的主要功能

终端设备的接入

以太网数据帧的交换,根据目的MAC地址转发数据帧;学习MAC地址,并维护MAC地址表;

 防止二层环路

原理

备注

学习

Learn

当从一个接口收到帧时,把帧内的源MAC与该接口进行绑定,存入MAC地址表,数据帧经过交换机,交换机会自动学 习数据帧的源mac地址

泛洪

Flood

当从一个接口收到广播帧、组播帧、未知单播帧(目标MAC不存在与MAC地址表中),把该帧从所有其他接口转发出去,除了接收口

转发

Forward

当从一个接口收到已知单播帧,立即从相应的接口转发出去,数据帧经过交换机,会在mac表中查 找数据帧的目的mac,查找成功,会从相应的接口转 发数据

更新

Update

默认每条记录保存300s

交换机重启后会清空所有接口学习到的记录

接口关闭后会清空该接口学习到的记录

一个源MAC出现在另外接口上,会删除老的记录,添加新的记录

数据交换 业务 流程 架构 数据交换技术的原理_数据帧_04

这个蓝色的箭头表示数据包的进入和输出,红色箭头表示数据流的走向。

一般来说这三种行为都叫做交换机的转发, 是一种统称。

发包即学习,无故ARP也能使交换机学习到MAC地址

相对交换机,路由器发现没有目标路由则直接丢包

display mac-address aging-time查看老化时间(不发包的话五分钟mac表清空)

一个接口只会学到一个主机的一个mac,可能来回浮动

组播优化技术,控制泛洪

交换机的特点

  • 主要工作在OSI模型的物理层、数据链路层
  • 提供以太网的透明桥接和交换
  • 依据链路层的MAC地址,将以太网数据帧通过交换机端口进行转发

MAC 地址表的概念

当把电脑主机插到交换机接口之后,如果电脑主机开始发送数据,那么交换机就会把电脑主机的网卡的MAC地址映射到自己的接口接口上, 这个映射关系就是MAC地址表。下边是关于华为交换机如何查看MAC地址表

MAC地址表的三原素:MAC地址,VLAN ID,端口号

MAC地址表的老化时间:300S

[Huawei]display mac-address verbose 

数据交换 业务 流程 架构 数据交换技术的原理_单播_05

MAC地址表的学习过程

数据交换 业务 流程 架构 数据交换技术的原理_数据_06

当PC1 去给PC2 发送数据包的时候, 交换机是不知道PC2 连接在自己的哪个接口的, 只知道PC1 连接在我的e0/0/0接口, 因为我从这个接口收到了来自PC1 的数据帧, 可以把PC1帧中携带的PC1 的网卡MAC地址绑定在我本地的E0/0/0, 然后把这个数据帧复制多份, 从其他的所有非接口接口发送出去,发送的范围就是这个接收端口所在的VLAN的成员接口和该交换机的中继接口,每个接口发送一份。而当PC2 收到这个泛洪的数据帧后, 就会回复PC1, 这样交换机就学习到这个MAC地址表了。

这个MAC 地址表也可以手工指定, 命令如下:

[Huawei]mac-address static AA-BB-CC Ethernet 0/0/22 vlan 1

数据交换 业务 流程 架构 数据交换技术的原理_单播_07

其中这个AA-BB-CC就是手工指定的MAC地址了 , 后边加端口号和所属VLAN,注意, 这个VLAN要在设备先存在,本地不存在的VLAN这个地方是不能自动创建的,会报错

交换机MAC地址表转发过程

MAC地址表初始化

数据交换 业务 流程 架构 数据交换技术的原理_单播_08

交换机刚启动时,MAC地址表中无表项。以上图中的交换机就是刚刚启动时的MAC地址表。可以看出没有任何的表项,当加入PC的时候,交换机开始进行学习MAC地址。如下图:

MAC地址表学习过程(1):

数据交换 业务 流程 架构 数据交换技术的原理_数据_09

  • PCA发出数据帧(假设要发送给PCB)
  • 交换机把PCA的帧中的源地址MAC_A与接受到此帧的端口E1/0/1关联起来
  • 交换机检测自己的MAC地址表,没有发现目标地址
  • 交换机把PCA的帧从所有其他端口发送出去(除了接收到帧的端口E1/0/1)

MAC地址表学习过程(2):

数据交换 业务 流程 架构 数据交换技术的原理_单播_10

此时局域网内的PCB、PCC、PCD都会收到此数据帧,但是只有PCB才会相应这个数据帧,并绘影一个数据帧。 交换机会把MAC_B与端口E1/0/2关联起来。此后就可以进行一对一单播了。

数据交换 业务 流程 架构 数据交换技术的原理_单播_11

  • PCA发出目的到PCD的单播数据帧
  • 交换机根据帧中的目的地址,从相应的端口E1/0/4发送出去
  • 交换机不在其他端口上转发此单播数据帧

广播、组播和未知单播帧的转发:

数据交换 业务 流程 架构 数据交换技术的原理_数据交换 业务 流程 架构_12

交换机会把广播、组播和未知单播帧从所有其他端口发送出去(除了接收到帧的端口)

传输过程

交换机在接收到数据帧以后

  • 首先会记录数据帧中的源MAC地址和对应的接口到MAC表中
  • 接着会检查自己的MAC表中是否有数据帧中目标MAC地址的信息
  • 如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播)
  • 如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。

下图为数据经过单交换机的传输过程

数据交换 业务 流程 架构 数据交换技术的原理_数据交换 业务 流程 架构_13

  • 主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。 
  • 交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。
  • 然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了f 0/1接口)。
  • 这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。如果没有主机相应这个广播,则会继续向下一个交换机或路由器传播。- 当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址),这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。

下图为经多个交换机进行数据传播的过程。

数据交换 业务 流程 架构 数据交换技术的原理_单播_14

  • MAC地址的学习和记录------主机A将一个源MAC地址为自己、目标MAC地址主机C的数据帧发送给交换机。
  • 广播未知数据帧------交换机1收到此数据帧后,会解析源MAC地址,并检查MAC地址表,发现没有目标MAC地址的记录,则会将数据帧广播出去,主机B和交换机2都会收到此数据帧。主机B会检查本机MAC地址,发现不一样,则不响应。
  • 接收方回应信息------交换机2收到此数据帧后也会将数据帧中的源MAC地址和对应的接口记录到MAC地址表中,并检查自己的MAC地址表,发现没有目标MAC地址的记录,则会广播此数据帧。
  • 接收方回应信息------主机C收到数据帧后,会响应这个数据帧,并回复一个源MAC地址为自己的数据帧,这时交换机1和交换机2都会将主机C的MAC地址记录到自己的MAC地址表中,并且以单播的形式将此数据帧发送给主机A。
  • 交换机实现单播通信------这时,主机A和主机C通信就是一单播的形式传输数据帧了,主机B和主机C通信如上述过程一样,因此交换机2的MAC地址表中记录着主机A和主机B的MAC地址都对应接口f 0/1。

注意:

  • 交换机具有动态学习源MAC地址的功能,并且交换机的一个接口可以对应多个MAC地址,但是一个MAC地址只能对应一个接口
  • 交换机动态学习的MAC地址默认只有300S的有效期,如果300S内记录的MAC地址没有通信,则会删除此记录。

 交换机以太网接口的工作模式

  • 单工:两个数据站之间只能沿单一方向传输数据(不常用)

例如,信息从麦克风传递到扬声器,而反方向传输是不可能实现的

多模光纤一般采用单工的传输模式。通信设备之间通过两根光线连接,一根负责发送数据,另一根负责接收数据。一般来说,单工光线较双工光线传输距离更远,抗干扰能力更强。

数据交换 业务 流程 架构 数据交换技术的原理_数据交换 业务 流程 架构_15

  • 半双工:任何时刻只能接收或者发送数据,采用CSMA/CD机制,有最大传输举例的限制,两个数据站之间可以双向数据传输,但不能同时进行

半双工数据传输使两个数据站之间可以实现双向数据传输,但不能同时进行。

例如,手持对讲机的两个人都可以讲话,单只能一个说一个听,不能同时进行。

半双工传输模式通信效率低,且有可能产生冲突。由于目前绝大多数网络都为交换网络,因此这种传输模式很少见。

数据交换 业务 流程 架构 数据交换技术的原理_单播_16

  • 全双工:两个数据站之间可双向且同时进行数据传输,同一时刻可以接收和发送数据,最大吞吐量达双倍速率,消除了半双工的物理距离限制。

全双工数据传输是在两个数据站之间可双向且可同时进行数据传输的模式。

例如,打电话的双方可以同时发言,不必像对讲机那样等待对方停止发言,自己才能说话。

在交换网络中,通信双方大多采用全双工传输模式。一般来说,各厂商的设备接口默认的双工模式都为自适应,当实现物理连接后,接口自动协商为全双工。但如果一端为半双工、一端为全双工,就会导致双工不匹配,可能出现丢包的现象。

数据交换 业务 流程 架构 数据交换技术的原理_数据帧_17

  • 速率:接口连接时两端进行协商,协商失败则无法正常通信。 

交换机的命令行

数据交换 业务 流程 架构 数据交换技术的原理_单播_18

数据交换 业务 流程 架构 数据交换技术的原理_数据帧_19

数据交换 业务 流程 架构 数据交换技术的原理_数据交换 业务 流程 架构_20

如何解决广播问题和安全问题

机器多了,交换机也就多了,交换机就难免会有广播问题。在同一个广播域里面,很多包都会在一个局域网里面飘,如果没有加密又被抓包了,很可能会导致敏感信息泄露。怎么解决呢?有两个方法:

(1) 物理隔离:

每个部门有单独的交换机,配置单独的子网,这样部门之间的沟通就需要路由器了。

这里的问题在于,如果每个部分都有单独的交换机,口多了浪费,少了又不够用

(2) 虚拟隔离:也就是VLAN,或者叫做虚拟局域网。

使用VLAN,一个交换机上会连属于多个局域网的机器,那么交换机怎么区分哪个机器属于哪个局域网呢?

我们只需要在原来的二层的同上加上一个TAG,里面有VLAN ID,一共12位。(12位可以划分4096个用户,如果用户超出了4096了什么办?

数据交换 业务 流程 架构 数据交换技术的原理_数据_21

如果我们买的交换机是支持VLAN的,当这个交换机把二层的头取下来的时候,就能够识别这个VLAN ID。这样只有相同VLAN的包,才会相互转发,不同VLAN的包,是看不到的。这样广播问题和安全问题就解决了

 

数据交换 业务 流程 架构 数据交换技术的原理_数据交换 业务 流程 架构_22

我们可以设置交换机每个口所属VLAN,比如VLAN10、VLAN11等,而且每个VLAN的口都是可以重置的。

对于支持VLAN的交换机,有一种口叫做Trunk口,它可以转发属于任何VLAN的口,交换机之间可以通过这种口相互连接。