目录
三层交换机是在二层交换机的基础上,增加了路由选择功能的网络设备,能够基于 ASIC 和 FPGA 实现网络功能和转发分组。
二层交换机能够基于数据链路层的 MAC 地址,进行数据帧或 VLAN 的传输功能。
三层交换机能够基于网络层的 IP 地址,实现路由选择以及分组过滤等功能。
- 主机A发现主机B不与自己在同一网段,将报文转发给三层交换机。
- 到达三层交换机,因为是第一次转发,三层交换机的硬件路由表中只有主机A自己的条目,匹配失败,转给CPU处理。
- 数据包转到CPU后,查询软件路由条目匹配到直连路由,进行数据转发。
- 主机B 收到主机 A的报文,回复主机A。像主机A第一次访问主机B一样,但此时硬件路由表中已经有主机A的条目,所以可以直接硬件转发。但没有主机B的,所以同时将主机B的信息添加到硬件路由表中。
- 后续两者再进行通讯时,因为硬件路由表中已经存在两者的条目,所以可以直接硬件转发。
- 当三层设备接收到一个数据帧,会拆除原数据帧,重新封装新的源MAC地址和目标MAC地址,并且因为帧头部的信息发生变化,最后的帧校验CRC也应当随之改变。
- 在这个流中的多个数据包,其中只有第一个数据包是由三层交换机的三层引擎来处理的,处理的方式是软件方式,与路由器相同,三层引擎获取了新的2层封装信息后,路由这个数据包。
- 在第一个数据包转发完成后,在硬件中创建一个MLS条目用于后续的数据包由硬件执行的重新封装和快速转发。2层数据帧会被重新封装为需要转发的下一个网段的帧格式。 这就是MLS“一次路由,多次交换"的原理。
通过三层交换机互连的A?和 B的通信过程:首先A执行以下动作1、A检查报文的目的IP地址B_ip, 判定B和A是否在同一子网 ;2、如果是,将报文直接传递给B(将B_ip-->B_mac,交由数据链路层封装成帧,帧的目的地址是B_mac);3、否则,将报文转发给缺省网关C,即三层交换机(将C_ip-->C_mac,交由数据链路层封装成帧,发送给C_mac)3.1? 当交换机收到这一数据帧的时候:①? 如果目的地址不是自身,依据 MAC地址表对其在第二层上进行转发。
②? 如果目的地址是自身,将其中的IP报文提交给第三层交换模块。③检查目的IP地址是否在 IP转发表中,是的话, 硬件会按照转发信息直接转发。否则,则交由 软件处理(CPU)—--- 查路由表,请求ARP做地址转换,在软件转发的同时将转发信息保存到IP转发表中,后续报文只需由硬件转发。即 一次路由,多次 转发。
- 性能:传统路由器对过往的每个包执行路由功能,靠软件处理,而三层交换机只对少量包执行软件的路由功能,大量的包或者在第二层上、或者在第三层上进行硬件交换性能相差很大。
- 接口类型:三层交换机的接口基本都是以太网接口,没有路由器接口类型丰富。因此路由器可以用于异种网络互连,而三层交换机则多用于大型局域网内部的子网互连。
- 路由功能:三层交换机虽有寻找路径功能,但比较弱不支持复杂的路由协议,只能用于网络结构比较简单的情形。而专业路由器则可以用于大型复杂网络。
- 综上所述,三层交换机重点是交换,强调的是性能;而专业路由器则重点解决互连的复杂性以及准确的控制。
?
- 单臂路由或者三层交换机都可以实现VLAN之间的通信
- 单臂路由工作原理:? ?路由器重新封装MAC地址,转换VLANID
- 三层交换机工作原理:一次路由,多次交换
- 一次路由:数据流的第一个数据包由三层引擎来处理,重新封装MAc,再路由转发数据包
- 多次交换:第一个数据包转发后,会在硬件创建一个MSL条目,MSL包含FIB(转发信息库:包含邻接主机IP和vlanid)、邻接关系表(包含邻接主机MAC地址),通过查询FIB和邻接关系表重新封装数据帧,从相应端口转发数据
- 三层交换机具有路由功能可转发数据,ip地址是配置在虚接口上而不是物理接口上,物理接口对接交换机配置trunk,对接pc机配合access