精华内容
下载资源
问答
  • 交换机二三层转发原理
    千次阅读
    2021-11-24 10:42:39

    知识储备:

    ①单播:
    一对一,信息的接收和传递必须只在两个节点进行。(效率低)

    ②多播(组播):以“尽力而为”的形式发送信息到某个目标组,在有源主机向多点目标主机发送信息需求时,源主机只发送一份数据,数据的目标地址是组播组地址。
    (解决单播情况下数据的重复拷贝及宽带的重复占用,也解决了广播情况下的宽带资源浪费)

    ③广播:
    一个终端向多个计算机发送消息,但是计算机越多,广播的消息可能会延时或者消息不可到达!

    一、二层交换基本原理

    二层交换机属于数据链路层,可以识别数据包中的MAC地址信息根据MAC地址进行转发,并将这些MAC地址与对应端口记录在内部的一个地址表中。

    工作流程:
    ①当交换机从某个端口收到一个数据包,先读取包头中的MAC地址,这样就可以知道源MAC地址的机器连在哪个端口上。

    ②读取包头中的目的MAC地址,并在地址表中查找对应端口。

    ③如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上。

    ④若表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习到目的MAC地址与哪个端口对应,在下次传送数据时就不需要对所有端口进行广播。

    不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。

    特点:
    ①优点:只需要知道数据包的MAC地址,数据交换靠硬件来实现的,速度快。
    ②缺点:不能处理不同IP子网的数据交换。

    总结:
    二层交换机通过解析和学习以太网帧的源MAC来维护MAC地址与端口的对应关系,通过其目的MAC来查找MAC表决定向哪个端口转发。

    二、三层交换(IP交换技术)基本原理

    三层交换技术是:二层交换技术+三层转发技术

    三层交换机是具有部分路由器功能的交换机,主要目的是加快大型局域网内部的数据交换。能做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。
    (通过IP转发,来实现不同网络的互连)

    工作流程:
    当交换机从某个端口收到一个数据包,先读取包头中的MAC地址。此时发现目的MAC是自己的同时,判断IP地址是否为自己,若不是则需要转发。

    当第一个包过来的时候,发现硬件转发表并没有什么表项,所以此时必须将数据包交由路由进程处理,一旦交由cpu处理,必然会消耗cpu资源,此时会查看路由表,然后发现此IP地址个自己是直连的,此时就去查看arp找出此地址对应的mac地址,就可以转发出去

    在决定转发出去过程中,交换机至少会做三件事情,一,修改IP包头的ttl值(路由器丢弃之前允许通过的最大网段数量);二,修改原mac地址,改成自己出接口mac地址;三,建立交换机硬件转发表,包括目的IP地址,目的IP地址(下一跳)对应的mac地址,mac地址对应的vlan,以及对应的端口(这个每个厂家有自己的理解)

    这样当一下包过来的时候,交换机就会查看硬件转发表直接转发而不会在经过路由表的查询了,也即是交换机的一次路由,多次交换机原理。

    不同网络的主机直接如何互访?
    答:
    ①源主机在发起通信前,将自己的IP与目的主机的IP进行对比。若两者位于同一网段,哪个源主机直接项目的主机发送ARP请求,在收到目的主机的ARP应答后获得对方的MAC地址,然后用对方MAC作为报文的目的MAC进行报文发送。

    ②当源主机判断目的主机与自己位于不同网段时,它会通过网关(Gateway)来递交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关的MAC作为报文的目的MAC进行发送。此时发送报文的源IP是源主机的IP,目标IP是目标主机的IP。

    更多相关内容
  • 二三层转发原理_netabecedarian的博客-CSDN博客_二三层转发原理 交换机二三层转发原理简单总结_Apollon_krj的博客-CSDN博客_二三层转发原理

    首先二层转发是基于MAC地址转发,三层转发基于IP地址转发,但是这并不意味着仅仅依靠IP地址就能转发,三层转发是建立在二层的基础上的,而仅仅依靠MAC地址是能够转发的。另外,由于二三层转发基于MAC地址、IP地址、FDB表(MAC地址学习、更新、老化、删除等)、ARP表、路由表、三层转发表、VLAN端口类型(Access、Trunk、Hybrid)、VLAN帧格式、ARP报文格式等需要对此有基本的熟知。以下图为例,总结一下交换机中,基于VLAN的二三层转发原理。
    这里写图片描述

    0、基本概念术语:
    ①MAC地址:48bit的硬件地址,组播地址格式为首字节最低位为1,单播地址格式为首字节最低位为0,广播地址为全1(即FF:FF:FF:FF:FF:FF)。
    ②FDB表(FordWarding DateBase):即MAC地址映射表,有MAC地址、端口、VLAN ID等信息。
    ③ARP表:用于记录IP和MAC映射关系的表。
    ④三层转发表:即基于硬件三层转发的包含目的IP地址、VLAN ID、端口和下一跳MAC地址等的关系表。
    路由表:包含默认路由、RIP等动态路由的路由路径信息的记录表。
    ⑥VLAN端口:主要是Access一般是用于连接主机,其发出的数据帧不带tag标签;还有就是Trunk用于可连接不同交换机的主干链路,其上发出的数据帧可能会带tag标签,用以识别不同VLAN,如果没带则采用默认的VLAN (PVID)

    假设最开始所有PC和交换机没有任何表项存在(ARP缓存、FDB缓存、三层转发表缓存等),且端口均为Access模式。

    1、二层转发(同一VLAN中主机通信):
    以上图中PC_A ping PC_B为例来详细分析整个过程。
    ①PC_A(192.168.10.1/24) 要 ping PC_B(192.168.10.2/24),首先要去检查目标IP地址和自己的IP地址是否在同一个网段中,经过IP和子网掩码进行与运算,得知PC_A和PC_B属于语同一网段192.168.10.0网段。因此进行下一步:ARP表项查询。
    ②根据目标IP:192.168.10.2作为索引,在ARP表中查找对应的MAC地址,由于ARP表最开始是空的,所以没有找到对应MAC,因此PC_A需要发送一个ARP广播报文在VLAN 1中请求PC_B(192.168.10.2)的MAC地址,PC封装的ARP报文主要内容为(opcode操作码字段为0X01代表这是一个ARP请求报文,目标MAC由于不知道因此填充为0,其余包含以太帧头部具体如下图所示)
    这里写图片描述
    关于ARP报文各个字段的含义,用wireshark抓一个ARP包来查看,如下所示:
    这里写图片描述
    ③当交换机从a端口收到PC_A发出的报文,解析以太头部后发现目标MAC是FF:FF:FF:FF:FF:FF,则知其是一个广播帧,解析源MAC:MA,由于FDB表当前空空如也,因此先将port a<->MA<->VLAN 1等信息缓存到FDB表中。之后根据端口为Access模式,加上一个VLAN tag(主要包含优先级和VLAN ID=1),使其成为一个802.1Q的带有VLAN tag的以太帧,在交换机内部开始进行交换。
    ④端口检测后发现b、c、d三个端口(其实还有一个VLAN接口,暂不提及)归属于VLAN 1,因此将tag剥离并从这三个端口转发出去。
    ⑤当PC_C、PC_D收到该广播帧解析内容发现目标IP不是自己则丢弃该数据帧,而PC_B发现目标IP就是自己,则先将PC_A的192.168.10.1<->MA的映射信息更新到本地ARP表中。然后封装一个ARP回应的单播报文,内容主要为:源IP:192.168.10.2,目标IP:192.168.10.1,源MAC:MB,目标MAC:MA。发送出去,经端口b到达交换机。
    ⑥交换机收到来自端口b的报文,解析头部获得源MAC,则先将port b<->MB<->VLAN 1缓存到FDB表中去,由于FDB表中已经有了PC_A的MAC地址缓存,因此根据ARP回复报文数据帧头部的目标MAC将报文从端口a转发出去(该步中当然也存在入口数据帧tag的添加与出口数据帧tag剥离的操作)。
    ⑦PC_A接收到从端口a发出的ARP报文后,解析以太头部进行目标MAC匹配判断,匹配后解析报文内容,发现源IP<->源MAC的对应关系,因此先缓存192.168.10.2<->MB,到ARP表中,之后有了PC_B的MAC地址接可以封装icmp报文进行ping的后续操作了。
    ⑧交换机收到来自PC_A和PC_B的icmp request与icmp reply报文,由于之前有缓存FDB表项,因此之后只会更新对应表项的老化标志,长时间没有这俩源MAC的报文到交换机则会删除对应表项。

    2、三层转发(跨越不同VLAN的主机通信):
    以上,以一台交换机上的同一个VLAN内的不同主机通信为例,描述了的是二层转发的基本过程,包括ARP表查询、ARP请求、交换机MAC地址查询、FDB表缓存、端口类型检查、VLAN tag添加与剥离、目标主机ARP回复等步骤。而三层交换基本步骤差不多。以VLAN 1的PC_A(192.168.10.1,MA)和VLAN 2的PC_E(192.168.20.1,ME)相互ping为例分析(假设VLAN 1的网关为VLAN 1 interface的IP:192.168.10.254,VLAN 2的网关为VLAN 2 interface 的IP为192.168.20.254),以下过程也有加VLAN tag和剥离VLAN tag的过程,但与二层基本一致,因此不再赘述:

    ①当PC_A(192.168.10.1/24)要ping PC_E(192.168.20.1/24)时,依然是检查目标IP是不是和自己在同一个网段,发现不在同一网段(一个在10.0网段一个在20.0网段),则需要经过网关(这里是交换机三层接口)来转发,因此PC_A在自己的ARP表中寻找网关对应的MAC地址,如果有则直接将报文封装为:目标MAC为网关MAC,源MAC为MA,发送端IP为192.168.10.1,接收端IP为192.168.20.1。
    ②由于第一次PC_A的ARP缓存中不存在网关的MAC地址。则先向VLAN 1内广播发送一个ARP请求,请求网关192.168.10.254的MAC地址,封装为源MAC为MA,目标MAC不可知则为全0,源IP为192.168.10.1,目标IP为192.168.10.254,到链路层封装的头部为,源MAC为MA,目标MAC为全F即广播包,“帧类型”字段则填上ARP的协议号0x0806。
    ③交换机SW1收到PC_A发送的报文,二层解析头部检查为广播包,则从VLAN 1的除源端口外的各个端口转发出去,另外也转发一份到VLAN 1的三层接口,由于PC_A之前给PC_B发送过报文,SW 1有PC_A的FDB缓存,则检查匹配后更新老化标志位。此外将PC_A的IP、MAC、对应port、VLAN ID等信息记录到交换机的三层转发表中。
    ④VLAN 1其他主机收到请求对象不是自己的ARP请求,丢弃该广播报文,而SW 1的三层接口解析到目标IP是自己,则封装一个源MAC是交换机VLAN 1 interface的MAC,源IP是192.168.10.254,目标IP是192.168.10.1,目标MAC是MA的ARP应答报文,再经过以太头部封装,添加ARP单播报文头部,目标MAC为MA。交换机二层收到自三层的报文,解析数据帧头部,根据目标MAC地址MA在FDB表中查找到其出端口是port a,为ACCESS端口,则剥掉tag(之前请求报文进入port a之后会被加上tag,以致能够区分识别出VLAN 1的其他端口与VLAN 1 interface)转发给PC_A。
    ⑤PC_A收到网关的MAC地址,则将发给PC_E的报文修改目标MAC为VLAN 1 interface即网关的MAC地址,而目标IP依旧是PC_E的IP:192.168.20.1,然后封装以太头部以单播形式发送出去。
    ⑥SW 1在收到这个数据包后,因为“目的MAC地址”为交换机自己VLAN接口的MAC地址,而且“目的IP地址”和“源IP地址”不在同一网段,所以直接提交到三层,根据包中的“目的IP地址”(PC_E的IP地址)在三层硬件转发表中查看有无对应表项,因为是第一次通信,所以结果是查找失败,于是将数据包再转送到CPU去进行软件路由处理。
    ⑦ CPU同样会根据包中的“目的IP地址”去查找其软件路由表,发现匹配了一个直连网段(PC_E对应的网段),于是继续查在ARP表中查找对应的MAC地址项。同样是由于是第一次查找,所以仍然查找失败。如果在ARP表中找到了对应的MAC地址,则数据可以直接由软件路由表转发了。
    ⑧如果没查找到则以PC_E的目标IP为请求对象,在其所在VLAN 2的目标网段内发送ARP请求广播(目标MAC为全0,目标IP为192.168.20.1,源MAC为VLAN 2 interface对应MAC,源IP为VLAN 2 interface对应IP,192.168.20.254),PC_E则先缓存网关的ARP表项,然后以ARP单播形式回复自己的MAC地址ME给网关192.168.20.254,SW 1的CPU则根据回复的报文更新记三层转发表项,记录到PC_E的IP、MAC、出端口、VLAN ID等信息,此时三层转发表中有了PC_A和PC_E的转发表项。另外缓存PC_E的ARP表项与FDB表项目。
    ⑨三层交换机的CPU根据获取到的目标主机MAC和现有的直连路由信息将PC_A发来的数据包转发给PC_E,这就是一次单方向的三层转发过程,其中也大量涉及到了二层转发(PC_A在VLAN 1内广播请求网关MAC,交换机CPU控制在VLAN2内广播请求PC_E的MAC等)。
    ⑩当PC_E回复PC_A报文时,与PC_A步骤相同,只是在PC_E上已经存在了网关ARP表项、交换机上已经存在了到PC_A的三层转发表项、FDB表项等,所以会更简单些。另外由于三层转发表项的存在,因此PC_E回复PC_A的报文会直接根据三层转发表进行硬件转发,而不是CPU路由软件转发,效率会更快。

    展开全文
  • 交换机二三层转发原理简单总结

    千次阅读 多人点赞 2018-12-20 17:25:12
    另外,由于二三层转发基于MAC地址、IP地址、FDB表(MAC地址学习、更新、老化、删除等)、ARP表、路由表、三转发表、VLAN端口类型(Access、Trunk、Hybrid)、VLAN帧格式、ARP报文格式等需要对此有基本的...

    首先二层转发是基于MAC地址转发,三层转发基于IP地址转发,但是这并不意味着仅仅依靠IP地址就能转发,三层转发是建立在二层的基础上的,而仅仅依靠MAC地址是能够转发的。另外,由于二三层转发基于MAC地址、IP地址、FDB表(MAC地址学习、更新、老化、删除等)、ARP表、路由表、三层转发表、VLAN端口类型(Access、Trunk、Hybrid)、VLAN帧格式、ARP报文格式等需要对此有基本的熟知。以下图为例,总结一下交换机中,基于VLAN的二三层转发原理。

    这里写图片描述

    0、基本概念术语:
    ①MAC地址:48bit的硬件地址,单播地址格式为首字节最低位为1,多播地址格式为首字节最低位为0,广播地址为全1(即FF:FF:FF:FF:FF:FF)。
    ②FDB表(FordWarding DateBase):即MAC地址映射表,有MAC地址、端口、VLAN ID等信息。
    ③ARP表:用于记录IP和MAC映射关系的表。
    ④三层转发表:即基于硬件三层转发的包含目的IP地址、VLAN ID、端口和下一跳MAC地址等的关系表。
    ⑤路由表:包含默认路由、RIP等动态路由的路由路径信息的记录表。
    ⑥VLAN端口:主要是Access一般是用于连接主机,其发出的数据帧不带tag标签;还有就是Trunk用于可连接不同交换机的主干链路,其上发出的数据帧可能会带tag标签,用以识别不同VLAN,如果没带则采用默认的VLAN (PVID)

    假设最开始所有PC和交换机没有任何表项存在(ARP缓存、FDB缓存、三层转发表缓存等),且端口均为Access模式。

    1、二层转发(同一VLAN中主机通信):
    以上图中PC_A ping PC_B为例来详细分析整个过程。
    ①PC_A(192.168.10.1/24) 要 ping PC_B(192.168.10.2/24),首先要去检查目标IP地址和自己的IP地址是否在同一个网段中,经过IP和子网掩码进行与运算,得知PC_A和PC_B属于语同一网段192.168.10.0网段。因此进行下一步:ARP表项查询。
    ②根据目标IP:192.168.10.2作为索引,在ARP表中查找对应的MAC地址,由于ARP表最开始是空的,所以没有找到对应MAC,因此PC_A需要发送一个ARP广播报文在VLAN 1中请求PC_B(192.168.10.2)的MAC地址,PC封装的ARP报文主要内容为(opcode操作码字段为0X01代表这是一个ARP请求报文,目标MAC由于不知道因此填充为0,其余包含以太帧头部具体如下图所示)
    这里写图片描述
    关于ARP报文各个字段的含义,用wireshark抓一个ARP包来查看,如下所示:
    这里写图片描述
    ③当交换机从a端口收到PC_A发出的报文,解析以太头部后发现目标MAC是FF:FF:FF:FF:FF:FF,则知其是一个广播帧,解析源MAC:MA,由于FDB表当前空空如也,因此先将port a<->MA<->VLAN 1等信息缓存到FDB表中。之后根据端口为Access模式,加上一个VLAN tag(主要包含优先级和VLAN ID=1),使其成为一个802.1Q的带有VLAN tag的以太帧,在交换机内部开始进行交换。
    ④端口检测后发现b、c、d三个端口(其实还有一个VLAN接口,暂不提及)归属于VLAN 1,因此将tag剥离并从这三个端口转发出去。
    ⑤当PC_C、PC_D收到该广播帧解析内容发现目标IP不是自己则丢弃该数据帧,而PC_B发现目标IP就是自己,则先将PC_A的192.168.10.1<->MA的映射信息更新到本地ARP表中。然后封装一个ARP回应的单播报文,内容主要为:源IP:192.168.10.2,目标IP:192.168.10.1,源MAC:MB,目标MAC:MA。发送出去,经端口b到达交换机。
    ⑥交换机收到来自端口b的报文,解析头部获得源MAC,则先将port b<->MB<->VLAN 1缓存到FDB表中去,由于FDB表中已经有了PC_A的MAC地址缓存,因此根据ARP回复报文数据帧头部的目标MAC将报文从端口a转发出去(该步中当然也存在入口数据帧tag的添加与出口数据帧tag剥离的操作)。
    ⑦PC_A接收到从端口a发出的ARP报文后,解析以太头部进行目标MAC匹配判断,匹配后解析报文内容,发现源IP<->源MAC的对应关系,因此先缓存192.168.10.2<->MB,到ARP表中,之后有了PC_B的MAC地址接可以封装icmp报文进行ping的后续操作了。
    ⑧交换机收到来自PC_A和PC_B的icmp request与icmp reply报文,由于之前有缓存FDB表项,因此之后只会更新对应表项的老化标志,长时间没有这俩源MAC的报文到交换机则会删除对应表项。

    2、三层转发(跨越不同VLAN的主机通信):
    以上,以一台交换机上的同一个VLAN内的不同主机通信为例,描述了的是二层转发的基本过程,包括ARP表查询、ARP请求、交换机MAC地址查询、FDB表缓存、端口类型检查、VLAN tag添加与剥离、目标主机ARP回复等步骤。而三层交换基本步骤差不多。以VLAN 1的PC_A(192.168.10.1,MA)和VLAN 2的PC_E(192.168.20.1,ME)相互ping为例分析(假设VLAN 1的网关为VLAN 1 interface的IP:192.168.10.254,VLAN 2的网关为VLAN 2 interface 的IP为192.168.20.254),以下过程也有加VLAN tag和剥离VLAN tag的过程,但与二层基本一致,因此不再赘述:

    ①当PC_A(192.168.10.1/24)要ping PC_E(192.168.20.1/24)时,依然是检查目标IP是不是和自己在同一个网段,发现不在同一网段(一个在10.0网段一个在20.0网段),则需要经过网关(这里是交换机三层接口)来转发,因此PC_A在自己的ARP表中寻找网关对应的MAC地址,如果有则直接将报文封装为:目标MAC为网关MAC,源MAC为MA,发送端IP为192.168.10.1,接收端IP为192.168.20.1。
    ②由于第一次PC_A的ARP缓存中不存在网关的MAC地址。则先向VLAN 1内广播发送一个ARP请求,请求网关192.168.10.254的MAC地址,封装为源MAC为MA,目标MAC不可知则为全0,源IP为192.168.10.1,目标IP为192.168.10.254,到链路层封装的头部为,源MAC为MA,目标MAC为全F即广播包,“帧类型”字段则填上ARP的协议号0x0806。
    ③交换机SW1收到PC_A发送的报文,二层解析头部检查为广播包,则从VLAN 1的除源端口外的各个端口转发出去,另外也转发一份到VLAN 1的三层接口,由于PC_A之前给PC_B发送过报文,SW 1有PC_A的FDB缓存,则检查匹配后更新老化标志位。此外将PC_A的IP、MAC、对应port、VLAN ID等信息记录到交换机的三层转发表中。
    ④VLAN 1其他主机收到请求对象不是自己的ARP请求,丢弃该广播报文,而SW 1的三层接口解析到目标IP是自己,则封装一个源MAC是交换机VLAN 1 interface的MAC,源IP是192.168.10.254,目标IP是192.168.10.1,目标MAC是MA的ARP应答报文,再经过以太头部封装,添加ARP单播报文头部,目标MAC为MA。交换机二层收到自三层的报文,解析数据帧头部,根据目标MAC地址MA在FDB表中查找到其出端口是port a,为ACCESS端口,则剥掉tag(之前请求报文进入port a之后会被加上tag,以致能够区分识别出VLAN 1的其他端口与VLAN 1 interface)转发给PC_A。
    ⑤PC_A收到网关的MAC地址,则将发给PC_E的报文修改目标MAC为VLAN 1 interface即网关的MAC地址,而目标IP依旧是PC_E的IP:192.168.20.1,然后封装以太头部以单播形式发送出去。
    ⑥SW 1在收到这个数据包后,因为“目的MAC地址”为交换机自己VLAN接口的MAC地址,而且“目的IP地址”和“源IP地址”不在同一网段,所以直接提交到三层,根据包中的“目的IP地址”(PC_E的IP地址)在三层硬件转发表中查看有无对应表项,因为是第一次通信,所以结果是查找失败,于是将数据包再转送到CPU去进行软件路由处理。
    ⑦ CPU同样会根据包中的“目的IP地址”去查找其软件路由表,发现匹配了一个直连网段(PC_E对应的网段),于是继续查在ARP表中查找对应的MAC地址项。同样是由于是第一次查找,所以仍然查找失败。如果在ARP表中找到了对应的MAC地址,则数据可以直接由软件路由表转发了。
    ⑧如果没查找到则以PC_E的目标IP为请求对象,在其所在VLAN 2的目标网段内发送ARP请求广播(目标MAC为全0,目标IP为192.168.20.1,源MAC为VLAN 2 interface对应MAC,源IP为VLAN 2 interface对应IP,192.168.20.254),PC_E则先缓存网关的ARP表项,然后以ARP单播形式回复自己的MAC地址ME给网关192.168.20.254,SW 1的CPU则根据回复的报文更新记三层转发表项,记录到PC_E的IP、MAC、出端口、VLAN ID等信息,此时三层转发表中有了PC_A和PC_E的转发表项。另外缓存PC_E的ARP表项与FDB表项目。
    ⑨三层交换机的CPU根据获取到的目标主机MAC和现有的直连路由信息将PC_A发来的数据包转发给PC_E,这就是一次单方向的三层转发过程,其中也大量涉及到了二层转发(PC_A在VLAN 1内广播请求网关MAC,交换机CPU控制在VLAN2内广播请求PC_E的MAC等)。
    ⑩当PC_E回复PC_A报文时,与PC_A步骤相同,只是在PC_E上已经存在了网关ARP表项、交换机上已经存在了到PC_A的三层转发表项、FDB表项等,所以会更简单些。另外由于三层转发表项的存在,因此PC_E回复PC_A的报文会直接根据三层转发表进行硬件转发,而不是CPU路由软件转发,效率会更快。

    展开全文
  • 交换机三层转发原理

    千次阅读 2019-12-23 14:04:34
    三层交换示意图:     如图所示,假如主机A想访问主机B,首先主机A会将自己的IP地址和子网掩码做与操作,得出网路地址(如:Host-A的IP地址...因为图中主机A和主机B不在同一子网内,所以需要进行三层转发。 ...

    1. 三层交换机转发原理

    在这里插入图片描述
        如图所示,假如主机A想访问主机B,首先主机A会将自己的IP地址和子网掩码做与操作,得出网路地址(如:Host-A的IP地址100.1.1.2与自身掩码255.255.255.0做与操作后,得到的网络号是100.1.1.0)。然后判断目的IP地址(即Host-B的IP地址)与自己的网络地址是不是在同一个子网。因为图中主机A和主机B不在同一子网内,所以需要进行三层转发。

    1、主机A发送ARP广播获取网关MAC地址

        主机A想访问主机B,首先要有主机B的MAC地址,由于主机A和主机B不在同一子网,所以主机A首先会向缺省网关发送ARP广播报文来获取网关的MAC地址。ARP报文格式如下:
    在这里插入图片描述
    2、交换机形成主机A的MAC表项,并用网关MAC地址回应主机A的ARP请求

        交换机收到ARP广播报文后,首先学习ARP报文Ethernet头部的源MAC地址,交换机芯片将自动记录主机A的MAC地址(00e0-d26b-8121)、接收该ARP报文的交换机接口号(E1/0/0)及此接口所属的VLAN(VLAN 10)等信息,并形成一条MAC表项放入交换机MAC表中。同时,交换机也会通过软件把主机A的IP、MAC、上连到交换机的接口等信息保存到交换机的硬件转发表里(三层硬件表项,MAC表是没有IP的)。

        由于主机A发送的ARP广播报文中的目的IP地址(100.1.1.1)就是交换机上接收该ARP广播报文的接口(E1/0/1)所属VLAN(VLAN 10)的IP地址,所以交换机将使用vlan10的MAC地址回复主机A的ARP请求。ARP回复报文如下:
    在这里插入图片描述
    3、主机A把网关MAC当作主机B的MAC访问主机B

        主机A收到网关的ARP回应报文后,会把网关的MAC地址当成是主机B的MAC地址,这样主机A发送数据给主机B时就会使用网关MAC作为目的MAC来封装数据侦,侦格式如下:
    在这里插入图片描述
    4、交换机查找硬件转发表/路由表进行三层转发

        交换机收到主机A发来的数据报文后,仍然会首先学习数据报文Ethernet头部的源MAC地址,然后根据Ethernet头部的目的MAC查找交换机的MAC表,此时发现目的MAC地址就是本地VLAN的MAC地址,这种情况下交换机会把该报文上送到交换芯片的三层引擎处理。三层引擎将首先查找硬件转发表。

        ⑴ 如果硬件转发表中有匹配项,则根据报文目的IP地址作相应处理:

         ① 目的IP地址就是本地的IP地址,则交相应模块处理。

         ② 目的IP是其他设备IP地址,本地只是转发,则根据硬件转发表项使用出接口MAC替换报文的源MAC地址,用下一跳MAC替换报文的目的MAC地址,同时TTL值减1,继续转发。(此处与二层的区别在于需要对报文进行源、目的MAC进行替换)

        ⑵ 如果不匹配则查找路由表,有匹配项则按照上面(2)中的操作进行,同时把相应的目的IP、下一跳MAC、出接口等信息存储到硬件转发表项中,下次就不需要查路由表了,这就是所谓的一次路由多次交换。

        ⑶ 如果路由表也没有匹配项,则丢弃报文。

        此处,由于主机A数据报文的目的IP是主机B的地址,并且主机B和交换机直连,交换机的硬件转发表/路由表已经有主机B的路由表项,所以交换机将主机A发来的报文中的源、目的MAC地址作替换,同时TTL值减1,然后发给主机B。经过MAC替换后的报文格式如下:
    在这里插入图片描述
        这样主机A就把数据报文发到了不同网段的主机B。同时交换机上也保存了关于主机A和主机B的硬件转发表项,以后主机A和主机B互访,以及其他网段主机访问主机A或主机B交换机就可以根据硬件转发表项直接转发,而不需要查找路由表。
        

    2. 二层交换机和三层交换机的区别

    在这里插入图片描述
    在这里插入图片描述
        1. 工作层级不同:二层交换机工作在数据链路层,三层交换机工作在网络层,三层交换机不仅实现了数据包的高速转发,还可以根据不同网络状况达到最优网络性能。

        2. 原理不同:二层交换机的原理是当交换机从某个端口收到一个数据包,它会先读取包中的源MAC地址,再去读取包中的目的MAC地址,并在地址表中查找对应的端口,如表中有和目的MAC地址对应的端口,就把数据包直接复制到这个端口上。三层交换机的原理比较简单,就是一次路由多次交换,通俗来说就是第一次进行源到目的的路由,三层交换机会将此数据转到二层,那么下次无论是目的到源还是源到目的都可以进行快速交换。

        3. 功能不同:二层交换机基于MAC地址访问,只做数据的转发,并且不能配置IP地址,而三层交换机将二层交换技术和三层转发功能结合在一起,也就是说三层交换机在二层交换机的基础上增加了路由功能,可配置不同vlan的IP地址,vlan之间可通过三层路由实现不同vlan之间通讯。

        4. 应用不同:二层交换机主要用于网络接入层和汇聚层,而三层交换机主要用于网络核心层,但是也存在少部分三层交换机用于汇聚层的现象。

    展开全文
  • 交换机二层三层转发原理

    千次阅读 2022-04-12 17:01:08
    网络工程师必学:华为HCIAHCIPHCIE 思科CCNACCNPCCIE 为什么使用6500做核心而不是3550? CAM表的大小,太小会flood影响... 区分二层转发和三层转发的问题 用于交换机交换机之间数据的发送与接收...
  • 7.1 使用路由器进行VLAN间路由时的问题现在,我们知道只要能提供VLAN间路由,就能够使...交换机使用被称为ASIC(ApplicationSpecified Integrated Circuit)的专用硬件芯片处理数据帧的交换操作,在很多机型上都能实现...
  • 交换机三层转发原理详解 三层交换机所能提供的路由功能和快速转发能力使得很多新人网工自然而然的产生了一个疑问,这两者究竟有什么区别?这个问题的实在是答案在网上汗牛充栋,且答案也都相对详尽。笔者在参考总结...
  • 交换机二层转发原理

    千次阅读 2022-04-17 23:04:05
    本文详细介绍了以太网交换机二层转发原理,以太网帧在网络中的运动轨迹
  • 三层交换机转发原理

    千次阅读 2021-12-31 18:30:49
    三层交换机:高速三层转发设备,大多数三层交换机采用ASIC硬件芯片来完成转发的功能。 2、作用: 1.同一网段 源主机直接向目的主机发ARP请求,收到对方的回应后获得对方MAC地址,将数据报进行封装发送出去。 2.不同...
  • 三层交换机,通俗一点来说就是具有二层交换技术+三层转发技术的交换机。“一次路由,多次转发”是三层交换机的核心优势。基于三层交换机优秀的性能,在大型企业局域网中,从接入到核心大多都用三层交换机,而少...
  • 本文简要介绍了三以太网交换机二三层转发机制,主要目的是帮助读者进一步了解交换机的基本原理转发流程,以期有利于更好的从事设备维护工作和建立于进一步学习的索引。 三以太网交换机转发机制主要分为两...
  • 二三层交换机设计原理转发流程(PPT36页).pptx
  • 二三层转发原理

    千次阅读 2020-04-19 01:06:24
    二三层网络交换基础
  • 二层交换机转发原理

    2017-11-15 20:28:17
    1 目录 1 802.1Q定义 1.1 LAN 1.2 VLAN 1.2.1 VLAN定义 1.2.2 802.1Q tag 2 二层转发流程 当报文中的源mac在mac地址表中不存在时,会生成新的mac地址表项。 5 出口vlan过滤 6 出口vlan处理 2.2 Vlan Table的内容...
  • 二层交换机转发原理

    千次阅读 2019-07-17 23:57:08
    1.二层交换机的基本原理 (1)二层(数据链路)通过分析和学习以太网的mac来维护MAC地址与端口的对应关系(保存MAC地址与端口对应关系的表称为MAC表),它的作用是通过目的MAC地址来查找MAC表决定发向哪一个端口...
  • 三层交换机转发原理和实验

    千次阅读 2020-12-12 00:32:37
    因此必须在三层交换机上部署三层接口并部署路由协议,实现三层路由可达。VLANIF接口由此而产生。 拓扑描述: 在交换机上划分了2个VLAN,VLAN2和VLAN3。可通过如下配置实现VLAN间互通。 1.在S1上创建2个VLANIF接口并...
  • 二层交换机转发数据原理解析

    千次阅读 2019-10-18 18:55:27
    二层交换机转发数据原理解析 一、什么是二层交换机 二层交换机工作于OSI模型的第2(数据链路),故而称为二层交换机。二层交换技术的发展已经比较成熟,二层交换机属于数据链路设备,可以识别数据帧中的MAC地址...
  • 交换机转发原理

    千次阅读 2021-01-23 13:44:10
    在不涉及VLAN的情况下,交换机转发原理可以概括地描述为: (1)如果进入交换机的是一个单播帧,则交换机会去MAC地址表中查找这个帧的目的MAC地址,如果查不到这个MAC地址,则交换机将对该帧执行泛洪操作;如果查到了这个...
  • 二层交换机三层交换机交换原理

    千次阅读 2018-11-23 15:35:09
    二层交换机原理 发展历程: 交换机之前为集线器,其做的是透明转发,即洪范式的转发,之后为网桥,软件式的网桥,其传输速度慢,然后出现交换机,即硬件网桥。 集线器物理原理: 接口先将数据传输到总线上,但其...
  • 二层三层转发原理详细介绍 进一步熟悉路由器和交换机基本原理 二层三层转发原理详细介绍 进一步熟悉路由器和交换机基本原理
  • 二三层交换机设计原理转发流程.pptx
  • 数通——交换机数据转发原理详解

    千次阅读 2022-06-14 14:14:06
    一、交换机转发原理交换机依靠ARP表单生成mac地址表,依靠mac地址转发数据,交换机处理数据时,有个处理行为:泛洪:接收到的是广播帧,交换机会广播泛洪(arp request广播帧); 目的mac广播 转发:如果接收的是一个已知的...
  • 以太网交换机转发原理简介

    千次阅读 2022-04-03 14:59:54
    二层以太网交换机的总结,包括帧结构,帧分类,XCAP的使用,二层转发原理的简单介绍
  • 交换机三层交换原理

    千次阅读 2019-05-23 22:44:45
    本文简要介绍了三以太网交换机二三层转发机制,主要目的是帮助读者进一步了解交换机的基本原理转发流程,以期有利于更好的从事设备维护工作和建立于进一步学习的索引。 三以太网交换机转发机制主要分为两...
  • 二层交换机和三层交换机的工作原理 1.1 二层交换机 单播 :如果匹配了MAC地址表就转发该帧;如果没有匹配上就泛洪到所有端口 广播:泛洪到所有端口 二层交换机分为傻瓜交换机和可网管交换机:傻瓜交换机不能...
  • 华为三层以太网交换机基本原理转发流程.pdf华为三层以太网交换机基本原理转发流程.pdf华为三层以太网交换机基本原理转发流程.pdf华为三层以太网交换机基本原理转发流程.pdf华为三层以太网交换机基本原理及...
  • 华为三层以太网交换机基本原理转发流程.docx华为三层以太网交换机基本原理转发流程.docx华为三层以太网交换机基本原理转发流程.docx华为三层以太网交换机基本原理转发流程.docx华为三层以太网交换机基本原理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,133
精华内容 14,053
热门标签
关键字:

交换机二三层转发原理