admin管理员组

文章数量:1534192

2024年3月30日发(作者:)

图文笔记二十]VLAN配置实例详解

这篇文章介绍一下VLAN相关技术,通过几个实例来演示VLAN干线、VLAN的封装和工作方

式、VLAN配置、VLAN间路由等。(本文中的大部分实验均可在”Cisco Packet Tracer 5.3″中

完成)

文章目录

[*1*].VLAN介绍

[*2*].VLAN干线

什么是VLAN干线

干线协议介绍

交换机间VLAN通信过程

DTP协议

[*3*].VLAN配置实例

创建VLAN

把端口加入VLAN

配置主干端口(Trunk)

本地VLAN

语音VLAN

VLAN维护操作

在GNS3上模拟配置VLAN

[*4*].VLAN间路由

基于路由器物理接口的VLAN间路由

基于路由器子接口的VLAN间路由(单臂路由)

交换机上的端口类型

基于三层交换机的VLAN间路由

路由器和三层交换机在实现VLAN间路由上的区别

[*1*].VLAN介绍

VLAN(Virtual Local Area Network,虚拟局域网),通过在支持VLAN的交换机上添加VLAN,

并且动态的调整每个端口所属VLAN(默认端口都属于VLAN1),实现一台物理交换机上可以

有多个LAN,每个LAN称作VLAN,VLAN之间的广播互不可达,VLAN间互不影响。每个VLAN

是一个独立的广播域,如果不同VLAN中的结点想要互相访问,需要通过一台三层或三层以

上设备才能实现(比如路由器、三层交换机、防火墙等)。这样就增加了安全性,可以在三

层设备上配置访问列表来达到流量控制的目的。

[*2*].VLAN干线

* 什么是VLAN干线

干线(Trunk)就是在两台交换机之间可以传输多个VLAN的信息的那条线缆,干线又称主干。

下图是没有使用干线的情况,在SW1和SW2上划分了两个VLAN(VLAN1、VLAN2),PC1和

PC2属于VLAN2,PC3和PC4属于VLAN3,在没有使用主干线路的时候,需要在SW1和SW2

之间使用两条线缆,将一条线缆的两个端口划分到VLAN2,另一条线缆的两个端口划分到

VLAN3,这样PC1和PC2才能正常通信,PC3和PC4也能正常通信。在没有使用间路由的情

况下,VLAN2中的PC1和PC2无法和VLAN3中的PC3和PC4通信。

下图是使用了主干线路的情况,只需要在SW1和SW2之间使用一条线缆,并且设置这条线缆

为主干,这样这条主干线缆就能同时传输多个VLAN的数据了。PC1和PC2能正常通信,PC3

和PC4也能正常通信。在没有使用间路由的情况下,VLAN2中的PC1和PC2无法和VLAN3

中的PC3和PC4通信。

最后需要注意的是,现在只有100Mb/s以上(包括100Mb/s)的线路才支持Trunk。

* 干线协议介绍

对于VLAN交换机来说,干线就是交换机之间的连线,它在两个或两个以上的VLAN之间传

输业务流。每个交换机必须确定它所收到的数据帧属于哪个VLAN。

在传统的交换机中,当一个帧进入交换机时,交换机只检查目的MAC,然后根据自己的MAC

表进行转发或者泛洪。在VLAN中除了需要知道目的MAC做转发决定外,还要考虑帧的源

地址,因为帧的源地址通常会影响它所属VLAN,并可能影响它被转发出去的端口。追踪一

个帧的源地址有两种常用的方式:

帧标记(又称显式标记): 根据数据进入交换机的端口属于哪个VLAN来标记一个帧。

当一个帧进入交换机的时候,根据那个端口所属VLAN,为帧添加一个包含VLAN标

识的域(VLAN着色),这种方式的缺点就是大多数不支持VLAN的设备会将这种更

改后的帧当成无效帧丢弃。但现在这种技术已经形成了一个IEEE802.1Q的标准,这

个标准解决了不同厂商进行帧标记时候的兼容性问题。

帧过滤(又称隐式标记): 这种方法为每个VLAN保持一张MAC地址表,确定目标

后就做出转发决定。这种方式的好处就是不更改原来的帧格式,帧通过不同的网络

设备都不会出现问题。这种方式的缺点就是每个VLAN交换机都要保存一张MAC地

址表,这张表还要包含每个MAC所属VLAN的信息,并且能根据源地址的VLAN以

及MAC进行过滤转发。

现阶段最常使用的干线协议是802.1Q和ISL(在不同厂商设备混用的情况下一定要使用

802.1Q):

1,802.1Q

802.1Q是IEEE提出的一个通用标准,也是现在大部分厂商的默认干线传输协议,通过在原

来的以太网帧头部添加一个4字节的802.1Q头部,然后重新计算FCS(帧效验序列)来实

现,如下图:

本文中的配置均以802.1Q为例。

2,ISL(Interior Switching Link,交换机间链路)

ISL是思科私有的干线传输协议,这里不做过多介绍。

* 交换机间VLAN通信过程

这一部分结合“* 什么是VLAN干线”中的第二张图片,讲解一下802.1Q干线协议的工作

流程:

图中PC1和PC2属于VLAN2,PC3和PC4属于VLAN3,SW1和SW2通过干线相连,干线运

行的是802.1Q协议。

1,假设PC1发送消息给PC2,刚开始PC1不知道PC2的MAC地址,所以它首先发送ARP查

询包,查询PC2的MAC地址,ARP查询包以广播形式发送。

2,交换机SW1收到PC1发送过来的ARP查询广播包,SW1知道数据是从fa0/0接收到的,

fa0/0被划分到VLAN2中,是一个接入端口,SW1知道这是一个来自VLAN2的广播包,SW1

在MAC地址表中加入PC1的MAC和VLAN号以及对应的端口号,非VLAN交换机和VLAN

交换机都会根据数据的源地址进行学习,只不过VLAN交换机除了记录源MAC地址,还需

要记录源MAC所对应的VLAN号。

3,SW1在收到的数据帧中加入VLAN2的标识(VLAN交换机从Access(接入)端口收到数

据时需要插入VLAN标识),接着SW1将这个VLAN2的广播包从除接收端口以外的所有属于

VLAN2的接口以及主干发送出去,在从所有属于VLAN2的接入接口发送出去前需要去掉

VLAN标识(VLAN交换机从Access将数据发出时要去掉VLAN标识,否则其他计算机不能识

别这个加了标识的帧),从主干发送出去的帧不需要去掉VLAN标识(后面介绍到的本地VLAN

除外)。也就是说如果此时SW1上还有一个非主干端口也被分配到VLAN2中,这个广播从

这接入端口送出前要去掉VLAN标识,而从SW1的fa0/2发往SW2的数据帧不需要去掉VLAN

标识(本地VLAN除外)。

4,PC3接收不到PC1发出的ARP广播请求,因为连接PC3的端口被划分到VLAN3中了,不

属于VLAN2,一个VLAN是一个广播域。

5,当SW2从自己的fa0/2接口(主干接口)接收到一个数据帧时,SW2查看数据帧中的

VLAN标识,并在本地MAC地址表中添加了帧中源MAC地址、VLAN号以及对应的端口号

fa0/2。接下来SW2将决定往哪转发这个收到的数据帧,SW2通过查看VLAN标识和目的MAC

地址,知道这是一个VLAN2的广播ARP查询包,SW2将这个包从除接收接口(fa0/2)以外

的所有属于VLAN2的接口以及其他的主干接口(如果有)发送出去,同理,在发出去之前,

如果接口属于接入接口,则去掉VLAN标识,如果是主干端口则保留VLAN标识。

6,PC4是收不到这个广播包的,因为不属于VLAN2,这个时候PC2收到了这个ARP请求包,

发现请求的是自己的MAC地址,PC2封装ARP应答包发给SW2。

7,SW2收到这个应答包,首先学习PC2的MAC地址和VLAN号以及对应端口到自己的MAC

地址表,然后给这个数据帧添加VLAN2标识,之后SW2查询MAC地址表,找到PC1对应

的MAC号、VLAN号和端口号,SW2比较数据帧的源MAC和目的MAC在同一个VLAN2中,

SW2将数据帧从目的MAC对应的fa0/2接口发出(PC1的MAC是第5步中收到SW1发来的

数据帧的时候记录的)。

8,SW1收到这个数据帧,首先也是对源MAC、VLAN号以及对应端口进行学习,然后查看

数据帧中的目的MAC,之前已经保存过PC1的MAC,SW1将目的MAC所在VLAN号和源

MAC所在VLAN号进行对比,发现他们处于同一个VLAN2下,SW2将这个数据帧中的VLAN

标记去除并直接从目的MAC(PC1的MAC)所对应的端口fa0/0发给PC1。

9,PC1成功收到ARP应答包,接下来的通信过程和这个步骤类似。

总结:交换机何时添加802.1Q标签头(VLAN标签)与交换机的接口有关,如果交换机的接

口接的是一台计算机,那么这个端口是接入端口,在数据帧进入时被添加802.1Q标签头,

数据帧从接入端口发出时去掉标签头;如果交换机的接口接的是另外一台交换机,那么这个

接口就属于主干接口(Trunk),数据从这种接口发出一般不会去掉标签头(后面演示的Native

VLAN除外)。

* DTP协议

DTP(Dynamic Trunking Protocol,动态主干协议),是思科私有的协议,其它厂商不支持该协

议,当交换机上某些端口被配置成主干模式时,DTP自动运行,用来协商链路能否成为主干

链路。DTP支持802.1Q和ISL封装的主干链路协商。

下面是思科交换机端口的几种主干模式:

OFF(关闭): 使用”switchport mode access”命令,静态配置交换机端口为接入端口(非

主干端口)。

ON(打开): 使用”switchport mode trunk”命令,静态配置交换机端口为主干端口。

Dynamic auto(动态自动): 使用”switchport mode dynamic auto”命令,静态配置交

换机端口为动态自动模式。

Dynamic desirable(动态期望): 使用”switchport mode dynamic desirable”命令,静

态配置交换机端口为动态期望模式。

Nonegotiate(关闭DTP协议): 使用”switchport nonegotiate”命令,将关闭DTP协

议。

思科交换机的接口可以配置以上五种模式。下表显示了,交换机和交换机之间相连,在什么

情况下能建立起主干链路,什么情况下不能建立起主干线路:

注:Access是链路通过DTP协议协商后成为了非主干链路;Trunking是指链路协商后成为了

主干线路;错误是指有故障的链路,协商失败。

举一个例子: 两台交换机相连,一端使用命令”switchport mode dynamic auto”,另外一端使

用命令”switchport mode trunk”,那么根据这张表,最后的协商结果就是Trunking,也就是成

功协商成主干链路。后面”配置主干端口”会演示到DTP,这个表可以作为参考。

[*3*].VLAN配置实例

这个实例的配置环境是在”Cisco Packet Tracer 5.3″模拟器中进行,实验拓扑如下:

五台计算机,子网24位,IP地址如图所示,其中PC1、PC2连接在SW1上,PC1和交换机

之间还连接了一台IP电话,PC3、PC4连接在SW2上,PC5连接在一台集线器上,SW1和

SW2也连接在这台集线器上,在没有划分VLAN前,整个网络属于同一个广播域,PC1-5互

相能够ping通;现在要将PC1、PC3、PC5划分到VLAN2里面,将PC2、PC4划分到VLAN3

里面,配置主干、本地VLAN、语音VLAN。(注意交换机和集线器之间的连线需要使用交叉

线,其他全部使用直通线)

* 创建VLAN

打开SW1和SW2的CLI界面(点击交换机图标,然后选择CLI,就可以输入命令了),首先创建

VLAN2和VLAN3:

SW1配置:

1 Switch>en

2 Switch#conf t

3 Switch(config)#host SW1

4

SW1(config)#vlan 2 /*创建VLAN2*/

5

SW1(config-vlan)#name vlan2name /*给VLAN2命名*/

6

SW1(config-vlan)#vlan 3 /*创建VLAN3*/

7

SW1(config-vlan)#name vlan3name /*给VLAN3命名*/

8 SW1(config-vlan)#end

9 SW1#

10

11 /*

12

* 查看VLAN信息,可以看到默认情况下所有端口都属于VLAN1,

13

* VLAN1也是交换机上默认存在的VLAN。

14 *

15

* 下面是我们新建的VLAN2和VLAN3。

16 *

17

* VLAN1002-1005也是交换机上默认存在的VLAN,有特殊用途,这里暂且不用理会。

18 */

19 SW1#show vlan

20

21 VLAN Name Status Ports

22 ---- -------------------- ------- -------------------------------

23 1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4

24 Fa0/5, Fa0/6, Fa0/7, Fa0/8

25 Fa0/9, Fa0/10, Fa0/11, Fa0/12

26 Fa0/13, Fa0/14, Fa0/15, Fa0/16

27 Fa0/17, Fa0/18, Fa0/19, Fa0/20

28 Fa0/21, Fa0/22, Fa0/23, Fa0/24

29 Gig1/1, Gig1/2

30 2 vlan2name active

31 3 vlan3name active

32

33

1002

default act/unsup

1003

default act/unsup

fddi-

token-ring-

34 1004 fddinet-default act/unsup

35 1005 trnet-default act/unsup

SW2配置:

1 Switch>en

2 Switch#conf t

3 Switch(config)#host SW2

4 SW2(config)#vlan 2

5 SW2(config-vlan)#name vlan2name

6 SW2(config-vlan)#vlan 3

7 SW2(config-vlan)#name vlan3name

8 SW2(config-vlan)#end

9 SW2#

这样VLAN2和VLAN3就创建好了,继续下一步。

* 把端口加入VLAN

默认情况下所有端口都属于VLAN1,根据拓扑要求,我们需要调整SW1和SW2上的端口,

在SW1上将和PC1相连的端口静态的分配给VLAN2,将于PC2相连的端口静态的分配给

VLAN3,同理SW2上也要做出调整:

SW1配置:

1 SW1#conf t

2

SW1(config)#int fa 0/1 /*进入和PC1相连的端口*/

3

/*交换机默认的端口模式是"Dynamic auto",由于这个端口连接的是终端设备,所以要配置

成接入接口*/

4 SW1(config-if)#switchport mode access

5

SW1(config-if)#switchport access vlan 2 /*将这个接口划分到VLAN2*/

6

SW1(config-if)#int fa 0/2 /*进入和PC2相连的端口*/

7

SW1(config-if)#swi mod acc /*同上,这是简写形式*/

8 SW1(config-if)#swi acc vlan 3

9 SW1(config-if)#end

10 SW1#

11

12

/*查看VLAN分配情况,可以看到Fa0/1和Fa0/2被分配到了对应的VLAN下*/

13 SW1#show vlan brief

14

15 VLAN Name Status Ports

16 ---- -------------------- ------- -------------------------------

17 1 default active Fa0/3, Fa0/4, Fa0/5, Fa0/6

18 Fa0/7, Fa0/8, Fa0/9, Fa0/10

19 Fa0/11, Fa0/12, Fa0/13, Fa0/14

20 Fa0/15, Fa0/16, Fa0/17, Fa0/18

21 Fa0/19, Fa0/20, Fa0/21, Fa0/22

22 Fa0/23, Fa0/24, Gig1/1, Gig1/2

23 2 vlan2name active Fa0/1

24 3 vlan3name active Fa0/2

25 1002 fddi-default active

26

27

1003

default active

1004

default active

token-ring-

fddinet-

28 1005 trnet-default active

29 SW1#

SW2配置:

1 SW2#conf t

2 SW2(config)#int fa 0/1

3 SW2(config-if)#swi mod acc

4 SW2(config-if)#swi acc vlan 2

5 SW2(config-if)#int fa 0/2

6 SW2(config-if)#swi mod acc

7 SW2(config-if)#swi acc vlan 3

8 SW2(config-if)#end

9 SW2#

端口分配完毕后,在PC1上Ping拓扑中任意一台其他的PC,都Ping不通;PC1 ping不通PC2

是因为他们不在一个VLAN中,ping不通其他几台是因为SW1的fa0/24端口默认属于VLAN1,

并且是一个接入端口,该端口只转发VLAN1的数据包,而PC1在VLAN2中,所以ping不通。

继续下一步,配置主干。

* 配置主干端口(TRUNK)

在SW1和SW2上配置fa0/24为主干端口:

SW1配置:

1 SW1#conf t

2 SW1(config)#int fa 0/24

3

4 /*

5

* 配置主干模式,这种模式就是前面DTP协议协商图中的"ON and Nonegotiate",

6

* 交换机两端都配置成这种模式,协商的结果就是Trunking,即主干。

7 */

8 SW1(config-if)#switchport mode trunk

9 SW1(config-if)#switchport nonegotiate

10

11

/*配置主干允许传输的VLAN,用?查看一下可以执行的操作。*/

12 SW1(config-if)#switchport trunk allowed vlan ?

13 WORD VLAN IDs of the allowed VLANs when this port is in trunking mode

14 add add VLANs to the current list

15 all all VLANs

16 except all VLANs except the following

17 none no VLANs

18 remove remove VLANs from the current list

19

20 /*

21

* 本例设置成允许所有VLAN的传输。

22

* 如果只允许VLAN1、3、1002-1005,可以像下面这样写,

23 * switchport trunk allowed vlan 1,3,1002-1005

24

* 如果想追加新的VLAN2被允许可以这样写:

25 * switchport trunk allowed vlan add 2

26 */

27 SW1(config-if)#switchport trunk allowed vlan all

28 SW1(config-if)#end

29 SW1#

SW2配置:

1 SW2(config)#int fa 0/24

2

3

/*SW2的fa0/24也配置成"ON and Nonegotiate"模式*/

4 SW2(config-if)#swi mod trunk

5 SW2(config-if)#swi nonegotiate

6

7 SW2(config-if)#swi trunk allowed vlan all

8 SW2(config-if)#end

9 SW2#

配置完成后在SW1上查看主干链路状态:

1 SW1#show interfaces fa 0/24 switchport

2 Name: Fa0/24

3 Switchport: Enabled

4

Administrative Mode: trunk /*配置的端口模式是主干*/

5

Operational Mode: trunk /*链路的状态是主干*/

6

Administrative Trunking Encapsulation: dot1q /*主干默认封装协议dot1q(802.1Q)*/

7

Operational Trunking Encapsulation: dot1q /*有效的封装协议也是dot1q*/

8

Negotiation of Trunking: Off /*DTP协议关闭*/

9

Access Mode VLAN: 1 (default) /*端口默认VLAN是VLAN1*/

10

Trunking Native Mode VLAN: 1 (default) /*该主干端口的本地VLAN是VLAN1*/

11

Voice VLAN: none /*没有配置语言VLAN*/

12

/*以下输出省略*/

13 SW1#

查看SW1工作在主干模式的端口:

1 SW1#show interfaces trunk

2

/*端口 模式 封装协议 状态 本地VLAN号*/

3 Port Mode Encapsulation Status Native vlan

4 Fa0/24 on 802.1q trunking 1

5

/*主干上允许传输的VLAN号*/

6 Port Vlans allowed on trunk

7 Fa0/24 1-1005

8

9 Port Vlans allowed and active in management domain

10 Fa0/24 1,2,3

11

12 Port Vlans in spanning tree forwarding state and not pruned

13 Fa0/24 1,2,3

14 SW1#

在这一步,大家可以使用DTP协议部分介绍的命令,将交换机两端的模式替换成协商表里

面的其他模式,来测试DTP协议。

现在,再次测试Ping,PC1和PC3可以互相Ping通,PC2和PC4可以互相Ping通,但是PC1

和PC3确Ping不通PC5,根据拓扑图,PC5也必须在VLAN2中,可以和PC1和PC3通信,

是什么原因造成这一情况的呢?继续往下看。

PS:”Cisco Packet Tracer 5.3″不支持更改主干端口封装协议的命令,在真实交换机中可以通

过下面的命令来更改主干端口的封装协议:

1

/*进入主干接口进行更改*/

2 Switch(config-if)#switchport trunk encapsulation ?

3 dot1q ....../*802.1Q*/

4

isl ....../*思科私有的ISL*/

5

6

/*将主干端口的封装协议改成802.1Q*/

7 Switch(config-if)#switchport trunk encapsulation dot1q

* 本地VLAN

本地Vlan(Native Vlan)是主干端口的特征,使用802.1Q协议封装的主干端口,将数据帧从

主干发出时,如果数据帧中的VLAN标识与主干端口的本地VLAN号一致,那么交换机清除

数据帧中的VLAN标识,再从主干端口发出;使用802.1Q封装的主干端口,从主干端口接

收到数据帧时,如果数据帧中没有VLAN标识,交换机将给这个数据帧添加接收这个帧的主

干端口的本地VLAN号。

理解了上面主干端口本地VLAN的工作方式后,就可以解释上面的问题了,PC1属于VLAN2,

PC1 ping PC5的时候,首先要获取PC5的MAC地址,ARP请求包被以广播的形式发送出去,

交换机SW1在广播帧上添加VLAN2标识,然后从fa0/24发出,fa0/24是主干端口默认情况

下该主干端口的默认本地VLAN号是1,和要发出去的数据帧中的VLAN号不一样,所以SW1

不做任何修改,直接将这个数据帧从主干端口发出,由于PC5连接在集线器上,集线器收到

这个数据帧后简单的放大信号,然后从除接收端口以外的所有端口发出,PC5收到这个数据

帧,由于数据帧是添加了VLAN2标识的,PC5直接判断这是一个错误的帧,最后丢弃。

在这种情况下,如果想让PC1和PC3能够ping通PC5,其实可以将SW1和SW2的fa0/24这

个主干端口的本地VLAN号改成VLAN2,这样根据上面所说的本地VLAN的工作原理,当SW1

将VLAN2的数据帧从这个主干发出时,将去掉帧中的VLAN标记,那么PC5收到的就是一个

正常的帧了。

SW1设置:

1

SW2(config)#int fa 0/24 /*将主干端口的本地VLAN改成VLAN2*/

2 SW2(config-if)#switchport trunk native vlan 2

3 SW2(config-if)#end

4 SW2#

SW2设置:

1 SW1(config)#int fa 0/24

2 SW1(config-if)#switchport trunk native vlan 2

3 SW1(config-if)#end

4 SW1#

现在再次测试PC1以及PC3 ping PC5,都能够成功Ping通。根据本地VLAN的工作原理,PC5

去ping PC2和PC4是ping不通的,因为当SW1或SW2从自己的主干接收到一个没有打标

记的VLAN帧后,它会给这个帧打上这个接收端口的本地VLAN标记,即VLAN2的标记,而

PC2和PC4属于VLAN3,这个数据帧不会送给任何被划分到VLAN3的端口。

大家可能注意到拓扑图中SW1和PC1之间连接了一台IP电话,下面继续配置语音VLAN。

* 语音VLAN

IP语音电话需要带宽保证、优先传输、拥塞避免并且要求穿过整个网络的延时小于150毫

秒,思科IP电话机一般有两个接口,一个接口可以接交换机,一个接口可以接PC,IP电话

可以单独连接在交换机上,有时为了节约端口,可以连接IP电话后再连接计算机,本例就

使用了这种方式。

下面简单的介绍一下VoIP的配置,在SW1上执行下面的命令:

1 /*

2

* 在没有配置语音VLAN前,IP电话和PC1处于同一个VLAN2中,

3

* Cisco交换机支持一种独特的功能,

4

* 可以通过下面这条命令将IP电话和PC工作站划分到不同的VLAN中。

5 */

6 SW1(config)#int fa 0/1

7 SW1(config-if)#switchport voice vlan 50

8 SW1(config-if)#end

9 SW1#

10

11

/*查看交换接口参数,可以看到Vioce VLAN变成了50*/

12 SW1#show int fa 0/1 switchport

13 Voice VLAN: 50

* VLAN维护操作

可以在SW1上查看全局配置信息:

1

SW1#show

config

running-

2

3 !

4 interface FastEthernet0/1

5 switchport access vlan 2

6 switchport mode access

7 switchport voice vlan 50

8 !

9 interface FastEthernet0/2

10 switchport access vlan 3

11 switchport mode access

12 !

13 ....

14 !

15 interface FastEthernet0/24

16 switchport trunk native vlan 2

17 switchport mode trunk

18 switchport nonegotiate

19 !

20 ....

从上面的输出中我们发现,找不到VLAN的创建信息,这是因为VLAN的创建信息是被单独

保存在文件中,可以使用下面的命令查看:

1 /*

2

* dir命令可以查看此交换机的Flash空间中的文件,

3

* 从命令的输出可以看到Flash空间中除了保存IOS外还保存了文件。

4 */

5 SW1#dir

6 Directory of flash:/

7

8 1 -rw- 4414921

9 2 -rw- 676

10

11 64016384 bytes total (59600787 bytes free)

12 SW1#

使用”show vlan brief”可以查看交换机上VLAN配置信息;

1 /*

2

* 从配置信息可以看到,SW1上新建立了两个VLAN(vlan2和vlan3),

3

* 每个VLAN中还包含了一个端口,Fa0/24是主干端口,不属于任何VLAN。

4 */

5 SW1#show vlan brief

6

7 VLAN Name Status Ports

8 ---- --------------------- --------- -------------------------------

9 1 default active Fa0/3, Fa0/4, Fa0/5, Fa0/6

10 Fa0/7, Fa0/8, Fa0/9, Fa0/10

11 Fa0/11, Fa0/12, Fa0/13, Fa0/14

12 Fa0/15, Fa0/16, Fa0/17, Fa0/18

13 Fa0/19, Fa0/20, Fa0/21, Fa0/22

14 Fa0/23, Gig1/1, Gig1/2

15 2 vlan2name active Fa0/1

16 3 vlan3name active Fa0/2

17 1002 fddi-default active

18

1003

default active

token-ring-

19

1004

default active

fddinet-

20 1005 trnet-default active

21 SW1#

使用”reload”命令重启SW1:

1 SW1#reload

2 Proceed with reload? [confirm]

3

4

/*在真实交换机上还会出现下面的提示信息,输入no,不保存配置*/

5 System configuration has been modified. Save?[yes/no]:no

重启完成后再次查看VLAN配置:

1 /*

2

* 从下面的输出可以看到,虽然没有保存配置文件,但是创建的VLAN还在,

3

* 这是因为创建的VLAN信息是默认保存在Flash的里面的,

4

* 但是端口的分配信息是保存在配置文件中的,所以端口分配信息丢失了。

5 */

6 Switch#show vlan brief

7

8 VLAN Name Status Ports

9 ---- --------------------- --------- -------------------------------

10 1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4

11 Fa0/5, Fa0/6, Fa0/7, Fa0/8

12 Fa0/9, Fa0/10, Fa0/11, Fa0/12

13 Fa0/13, Fa0/14, Fa0/15, Fa0/16

14 Fa0/17, Fa0/18, Fa0/19, Fa0/20

15 Fa0/21, Fa0/22, Fa0/23, Fa0/24

16 Gig1/1, Gig1/2

17 2 vlan2name active

18 3 vlan3name active

19 1002 fddi-default active

20

21

1003

default active

1004

default active

token-ring-

fddinet-

22 1005 trnet-default active

23 Switch#

其实文件中不仅仅包含了VLAN信息,还包含了VTP信息(下一篇文章中将会讲

到),可以通过下面这条命令删除文件:

1 Switch#delete

2

Delete filename []? /*回车确定*/

3 Delete flash:/? [confirm]

再次查看”show vlan brief”就看不到我们创建的VLAN信息了。

* 在GNS3上模拟配置VLAN

这一部分使用GNS3模拟器来完成跨交换机的VLAN配置实验,实验中用到的命令和”Cisco

Packet Tracer 5.3″中稍有不同,实验拓扑如下:

图中4台计算机分别用VPCS来模拟,两台交换机实际上是3640路由器上面增加了一个16

口的快速以太网交换模块”NM-16ESW”,实验要求VPC1和VPC3划分到VLAN2中,VPC2和

VPC4划分到VLAN3中,两台交换机SW1和SW2之间相连的线路设置成主干线路,实现VPC1

可以和VPC3通信,VPC2可以和VPC4通信。

VPCS配置:

1

/*配置每台VPC的IP地址和子网掩码*/

2 VPCS[1]> ip 192.168.1.1 24

3 PC1 : 192.168.1.1 255.255.255.0

4 VPCS[1]> 2

5 VPCS[2]> ip 192.168.1.2 24

6 PC2 : 192.168.1.2 255.255.255.0

7 VPCS[2]> 3

8 VPCS[3]> ip 192.168.1.3 24

9 PC3 : 192.168.1.3 255.255.255.0

10 VPCS[3]> 4

11 VPCS[4]> ip 192.168.1.4 24

12 PC4 : 192.168.1.4 255.255.255.0

13

14

/*查看配置是否生效*/

15 VPCS[4]> show

16

17 NAME IP/CIDR GATEWAY MAC LPORT RPORT

18

VPCS1

0.0.0.0 00:50:79:66:68:00 20000 30000

192.168.1.1/24

19 fe80::250:79ff:fe66:6800/64

20 VPCS2 192.168.1.2/24 0.0.0.0 00:50:79:66:68:01 20001 30001

21 fe80::250:79ff:fe66:6801/64

22 VPCS3 192.168.1.3/24 0.0.0.0 00:50:79:66:68:02 20002 30002

23 fe80::250:79ff:fe66:6802/64

24 VPCS4 192.168.1.4/24 0.0.0.0 00:50:79:66:68:03 20003 30003

25 fe80::250:79ff:fe66:6803/64

26 VPCS[4]>

SW1配置:

1 Router>en

2 Router#conf t

3

Router(config)#host SW1 /*改个名字看起来像一点*/

4 SW1(config)#end

5

6

/*GNS3中只支持数据库配置模式配置VLAN*/

7 SW1#vlan database

8

SW1(vlan)#vlan 2 name vlan2 /*创建VLAN2并且起名为vlan2*/

9 VLAN 2 added:

10 Name: vlan2

11

SW1(vlan)#vlan 3 name vlan3 /*创建VLAN3并且起名为vlan3*/

12 VLAN 3 added:

13 Name: vlan3

14

SW1(vlan)#exit /*退出vlan数据库配置模式*/

15 APPLY completed.

17 SW1#conf t

18 SW1(config)#int fa 0/0

19

SW1(config-if)#swi acc vlan 2 /*将fa0/0接入vlan2*/

20 SW1(config-if)#int fa 0/1

21 SW1(config-if)#swi mod acc

22

SW1(config-if)#swi acc vlan 3 /*将fa0/1接入vlan3*/

23 SW1(config-if)#int fa 0/15

24

SW1(config-if)#swi mod trunk /*将fa0/15配置成主干模式*/

25

SW1(config-if)#switchport trunk allowed vlan all /*允许所有VLAN*/

26

27

/*GNS3模拟器上支持这条命令,更改主干线路封装协议为802.1Q(默认也是这个)*/

28 SW1(config-if)#switchport trunk encapsulation dot1q

29 SW1(config-if)#end

30 SW1#

SW2配置:

1 Router>

2 Router>en

3 Router#conf t

4 Router(config)#host SW2

5 SW2(config)#end

6 SW2#vlan database

7 SW2(vlan)#vlan 2 name vlan2

8 VLAN 2 added:

9 Name: vlan2

10 SW2(vlan)#vlan 3 name vlan3

11 VLAN 3 added:

12 Name: vlan3

13 SW2(vlan)#exit

14 APPLY completed.

16

SW2#conf

t

17 SW2(config)#int fa 0/0

18 SW2(config-if)#swi acc vlan 2

19 SW2(config-if)#int fa 0/1

20 SW2(config-if)#swi acc vlan 3

21 SW2(config-if)#int fa 0/15

22 SW2(config-if)#swi mod trunk

23 SW2(config-if)#swi trunk allowed vlan all

24 SW2(config-if)#swi trunk encapsulation dot1q

25 SW2(config-if)#end

26 SW2#

配置完成后,在VPCS上测试PING:

1

/*VPC4可以和VPC2通信*/

2 VPCS[4]> ping 192.168.1.2

3 192.168.1.2 icmp_seq=1 ttl=64 time=32.000 ms

4

5

/*VPC4不能和VLAN2中的任何计算机通信*/

6 VPCS[4]> ping 192.168.1.1

7 host (192.168.1.1) not reachable

8 VPCS[4]> ping 192.168.1.3

9 host (192.168.1.3) not reachable

10

11

/*切换到VPC3进行测试*/

12 VPCS[4]> 3

13 VPCS[3]> ping 192.168.1.1

14 192.168.1.1 icmp_seq=1 ttl=64 time=31.000 ms

15

16 VPCS[3]> ping 192.168.1.2

17 host (192.168.1.2) not reachable

18 VPCS[3]> ping 192.168.1.4

19 host (192.168.1.4) not reachable

在添加了交换模块的路由器上显示VLAN信息和在交换机上显示的命令有略微差异:

1

/*使用下面的命令来查看VLAN信息*/

2 SW1#show vlan-switch brief

3

4 VLAN Name Status Ports

5 ---- -------------------- --------- -------------------------------

6 1 default active Fa0/2, Fa0/3, Fa0/4, Fa0/5

7 Fa0/6, Fa0/7, Fa0/8, Fa0/9

8 Fa0/10, Fa0/11, Fa0/12, Fa0/13

9 Fa0/14

10

2 vlan2 active Fa0/

0

11 3 vlan3 active Fa0/1

12 1002 fddi-default active

13

1003

default active

token-ring-

14 1004 fddinet-default active

15 1005 trnet-default active

16 SW1#

除此命令外,其他命令都相同。

[*4*].VLAN间路由

在上面的试验中VLAN之间是不能互访的,VLAN间的互访需要借助路由器或三层交换机来

实现。

* 基于路由器物理接口的VLAN间路由

如下图所示,PC1和PC2连接在SW1上,PC的IP和网关配置如图所示,PC1属于VLAN2,PC2

属于VLAN3,为了实现VLAN2能够和VLAN3通信,需要将SW1的Fa0/23划分到VLAN2中,

将Fa0/24划分到VLAN3中,并且在R1上配置对应的网关IP地址。

SW1配置:

1

SW1(config)#vlan 2 /*创建VLAN*/

2 SW1(config-vlan)#name vlan2

3 SW1(config-vlan)#vlan 3

4 SW1(config-vlan)#name vlan3

5

SW1(config-vlan)#int fa 0/1 /*将端口划分到VLAN*/

6 SW1(config-if)#swi mod acc

7 SW1(config-if)#swi acc vlan 2

8 SW1(config-if)#int fa 0/2

9 SW1(config-if)#swi mod acc

10 SW1(config-if)#swi acc vlan 3

11 SW1(config-if)#int fa 0/23

12 SW1(config-if)#swi mod acc

13 SW1(config-if)#swi acc vlan 2

14 SW1(config-if)#int fa 0/24

15 SW1(config-if)#swi mod acc

16 SW1(config-if)#swi acc vlan 3

17 SW1(config-if)#end

18 SW1#

R1配置:

1 R1(config)#int fa 0/0

2 R1(config-if)#ip add 192.168.1.254 255.255.255.0

3 R1(config-if)#no shut

4 R1(config-if)#int fa 0/1

5 R1(config-if)#ip add 192.168.2.254 255.255.255.0

6 R1(config-if)#no shut

7 R1(config-if)#end

8 R1#

配置完成后在PC1上可以Ping通PC2,VLAN2和VLAN3通信成功。

* 基于路由器子接口的VLAN间路由(单臂路由)

在上面的实例中,如果使用路由的物理接口来配置,那么交换机上有多少个VLAN就需要在

路由器上配置多少个物理接口来实现VLAN间的互访,这样成本很高。现实中一般使用”单

臂路由”的形式,也就是使用路由器接口的子接口来实现VLAN间的互访。如下图所示:

PC1和PC2的IP地址和网关如图所示,路由器R1的Fa0/0接口上配置两个子接口分别作为

VLAN2和VLAN3的网关,SW1的fa0/24接口需要配置成主干。

SW1配置:

1 SW1(config)#vlan 2

2

SW1(config-vlan)#name vlan2 /*创建VLAN*/

3 SW1(config-vlan)#vlan 3

4 SW1(config-vlan)#name vlan3

5

SW1(config-vlan)#int fa 0/1 /*分配端口到VLAN*/

6 SW1(config-if)#swi mod acc

7 SW1(config-if)#swi acc vlan 2

8 SW1(config-if)#int fa 0/2

9 SW1(config-if)#swi mod acc

10 SW1(config-if)#swi acc vlan 3

11

SW1(config-if)#int fa 0/24 /*配置和R1相连的接口为主干模式*/

12 SW1(config-if)#swi mod trunk

13 SW1(config-if)#end

14 SW1#

R1配置:

1 R1(config)#int fa0/0

2

R1(config-if)#no shut /*主接口只需要打开即可*/

3

R1(config-if)#int fa 0/0.1 /*创建子接口*/

4

5 /*

6

* 子接口封装模式要和SW1的主干封装模式一致,

7

* 因为思科交换机主干默认的封装模式是802.1Q(dot1Q),所以这里也要是这个。

8

* 在dot1Q后面的数字2要和VLAN号对应,这个子接口是针对VLAN2的,所以这里是

2。

9 */

10 R1(config-subif)#encapsulation dot1Q 2

11 R1(config-subif)#ip add 192.168.1.254 255.255.255.0

12

R1(config-subif)#no shut /*其实子接口默认是打开的,这条命令可以省去*/

13 R1(config-subif)#int fa 0/0.2

14 R1(config-subif)#encapsulation dot1Q 3

15 R1(config-subif)#ip add 192.168.2.254 255.255.255.0

16 R1(config-subif)#no shut

17 R1(config-subif)#end

18 R1#

配置完成后PC1和PC2能正常通信。

* 交换机上的端口类型

思科交换机有三种类型的端口: 交换端口(Switchport)、路由端口(No Switchport)和SVI端

口(Switch Virtual Interface,交换虚拟端口)。

1,二层交换机的端口类型

交换端口: 二层交换机上的物理接口就是一个二层的交换端口。

SVI端口: 二层交换机也可以被配置一个IP地址,来实现对交换机的远程管理。

在上面的单臂路由实例中,可以给SW1配置一个SVI端口用于远程管理:

1

/*可以通过下面的命令给SW1配置一个用来网管的IP地址*/

2 SW1(config)#int vlan 2

3 SW1(config-if)#ip add 192.168.1.200 255.255.255.0

4

SW1(config-if)#no shut /*打开此SVI接口*/

5 SW1(config-if)#exit

6

/*配置网关指向R1的子接口*/

7 SW1(config)#ip default-gateway 192.168.1.254

8 SW1(config)#end

9 SW1#

这样PC1和PC2均可以使用这个IP地址(192.168.1.200)对SW1进行远程管理。交换机的网

关地址可以配置在任何一个VLAN的SVI上,但是这个VLAN必须在间路由上有子接口(或

物理接口)作为网关,并且只有最小的SVI端口是有效的。比如在本例中,可以将SVI配置

在VLAN3上,但是必须关闭刚才配置的VLAN2的SVI:

1

/*删除之前配置的默认网关*/

2 SW1(config)#no ip default-gateway 192.168.1.254

3

SW1(config)#int vlan 2 /*关闭刚才配置的较小的SVI*/

4 SW1(config-if)#shut

5

SW1(config-if)#int vlan 3 /*将网管IP配置在VLAN3上*/

6 SW1(config-if)#ip add 192.168.2.200 255.255.255.0

7 SW1(config-if)#no shut

8 SW1(config-if)#exit

9

10

/*配置在哪个VLAN上默认网关就要指向那个VLAN的网关*/

11 SW1(config)#ip default-gateway 192.168.2.254

12 SW1(config)#end

13 SW1#

2,三层交换机的端口类型

三层交换机除了支持二层交换机的”交换端口”、”SVI端口”之外,还支持”路由端口”,可

以使用下面的命令将一台三层交换机的某个端口转变成”路由端口”:

1 SW1(config)#int fa 0/1

2

/*在没有被配置成路由接口以前,配置IP会出现下面的错误提示*/

3 SW1(config-if)#ip add 192.168.1.1 255.255.255.0

4

5 % IP addresses may not be configured on L2 links.

6

7

/*用下面的命令将接口变成路由接口*/

8 SW1(config-if)#no switchport

9 SW1(config-if)#ip add 192.168.1.1 255.255.255.0

10 SW1(config-if)#no shut

11 SW1(config-if)#end

12 SW1#

13

14

/*可以使用下面的命令将3层接口再转换成2层接口*/

15 SW1(config)#int fa 0/1

16 SW1(config-if)#switchport

路由端口虽然可以配置IP地址,具有三层接口的特性,但同时也失去了二层接口的特性,

比如端口安全等。

* 基于三层交换机的VLAN间路由

基于三层交换机的VLAN间路由实际上就是利用三层交换机的SVI作为每个VLAN的网关。

如下图所示,SW1是一台三层交换机,在它上面启用了对应每个VLAN号的SVI接口:

SW1配置:

1

SW1(config)#vlan 2 /*创建VLAN*/

2 SW1(config-vlan)#name vlan2

3 SW1(config-vlan)#vlan 3

4 SW1(config-vlan)#name vlan3

5

SW1(config-vlan)#int fa 0/1 /*将端口划分到VLAN*/

6 SW1(config-if)#swi mod acc

7 SW1(config-if)#swi acc vlan 2

8 SW1(config-if)#int fa 0/2

9 SW1(config-if)#swi mod acc

10 SW1(config-if)#swi acc vlan 3

11

SW1(config-if)#int vlan 2 /*配置对应VLAN号的SVI端口*/

12 SW1(config-if)#ip add 192.168.1.254 255.255.255.0

13 SW1(config-if)#no shut

14 SW1(config-if)#int vlan 3

15 SW1(config-if)#ip add 192.168.2.254 255.255.255.0

16 SW1(config-if)#no shut

17 SW1(config-if)#end

18 SW1#

三层交换机的VLAN间路由配置是最简单的,注意SVI端口号和VLAN号对应就可以了,配

置完成后PC1能Ping通PC2。到此VLAN间路由配置的三种方法介绍完毕。

* 路由器和三层交换机在实现VLAN间路由上的区别

在前面两个基于路由器的VLAN间路由上,不同VLAN间的通信都要经过路由器,而经过路

由器的延时比流经交换机的延时大,因为路由器比交换机处理过程复杂(对每个数据帧都得

解封装-查询路由表-再封装);其次就是路由和交换机之间的线路会成为瓶颈。

在后面的基于三层交换机的VLAN间路由上,首先不存在线路瓶颈,因为在交换机内部,交

换机的背板带宽可以上几十GB;其次假设VLAN2中的PC1要和VLAN3中的PC2进行通信,

PC1将数据包发给三层交换机上的SVI端口,三层交换机知道这是一个VLAN间的通信,三

层交换机将数据包通过背板电路发给路由模块,路由模块解封装查询路由表,然后再次封装

发给交换模块,交换模块查询MAC表最后封装成帧,从对应接口发出去。后面相同目的地

的数据包直接查询缓存进行转发,而不发往路由模块(一次路由,多次交换),这就大大提

高了转发速度。

[**] 注:如文中未特别声明转载请注明出自:

此条目由 晴刃 发表在 CCNA、Cisco技术 分类目录,并贴了 网络技术 标签。将固定链接加入

收藏夹。

标题分类

随便看看

如何使用GDB调试C语言程序

[ubuntu server]-7-LAMP之Apache安全浅析

[图文]利用Ubuntu启动光盘(U盘)破解Windows开机密码

Hostease主机从注册到开通空间全过程[图文]

[Linux实用命令十一]磁盘配额实例详解

[ubuntu server]-3-LAMP之Apache虚拟主机参数详解

[Linux实用命令九]磁盘阵列实例详解

[ubuntu server]-2-LAMP之Apache模块与虚拟主机配置

[CCNA图文笔记二十六]访问控制列表(ACL)实例详解

[Linux实用命令十六]如何使用ACL

最新分享

[index]全站资源索引

[SQL图文笔记六]利用约束确保数据有效性

[SQL图文笔记五]Select高级操作

[SQL图文笔记四]使用select提取信息

[SQL图文笔记三]数据的输入更新与删除

[SQL图文笔记二]使用SQL创建更改与删除表

分类浏览

CCNA (35)

Cisco技术 (36)

C语言 (1)

HTML (2)

Linux应用 (61)

SQL (6)

Web技术 (11)

Windows应用 (24)

应用技巧 (86)

数据库技术 (1)

编程语言 (2)

友情链接

EHS人

冰血封情的断弦寒香阁

叶夕青兮

晴刃

飞飞博客

Proudly powered by Qing Sword .

本文标签: 端口交换机主干配置接口