二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。三层交换机就是具有部分路由器功能的交换机,最重要目的是加快大型局域网内部的数据交换。
此篇文章可以让我们了解,二层交换机转发原理,三层交换机转发原理,以及二层交换机和多层交换机之间的区别。
二层交换机只会在 VLAN 内交换以太网帧,如果我们愿意,我们可以根据第 2 层过滤流量(例如使用端口安全,MAC ACL等)。
多层交换机可以执行相同的操作,但也可以在 VLAN 之间进行路由,并使用访问列表在第 3 层或第 4 层进行过滤。
二层上的转发基于目标 MAC 地址,交换机通过传入帧学习源 MAC 地址并构建 MAC 地址表。
每当以太网帧进入交换机接口时交换机将检查 MAC 地址表以找到目标 MAC 地址,然后将其发送到正确的接口,如果未找到目标MAC, 将会flood到trunk口以及本vlan内的其它接口。
第 三 层转发基于目标 IP 地址,当交换机收到源 IP 地址与目标 IP 地址位于不同子网的 IP 数据包时,就会发生转发。
当多层交换机在以太网报头中接收到一个以自己的 MAC 地址作为目的地的 IP 数据包时,有两种可能性:
-
如果目标 IP 地址是在多层交换机上配置的地址,则 IP 数据包的目的地是该交换机。
-
如果目标 IP 地址是多层交换机上未配置的地址,那么我们必须充当网关并“路由”数据包。这意味着必须在路由表中进行查找以检查最长匹配。如果配置了 ACL,则还必须检查是否允许 IP 数据包通过。
过去……数据包交换机是以硬件速度完成的转发,而路由器是以软件速度完成的,如今,交换和路由都是以硬件转发数据包。
首先让我们来看看处理以太网帧和 IP 数据包的区别:
二层交换机转发的生命周期很简单:
-
交换机将验证以太网帧的校验和,以确保它没有损坏或更改。
-
交换机接收到一个以太网帧,并将源 MAC 地址添加到 MAC 地址表中。
-
如果知道目标 MAC 地址,交换机会将以太网帧转发到正确的接口。如果没有,它将被泛洪。
现在让我们看看在多层交换机上收到 IP 数据包时必须做什么:
在上面的例子中,H1 正在向 H2 发送一个 IP 数据包,它们位于不同的子网中,因此我们必须对其进行路由。当我们的多层交换机收到 IP 数据包时,会发生以下情况:
-
交换机将验证以太网帧的校验和,以确保它没有损坏或更改。
-
交换机将验证 IP 数据包的校验和,以确保它没有损坏或更改。
多层交换机会检查路由表,发现192.168.20.0/24 是直连的,并将会发生以下情况:
-
检查 ARP 表以查看是否存在 H2 的第 2 层到第 3 层映射,如果没有映射,多层交换机将发送一个 ARP 请求。
-
目标 MAC 地址从 FFF(多层交换机 Fa0/1)更改为 BBB(H2)。
-
源 MAC 地址从 AAA (H1) 更改为 GGG(多层交换机 Fa0/2)。
-
IP 数据包中的 TTL(生存时间)字段减 1,因此将重新计算 IP 报头校验和。
-
必须重新计算以太网帧校验和。
-
携带 IP 数据包的以太网帧将从接口向 H2 发送。
如您所见,如果要路由 IP 数据包,需要执行相当多的步骤。