在上一篇文章中介绍了如何通过配置单臂路由来实现VLAN间的互通,但一般在一个企业网络内部很少会使用路由器,在生产环境中,VLAN间的通信主要是通过三层交换来实现的。

三层交换机具备网络层的功能,实现VLAN相互访问的原理是:利用三层交换机的路由功能,通过识别数据包的IP地址,查找路由表进行选路转发。在三层交换机中跨VLAN间路由,需要使用SVI(Switch Virtual Interface,交换虚拟接口),SVI是指为交换机中的VLAN创建的虚拟接口,并且配置IP地址。SVI是联系二层VLAN的IP接口,一个SVI只能和一个VLAN相联系。

实验拓扑与上文类似,只是将2811路由器换成了3560三层交换机。

通过三层交换实现VLAN间互通_第1张图片

 PC0接在2960交换机f0/1口,IP192.168.1.10,默认网关192.168.1.254,属于VLAN 10PC1接在2960交换机f0/13口,IP192.168.2.10,默认网关192.168.2.254,属于VLAN 20;2960交换机的f0/24口与3560三层交换机的f0/1口相连,设为trunk模式。

PC0和PC1分属于不同的vlan,它们间数据的通信首先要经由trunk链路传输给三层交换机,然后再由三层交换机转发到不同的vlan。

一、配置Cisco 2960交换机

创建VLAN:
Switch#vlan database
Switch(vlan)#vlan 10 name vlan10
Switch(vlan)#vlan 20 name vlan 20
Switch(vlan)#exit

分配端口(将f0/1-f0/12端口划归vlan10,f0/13-f0/23端口划归vlan20):
Switch(config)#int range f0/1-12
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 10
Switch(config-if-range)#exit
Switch(config)#int range f0/13-23
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit

设置trunk
Switch(config)#int f0/24
Switch(config-if)#switchport mode trunk
Switch(config-if)#exit

二、配置Cisco 3560交换机

首先创建相同编号的VLAN:
Switch#vlan database
Switch(vlan)#vlan 10 name vlan10
Switch(vlan)#vlan 20 name vlan20
Switch(vlan)#exit

然后通过设置SVI交换虚拟接口,分别为每个VLAN设置IP:
Switch#conf t
Switch(config)#int vlan 10
Switch(config-if)#ip address 192.168.1.254 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#int vlan 20
Switch(config-if)#ip address 192.168.2.254 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit

最后还有一条非常重要的命令需要执行:
Switch(config)#ip routing
这条命令的作用是启用三层交换机的路由功能,否则三层交换机只能使用其二层功能。

三、在PC上测试

为两台PC分别设置好相应的IP,用ping命令进行测试,可以ping通,证明vlan间可以互通。

通过三层交换实现VLAN间互通_第2张图片