文章插图
IVL二层交换示意图
IVL方式的二层交换机转发流程更加清晰,VLAN之间不会互相影响,目前实际应用中的二层交换机大多采用这种方式 。
3 三层交换基本原理早期的网络中一般使用二层交换机来搭建局域网,而不同局域网之间的网络互通由路由器来完成 。那时的网络流量,局域网内部的流量占了绝大部分,而网络间的通信访问量比较少,使用少量路由器已经足够应付了 。通常的组网结构如图9 。
文章插图
二层交换机+路由器组网
但是,随着数据通信网络范围的不断扩大,网络业务的不断丰富,网络间互访的需求越来越大,而路由器由于自身成本高、转发性能低、端口数量少等特点无法很好的满足网络发展的需求 。我们知道,路由器主要是通过IP转发(三层转发)来实现不同网络间的互连,那么是否能够将交换机的高性能应用到三层转发中去呢?答案是肯定的,三层交换机就是这样一种实现了高速三层转发的设备 。大多数三层交换机采用ASIC硬件芯片来完成转发,ASIC芯片内部集成了IP三层转发的功能,包括检查IP报文头、修改存活时间(TTL)参数、重新计算IP头校验和、IP包的数据链路封装等等 。三层交换机的组网结构如图10所示 。
文章插图
三层交换机组网结构
路由器的三层转发主要依靠CPU进行,而三层交换机的三层转发依靠ASIC芯片完成,这就决定了两者在转发性能上的巨大差别 。当然,三层交换机并不能完全替代路由器,路由器所具备的丰富的接口类型、良好的流量服务等级控制、强大的路由能力等仍然是三层交换机的薄弱环节 。
目前的三层交换机一般是通过VLAN来划分二层网络并实现二层交换,同时能够实现不同VLAN间的三层IP互访 。在讨论三层交换机的转发原理之前有必要交代一下不同网络的主机之间互访时的行为:
(1) 源主机在发起通信之前,将自己的IP与目的主机的IP进行比较,如果两者位于同一网段(用网络掩码计算后具有相同的网络号),那么源主机直接向目的主机发送ARP请求,在收到目的主机的ARP应答后获得对方的物理层(MAC)地址,然后用对方MAC作为报文的目的MAC进行报文发送 。位于同一VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机作二层交换转发;
(2) 当源主机判断目的主机与自己位于不同网段时,它会通过网关(Gateway)来递交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文的目的MAC进行报文发送 。注意,发送报文的源IP是源主机的IP,目的IP仍然是目的主机的IP 。位于不同VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机作三层交换转发 。
3.1 三层交换机硬件结构为了后续讨论的三层交换原理便于理解,这里简单介绍一下三层交换机的内部结构,如图11所示 。
文章插图
三层交换机硬件结构
根据上图,三层交换机内部的两大部分是ASIC和CPU,它们的作用分别如下:
(1) ASIC:完成主要的二三层转发功能,内部包含用于二层转发的MAC地址表以及用于IP转发的三层转发表;
(2) CPU:用于转发的控制,主要维护一些软件表项(包括软件路由表、软件ARP表等等),并根据软件表项的转发信息来配置ASIC的硬件三层转发表 。当然,CPU本身也可以完成软件三层转发 。
从三层交换机的结构和各部分作用可以看出,真正决定高速交换转发的是ASIC中的二三层硬件表项,而ASIC的硬件表项来源于CPU维护的软件表项 。
3.2 三层交换原理下面分别以两种组网情况下的主机间通信来解释三层交换机的转发原理 。
组网1如图12所示,通信的源、目的主机连接在同一台三层交换机上,但它们位于不同VLAN(网段) 。对于三层交换机来说,这两台主机都位于它的直连网段内,它们的IP对应的路由都是直连路由 。
文章插图
三层转发组网1
上图中标明了两台主机的MAC、IP地址、网关,以及三层交换机的MAC、不同VLAN配置的三层接口IP 。当 PC A 向 PC B 发起ICMP请求时,流程如下:(假设三层交换机上还未建立任何硬件转发表项)
推荐阅读
- 一文读懂常用开源许可证
- 抽水马桶是如何工作的?一文看懂虹吸原理
- Nginx高级篇:从原理到实战,彻底搞懂Nginx
- 交换机划分 VLAN 配置
- 根据交换机的工作原理可知,交换机可以多个端口对之间的数据传输
- 一文讲弄懂什么是vlan、三层交换机、网关、子网掩码
- 路由交换技术—VLAN原理及配置
- 交换机与路由器的区别
- 8分钟带你深入浅出搞懂Nginx
- 一文教您如何实现持续集成服务器环境搭建