三层交换机详解

  • 一、三层交换机介绍
    • 三层交换机的工作原理
    • MLS条目介绍
  • 二、三层交换机的配置方法

一、三层交换机介绍

三层交换机详解-编程知识网

三层交换机:实现数据帧在广播域内二层转发实现VLAN间的通信数据包的三层路由转发。既有二层交换机的功能,也有三层路由器的功能,还有vlan之间通信的功能。(三层交换=二层交换+三层转发)

三层交换机的工作原理

三层交换机详解-编程知识网

  1. 当三层设备接收到一个数据帧,会拆除原数据帧重新封装新的源MAC地址和目标MAC地址,并且因为帧头部的信息发生变化,最后的帧校验CRC也应当随之改变。
  2. 在这个数据流中的多个数据包,其中只有第一个数据包是由三层交换机的三层引擎来处理的,处理的方式是软件方式,与路由器相同,三层引擎获取了新的2层封装信息后,路由这个数据包。
  3. 在第一个数据包转发完成后,在硬件中会创建一个MLS条目,用于后续的数据包由硬件执行的重新封装和快速转发,2层数据帧会被重新封装为需要转发的下一个网段的帧格式。

MLS条目介绍

基于CEF(一种基于拓补转发的模型)的MLS,其关键是两张转发信息表,转发信息库(FIB)和邻接关系表。有这两张表就可以基于MLS条目来实现硬件的重新封装和转发

  • 转发信息库(FIB):转发信息库(FIB)与路由表一一对应,是路由表的一个镜像。路由表更新时,FIB随之变化,其中FIB包含临接主机的IP地址与vlanID对应关系。(相当于路由器的路由表)
  • 邻接关系表:邻接关系表包含邻接主机和交换机MAC地址的对应关系用来提供二层重写信息。(相当于交换机的MAC地址表)

三层交换机详解-编程知识网
基于CEF的MLS转发过程,即发送单播数据包,通过查找FIB和邻接关系表,重新封装数据帧,从相应端口进行转发。


总结一下

三层交换机的工作原理就是一次路由,多次交换。

  1. 一次路由:第一个数据包通过三层交换机的三层引擎实现的数据包路由转发(ARP请求过程,获得目标MAC地址然后重新封装MAC头部)

  2. 多次交换:从数据流的第二个包开始,根据三层交换机的MLS表实现硬件的重新封装和转发


二、三层交换机的配置方法

配置之前需要知道的一些知识

  1. 三层交换机与二层交换机一样不能再物理接口上配置IP地址

  2. 三层交换机需要设置一个虚拟的vlan接口在vlan虚拟接口上配置IP实现VLAN之间的通信

  3. vlan虚接口的IP地址就是相关vlan主机的默认网关地址

  4. 不同的vlan虚接口的IP地址与路由器的不同接口一样 ,不能再同一个网段里

  5. 配置虚接口的命令:int vlanif 10(10为ID号)

整体思路如下
三层交换机详解-编程知识网

首先进入 lsw1 创建vlan 10 和 vlan 30 在进入 lsw2 创建 vlan 30 和 vlan 20, 再给 lsw1 和 lsw2 中的各个物理端口设置为对应的链路种类。(计算机与交换机之间使用Access,交换机与交换机之间使用Trunk),并把access链路类型的端口添加到对应vlan中,把Trunk链路类型设置好允许哪些vlan通过。
配置方法:

lsw1中vlan batch 10 30 (创建vlan10和vlan30)
int g0/0/1 (进入pc1连接交换机的端口)
port link-type access (将这个端口设置为access链路类型)
port default vlan 10 (将这个端口加入到vlan10中)
int g0/0/2 (进入 lsw1 和 lsw2 两台交换机相连接的端口)
port link-type trunk (将这个端口设置为trunk链路类型)
port trunk allow-pass vlan 10 30 (这个端口允许标有 vlan10 和 vlan30 标识 的数据通过)

三层交换机详解-编程知识网

lsw2中vlan batch 20 30 (创建vlan20和vlan30)
int g0/0/1 (进入pc2连接交换机的端口)
port link-type access (将这个端口设置为access链路类型)
port default vlan 20 (将这个端口加入到vlan20中)
int g0/0/2 (进入 lsw2 和 lsw1 两台交换机相连接的端口)
port link-type trunk (将这个端口设置为trunk链路类型)
port trunk allow-pass vlan 20 30 (这个端口允许标有 vlan20 和 vlan30 标识 的数据通过)

三层交换机详解-编程知识网
然后重点来啦,在这之前只能算是二层交换机,而三层交换机的区别就是可以设置一个虚拟的vlan接口在vlan虚拟接口上配置IP实现VLAN之间的通信,接下来我们给 lsw1 和 lsw2 分别设置上虚拟vlan接口
配置方法:

lsw1中int vlanif 10 (创建一个 vlan10 的虚拟端口)
ip address 192.168.10.5 24 (给vlan10的虚拟端口设置一个IP地
址,这个IP地址就是所有连接在这台交换机上的 vlan10 端口 连接
的主机的默认网关地址)int vlanif 30 (创建一个 vlan 30 的虚拟端口)
ip address 192.168.30.1 24(给vlan30的虚拟端口设置一个IP地址)

三层交换机详解-编程知识网

lsw2中int vlanif 20 (创建一个 vlan20 的虚拟端口)
ip address 192.168.20.4 24(给vlan10的虚拟端口设置一个IP地址)int vlanif 30 (创建一个 vlan 30 的虚拟端口)
ip address 192.168.30.2 24(给vlan30的虚拟端口设置一个IP地址)

三层交换机详解-编程知识网

到了这里交换机已经具备一部分路由器的功能了,我们可以设置静态路由来让pc1和pc2通信了,两个交换机都要设置一个静态路由
配置方法:

lsw1中ip route-static 192.168.20.5 24 192.168.30.2 (目标IP地址为PC2的IP地
址,下一跳地址为在lsw2中配置的vlan30虚拟端口的IP地址)

三层交换机详解-编程知识网

lsw2中ip route-static 192.168.10.2 24 192.168.30.1 (目标IP地址是PC1的IP地
址,下一跳地址为在lsw1中配置的vlan30的虚拟端口IP地址)

三层交换机详解-编程知识网

最后我们设置一下PC1和PC2的IP地址和网关地址

三层交换机详解-编程知识网
三层交换机详解-编程知识网

然后我们来ping一下,看看处于不同vlan中的两台主机能否ping通

三层交换机详解-编程知识网

三层交换机详解-编程知识网
至此就配置完毕啦,本篇文章也到此结束啦,下次见咯。