一、交换机分类:

A、二层交换机:

1、介绍和特点:

二层交换机,也被称为数据链路层交换机,是在数据链路层(第二层)进行数据交换的设备。它基于MAC(Media Access Control)地址来转发数据包,实现局域网内部的数据传输。交换机有多个网络端口,它通过识别数据帧的目标 MAC 地址,根据 MAC 地址表决定从哪个端口发送数据。MAC 地址表不需要在交换机上手工设置,而是可以自动生成的。

特点

  • 透明性:二层交换机对上层协议是透明的,即它不关心数据包中的具体内容,只根据MAC地址进行转发。

  • 广播域分割:二层交换机能够将局域网分割成多个广播域,从而减少广播数据包的传播范围。

  • 无需配置:二层交换机通常无需复杂的配置,插入局域网即可开始工作。

  • 快速转发:由于使用硬件交换方式,二层交换机的转发速度非常快

二层交换机主要适用于小型局域网,具有快速转发速度和简单的操作特点。但是,它无法进行网络层(第三层)的路由功能,这在一些复杂网络环境中可能不足以满足需求。

Untitled

2、 MAC 地址表条目:

在初始状态下,交换机的 MAC 地址表是空的,不包含任何条目。当交换机的某个端口接收到一个数据帧时,它就会将这个数据帧的源 MAC 地址、接收数据帧的端口号作为一个条目保存在自己的 MAC 地址表中,同时在接收到这个数据帧时重置这个条目的老化计时器时间。这就是交换机自动添加 MAC 地址表条目的方式。

Untitled

在新增这一条 MAC 地址条目后,如果交换机再次从同一个端口收到相同 MAC 地址为源 MAC 地址的数据帧时,交换机就会更新这个条目的老化计时器,确保活跃的的条目不会老化。但是如果在老化时间内都没收到匹配这个条目的数据帧,交换机就会将这个老化的条目从自己的 MAC 地址表中删除

MAC地址老化时间通常可以通过交换机的管理界面或命令行接口(CLI)进行配置。常见的默认老化时间为300秒(5分钟),但可以根据网络需求进行调整。

Untitled

除了交换机自动学习之外,我们还可以手动在交换机的 MAC 地址表中添加静态条目。静态添加的 MAC 地址条目优先动态学习的条目进行转发,而且静态条目没有老化时间,会一直保存在交换机的 MAC 地址表中

3、 数据转发:

当交换机的某个端口收到一个单播数据帧时,它会查看这个数据帧的二层头部信息,并进行两个操作。一个操作是根据源 MAC 地址和端口信息添加或更新 MAC 地址表。另一个操作是查看数据帧的目的 MAC 地址,并根据数据帧的目的 MAC 地址查找自己的 MAC 地址表。在查找 MAC 地址表后,交换机会根据查找结果对数据帧进行处理,这里有 3 中情况:

交换机没有在 MAC 地址表中找到这个数据帧的目的 MAC 地址,因此交换机不知道自己的端口是否有连接这个 MAC 地址的设备。于是,交换机将这个数据帧从除了接收端口之外的所有端口泛洪出去。

Untitled

交换机的 MAC 地址表中有这个数据帧的目的 MAC 地址,且对应端口不是接收到这个数据帧的端口,交换机知道目的设备连接在哪个端口上,因此交换机会根据 MAC 地址表中的条目将数据帧从对应端口单播转发出去,而其它与交换机相连的设备则不会收到这个数据帧。

Untitled

交换机的 MAC 地址表中有这个数据帧的目的 MAC 地址,且对应端口就是接收到这个数据帧的端口。这种情况下,交换机会认为数据帧的目的地址就在这个端口所连接的范围内,因此目的设备应该已经收到数据帧。这个数据帧与其它端口的设备无关,不会将数据帧从其它端口转发出去。于是,交换机会丢弃数据帧。

Untitled

单播:主机一对一的发送数据。单播地址是主机的 MAC 地址。 广播:向局域网内所有设备发送数据。只有全 1 的 MAC 地址为广播 MAC 地址,即 FF-FF-FF-FF-FF-FF 。 泛洪:将某个端口收到的数据从除该端口之外的所有端口发送出去。泛洪操作广播的是普通数据帧而不是广播帧。

4、 数据转发流程总结:

工作原理

  1. 当二层交换机接收到一个数据包时,它会查找数据包中的目标MAC地址。

  2. 如果交换机的MAC地址表中已有目标MAC地址的条目,它会将数据包直接转发到相应的接口。

  3. 如果交换机的MAC地址表中没有目标MAC地址的条目,它会通过广播的方式发送一个特殊的数据包,称为广播帧(broadcast frame)。

  4. 当目标设备收到广播帧时,它会向交换机回复一个数据包,包含自己的MAC地址。

  5. 交换机接收到回复后,将目标MAC地址与相应接口的信息存储在MAC地址表中,以便于以后的转发。

Untitled
Untitled

B、三层交换机:

三层交换机结合了二层交换机和路由器的功能,能够在网络层(第三层交换机结合了二层交换机和路由器的功能,能够在网络层(第三层)进行数据包转发和路由选择。它不仅可以根据MAC地址进行转发,还可以根据IP地址进行路由选择。

特点

  • 多层转发:三层交换机不仅可以在数据链路层进行转发,还可以在网络层进行路由选择。它可以根据IP地址和子网掩码来确定数据包的下一跳路径。

  • 广播域分割:与二层交换机类似,三层交换机也能够将局域网分割成多个广播域,减少广播数据包的传播范围。

  • 支持多种协议:三层交换机可以支持多种网络层协议,如IP、IPX和AppleTalk等。

  • 更灵活的配置:相比于二层交换机,三层交换机通常需要进行一些配置,例如设置IP地址、路由表等。

工作原理

  1. 当三层交换机接收到一个数据包时,它首先会检查数据包的目标IP地址。

  2. 交换机会查询自己的路由表,根据目标IP地址找到相应的下一跳路径。

  3. 如果路由表中没有相应的条目,交换机会将数据包转发到默认网关。

  4. 交换机将数据包转发到下一跳路径上的接口,并将目标MAC地址设置为下一跳的MAC地址。

  5. 下一跳的交换机或路由器会根据目标MAC地址将数据包转发给下一个节点,直到达到目标设备。

三层交换机的路由功能使其更适用于较大规模的网络环境。它能够实现更灵活的网络配置和管理,同时具备较高的转发速度和较低的延迟。然而,与二层交换机相比,三层交换机的价格通常更高,并且在配置和管理方面需要更多的专业知识。

Untitled
Untitled

如果路由表中有多条路由条目都匹配数据包的目的 IP 地址,则路由器会选择掩码长度最长的路由条目,这种匹配方式称为最长匹配原则

例如:10.1.3.10 的网络地址与 10.1.3.0/16 和 10.1.3.0/24 两项都匹配,这时应该选择匹配度最长的 10.1.3.0/24 。

C、二者对比:

1、特点对比:

Untitled
  • 透明性:二层交换机和三层交换机都对上层协议是透明的,它们不关心数据包中的具体内容,只根据不同的依据进行转发。

  • 广播域分割:二层交换机和三层交换机都能够将局域网分割成多个广播域,减少广播数据包的传播范围。

  • 配置需求:二层交换机通常无需复杂的配置,插入局域网即可开始工作,而三层交换机通常需要进行一些配置,如设置IP地址、路由表等。

  • 转发依据:二层交换机基于MAC地址进行转发,而三层交换机不仅基于MAC地址,还基于IP地址进行路由选择。

  • 支持协议:二层交换机通常支持有限的网络层协议,如IPX和AppleTalk等,而三层交换机可以支持多种协议,如IP、IPX和AppleTalk等。

2、原理对比:

二层交换机工作原理

  1. 接收数据包:二层交换机接收到一个数据包。

  2. 查找目标MAC地址:交换机查找数据包中的目标MAC地址。

  3. 转发数据包:如果交换机的MAC地址表中已有目标MAC地址的条目,它会将数据包直接转发到相应的接口。否则,交换机通过广播方式发送一个特殊的数据包,称为广播帧。

  4. 学习MAC地址:当目标设备收到广播帧时,它会向交换机回复一个数据包,包含自己的MAC地址。交换机接收到回复后,将目标MAC地址与相应接口的信息存储在MAC地址表中,以便以后的转发。

三层交换机工作原理

  1. 接收数据包:三层交换机接收到一个数据包。

  2. 检查目标IP地址:交换机首先检查数据包的目标IP地址。

  3. 路由选择:交换机查询自己的路由表,根据目标IP地址找到相应的下一跳路径。

  4. 转发数据包:交换机将数据包转发到下一跳路径上的接口,并设置目标MAC地址为下一跳的MAC地址。

  5. 继续转发:下一跳的交换机或路由器根据目标MAC地址将数据包转发给下一个节点,直到达到目标设备。

三层交换机不仅在数据链路层进行转发,还可以在网络层进行路由选择。它通过检查目标IP地址和查询路由表来确定数据包的转发路径。

3、适用环境对比:

Untitled
  • 网络规模:二层交换机适用于小型局域网,而三层交换机更适用于中大型网络环境。

  • 功能需求:二层交换机主要用于局域网内部的简单数据转发,而三层交换机不仅可以进行数据转发,还具备路由功能。

  • 性能需求:二层交换机能够提供快速的数据转发速度,而三层交换机通常具备更高的性能和较低的延迟。

  • 管理复杂性:二层交换机通常无需复杂的配置,而三层交换机在配置和管理方面需要更多的专业知识和资源。

  • 价格:一般而言,三层交换机的价格相对于二层交换机来说较高,因为它具备更多的功能和性能。

二、VLAN间通信:

A、产生缘由:

引入VLAN之后,每个交换机都被划分成多个VLAN,而每个VLAN对应一个IP网段,即VLAN技术将同一个LAN上的用户在逻辑上分成了多个虚拟局域网(VLAN),只有同一个VLAN的用户才能互相交换数据。

​ VLAN隔离广播域,不同的VLAN之间是二层隔离的,即不同VLAN的主机发出的数据帧在交换机内部被隔离了。但是,用户建设网络的最终目的是要实现网络的互联互通,VLAN技术是为了隔离广播报文、提高网络带宽的有效利用率而设计的,而并不是为了不让网络之间互通,所以VLAN间的通信成为人们关注的焦点。

B、解决办法:

每个VLAN一个物理连接:

Untitled

**思路:**在二层交换机上配置VLAN,每一个VLAN使用一条独立的物理链路连接到路由器的接口上。当VLAN间的主机进行通信时,数据会经由路由器进行三层路由,并被转发到目的VLAN内的主机,这样就可以实现VLAN之间的相互通信。

**缺点:**随着每个交换机上VLAN数量的增加,是需要大量的路由器接口,路由器的接口也是有限的。并且,某些VLAN之间的主机不需要频繁的通信,所以这种方案会导致路由器接口利用率低,一般不会采用这种方式解决VLAN间通信问题。

单臂路由:

Untitled

思路:将交换机和路由器之间用一条物理链路连接,把此物理链路配置为Trunk类型的端口,并允许相关VLAN的帧通过。在路由器上创建子接口,逻辑上物理链路分成多条。一个子接口代表了一条属于某个VLAN的逻辑链路,配置子接口时,需要注意以下几点

  • 必须为每个子接口分配一个IP地址,该IP地址与子接口所属VLAN位于同一网段。

  • 需要在子接口配置802.1Q封装,来剥掉和添加VLAN Tag,实现VLAN间通信。

  • 在子接口执行 arp broadcast enable 开启子接口的ARP广播功能。
    本例中,主机A发送数据给主机B,RTA会通过G0/0/1.1子接口接收到此数据,然后查找路由表,将数据从G0/0/1.2子接口发送给主机B,这样就实现了VLAN2和VLAN3之间的主机通信。

三层交换

Untitled

**思路:**在三层交换机上配置VLAN IF接口来实现VLAN间路由。如果网络上有多个VLAN,则需要给每个VLAN配置一个VLANIF接口,并给每个VLANIF接口配置一个IP地址。设置的缺省网关就是三层交换机中VLANIF接口的IP地址。

C、同一个VLAN之间通信:

Untitled

计算机A发出ARP请求信息,请求解析B的MAC地址。交换机收到数据帧后,检索MAC地址列表中与收信端口同属一个VLAN的表项。结果发现,计算机B连接在端口2上,于是交换机将数据帧转发给端口2,最终计算机B收到该帧。收发信双方同属一个VLAN之内的通信,一切处理均在交换机内完成。

Untitled

三、三层交换解析:

A、三层交换匹配:

1、最长匹配转发(路由器):

路由器的路由转发根据报文的目的地址与路由表进行匹配操作。匹配的动作是用报文目的地址与路由表项的子网掩码进行“与”操作,如果“与”操作的结果和路由表项中网络地址相同,即认为路由匹配。所有匹配项中子网掩码位数最长的为最佳匹配项,报文从该表现对应接口发送;如果找不到匹配项,则根据默认路由0.0.0.0/0进行转发;如果没有默认路由则报文被丢弃。

​ 上述这种路由选路过程称为LPM(Longest Prefix Match,最长匹配)。路由表是根据直连、静态配置和动态路由协议生成的。路由器的路由转发主要依靠CPU进行,对每个数据包都需要通过CPU系统进行查找、封装,最后转发,整体处理效率比较低。

​ 在传统的三层路由技术中,每一个报文都要经历OSI参考模型的第三层处理,并且业务流转发是基于第三层地址的。待转发的数据,都要被上送到CPU,CPU进程解析每个数据包的目的IP地址,查找路由表,并根据最长匹配原则选择相应的路由表项,进行报文的转发。

2、三层交换机精确匹配转发:

三层交换机内部的两大部分是ASIC芯片和CPU。ASIC芯片完成主要的二、三层转发功能,内部包含用于二层转发的MAC地址表以及用于三层转发的IPFDB表;CPU用于转发控制,主要维护一些软件表项,包括软件路由表、软件、ARP表等,并根据软件表项的转发信息来配置ASIC芯片的IPFDB(IP转发数据库)

从三层交换机的结构和各部分的作用可以看出,真正决定告诉交换转发的ASIC芯片中的二、三层硬件表项,而ASIC芯片的硬件表项来源于CPU维护的软件表项。

​ 早期的三层交换机,其交换芯片多采用精确匹配的方式,他们的硬件三层表项中只包含具体的目的IP地址,并不带掩码信息。比如,在转发目的IP地址为2.1.1.2的报文时,交换机通过软件查找匹配了非直连路由2.1.1.0/24,那么就将2.1.1.2的转发信息添加到ASIC芯片的IPFDB表。如果继续来了目的IP地址为2.1.1.3的报文需要转发,则需要重新进行软件查找,并在ASIC芯片的IPFDB表中为2.1.1.3增加表项。

​ 因此,通过多次地址学习,交换机可以把表项逐一加进来,这样后续的流量就可以直接查找IPFDB表,不需要再通过CPU查找软件路由表。这就是三层交换机所谓的“一次路由,多次交换”。

​ 该转发方式极大地提升了报文转发效率。其中,一个流的后续报文在选择路由的时候,匹配的是32位掩码的目的主机IP地址,故称为精确匹配方式,也称为流交换技术。

从实际应用的角度看,精确匹配转发是由一定限制的。这样的选路方式和表项结构对交换芯片的硬件资源要求很高,因为芯片中集成的表项存储空间是很有限的,如果要转发大量目的IP地址不同的报文,就需要添加大量的硬件表项。

精确匹配三层交换机整个处理流程分成了3个大的部分。

(1)平台软件协议栈部分。这部分的关键功能有运行路由协议,维护路由信息表,IP协议栈的功能。在整个系统的处理流程中,这部分担负着重要的功能,当硬件不能完成报文转发的时候,这部分可以代替硬件来完成报文的三层转发。

(2)硬件处理流程。主要的表项有二层MAC地址表·和三层的IPFDB表,这两个表用于保存转发信息,在转发信息比较全的情况下,报文的转发和处理全部由硬件来完成处理,不需要软件的干预。

(3)驱动代码部分。其中,核心任务有地址解析任务和地址管理任务。地址解析任务对已经报上来的未解析的地址进行学习,以便硬件完成后续的报文的转发而不需要软件干预;地址管理任务负责FIB(Forwarding Information Base,转发信息库)表的维护操作,并将FIB表项下发到IPFDB表。FIB表的信息来源于路由表和ARP表等。

三层交换机精确匹配转发表主要包含的表项如图1-1所示,其中,IPFDB表来源于地址学习,FIB表来源于CPU维护的软件路由表,如果查找IPFDB失败,则继续查找FIB表,得到目的网段路由的下一跳和出接口等信息,如果查找FIB表失败,则上送CPU处理。

​ 精确匹配交换机三层转发主要有IPFDB表来完成。IPFDB表的地址学习过程为:获取目的IP地址,用该IP去查找FIB表,获得下一跳IP地址和出接口,并用下一跳IP地址去查找ARP表获得其对应的MAC地址、出接口,从而该IP地址及相关信息学习到IPFDB表中。

​ 对于学习到的目的IP地址,交换机以一定数据结构存储在IPFDB表中。IPFDB表项中维护着报文三层转发的IP地址、端口号、下一跳对应的MAC地址。当交换机学习到转发过程所需的地址表现后,三层报文转发都将由硬件自动完成,无需软件处理。

​ 以下是精确匹配方式交换机进行三层IP单播转发的简要步骤。

(1)交换机做三层转发时,首先以目的IP地址查找IPFDB表,如果查找成功,进行下一步处理;否则转步骤(3)以最长地址匹配查找FIB表

(2)根据目的IP地址找到下一跳,然后根据下一跳找目的MAC地址和出端口进行转发

(3)查找FIB表,如果查找成功,再查询ARP表,获得下一跳的MAC地址和出端口,并刷新IPFDB表进行下一步处理,否则转步骤(5)上送CPU处理。

(4)查找IPFDB表,然后根据目的IP地址找到下一跳,最后根据下一跳找到目的MAC地址和出端口进行转发。

(5)CPU查找软件路由表,如查找成功并且也查找到下一跳的ARP表,刷新FIB表,FIB表再刷新IPFDB表,转步骤(4)处理,否则丢弃

Untitled

FIB表支持最长匹配查找,而IPFDB表只支持精确匹配查找,可以认为IPFDB表项为从FIB表查找到的下一跳IP地址加上下一跳IP地址在ARP表中对应的MAC地址和端口。可以看出,FIB表中一个网段路由中如果有100台主机,就需要在IPFDB表中生成100条转发表项,这就是为什么在精确匹配交换机受到大量目的IP地址变化的报文攻击时,会出现IPFDB表塞满的原因。

3、三层交换机最长匹配转发

前面介绍了传统的路由技术和流交换技术,并且从转发处理方式的不同进行了对比分析,可以发现流交换技术相对于传统路由技术得到了很大的提高和改进,以便适应局域网中高速三层交换的需求。但是随着流交换技术的使用,出现了一个较为严重的问题,流交换技术的转发需要三层交换机处理每一个数据流的首报文,并为每个流创建一条快速转发的路径。然而ASIC芯片的快速转发路径表项数量的限制和CPU处理数据流首报文的能力限制,导致了流交换技术在某些特定的场合中不能胜任,例如某些攻击导致数据流频繁变化以及数据流非常多的情况,流交换技术就不能满足实际需求。

​ 为了解决上述特殊情况的需求,并且不降低网络转发速率,人们结合三层路由的最长匹配算法和流交换的硬件转发优点,开发了一种能够完成路由最长匹配查找算法的ASIC芯片,并且在ASIC芯片中保存着和传统软件路由表一致的转发信息。这样既能够通过硬件实现快速的查找,又能大幅度减小转发路径的数量,因为很多个数据流(例如目的IP在同一个网段的所有数据流)可以共享同一个三层转发路径。

​ 所以,后期的三层交换机增加了对最长匹配方式的支持,即硬件三层表项中可同时包含IP地址和掩码,在查找时遵循最长匹配原则。三层交换机的三层转发是基于硬件实现的,最长匹配方式的三层交换机即使在加载大量路由、网络路由频繁波动、网络蠕虫及其严重的情况下,仍然能保证IP报文的线速转发,因而可以保障正常业务的运行。

最长匹配三层交换机整个处理流程也分成了3个大的部分。

(1)平台软件协议栈部分。这部分的关键功能有运行路由协议,维护路由信息表,IP协议栈的功能。在整个系统的处理流程中,这部分担负着重要的功能,当硬件不能完成报文转发的时候,这部分可以代替硬件来完成报文的三层转发。

(2)硬件处理流程。主要的表项有二层MAC地址表、L3 Table和DEF IP表,这3个表用于保存转发信息,在转发信息比较全的情况下,报文的转发和处理全部由硬件来完成处理,不需要软件的干预。

(3)驱动代码部分。将软件平台维护的ARP和FIB表的转发信息转化成硬件格式并下发。

三层交换机最长匹配转发表主要包含的表项如图所示,其中,有别于精确匹配转发的表项为L3 Table和DEF_IP表。

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

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

以下是最长匹配方式交换机进行三层IP单播转发的简要步骤。

(1)交换机做三层转发时,首先以目的IP地址查找L3 Table,如果查找如成功,进行下一步处理;否则,转步骤(3)以最长地址匹配查找DEF_IP表。

(2)根据目的IP地址找到下一跳,然后根据下一跳找到目的MAC地址和出端口进行转发。

(3)查找DEF_IP表,由芯片保证最长匹配的实现。如果查找成功,获得出端口、下一跳信息,并封装、转发报文;如果查找失败,丢弃报文并由CPU确定是否发送ICMP不可达消息。

(4)查找L3 Table,然后根据目的IP地址找到下一跳,最后根据下一跳找到目的MAC地址和出端口进行转发。

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

Untitled

转发总结:

Untitled
Untitled

VLAN路由 - 尤妤 - 博客园

VLAN间路由配置方法,单臂路由、三层交换_路由交换基础-腾讯云开发者社区-腾讯云