三层交换机通过硬件来交换和路由选择数据包。为完成在硬件中处理数据包的高层信息,思科交换机使用传统的MLS(多层交换)体系结构或基于CEF(快速转发)的MLS体系结构。

1、传统的MLS

MLS让ASIC(应用专用集成电路)能够被路由的数据包执行第二层重写操作,第二层重写操作包括重写源和目标MAC地址,以及写入重新计算得到的循环冗余校验码(CRC)。

使用传统MLS时,交换机将数据流中的第一个数据包转发给第三层引擎,后者以软件交换的方式对数据包进行处理。对数据流中的第一个数据包进行路由处理后,第三层引擎对硬件交换组件进行程序处理,使之为后续的数据包选择路由。

2、基于CEF的MLS

CEF是一种基于拓扑的转发模型,可预先将所有路由选择信息加入到转发信息库(FIB)中。这样,交换机就能够快速查找路由选择信息。

CEF主要包含如下两个转发用的信息表。

转发信息库(FIB):CEF使用FIB来做出基于目标IP前缀的转发决策。FIB类似于路由表,包含路由表中转发信息的镜像。当网络的拓扑发生变化是,路由表将被更新,而FIB也将随之变化。FIB中包含下一跳地址信息,这些信息时根据路由表中的信息得到的。使用基于CEF的MLS时,第三层引擎和硬件交换组件都维护一个FIB。

邻接关系表:在网络中,如果两个节点之间在数据链路层只有一跳,则它们彼此相邻。除了FIB外,CEF还使用邻接关系表来存储2层编制信息,对于每个FIB条目邻接关系表中都包含相应的第二层地址。和FIB一样,使用基于CEF的MLS时,第三层引擎和硬件交换组件都维护一个邻接关系表。

3、虚拟接口的引入

大家可能没注意,在交换机中的VLAN1实际就是一个虚拟接口,默认所有接口都属于这个VLAN,因此不管从哪个端口接入到交换机,都可以远程连接此交换机,前提是配置IP地址可相关口令。从这点我们可以分析出,我们只需要在三层交换上开启相关的VLAN,并配置IP地址,该地址就属于所有该VLAN内主机的网关。


三层交换的配置

1、开启路由功能

Switch(config)#ip routing

2、创建VLAN并配置地址

列如:在三层交换上创建vlan 10和vlan 20并配置ip地址,实现不同vlan之间的通信。

拓扑图如下:

三层交换实现不同VLAN之间的通信_第1张图片

三层交换Switch1的配置如下:

Switch1(config)#valn 10

Switch1(config-vlan)#ip add 192.168.1.1 255.255.255.0

Switch1(config-vlan)#no sh

Switch1(config-vlan)#exit

Switch1(config)#valn 20

Switch1(config-vlan)#ip add 192.168.2.1 255.255.255.0

Switch1(config-vlan)#no sh

Switch1(config-vlan)#exit

Switch1(config)#int range f0/0 -1

Switch1(config-if-range)#switchport trunk encapsulation dot1q

Switch1(config-if-range)#switchport mode trunk

Switch1(config-if-range)#no sh

注意:三层交换和二层交换之间的链路为中继链路,应将相应的接口设置为trunk

二层交换机Switch2的配置如下:

Switch2(config)#valn 10

Switch2(config-vlan)#exit

Switch2(config)#int f0/1

Switch2(config-if)#switchport access vlan 10

Switch2(config-if)#no sh

Switch2(config)#int f0/0

Switch2(config-if)#switchport trunk encapsulation dot1q

Switch2(config-if)#switchport mode trunk

Switch2(config-if)#no sh

二层交换机Switch3的配置如下:

Switch3(config)#valn 20

Switch3(config-vlan)#exit

Switch3(config)#int f0/1

Switch3(config-if)#switchport access vlan 20

Switch3(config-if)#no sh

Switch3(config)#int f0/0

Switch3(config-if)#switchport trunk encapsulation dot1q

Switch3(config-if)#switchport mode trunk

Switch3(config-if)#no sh


此时只需要给PC1和PC2配置相应的IP地址以及网关,就可以互相通信了。

注意:如果需要给三层交换的某个接口配置IP地址,需要先进入该接口然后no switchport一下。

Switch1(config-if)#no switchport