虚拟局域网VLAN

简介:随着网络的规模不断扩大,接入的主机和设备也是越来越多,网络中的广播流量也随之加大,这样就会加重交换机的负担,甚至导致交换机死机,我们今天就通过VLAN (Virtual Local Area Network,虚拟局域网)技术,可以从逻辑上将一个大的广播域划分成若干个小的虚拟局域网。VLAN技术不仅能够控制广播 ,还可以增强网络的安全性。

一、VLAN概述

1、VLAN的概念及优势

在传统的交换网络中,所有的用户都处在同一广播域内,当网络规模较大时,广播包的数量也会随之增加,当广播包数量占到30%时,网络传输 效率明显下降。特别是网络设备出现故障时,则不停的向网络中发送大量的广播包,从而导致网络风暴,使网络处于通信瘫痪状态,那么如何解决这个问题呢?

我们可以使用分割广播域的方法解决出现的问题,分割广播域有两种方式。

物理分割:将物理上或分为若干个小网络,然后使用能够隔离广播的网络设备将不同的网络连接起来 实现通信。

逻辑分割:将整个网络从逻辑上划分为若干个小的虚拟网络,即VLAN(Virtual Local Area Network,虚拟局域网)VLAN工作在OSI七层模型的数据链路层,一个VLAN即是一个交换网络,其中所有的用户都处在同一广播域中。各VLAN通过路由设备实现通信。

VLAN的产生给局域网的设计增加了灵活性,使管理员在划分工作组时不再受物理位置的影响。VLAN可以再一台交换机上实现,也可以跨交换机实现。可以根据部门、用户、位置、作用等划分。

VLAN具有灵活性和可扩展性等特点,使用VLAN技术有以下好处

1)、控制广播

每个VLAN都是一个独立的广播域,从而大大的减少了广播对网络的带宽的占用。并且一个VLAN出现了广播风暴不会影响到了其他VLAN的正常通信。

2)、增强网络安全

由于只能在同一VLAN内的端口之间传输数据,不同VLAN的端口不能直接访问,如果需要通信则需要路由设备的支持 ,因此VLAN可以限制个别主机访问服务器资源等。所以通过划分VLAN可以提高网络的安全性。

2、VLAN的种类

根据VLAN的使用和管理的不同,VLAN分为两种:静态VLAN和动态VLAN

1)静态VLAN

静态VLAN也称为基于端口的VLAN,是目前最长使用的VLAN实现的方式。

惊天VLAN就是明确指定交换机的那个端口属于那些VLAN。需要管理员手工配置。当用户主机连接到交换机时,就会分配到对应的VLAN中。如图1所示

clip_image002

图1 基于端口的VLAN使用

这种端口和VLAN的映射只是在本地有效,交换机之间不能共享这一信息。

2)动态VLAN

动态VLAN的实现方法有很多,目前最普遍的实现方式是基于MAC地址的动态VLAN。动态VLAN根据主机的MAC地址自动将其指派到合适的VLAN中。这种VLAN划分的方法的最大优点就是,当用户物理位置移动时,即从一个交换机换到另外一个交换机时VLAN不需要重新配置。这种VLAN的唯一缺点就是:当点过多的时候操作将非常繁琐。这种VLAN的划分不是和大型的局域网。

3、静态VLAN的配置
1)VLAN的范围

Cisco Gatalyst交换机最多支持4096个VLAN如图2所示列出了Gatalyst交换机中VLAN的分配情况。

clip_image004

图2 Gatalyst交换机所支持的VLAN数量

其中VLAN1是交换机默认存在的VLAN,所有端口默认都属于VLAN1。

所有的Gatalyst交换机都支持VLAN,不同型号的交换机支持的VLAN数目不同,根据型号。

2)VLAN的基本配置

在Cisco2960交换机上配置基于端口的VLAN步骤如下

(1)创建VLAN
(2)将交换机的端口加入对应的VLAN中
(3)验证VLAN的配置
①创建VLAN

在Cisco IOS中创建VLAN有两种方法。

VLAN数据库配置模式。此模式只支持VLAN的正常范围(1~1005)创建VLAN数据库模式的配置命令如下

步骤

命令

目的

第一步

Vlan database

进入VLAN配置模式

第二步

Vlan vlan-id [name vlan-name]

创建VLAN及VLAN名

第三步

Exit

退出VLAN配置模式

例如创建ID 为VLAN10、VLAN20这两个VLAN

Switch>en

Switch#vlan database

Switch(vlan)#vlan 10 name test10

VLAN 10 added:

Name: test10

Switch(vlan)#vlan 20 name test20

VLAN 20 added:

Name: test20

Switch(vlan)#exit

Switch>

全局配置模式。此模式不仅支持VLAN的正常范围,而且还可以配置VLAN数据库模式不能配置的扩展VLAN范围

在全局模式下创建VLAN 的步骤如下表所示

步骤

命令

目的

第一步

Confiture teminal

进入全局配置

第二步

Vlan vlan-id

输入一个VLAN号,进入VLAN配置模式

第三步

Name vlan-name

输入一个VLAN名

第四步

Exit或and

退出配置模式

例如:创建ID为 vlan30和vlan40

Switch#configure terminal

Switch(config)#vlan 30

Switch(config-vlan)#name test30

Switch(config-vlan)#exit

Switch(config)#vlan 40

Switch(config-vlan)#name test40

Switch(config-vlan)#exit

ps:Cisco推荐使用全局模式来配置VLAN。因为VLAN数据库配置模式已经被认为是一种过时的方法,未来的IOS版本将不再支持他。

要删除ID为20的vlan,需要使用no vlan vlan-id命令。其过程如下

Switch(config)#no vlan 20

也可以在数据库模式下删除

Switch(vlan)#no vlan 20

将交换机的端口加入到相应的VLAN中

步骤

命令

作用

第一步

Configure terminal

进入全局配置模式

第二步

Interface interface-id

进入要分配的端口

第三步

Switchport mode access

定义二层端口的模式

第四步

Switchport access vlan vlan-id

把端口分配给某个VLAN

第五步

Exit或end

退出配置模式

例如将端口F0/1分配给vlan10,操作如下

Switch#conf terminal

Switch(config)#int f0/1

Switch(config-if)#switchport mode access //将接口模式设置为接入模式(默认就是接入模式)

Switch(config-if)#switchport access vlan 10

可以使用命令switch(config)# default interface interface-id 还原到接口默认配置状态

查看vlan分派的状态

Switch#show vlan brief

查看某个VLAN的详细状态

Switch#show vlan id 10 //10为VLAN ID

3)VLAN配置实例

在一台Gatalyst交换机上创建vlan10、vlan20和vlan30给vlan30命名为caiwu并将将交换机端口5-10加入到vlan10中,将交换机端口11-15加入到vlan20,交换机端口vlan16-20加入到vlan30中,其命令如下。

拓扑图

clip_image006

图3

Switch>en

Switch#configure terminal

Switch(config)#vlan 10

Switch(config-vlan)#exit

Switch(config)#vlan 20

Switch(config-vlan)#exit

Switch(config)#vlan 30

Switch(config-vlan)#name caiwu

Switch(config-vlan)#exit

Switch(config)#int range f0/5-10

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/11-15

Switch(config-if-range)#switchport mode access

Switch(config-if-range)#switchport access vlan 20

Switch(config-vlan)#exit

Switch(config-if-range)#exit

Switch(config)#int range f0/16-20

Switch(config-if-range)#switchport mode access

Switch(config-if-range)#switchport access vlan 30

Switch(config-vlan)#end

c查看VLAN信息,结果如下

Switch#show vlan brief

VLAN Name Status Ports

---- -------------------------------- --------- -------------------------------

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

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

Gig1/1, Gig1/2

10 VLAN0010 active Fa0/5, Fa0/6, Fa0/7, Fa0/8

Fa0/9, Fa0/10

20 VLAN0020 active Fa0/11, Fa0/12, Fa0/13, Fa0/14 Fa0/15

30 caiwu active Fa0/16, Fa0/17, Fa0/18, Fa0/19 Fa0/20

1002 fddi-default active

1003 token-ring-default active

1004 fddinet-default active

1005 trnet-default active

二、VLAN Trunk

通过前面呢的介绍以及实例的配置,我们已经学会了如何在交换机上创建VLAN,但是当网络中有多台交换机时,位于不同交换机上的相同vlan的主机是否可以通信呢?这也是我们今天需要解决的问题。即跨交换机的VLAN通信。

1、Trunk概述
1)Trunk的作用

如图4所示

在两台交换机sw1和sw2上分别创建了VLAN10、VLAN20和VLAN30,那么,如何才能让连接在不同交换机上的相同VLAN的主机如何通信呢?

clip_image008

图4

如果为每个VLAN都连接一条物理链路,如图5所示,那么两台交换机之间有几个VLAN通信就需要部署几条物理线路,如果有100个VLAN呢?

clip_image010

图5

这种连接的方式的扩展性有很大的问题,随着VLAN数量的增加,就需要在两台交换机之间增加多条物理线路,从而占有很多交换机端口,这显然是不可取的。

类似现实生活中运货的例子:为了使货物在到达目的后能够正确地分开来,通常的做法呢就是在货物上贴上不同的标签。那么在VLAN中,由于不同的VLAN号不同,实际上只需要使用一条中继链路,将属于不同VLAN的数据帧打上不同的标示就可以了如图6所示

clip_image012

图6

在交换网络中,链路有两种类型:接入链路和中继链路

接入链路:通常属于一个VLAN。如图6中的主机与交换机之间的链路成为接入链路

中继链路:可以承载多个VLAN。如图6中的SW1与SW2之间的链路就是中继链路。中继链路常用来将一台交换机链接到另外一台交换机。或者将交换机链接到路由器上。

Trunk(干道、中继)的作用就是使同一个VLAN能够跨交换机通信。在VLAN跨家还击通信的过程中,数据帧有何变化呢?如图7所示

clip_image014

图7 数据帧通过中继链路时的标记过程

(1)当VLAN30中的主机A发送数据帧给主机B时,主机A发送的就是普通的数据帧。
(2)交换机sw1收到数据帧后,知道这个数据帧来自VLAN30且要转发给VLANsw2于是就会在数据帧中打上VLAN30的标示,然后发送给主机B(省略广播的过程)
(3)sw2收到带有VLAN30标示的数据帧后,根据目标MAC地址,得知数据帧发送给主机B的,就删除VLAN标识还原为普通的数据帧,然后发送给主机B
2)VLAN标识

VLAN标识可以采用几种方法进行。每一种标识方法都使用一种不同的帧标识机制。在以太网上实现中继,可用如下两种封装类型。

(1)ISL(Inter-Switch Link 交换机间链路)

ISL是cisco私有的标记方法。ISL帧封装如图8所示

clip_image016

图8

ISL包头封装是26字节,CRC(Cyclic Redundancy Check,循环冗余校验)尾部是4个字节,共30个字节。

ISL只是对帧进行封装并没有对帧的内容做任何修改。

2)802.1q

802.1q是共有的标记方法,其他厂商的产品也支持这种标记方法。在Cisco和其他厂商设备混合部署的时候,我们可以采用这种标记方法。

802.1q使用了一种内部标记机制,中继设备将四个字节的标记插入到数据帧内并重新计算FCS如图9所示

clip_image018

clip_image020

图9

这四个字节的标记头包含以下内容

2字节标记协议标识符(TPID)包含了一个0x8100的固定值,这个特定的TPID值指明了该帧带有802.1q的标记信息。

2字节标记控制信息(TCL包含了以下元素)

3位的用户优先级(priority):802.1q不使用该字段

1位的规范格式标识符(CFI):CFI常用于以太网和令牌环网。在以太网中CFI的值通常为0

12位VLAN标识符(VLAN ID):该字段唯一标示了帧所属的VLAN。VLAN ID可以唯一地标识4096个VLAN,但0和4095是被保留的。

3)Native VLAN

不支持VLAN的交换机混合部署

允许交换机从Trunk端口上转发未被标记的帧

Cisco Catalyst交换机默认Native VLANVLAN 1

Trunk端口互联Native VLAN必须相同

clip_image022

图10

注意:Native VLAN 802.1q中的概念,ISL中并没有Native VLAN,也就是说ISL对所有Trunk链路上的所有数据帧都进行VLAN标记。4)Thunk的模式协商

通过前面的介绍我们可以知道,Trunk是两台Cisco Catalyst交换机端口之间或者交换机路由器之间的一条点对点链路。Trunk可以传输多个VLAN的数据流,并且允许用户将VLAN从一台交换机扩展到多个交换机。

对ISL和IEEE802.1q的配置要视Cisco交换机的IOS而定,可以指定Trunk链路使用ISL还是使用802.1q封装或者是自动协商。

自动协商是由DTP(Dynamic Trunking Protocol,动态中继协议)管理端。DTP是cisco私有的,他同时支持ISL和802.1q两种中继自动协商,但只能由于交换机之间的中继链路,不能用于交换机和路由器之间的中继链路。Cisco Catalyst交换机端口默认为开启DTP协商。

基于IOS的Catalyst交换机支持的Trunk模式如下所示:

接入(Access):将接口设置为永久非中继模式,并协商将链路转换为非中继链路。即使邻接端口不同意这种转变,此接口也会成为非中继接口。

干道(Trunk):将接口设置为永久中继模式,并协商链路转换为中继链路。即使邻接接口不同意这种转变,此接口也会成为中继接口。

动态企望(Dynamic desirable):使得接口主动尝试将链路转换为中继链路。如果邻接接口被设为trunk、desirable或者是auto模式,此接口就会成为中继接口。此模式是采用Cisco IOS软件的所有以太网接口的默认模式

动态自动(Dynamic auto):允许接口将链路转换为中继链路。如果邻接接口被设为trunk或者desirable模式,此接口会成为中继接口

非协商(Nonegotiate):禁止接口产生DTP帧(首先需要先将接口设置为trunk模式)要建立中继链路需要将邻接接口也设置为中继接口,如果邻接接口是desirable或者auto模式,则该接口最终会成为access接口。如果所连接的设备不支持DTP帧(如非Cisco设备),就适合这种模式。

Catalyst 3650 交换机支持ISL和802.1q,Gatalyst只支持802.1q封装不支持ISL封装。

SW1端口模式

SW2端口模式

SW1结果

SW2结果

Trunk

Dynamic auto

Trunk

Trunk

Trunk

Dunamic desirable

Trunk

Trunk

Dynamic auto

Dynamic auto

Access

Access

Dynamic desirable

Dynamic desirable

Trunk

Trunk

Dynamic auto

Dynamic desirable

Trunk

Trunk

trunk、ninegotiate

Trunk

Trunk

Trunk

trunkninegotiate

Dynamic auto

Trunk

Access

trunkninegotiate

Dynamic desirable

Trunk

Access

三、Trunk的配置

1、配置步骤与命令
(1)进入接口配置模式命令如下.
Switch(config-if)#interface {FasterEthernet | GigabitEthernet} slot/port
(2)选择封装类型,命令如下
Switch(config-if)#switchport trunk encapsulation { isl | dot1q | negotiate }
如果选择negotiate,就是指明端口与邻接端口进行协商,根据邻接端口的配置,本地端口可以协商成为ISL或802.1q干道。
(3)将接口配置为Trunk,命令如下
Switch(config-if)#switchport mode {dynamic {desirable | auto} | trunk | access}
(4) (可选)指定Native VLAN命令如下

Switch(config-if)#switchport trunk native vlan vlan-id

另外,如果不需要Trunk传送某个VLAN 的数据,可以从Trunk删除这个VLAN,命令如下

Switch(config-if)#switchport trunk allowed vlan remove vlan-id

同样也可以在Trunk上添加某个VLAN,命令如下

Switch(config-if)#switchport trunk allowed vlan add vlan-id

使用show命令验证接口模式,命令如下

Switch#show interface interface-id switchport

2、配置实例

如图11所示,两台交换机SW1和SW2各划分了三个VLAN,端口分配如下。

VLAN10:F0/1-F0/3; VLAN20:F0/4-F0/10; VLAN30:F0/11-F0/14

clip_image024

图11

本次案例在GNS上进行模拟。客户端使用VPCS模拟

(1)在sw1上进行配置,添加个VLAN,命令如下

sw1#vlan database

sw1(vlan)#vlan 10

sw1(vlan)#vlan 20

sw1(vlan)#vlan 30

(2)将接口添加到相应的VLAN中,命令如下

sw1#conf terminal

sw1(config)#interface range f0/1 -3

sw1(config-if-range)#switchport mode access

sw1(config-if-range)#switchport access vlan 10

sw1(config-if-range)#exit

sw1(config)#interface range f0/4 -10

sw1(config-if-range)#switchport mode access

sw1(config-if-range)#switchport access vlan 20

sw1(config)#interface range f0/11 -14

sw1(config-if-range)#switchport mode access

sw1(config-if-range)#switchport access vlan 30

sw1(config-if-range)#exit

(3)配置交换机之间互联的端口为trunk模式,命令如下

sw1#conf terminal

sw1(config-if)#switchport mode trunk

(4)在sw2上进行配置,添加个VLAN,命令如下

sw1#vlan database

sw2(vlan)#vlan 10

sw2(vlan)#vlan 20

sw2(vlan)#vlan 30

(5)将接口添加到相应的VLAN中,命令如下

sw2#conf terminal

sw2(config)#interface range f0/1 -3

sw2(config-if-range)#switchport mode access

sw2(config-if-range)#switchport access vlan 10

sw2(config-if-range)#exit

sw2(config)#interface range f0/4 -10

sw2(config-if-range)#switchport mode access

sw2(config-if-range)#switchport access vlan 20

sw2(config)#interface range f0/11 -14

sw2(config-if-range)#switchport mode access

sw2(config-if-range)#switchport access vlan 30

sw2(config-if-range)#exit

(6)配置交换机之间互联的端口为trunk模式,命令如下

sw2#conf terminal

sw2(config-if)#switchport mode trunk

最后将两台交换机的所有端口全部打开

sw2(config)#int range f0/1 -15

sw2(config-if-range)#no sh

(7)配置个PC

打开vpcs

clip_image026

图12

通过show命令查看是否配置正确

接下来我们测试一下通信

注意:不同VLAN 之间不能直接通过中继设备直接通信,需要借助路由设备进行转换(单臂路由或者是三层交换)

192.168.1.1——————192.168.1.6

192.168.1.2——————192.168.1.5

192.168.1.3——————192.168.1.4

clip_image028

图13

我们通过查看交换机的f0/15接口进行验证是否为trunk接口

sw2#show interface f0/15 switchport

Name: Fa0/15

Switchport: Enabled

Administrative Mode: trunk //管理模式为Trunk

Operational Mode: trunk //工作模式为Trunk

Administrative Trunking Encapsulation: dot1q //管理协议

Operational Trunking Encapsulation: dot1q //工作协议

Negotiation of Trunking: Disabled

Access Mode VLAN: 0 ((Inactive))

Trunking Native Mode VLAN: 1 (default)

Trunking VLANs Enabled: ALL //承载所有VLAN

Trunking VLANs Active: 1,10,20,30

Priority for untagged frames: 0

Override vlan tag priority: FALSE

Voice VLAN: none

Appliance trust: none

如果不需要在trunk上传输VLAN20的数据,可以在trunk上移除VLAN2,命令如下

sw2(config)#int f0/15

sw2(config-if)#switchport trunk allowed vlan remove 20

sw2#show interfaces f0/15 switchport

Name: Fa0/15

Switchport: Enabled

Administrative Mode: trunk

Operational Mode: trunk

Administrative Trunking Encapsulation: dot1q

Operational Trunking Encapsulation: dot1q

Negotiation of Trunking: Disabled

Access Mode VLAN: 0 ((Inactive))

Trunking Native Mode VLAN: 1 (default)

Trunking VLANs Enabled: 1-19,21-1005 //已经将VLAN20移除

Trunking VLANs Active: 1,10,30

Priority for untagged frames: 0

Override vlan tag priority: FALSE

Voice VLAN: none

Appliance trust: none

也可以使用命令将VLAN20添加到trunk上,命令如下

sw2(config)#interface f0/15

sw2(config-if)#switchport trunk allowed vlan add 20

四、EnternetChannel

1、什么是EthernetChannel

EthernetChannel通过捆绑多条物理线路来提高链路带宽,并运行一种机制,将多个以太网端口捆绑称一条逻辑链路,以太网通道最多可以捆绑8条物理链路,其中物理链路可以是双绞线也可以是光纤。如图14所示

clip_image030

图14

但是,以太网通道必须遵守以下一些规则

参与捆绑的端口必须属于同一VLAN。如果在中继模式下,要求所有参与捆绑的端口都是在中继下。并且所有端口上配置相同的VLAN范围。

如果端口的配置是中继模式,那么,应该在链路连段将通道中的所有端口配置成相同的中继模式。

所有参与捆绑的端口的物理参数设置必须相同,应该有同样的速度和全/半双工模式设置。

2、以太网通道的配置

clip_image032

图15

我们根据这个拓扑图来进行配置以太网通道,注意看一下我三台交换机的端口号,是有规律的连接的,这样我们在配置的时候非常的好配置。

(1)我们先配置sw1并且解释命令的含义。

sw1#conf terminal

sw1(config)#interface range f0/0 -1 //将f0/0 -1 进入到f0/0和0/1

sw1(config-if-range)#channel-group 1 mode on

将f0/0 f0/1组合成了一组逻辑链路其中 1为组号 mode 模式为 on 开启状态

如果需要取消组合只需将on 改为 off即可

如果接口没有顺序的连接也可以这样组合

sw1(config)#interface f0/0

sw1(config-if-range)#channel-group 1 mode on

sw1(config)#interface f0/1

sw1(config-if-range)#channel-group 1 mode on

(2)配置SW2

sw2#conf terminal

sw2(config)#interface range f0/0 -1

sw2(config-if-range)#channel-group 1 mode on

sw2#conf terminal

sw2(config)#interface range f0/2 -3

sw2(config-if-range)#channel-group 2 mode on

(3)配置sw3

sw3#conf terminal

sw3(config)#interface range f0/2-3

sw3(config-if-range)#channel-group 2 mode on

PS:相邻的两个交换机应为1各组,组号可以随意取,但是不能相同。

我们可以通过命令查看以太网通道配置,显示如下内容则表示配置正确,命令如下

sw1#show etherchannel 1 summary //1为组号

Flags: D - down P - in port-channel

I - stand-alone s - suspended

R - Layer3 S - Layer2

U - in use

Group Port-channel Ports

-----+------------+-----------------------------------------------------------

1 Po1(SD) Fa0/0(D) Fa0/1(D)

实验环境

随着BENET上海分公司的发展,其员工已达到100多人

公司网络现状无法满足公司要求

现有网中广播很多导致网速慢

各部门间可以互访,存在一定安全问题

需求描述

使用VLAN技术从逻辑将整个网络进行划分

限制广播报文,增强公司内部一定安全性

实现思路

在交换机上划分VLAN,将端口添加到相应VLAN

配置交换机IP地址

验证访问是否正常

clip_image034