三层交换

三层交换

1.三层交换机

L3交换机是一种在L2交换机的基础增加了路由选择功能的网络硬件,能够通过基于ASIC和FPGA的硬件处理高速实现网络功能和转发分组。

L2是指OSI参考模型中的L2,也就是数据链路层。L2交换机能够基于该层的MAC地址,进行数据帧或VLAN的传输工作。L3交换机能够基于网络层(L3)的IP首部信息,实现路由选择以及分组过滤功能。L2交换机可以通过VLAN分割广播域,但终端之间的数据帧交换必须位于同一VLAN范围内。对位于不同VLAN上的终端有通信需求,则必须使用路由功能,因此需要在网络上额外 添加路由器。L2交换机与路由器组合才能完成跨VLAN的通信,但使用L3交换机则无需其他硬件设备,能够直接完成VLAN配置和VLAN之间的通信过程。

现在,越来越多的内部网络核心交换机采用L3交换。L3交换机多用于在由以太网构造的内部转发分组。而路由器则大多作为连接互联网和内网之间的网关使用。

2.三层交换机架构

L3交换机内部将硬件分离成两个区域,即以路由选择、管理功能为主的控制平面和以数据转发为主的数据平面,从而实现能够高速转发分组的系统架构。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.三层交换原理

三层交换机在功能上实现了vlan划分、VLAN内部二层转发和VLAN间路由。二层交换机和路由器的功能,在三层交换机中分别体现为二层转发引擎和三层路由转发引擎。二层转发引擎和二层交换机是相同的,用硬件支持VLAN内的快速二层转发,三层路由转发引擎使用硬件ASIC技术实现跨网段的三层路由转发。

在使用二层交换机和路由器的组网中,每个需要与其他IP网段(VLAN)通信的IP网段(VLAN)都需要使用一个路由器作为网关。三层交换机也是同样,三层路由转发引擎就相当于传统组网中的路由器。

三层交换机的系统为每个VLAN创建一个虚拟的三层VLAN接口,用来做VLAN内主机的网关,这个接口就像路由器的接口一样接收和转发IP报文。三层VLAN接口连接到三层路由转发引擎上,通过转发引擎在三层VLAN接口间转发数据
在这里插入图片描述

由于硬件实现的三层路由转发引擎速度高,吞吐量打,而且避免了外部物理连接带来的延迟和不稳定性。

三层交换需要软件和硬件的相互配合,大致流程可以分为下面3个部分:

  • 平台软件协议部分:这部分的关键功能是运行路由协议,维护路由信息表。在整个系统的处理流程中,担当重要功能,当硬件不能完成报文的转发时,由平台协议完成报文转发。
  • 硬件处理流程,主要的表项有MAC地址表、L3_TABLE、DEF_IP表,这三个表用于保存转发信息,在转发信息比较全的情况下,报文的转发和处理全部由硬件来完成处理,不需要软件干预。
  • 驱动代码部分,将软件平台维护的ARP和FIB表的转发信息转发为硬件格式并下发。

L3_TABLE获取用于跨网段报文下一跳的目的MAC地址,来源于ARP表和DEF_IP表,每个表项包含目的IP地址、对应的MAC地址、路由接口、出端口等信息。

DEF_IP表,即交换机最长地址硬件匹配表,由CPU根据路由表来维护。如果查找L3_TABLE失败,则继续查找本表,得到目的网段路由的下一跳和出接口等信息,如果查找失败,丢弃报文并且由CPU确定是否发送ICMP不可达消息。

交换机收到数据帧以后,先检查VLAN属性,然后根据VLAN属性查找MAC地址表,交换机根据数据帧的MAC地址来判断是做二层转发还是三层转发。如果数据帧的目的MAC地址是交换机VLAN接口的MAC地址,交换机查找L3_TABLE做三层转发,否则交换机查找MAC地址表做VLAN内二层转发。

4.本地三层交换举例

在这里插入图片描述

我们按照如下图进行实验,对于三层交换机来说,两台PC位于直连网段内,它们的IP对应的路由都是直连路由.假设起初交换机还未建立任何硬件转发表项.PCA和PCB的MAC地址表也为空,从PCA ping PCB,整个通信过程如下:

  1. PCA 首先检查出目的IP地址20.1.1.2(PCB)与自己的不在同一网段,则进行三层转发,通过网关来转发报文.

  2. PCA检ARP表,发现网关不ARP表中.

  3. PCA向网关发送ARP请求,请求内容为IP为地址10.1.1.1对应的MAC地址

  4. 交换机收到PCA的ARP请求后,检查ARP请求报文,发现被请求IP是自己VLAN10接口的IP地址,因此发送ARP应答,并将自己VLAN10接口的MAC_10包含在其中.同时它还会把PCA的IP地址与MAC地址对应关系记录到自己的ARP表项中去,因为PCA的ARP请求报文中包含了发送者的IP和MAC地址.

  5. PCA收到ARP应答报文后,学习到交换机VLAN10接口的MAC地址MAC_10.

  6. PCA发送ICMP请求报文,报文的目的IP地址为20.1.1.2,目的MAC地址为MAC_10.

  7. 交换机接收ICMP请求报文后,首先根据报文的源"MAC+VLAN"ID更新MAC地址表,然后根据报文的目的"MAC+VLAN"ID查找MAC地址表,发现匹配了自己VLAN10接口的MAC地址,判断该报文为三层转发报文.

  8. 交换机根据报文的目的IP地址20.1.1.2去查找其三层转发表项,由于之前没有建立任何表项,因此查找失败,于是报文送到CPU去进行软件处理.

  9. CPU根据报文的目的IP地址查找软件路由表,发现匹配了一个直连网段(PCB对应的网段),于是继续查找ARP表,仍然查找失败.然后交换机会在目的网段的对应的VLAN20的所有端口发送ARP请求,请求报文报文的源MAC地址为MAC_10,源IP为20.1.1.1,目的IP地址为20.1.1.2.

  10. PCB收到交换机发送ARP请求后,检查发现被请求IP是自己的IP,因此发送ARP应答,并将自己的MAC地址MAC_B包含中其中.同时,将交换机VLAN20接口的IP地址与MAC地址的对应关系记录到自己的ARP表中去.

  11. 交换机收到PCB的ARP应答后,将PCB的IP地址和MAC地址对应关系记录到自己的ARP表中去,将PCA的ICMP请求报文发送给PCB,报文的目的MAC地址修改为PCB的MAC地址MAC_B,源MAC修改为自己的VLAN20接口的MAC地址MAC_20.同时,交换机在交换芯片的三次转发表项中根据刚得到的三次转发信息添加表项(内容包括IP,MAC,出口vlan,出端口),这样后续的PC发往PCB的报文就可以通过该硬件三层表项直接转发了

  12. PCB收到交换机转发过来的ICMP请求报文以后,回应ICMP应答给交换机.ICMP应答报文的转发过程与前面类似,只是由于交换机在之前已经得到PCA的IP地址和MAC地址对应关系了,也同时在交换芯片中添加了相关三层转发表项,因此报文直接由交换芯片硬件转发给PCA.

  13. 这样,后续的往返报文都经过MAC表,查三层转发表的过程,由交换芯片直接进行硬件转发.这也就是人们常说的"一次路由,多次交换".

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值