【实验名称】VLAN内及VLAN间的通信

 

【实验目的】

1、理解Tag VLAN的原理;

2、解VLAN如何跨交换机实现;

 

【实验原理】

交换机端口的另一种模式是Trunk模式(Tag VLAN模式),当端口设置为该模式时,可以在一条链路上透明传输多个VLAN的流量,可用于实现跨交换机的VLAN间的数据传输。Trunk采用802.1Q标准封装, 802.1Q使用4Bytes的标记定义TAG如下:

0X8100 B

801.P 3bit

CFT 1bit

VID 12bits

默认条件下,Trunk上会转发交换机上存在的所有VLAN的数据。

两个VLAN之间可以通过多端口的路由器实现互连,但是这种多端口路由器互连VLAN因为VLAN数量的动态性,实际应用过程中是很难实施的,因此可以用单端口路由器互连多个VLAN。单端口路由器互连VLAN解决了VLAN数量动态性问题,路由器和交换机间链路带宽瓶颈问题。在交换机上增加一个路由模块,集路由模块和交换功能为一体的设备称为三层交换机。

1)用三层交换机方法 省略了路由器物理设备 节省了成本

2)解决了单臂带来的带宽瓶颈问题

 

【实验内容】

本次实验的拓扑结构如下:

实现所有vlan的互通 多个vlan互相通信_封装

 

项目1:VLAN跨交换机通信

(1)在SwitchA上创建VLAN10,并划分端口。

使用如下命令:

SwitchA # configure terminal
SwitchA(config)# vlan 10
SwitchA(config-vlan)#exit
SwitchA(config)# interface fa 0/5
SwitchA(config-if)# switchport access vlan 10
SwitchA(config-if)# end

实现所有vlan的互通 多个vlan互相通信_IP_02

 

(2)在SwitchA上创建VLAN20并划分端口。

使用如下命令:

SwitchA# configure terminal
SwitchA(config)# vlan 20
SwitchA(config-vlan)#exit
SwitchA(config)# interface fa 0/7
SwitchA(config-if)# switchport access vlan 20
SwitchA(config-if)# end

实现所有vlan的互通 多个vlan互相通信_实现所有vlan的互通_03

 

(3)在SwitchA上,将与SwitchB相连的端口(设为0/8)定义为Tag VLAN模式。

此处注意先封装,再设置trunk

使用如下命令:

SwitchA(config)# interface fa 0/8
SwitchA(config-if)#switchport trunk encapsulation dot1q
SwitchA(config-if)# switchport mode trunk
SwitchA(config-if)#end

实现所有vlan的互通 多个vlan互相通信_封装_04

 

(4)在SwitchB上创建VLAN10,并将0/5端口划分到VLAN10中。

使用如下命令:

SwitchB# configure terminal
SwitchB(config)# vlan 10
SwitchB(config-vlan)#exit
SwitchB(config)# interface fa 0/5
SwitchB(config-if)# switchport access vlan 10
SwitchB(config-if)# end

实现所有vlan的互通 多个vlan互相通信_三层交换机_05

 

(5)在SwitchB上,将与SwitchA相连的端口(设为0/8)定义为Tag VLAN模式。

使用如下命令:

SwitchB(config)# interface fa 0/8
SwitchB(config-if)# switchport mode trunk

实现所有vlan的互通 多个vlan互相通信_网络原理_06

 

(6)验证PC0与PC2能互相通信,但PC1与PC2不在一个VLAN,不能互相通信

使用如下命令:

PC0:C:\>ping 192.168.10.30

实现所有vlan的互通 多个vlan互相通信_网络原理_06

PC1:C:\>ping 192.168.10.30

实现所有vlan的互通 多个vlan互相通信_网络原理_08

可以看出PC0与PC2互通,PC1与PC2不互通。

 

项目2:VLAN间的通信

在基于前一个实验的基础上,我们再进行如下操作以实现VLAN间的通信。

(1)设置三层交换机VLAN间的通信

使用如下命令:

3550 (config)# interface vlan 1
3550 (config-if)#ip address 192.168.1.254 255.255.255.0
3550 (config-if)#no shutdown
3550 (config)# interface vlan 10                   
3550 (config-if)#ip address 192.168.10.254 255.255.255.0
3550 (config-if)#no shutdown
3550  (config)# interface vlan 20                   
3550 (config-if)#ip address 192.168.20.254 255.255.255.0
3550 (config-if)#no shutdown

实现所有vlan的互通 多个vlan互相通信_封装_09

实现所有vlan的互通 多个vlan互相通信_封装_10

 

(2)1908的缺省网关配置为3550VLAN1的SVI地址

使用如下命令:

S1908(config)#ip default-gateway 192.168.1.254

实现所有vlan的互通 多个vlan互相通信_IP_11

(3)将PC0和PC2的默认网关设置为192.168.10.254,将PC1的默认网关设置为192.168.20.254

实现所有vlan的互通 多个vlan互相通信_IP_12

实现所有vlan的互通 多个vlan互相通信_IP_13

实现所有vlan的互通 多个vlan互相通信_IP_14

 

(4)启用三层路由功能

使用如下命令:

SwitchA(config)#ip routing

这一点很重要,否则会导致无法ping通,因为没有启用三层路由功能。

实现所有vlan的互通 多个vlan互相通信_实现所有vlan的互通_15

 

(5)验证PC0与PC2能互相ping通,PC1与PC2也能互相ping通。

PC0:C:\>ping 192.168.10.30

实现所有vlan的互通 多个vlan互相通信_三层交换机_16

PC1:C:\>ping 192.168.10.30

实现所有vlan的互通 多个vlan互相通信_实现所有vlan的互通_17

可以看出互ping成功!

 

附加:VLAN间的通信(使用路由器)

拓扑图:

实现所有vlan的互通 多个vlan互相通信_IP_18

先按图中所示,设置好IP地址和网关。

(1)创建vlan2,并将fa0/2划入vlan2

实现所有vlan的互通 多个vlan互相通信_网络原理_19

 

 

(2)将与路由器相连的端口(设为0/3)定义为Tag VLAN模式。

实现所有vlan的互通 多个vlan互相通信_IP_20

 

(3)设置虚拟子接口IP地址

实现所有vlan的互通 多个vlan互相通信_封装_21

 

(4)激活端口

实现所有vlan的互通 多个vlan互相通信_实现所有vlan的互通_22

 

(5)验证不同vlan间能否通信

实现所有vlan的互通 多个vlan互相通信_封装_23

实现所有vlan的互通 多个vlan互相通信_封装_24

可以看出相互之间可以通信,实验成功。

 

【小结或讨论】

一开始PC机、路由器、交换机之间该怎么连线这个问题我以前并没有特别注意过,在实验后感觉就十分清楚了。这次实验我感觉自己对三层设备的原理和作用有了一个全新而且深刻的了解,线为什么要这样连;为什么需要这个设备;IP地址改如何配置;不同vlan之间的通信方式和基本原理;这些原来理解的不是很清晰的问题在这一次实验课上都得到了解答。感觉收获颇丰。

主要就是有两个小坑,都是发生在使用三层交换机实现不同vlan通信的:一个是设置trunk之前要使用switchport trunk encapsulation dot1q进行封装;另一个是在配置好后要使用ip routing启用三层交换功能,这两处实验指导书上都没有写明。