三层交换原理及示例详解
三层交换(L3交换)的发展及应用简述

三层交换(L3交换)的发展及应用简述一、L3交换原理和分类最早的第三层交换,是基于A TM技术的MPOA和IP Switch,分别基于ATMF 和IETF标准(RFC1953和RFC1987)。
其基本原理相近,把路由功能分为第三层路径选择(智能路由选择)和第三层交换(快速转发)。
趋势是把第三层交换放到骨干网ATM交换机中去,把路由器和A TM骨干网融为一体。
MPOA方式的前提是一定要由ATM网络事先建立一条端到端的连接,再采用“Short Cut”方式对IP包进行路由。
IP Switch方式中的RFC1953解决了“多跳”数量增长的问题,通过软件提供一种“直通”(Cut-through)来满足多IP业务要求,它与RFC1987共同构成IP Switch基础。
IP Switch对数据包的处理多采用以ATM交换机跨接路由器直通(CUT-THROUGH)处理的方式,即第一个包通过路由器进行检查、鉴别和处理,以后相同的包由ATM交换机跨接直通传输,不再通过路由器。
无论是IP Switch还是MPOA,这个IP数据流都是在虚电路里传输,所有IP 包都在一个已经选定的路由中传输,不存在不同的IP包经过不同的路由。
只是IP Switch方式每个ATM交换机可独立处理IP交换,以直通IP数据流。
但MPOA 一定要所有ATM交换机统一动作,所以MPOA方式实施前一定要先建立一条端到端的SVC。
除了以上两种L3交换之外,在其他领域也相继产生了第三层交换技术。
如思科公司的专有技术CEF(思科快速转发)、普遍被所有第三层交换机厂家采用的多层交换技术MLS以及当前被广泛推广的基于IETF标准的多协议标记交换MPLS。
二、L3交换的起源和发展基于L2以太网交换技术的多层交换最早起源于校园网络,后来在IDC中也有较多应用。
早期互联网业务流量模型符合20:80规则,即80%的流量为本地,20%的流量出网。
后来此流量模型发生逆转,80%流量来自网段外部,内部通信只有20%。
三层交换机的交换原理

三层交换机的交换原理三层交换机是一种具备数据交换和路由功能的网络设备,它的交换原理主要涉及网络协议的各个层次,包括应用层、传输层、网络层等。
下面将详细介绍三层交换机的交换原理,特别是与IP路由和VLAN管理相关的部分。
一、应用层应用层是网络协议的最高层,主要负责应用程序之间的通信。
在三层交换机中,应用层的交换主要涉及源和目标主机的应用程序之间的数据交换。
交换机通过识别数据包中的源和目标IP地址以及端口号等信息,将数据包转发到正确的目的地。
二、传输层传输层在网络协议中位于应用层之下,主要负责建立和维护应用程序之间的通信连接,提供可靠的传输服务。
在三层交换机中,传输层的交换主要涉及TCP/UDP协议的数据传输。
交换机通过识别数据包中的源和目标端口号等信息,将数据包转发到正确的目的地。
三、网络层网络层是网络协议的核心层,主要负责IP数据包的封装、解封装以及路由转发等功能。
在三层交换机中,网络层的交换主要涉及IP数据包的路由分析。
通过分析IP数据包中的目标地址信息,三层交换机可以确定最佳的转发路径,将数据包转发到正确的目的地。
四、IP路由分析IP路由分析是三层交换机的重要功能之一。
在接收到一个IP数据包后,交换机首先分析数据包中的目标IP地址,并根据内部的路由表信息确定最佳的转发路径。
这个过程涉及到路由协议(如OSPF、BGP等)的学习和更新路由表的过程。
通过IP路由分析,三层交换机可以实现快速、准确的数据包转发。
五、VLAN管理VLAN(虚拟局域网)是一种将物理局域网逻辑上划分为多个虚拟子网的技术。
在三层交换机中,VLAN管理也是一项重要的功能。
通过VLAN配置,可以根据业务需求将交换机上的端口划分为不同的VLAN,并在不同VLAN之间实现数据隔离或交换。
这有助于提高网络的安全性和管理效率。
综上所述,三层交换机的交换原理主要涉及应用层、传输层、网络层等方面的交换功能。
通过IP路由分析和VLAN管理等技术手段,三层交换机可以实现高效、准确的数据交换和路由功能,为企业的网络通信提供可靠的保障。
三层交换机转发原理

三层交换机转发原理一、引言三层交换机是一种能够进行网络数据包转发的设备,它能够在不同的网络层之间进行数据包转发,实现不同网络之间的通信。
本文将详细介绍三层交换机的转发原理及其工作原理。
二、三层交换机的基本概念三层交换机是一种能够在网络层进行数据包转发的设备,它能够根据数据包的目标IP地址进行转发决策,并将数据包发送到目标网络。
与二层交换机不同的是,三层交换机不仅仅只关注数据包的MAC 地址,还会关注数据包的IP地址。
三、三层交换机的转发原理1. 路由表三层交换机内部有一个路由表,该路由表记录了不同网络之间的路由关系。
当三层交换机接收到一个数据包时,它会查找路由表,找到与目标IP地址匹配的路由项。
2. IP数据包的转发根据路由表中的路由项,三层交换机会确定数据包的下一跳地址,并将数据包发送到下一跳地址。
这个过程中,三层交换机会对数据包进行一些处理,例如修改数据包的MAC地址等。
3. ARP缓存三层交换机还维护着一个ARP缓存表,用于记录MAC地址和IP 地址的对应关系。
当三层交换机接收到一个数据包时,它会查找ARP缓存表,找到目标IP地址对应的MAC地址,并将数据包发送到该MAC地址。
4. ICMP重定向当三层交换机发现数据包的下一跳地址在同一个子网内时,它会发送一个ICMP重定向消息给源主机,告诉源主机将数据包直接发送到目标主机,从而减少网络流量。
5. NAT转发三层交换机还可以进行NAT转发,将内部网络的私有IP地址转换成公网IP地址,实现内部网络与外部网络的通信。
四、三层交换机的工作原理1. 数据包的接收三层交换机接收到一个数据包后,会首先检查数据包的目标MAC 地址。
如果目标MAC地址在三层交换机的MAC地址表中,则直接转发数据包;否则,将数据包发送到CPU进行处理。
2. 数据包的处理当数据包发送到CPU后,CPU会根据数据包的目标IP地址查询路由表,并确定数据包的下一跳地址。
然后,CPU将数据包发送到下一跳地址,并更新数据包的MAC地址。
三层交换机实现路由功能配置示例与详解(CiscoPackerTracer模拟器)

三层交换机实现路由功能配置⽰例与详解(CiscoPackerTracer模拟器)计算机⽹络实验作业 <(* ̄▽ ̄*)/本来计划⼀个晚上写出来的,然后这个⼩⽬标没完成- - ⽤了两天【原理】三层交换机实现路由器功能,需要主机,三个交换机,⼀个路由器【效果图】【配置代码】注意注意端⼝⼀定要对,【我只保留了代码命令,命令后的效果给删除了】交换机1: 配置端⼝Switch>enSwitch#confSwitch(config)#vlan 2Switch(config-vlan)#EXITSwitch(config)#int f0/2Switch(config-if)#switchport access vlan 2Switch(config-if)#no shutSwitch(config-if)#int f0/24Switch(config-if)#switchport mode trunk交换机2:配置端⼝Switch#enSwitch#confSwitch(config)#int f0/2Switch(config-if)#switchport access vlan 2% Access VLAN does not exist. Creating vlan 2Switch(config-if)#no shutSwitch(config-if)#exitSwitch(config)#int f0/24Switch(config-if)#switchport mode trunk**三层交换机:(配置)Switch>Switch>enSwitch#confSwitch(config)#int f0/1 //配置端⼝f0/1 为trunkSwitch(config-if)#switchport mode accessSwitch(config-if)#switchport mode trunkSwitch(config-if)#EXITSwitch(config)#int f0/2 //配置端⼝ f0/2 为trunkSwitch(config-if)#switchport mode accessSwitch(config-if)#switchport mode trunkSwitch(config-if)#exitSwitch(config)#vlan 2 // 创建vlan2Switch(config-vlan)#exitSwitch(config)#vlan 1 // 创建vlan1Switch(config-vlan)#exitSwitch(config)#int vlan 1 // 配置 vlan 1 的 ip地址(⽹关)Switch(config-if)#no shutSwitch(config-if)#ip address 192.168.1.168 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 2 //配置 vlan 2 的 ip地址(⽹关)Switch(config-if)#ip address 192.168.2.168 255.255.255.0Switch(config-if)#exitSwitch(config)#int f0/3 // 配置端⼝f0/3 到路由器为不交换Switch(config-if)#no switchportSwitch(config-if)#ip address 192.168.10.1 255.255.255.0// 配置到路由器 ip 地址Switch(config-if)#no shutSwitch(config-if)#exitSwitch(config)#ip routing // 配置路由器 IP 地址Switch(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.2**路由器:(配置)Router>enRouter#confRouter(config)#int f0/0 //配置端⼝启动Router(config-if)#no shutRouter(config-if)#exitRouter(config)#int f0/1Router(config-if)#no shutRouter(config-if)#exitRouter(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.1 // 配置路由器默认ip地址Router(config)#exitRouter#%SYS-5-CONFIG_I: Configured from console by consoleRouter#confRouter(config)#int f0/1 // 配置路由器到第三层交换机 ip 地址Router(config-if)#ip address 192.168.10.2 255.255.255.0Router(config-if)#// 注意若路由器下直接有主机的话需要以下配置 ip地址 (⽹关)*************************华丽的分割线********************************Router(config)#int f0/0.1 // 配置⼦⽹络1Router(config-subif)#encapsulation dot1Q 1Router(config-subif)#ip address 192.168.3.168 255.255.255.0 // 配置⼦⽹关Router(config-subif)#exitRouter(config)#int f0/0.2 // 配置⼦⽹络 2Router(config-subif)#encapsulation dot1Q 2Router(config-subif)#ip address 192.168.4.168 255.255.255.0 // 配置⼦⽹关Router(config-subif)#exit*************************华丽的分割线********************************【测试】⽤ PC-1 ping 其他主机----- > ping 192.168.2.2同⼀交换机下,不同vlan,不同⽹段,可以ping 通第⼀次出现丢包原因: ping第⼀个数据是,建⽴和对应表,因为是不知道对⽅的所以丢包第⼆次就可以100%成功----- > ping 192.168.2.4不同交换机下,不同vlan ,不同⽹段,可以ping 通----- > ping 192.168.1.3不同交换机下,同⼀vlan ,同⼀⽹段,可以ping 通***************************************************************************************************************************************************若在实现过程中发现问题,欢迎指正 (#^.^#)。
三层交换的工作原理

三层交换的工作原理
三层交换是指在数据链路层和网络层之间进行的转发和路由操作。
工作原理如下:
1. 收到一个数据包:交换机从网络中收到一个数据包,数据包包含了源IP地址、目的IP地址、源MAC地址和目的MAC地址等信息。
2. 查找转发表:交换机根据数据包中的目的MAC地址查找转发表,转发表中保存了端口与MAC地址的对应关系。
3. 判断目的MAC地址是否存在于转发表中:
a. 如果存在,则直接将数据包转发到相应的端口上。
b. 如果不存在,则进行下一步。
4. 查找路由表:交换机根据数据包中的目的IP地址查找路由表,路由表中保存了目的IP地址与下一跳地址的对应关系。
5. 判断目的IP地址是否存在于路由表中:
a. 如果存在,则将数据包转发到对应的下一跳地址。
b. 如果不存在,则进行下一步。
6. 广播或丢弃:如果目的IP地址不存在于路由表中,则交换机会将数据包广播到所有的端口上。
如果该交换机不是最终目的地,则下一跳交换机会再次进行查找和转发操作。
如果无法找到最终的目的地,则数据包会被丢弃。
通过以上步骤,交换机能够根据目的MAC地址和目的IP地址将数据包转发到正确的端口和目的地,实现了三层交换的功能。
三层交换

三层交换百科名片三层交换技术三层交换技术就是:二层交换技术+三层转发技术。
它解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。
目录部署简介第三层交换技术的基本原理第三层交换技术的简单拓扑结构了解网络各层第三层交换的优点第三层交换机的部署什么是三层交换部署简介第三层交换技术的基本原理第三层交换技术的简单拓扑结构了解网络各层第三层交换的优点第三层交换机的部署什么是三层交换•三层交换原理•三层交换机种类•三层交换技术与其他技术的对比展开第三层交换正迅速发展成可作为下一代应用启动平台的最适合的网络技术。
本文将详细介绍此项技术以及如何部署第三层交换才能获得最大效率。
第三层交换是局域网许多区域(包括核心和服务器集中点)的关键组件,因为该项技术能解决许多在性能、安全和控制等方面的问题。
然而,在一些网络区域,该项技术的使用效果并不十分显著,尤其是在桌面连接方面。
本文将会重点讨论这种网络性能较低的情况,特别是在新一代高级第四层桌面交换技术已经能够提供高性能和控制能力的今天。
本文也将详细阐述第二(四)层交换机是如何提供成本更低、更加简单、更易于管理的桌面解决方案。
编辑本段简介任何一种新技术进入市场时,都要经历业界专业人员对伴随这种技术的新术语和“技术行话”进行筛选的阶段。
这些新的技术术语往往会造成迷惑,甚至自相矛盾,具体情况取决于供应商使用它们的方式。
“第三层交换”和有关的技术也不例外,随着越来越多交换机和路由器技术的推出,有关它们技术术语的迷惑只会增多。
比如,第三层交换、第四层交换、多层交换、多层数据包分类和路由交换机等新术语就令交换机和路由器之间的传统区别变得模糊起来。
此外,由于许多供应商在原本用于布线室的第二层交换机平台上提供了第三层交换技术,从而让人更加迷惑不解。
这些变化使网络设计人员很难了解如何部署高效的网络解决方案。
因此,必须去伪存真,并专注于基础知识,才能真正了解何时、何地以及为什么采用第三层交换。
三层交换vlan互通原理

三层交换vlan互通原理一、三层交换技术三层交换技术是局域网交换机发展升级的产物,它主要通过添加路由功能,来实现不同VLAN之间的通信。
相比于传统的二层交换机,三层交换机的路由功能较弱,主要应用于局域网内部的IP子网之间的通信。
这种技术的优势在于减少网络延迟、提高网络数据传输速度。
二、VLAN的划分在局域网中,我们常常将网络用户分成多个逻辑独立的网络单元,每个网络单元通常称为一个VLAN。
这些VLAN之间需要设置一定的访问控制策略,以实现不同VLAN之间的数据传输。
在三层交换机中,我们可以通过设置VLAN端口来实现这一目的。
三层交换机的三层交换功能是基于路由来实现的。
三层交换机通过硬件路由表来实现不同VLAN之间的互通。
路由表是三层交换机实现数据交换的重要工具,它能够将数据帧按照最佳路径转发到相应的目的网络中。
当有数据帧发送到三层交换机时,三层交换机根据数据帧中的目的IP地址,在路由表中查找最佳路径,然后将数据帧转发到相应的端口上。
四、VLAN互通配置在三层交换机中配置VLAN互通需要设置以下步骤:1. 配置IP地址和默认路由:在三层交换机上配置一个公共的IP 地址和默认路由,使得各个VLAN之间可以通过三层交换机访问外网。
2. 划分VLAN并设置VLAN端口:根据不同的需求,将三层交换机上的端口划分为不同的VLAN端口。
在配置过程中,需要确保每个VLAN之间的通信不被其他VLAN干扰。
3. 配置路由协议:常见的路由协议包括RIP和OSPF等。
在三层交换机上配置相应的路由协议,使得各个VLAN之间可以通过路由来实现互通。
4. 配置安全策略:为了保障网络安全,需要在三层交换机上配置相应的安全策略,如访问控制列表等,以限制不同VLAN之间的访问权限。
五、三层交换vlan互通常见问题及解决方案1. VLAN间无法互通:首先检查三层交换机的配置是否正确,确保VLAN端口划分正确,并配置了正确的路由协议和安全策略。
第三层交换技术

第三层交换技术1、三层交换的概念第三层交换技术也称为IP 交换技术或高速路由技术等,是相对于传统交换概念而提出的。
众所周知,传统的交换技术是在OSI 网络标准模型中的第二层—数据链路层进行操作的,而第三层交换技术是在网络模型中的第三层实现了数据包的高速转发。
简单地说,第三层交换技术就是:第二层交换技术+第三层转发技术,这是一种利用第三层协议中的信息来加强第二层交换功能的机制。
一个具有第三层交换功能的设备是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件简单地叠加在局域网交换机上。
2. 三层交换的原理从硬件的实现上看,目前,第二层交换机的接口模块都是通过高速背板/总线交换数据的。
在第三层交换机中,与路由器有关的第三层路由硬件模块也插接在高速背板/总线上,这种方式使得路由模块可以与需要路由的其他模块间高速地交换数据,从而突破了传统的外接路由器接口速率的限制(10Mbit/s---100Mbit/s)。
在软件方面,第三层交换机将传统的基于软件的路由器重新进行了界定:(1)数据封包的转发:如IP/IPX 封包的转发,这些有规律的过程通过硬件高速实现;(2)第三层路由软件:如路由信息的更新、路由表维护、路由计算、路由的确定等功能,用优化、高效的软件实现。
假设有两个使用IP 协议的站点,通过第三层交换机进行通信的过程为:若发送站点A 在开始发送时,已知目的站B的IP 地址,但尚不知道它在局域网上发送所需要的MAC 地址,则需要采用地址解析(ARP)来确定B的MAC 地址。
A把自己的IP 地址与B的IP 地址比较,采用其软件中配置的子网掩码提取出网络地址来确定B是否与自己在同一子网内。
若B 与A 在同一子网内,A 广播一个ARP 请求,B 返回其MAC 地址,A 得到B 的MAC 地址后将这一地址缓存起来,并用此MAC 地址封包转发数据,第二层交换模块查找MAC 地址表确定将数据包发向目的端口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三层交换原理及示例详解7.7.5 三层交换原理二层交换机的二层数据交换一般都是使用ASIC(Application Specific Integrated Circuit ,专用集成电路)的硬件芯片中的CAM表来实现的,因为是硬件转发,所以转发性能非常高。
而三层交换机的三层转发也是依靠ASIC芯片完成的(路由器的路由功能主要依靠CPU软件进行的),但其中除了二层交换用的CAM表外,还保存有专门用于三层转发的三层硬件转发表。
三层交换机的三层交换原理比较复杂,不同网络环境下、不同厂家的三层交换机的三层交换流程都不完全相同。
如图7-55所示的仅一个直接连接在一台三层交换机上的两个不同网段主机三层交换的基本流程,各主要步骤解释如下:(1)源主机在发起通信之前,将自己的IP地址与目的主机的IP地址进行比较,如果源主机判断目的主机与自己位于不同网段时,它需要通过网关来递交报文的,所以它首先需要通过一个ARP请求报文获取网关的MAC地址(在源主机不知道网关MAC地址的情形下),即源主机先发送ARP请求帧以获取网关IP地址对应的MAC 地址。
(2)网关在收到源主机发来的ARP请求报文后以一个ARP应答报文进行回应,在应答报文中的“源MAC地址”就包含了网关的MAC地址。
(3)在得到网关的ARP应答后,源主机再用网关MAC地址作为报文的“目的MAC地址”,以源主机的IP 地址作为报文的“源IP地址”,以目的主机的IP地址作为“目的IP地址”,先把发送给目的主机的数据发给网关。
图7-55 三层交换基本流程(4)网关在收到源主机发送给目的主机的数据后,由于查看得知源主机和目的主机的IP地址不在同一网段,于是把数据报上传到三层交换引擎(ASIC芯片),在里面查看有无目的主机的三层转发表。
(5)如果在三层硬件转发表中没有找到目的主机的对应表项,则向CPU请求查看软件路由表,如果有目的主机所在网段的路由表项,则还需要得到目的主机的MAC地址,因为数据包在链路层是要经过帧封装的。
于是三层交换机CPU向目的主机所在网段发送一个ARP广播请求包,以获得目的主机MAC地址。
(6)交换机获得目的主机MAC地址后,向ARP表中添加对应的表项,并转发由源主机到达目的主机的灵气包。
同时三层交换机三层引擎会结合路由表生成目的主机的三层硬件转发表。
以后到达目的主机的数据包就可以直接利用三层硬件转发表中的转发表项进行数据交换,不用再查看CPU中的路由表了。
以上流程适用位于不同VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机作三层交换转发。
这就是“一次路由,多次交换”的原理。
7.7.6 三层交换示例在三层交换中,同一交换机上的不同网段主机通信和不同交换机上的不同网段主机通信的基本原理是一样的,只是具体流程有所区别。
本节仅以比较简单的“同一交换机上的不同网段主机通信”这种情形来解释上节介绍的三层交换原理。
如图7-56所示,通信的源、目的主机连接在同一台三层交换机上,但它们位于不同VLAN(也位于不同网段)。
对于三层交换机来说,这两台主机都位于它的直连网段内,它们的IP对应的路由都是直连路由。
图中已标明了两台主机的MAC地址、IP地址、网关IP地址(也就是对应VLAN接口IP地址),以及三层交换机的MAC地址。
【说明】本示例中虽然划分了VLAN,但是在下面的数据转发流程中我们并没有提到VLAN标记,那是因为在本示例中,通信双方主机都连接到同一个三层交换机上,端口类型均为Access类型,发送和接收的数据帧都是无VLAN标记的。
在下节介绍的示例中,在数据的转发过程中将会涉及到VLAN标记问题。
图7-56 同一交换机上不同网段主机间的三层交换示例当PC A 要第一次向PC B 发向数据包时,数据包的传输流程如下:(假设三层交换机上当前还未建立任何硬件转发表项)(1)PC A首先检查出目的IP地址2.1.1.2(PC B)与自己不在同一网段,觉得就这样直接发送肯定不行,于是把要发送的数据包先缓存起来。
它知道这个数据包必须经过网关来转发,所以先查看一下自己是已经知道网关的MAC地址(也就是在PC A主机的ARP表中查看是否有与网关IP地址对应的MAC地址表项)。
如果有,则直接把要发送给PC B的数据包在封装成数据帧时,把“目的MAC地址”字段的值设为网关的MAC地址(也就是三层交换机的MAC地址MAC S,交换机上各端口、各VLAN是共享一个或多个MAC地址的)。
(2)如果PC A在自己的ARP表中没有找到网关MAC地址,则先向网关发出(其实是会向本VLAN内所有节点发出)一个ARP广播请求报文,以获取网关IP地址1.1.1.1所对应的MAC地址。
此ARP请求报文的“源MAC地址”字段是PC A的MAC地址“MAC A”,“目的MAC地址”因为未知,以全0格式填充;“源IP地址”和“目的IP地址”字段分别填上PC A的IP地址(1.1.1.2)和网关的IP地址(1.1.1.1)。
ARP请求报文向下传输到了以太网数据链路层后被再次封装成以太网帧,以太网帧头中的“源MAC地址”字段值仍为PC A的MAC地址“MAC A”,“目的MAC地址”字段值为广播MAC地址FF-FF-FF-FF-FF-FF以,“帧类型”字段填上ARP的协议号0x0806。
有关ARP报文和ARP帧格式参见本章7.3.10节。
(3)三层交换机在收到PC A发来的ARP请求报文后,检查请求报文发现被请求IP地址(也就是“目的IP地址”)是自己的三层接口IP地址,于是向PCA A发回一个ARP应答报文,并将对应的三层接口MAC (MAC S)填充在应答报文中的“目的MAC地址“字段其中。
同时通过对PC A发送的ARP请求报文分析,把PCA的IP地址与MAC地址对应关系(1.1.1.2<==>MAC A)记录到自己的ARP表中去,然后把PC A的IP地址(作为“目的IP地址”)、MAC地址(作为“下一跳MAC地址”),以及与交换机直接相连的端口号等信息下发到三层交换机ASIC芯片中的三层硬件转发表。
此时在三层硬件转发表中就有了第一个转发表项,即PC A的转发表项。
【说明】在三层交换机中,最关键的就是它有一个专门用于三层转发的“三层硬件转发表”,它和“ARP表”之间有联系,但也有区别。
ARP表中只是IP地址和MAC地址的映射关系,不包括转发出口,也不包括对应的VLAN ID,而三层硬件转发表中则包括了全部这些,形成一个:目的IP地址、VLAN ID、端口和下一跳MAC地址的关系表项。
因为在进行三层转发时,改变的是帧封装后的源和目的MAC地址这两个字段,原来输入IP包中的“目的MAC地址”作为转发的“下一跳MAC地址”,原来的“源MAC地址”改为三层交换机自身的MAC地址,源和目的IP地址都不变(因为这是封装在帧的“数据”部分)。
另外,三层转发表是存储在ASCI硬件芯片上的,直接由ASIC芯片调用,而ARP表是存储在内在中,由CPU软件调用。
但三层硬件转发表项还是由CPU提供的。
(4)PC A在收到网关的ARP应答报文后,把要发送给PC B的数据包经过帧封装后的“目的MAC地址”修改为网关MAC地址(MAC S1),其它不变,先把数据包发给网关(三层交换机)。
(5)三层交换机在收到这个数据包后,因为“目的MAC地址”为交换机自己的MAC地址,而且“目的IP地址”和“源IP地址”不在同一网段,所以会直接提交到负责三层交换的ASIC芯片,根据包中的“目的IP地址”(PC B的IP地址2.1.1.2)在三层硬件转发表中查看有无对应表项,因为是第一次通信,所以结果是查找失败,于是将数据包再转送到CPU去进行软件路由处理。
(6)CPU同样会根据包中的“目的IP地址”去查找其软件路由表,发现匹配了一个直连网段(PC B 对应的网段),于是继续查在ARP表中查找对应的MAC地址项。
同样是由于是第一次查找,所以仍然查找失败。
如果在ARP表中找到了对应的MAC地址,则数据可以直接由软件路由表转发了。
(7)下面仍以在ARP表中也没找到PC B对应的MAC地址为例进行介绍。
此时三层交换机CPU会在PC B所在网段的AN 3中所有端口发送一个ARP广播请求报文,查找“目的IP地址”为2.1.1.2所对应MAC地址。
报文经过帧封装后的“源MAC地址”是三层交换机的MAC地址(MAC S),“目的MAC地址”全为0,“源IP地址”是VLAN 3网段的网关IP地址(2.1.1.1),“目的IP地址”是PC B的IP地址(2.1.1.2)。
(8)PC B在收到三层交换机CPU发送的ARP请求报文后,检查发现被请求的IP地址是自己的IP地址,于是发送一个ARP应答报文,并将自己的MAC地址(MAC B)包含在其中。
同时,将三层交换机上VLAN 3网段的网关IP地址与MAC地址的对应关系(2.1.1.1<==>MAC S)记录到自己的ARP表中去。
(9)三层交换机CPU在收到PC B的ARP应答报文后,将其IP地址和MAC地址对应关系(2.1.1.2<==>MAC B)记录到自己的ARP表中去,把PC B的IP地址、MAC地址、进入交换机的端口号等信息下发到三层交换机的三层转发中。
此时转发表中就有到达PC A和PC B这两条对应的表项了。
(10)三层交换机CPU根据获得的PC B的MAC地址和端口信息,以及软件路由表信息,把由PC A发来的IP数据包转发给PC B,这样就完成了PC A到PC B的第一次单向通信。
由于芯片内部的三层引擎中已经保存了从PC A到达PC B的完整转发路径信息,所以以后PC A与PC B之间进行通信,或其它网段的站点想要与PC A或PC B进行通信时,三层交换机的ASIC芯片就会直接把包从对应的三层硬件转发表项中指定的端口转发出去,而不必再把包交给CPU进行路由处理。
这就是所谓的“一次路由(指通过CPU路由表查到了对应的直连网段),多次交换”的原理,大大提高了转发速度。