三层交换机详解
- 一、三层交换机介绍
-
- 三层交换机的工作原理
- MLS条目介绍
- 二、三层交换机的配置方法
一、三层交换机介绍
三层交换机:实现数据帧在广播域内二层转发实现VLAN间的通信数据包的三层路由转发。既有二层交换机的功能,也有三层路由器的功能,还有vlan之间通信的功能。(三层交换=二层交换+三层转发)
三层交换机的工作原理
- 当三层设备接收到一个数据帧,会拆除原数据帧重新封装新的源MAC地址和目标MAC地址,并且因为帧头部的信息发生变化,最后的帧校验CRC也应当随之改变。
- 在这个数据流中的多个数据包,其中只有第一个数据包是由三层交换机的三层引擎来处理的,处理的方式是软件方式,与路由器相同,三层引擎获取了新的2层封装信息后,路由这个数据包。
- 在第一个数据包转发完成后,在硬件中会创建一个MLS条目,用于后续的数据包由硬件执行的重新封装和快速转发,2层数据帧会被重新封装为需要转发的下一个网段的帧格式。
MLS条目介绍
基于CEF(一种基于拓补转发的模型)的MLS,其关键是两张转发信息表,转发信息库(FIB)和邻接关系表。有这两张表就可以基于MLS条目来实现硬件的重新封装和转发
- 转发信息库(FIB):转发信息库(FIB)与路由表一一对应,是路由表的一个镜像。路由表更新时,FIB随之变化,其中FIB包含临接主机的IP地址与vlanID对应关系。(相当于路由器的路由表)
- 邻接关系表:邻接关系表包含邻接主机和交换机MAC地址的对应关系用来提供二层重写信息。(相当于交换机的MAC地址表)
基于CEF的MLS转发过程,即发送单播数据包,通过查找FIB和邻接关系表,重新封装数据帧,从相应端口进行转发。
总结一下
三层交换机的工作原理就是一次路由,多次交换。
-
一次路由:第一个数据包通过三层交换机的三层引擎实现的数据包路由转发(ARP请求过程,获得目标MAC地址然后重新封装MAC头部)
-
多次交换:从数据流的第二个包开始,根据三层交换机的MLS表实现硬件的重新封装和转发
二、三层交换机的配置方法
配置之前需要知道的一些知识
-
三层交换机与二层交换机一样不能再物理接口上配置IP地址
-
三层交换机需要设置一个虚拟的vlan接口在vlan虚拟接口上配置IP实现VLAN之间的通信
-
vlan虚接口的IP地址就是相关vlan主机的默认网关地址
-
不同的vlan虚接口的IP地址与路由器的不同接口一样 ,不能再同一个网段里
-
配置虚接口的命令: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通