在实际使用VLAN的场景中,不同VLAN的设备间可能存在通信需求。尽管VLAN广播域是二层隔离的,不同VLAN的设备之间仍可以通过三层设备来进行通信,但此方式需占用路由接口。通过在二层交换设备的基础上增加路由模块构成三层交换设备,可以解决此问题。下面通过一个典型配置举例来说明如何通过三层交换设备实现不同VLAN间的通信。
组网需求
某用户内网存在三个部门,相互之间需要二层隔离,三层互联。
因此分别在3台接入设备Device A、Device B和Device C上创建VLAN,用户内网被划分为VLAN 10、VLAN 20和VLAN 30,相互之间二层隔离。把接口定义为一个VLAN的成员,所有连接到此接口的终端都是VLAN网络的一部分。调整用户所在VLAN,只需要调整接口的VLAN配置,而不必调整物理位置。
在核心设备Device D上配置3个VLAN,配置连接Device A、B和C的接口为Trunk口,并指定许可VLAN列表。配置3个SVI,分别作为3个VLAN对应IP子网的网关接口,3个VLAN对应的IP子网分别为192.168.10.0/24、192.168.20.0/24和192.168.30.0/24,3个VLAN通过三层核心设备的IP转发能力实现子网互连。
配置要点
1、 在三层核心设备Device D上配置3个VLAN,配置连接Device A、B和C的接口为Trunk口,并配置许可VLAN列表,实现二层隔离。
2、在Device D配置3个SVI口,分别作为3个VLAN对应IP子网的网关接口,配置网关IP地址。在终端上根据所在网段,配置默认网关地址。
3、分别在3台接入设备Device A、B和C上创建VLAN,为各VLAN分配Access口,配置连接Device D的接口为Trunk口。
配置步骤
(1) 创建和配置VLAN。
# 在核心设备Device D上创建VLAN。修改VLAN 10的名称。
DeviceD> enable
DeviceD# configure terminal
DeviceD(config)# vlan 10
DeviceD(config-vlan)# name office
DeviceD(config-vlan)# vlan range 20,30
DeviceD(config-vlan-range)# exit
# 在接入设备Device A上创建VLAN。
DeviceA> enable
DeviceA# configure terminal
DeviceA(config)# vlan range 10,20
DeviceA(config-vlan-range)# exit
# 在接入设备Device B上创建VLAN。
DeviceB> enable
DeviceB# configure terminal
DeviceB(config)# vlan range 10,20,30
DeviceB(config-vlan-range)# exit
# 在接入设备Device C上创建VLAN。
DeviceC> enable
DeviceC# configure terminal
DeviceC(config)# vlan range 20,30
DeviceC(config-vlan-range)# exit
(2) 在Device D上配置VLAN三层SVI口的IP地址。
DeviceD(config)# interface vlan 10
DeviceD(config-if-VLAN 10)# ip address 192.168.10.1 255.255.255.0
DeviceD(config-if-VLAN 10)# exit
DeviceD(config)# interface vlan 20
DeviceD(config-if-VLAN 20)# ip address 192.168.20.1 255.255.255.0
DeviceD(config-if-VLAN 20)# exit
DeviceD(config)# interface vlan 30
DeviceD(config-if-VLAN 30)# ip address 192.168.30.1 255.255.255.0
DeviceD(config-if-VLAN 30)# exit
(3) 配置Device D的下联口为Trunk口,分别配置其许可VLAN范围。
DeviceD(config)# interface range gigabitethernet 0/2-4
DeviceD(config-if-range)# switchport
DeviceD(config-if-range)# switchport mode trunk
DeviceD(config-if-range)# exit
DeviceD(config)# interface gigabitethernet 0/2
DeviceD(config-if-GigabitEthernet 0/2)# switchport trunk native vlan 1
DeviceD(config-if-GigabitEthernet 0/2)# switchport trunk allowed vlan only 10,20
DeviceD(config-if-GigabitEthernet 0/2)# exit
DeviceD(config)# interface gigabitethernet 0/3
DeviceD(config-if-GigabitEthernet 0/3)# switchport trunk native vlan 1
DeviceD(config-if-GigabitEthernet 0/3)# switchport trunk allowed vlan only 10,20,30
DeviceD(config-if-GigabitEthernet 0/3)# exit
DeviceD(config-if)# interface gigabitethernet 0/4
DeviceD(config-if-GigabitEthernet 0/4)# switchport trunk native vlan 1
DeviceD(config-if-GigabitEthernet 0/4)# switchport trunk allowed vlan only 20,30
DeviceD(config-if-GigabitEthernet 0/4)# end
DeviceD# write
(4) 配置接入设备上联口为Trunk口,配置其许可VLAN范围。如下以Device A配置为例,B和C配置类似。
# 配置Device A的上联口为Trunk模式。许可所有VLAN的数据通过。
DeviceA(config)# interface gigabitethernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# switchport
DeviceA(config-if-GigabitEthernet 0/1)# switchport mode trunk
DeviceA(config-if-GigabitEthernet 0/1)# switchport trunk native vlan 1
DeviceA(config-if-GigabitEthernet 0/1)# switchport trunk allowed vlan all
DeviceA(config-if-GigabitEthernet 0/1)# exit
(5) 配置接入设备下联口为Access口,并加入指定VLAN。如下以Device A配置为例,B和C配置类似。
# 配置Device A的下联口为Access模式,分别加入不同的VLAN。
DeviceA(config)# interface range gigabitethernet 0/2-12
DeviceA(config-if-range)# switchport
DeviceA(config-if-range)# switchport mode access
DeviceA(config-if-range)# switchport access vlan 10
DeviceA(config-if-range)# interface range gigabitethernet 0/13-24
DeviceA(config-if-range)# switchport
DeviceA(config-if-range)# switchport mode access
DeviceA(config-if-range)# switchport access vlan 20
DeviceA(config-if-range)# end
DeviceA# write
验证配置结果
(1) 在Device D上,使用show vlan [ id vlan-id ]命令查看VLAN信息,包括VLAN ID、名称、状态和加入接口。
(2) 查看接口配置和状态是否正确。
# 在Device D上,使用show interface switchport命令查看接口的VLAN状态。
# 在Device D上,使用show interface description命令查看接口状态为up。
(3) 在Device D上,使用show ip route命令查看SVI的直连路由是否正确。
# 目的IP匹配192.168.10.0/24的报文,向VLAN 10转发;目的IP匹配192.168.20.0/24的报文,向VLAN 20转发;目的IP匹配192.168.30.0/24的报文,向VLAN 30转发。
# 在Device D上可以Ping通VLAN(例如VLAN 10)的SVI地址。
(4) 以终端Host 2、Host 12和Host 13为例,验证连通性。
# 配置VLAN 10内Host 2的缺省网关为192.168.10.1,接口IP地址为192.168.10.2,掩码255.255.255.0。
# 配置VLAN 10内Host 12的缺省网关为192.168.10.1,接口IP地址为192.168.10.12,掩码255.255.255.0。
# 配置VLAN 20内Host 13的缺省网关为192.168.20.1,接口IP地址为192.168.20.13,掩码255.255.255.0。
# 在终端上使用show ip route命令查看缺省网关。发送端和接收端都需要配置缺省网关,任何一方未配置都无法实现跨网段通信。以Host 2为例,因存在缺省路由S*0.0.0.0/0 [1/0] via 192.168.10.1,当终端需要跨网段通信时,将报文交由网关192.168.10.1转发。
# 在DeviceD上可以Ping通终端(例如Host 2)的IP地址。
# 同VLAN(例如VLAN 10)内的终端能够互相Ping通。
# 不同VLAN内的终端也可以互相Ping通。但若在Device D上删除SVI的IP地址配置,或在终端上删除缺省网关,不同VLAN内的终端则无法Ping通。