Chinaunix首页 | 论坛 | 博客
  • 博客访问: 603695
  • 博文数量: 110
  • 博客积分: 8016
  • 博客等级: 中将
  • 技术积分: 1217
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-28 10:14
文章分类

全部博文(110)

文章存档

2008年(1)

2007年(13)

2006年(96)

我的朋友

分类: 系统运维

2006-06-28 15:19:38

VLAN Basics

如何在1个交换性的网络里,分割广播域呢?答案是创建VLAN.VLAN是连接到定义好了的switch的端口的网络用户和资源的逻辑分组.给不同的子网分配不同的端口,就可以创建更小的广播域.默认情况下,在某个VLAN中的主机是不可以与其他VLAN通信的,除非你使用router来创建VLAN间的通信

VLAN的一些特点:

1.网络的增加,移动和改变,只需要在适当的VLAN中配置合适的端口

2.安全,因为不同VLAN的用户不能互相通信,除非依靠router来做VLAN间的通信

3.因为VLAN可以被认为是按功能划分的逻辑分组,所以VLAN和物理位置,地理位置无关

4.VLAN增加安全性

5.VLAN增加广播域的数量,而减小广播域的大小

Broadcast Control

每种协议都会有广播的现象发生,至于发生不频率,次数,一般由以下几点决定:

1.协议类型

2.在网络上运行的应用程序

3.这些服务如何的被使用

Security

安全性是VLAN1大特点,不同VLAN的用户不能互相通信,除非依靠router来做VLAN间的通信

Flexibility and Scalability

VLAN的灵活性和可扩展性:

1.可以不管物理位置如何,把适当的端口分配到适当的 VLAN中就可以了.可以把VLAN理解成下面的样子,如图:


 

2.VLAN增加的太大以后,你可以划分更多的VLAN,来减少广播消耗掉更多带宽的影响,VLAN中的用户越少,被广播影响的就越少

来比较下下面2个图,明显可以发现,2,VLAN的具有更高的灵活性和可扩展性,如下:


 

VLAN Memberships

手动由管理员分配端口划分的VLAN叫静态VLAN(static VLAN);使用智能管理软件,动态划分VLAN的叫动态VLAN(dynamic VLAN)

Static VLANs

静态VLAN:静态VLAN安全性较高,手动划分端口给VLAN,和设备的物理位置没什么关系.而且,每个VLAN中的主机必须拥有正确的IP地址信息,VLAN2配置为172.16.20.0/24

Dynamic VLANs

动态VLAN:使用智能管理软件,可以基于MAC地址,协议,甚至应用程序来动态创建VLAN.Cisco设备管理员可以使用VLAN管理策略服务器(VLAN Management Policy Server,VMPS)的服务来建立个MAC地址数据库,来根据这个动态创建VLAN,VMPS数据库把MAC地址映射VLAN

Identifying VLANs

当帧在网络中被交换,switches根据类型对其跟踪,加上根据硬件地址来判断如何对它们进行操作.1点要记住的是:在不同类型的连接中,帧被处理的方式也不一样

交换环境中的2种连接类型:

1.access links:指的是只属于一个VLAN,且仅向该VLAN转发数据帧的端口,也叫做native VLAN.switches把帧发送到access-link设备之前,移去任何的VLAN信息.而且access-link设备不能与VLAN外通信,除非数据包被路由

2.trunk links:指的是能够转发多个不同VLAN的通信的端口.trunk link必须使用100Mbps


 

上的端口来进行点对点连接,1次最多可以携带1005VLAN信息.trunk link使你的单独的1个端口同时成为数个VLAN的端口,这样可以不需要层3设备.当你在switches之间使用了trunk link,多个VLAN的信息将从这个连接上通过;如果在你switches之间没有使用trunk link而使用一般的连接,那么只有VLAN1的信息通过这个连接被互相传递.VLAN1默认作为管理VLAN

Frame Tagging

frame tagging:帧的鉴别方法.当帧到达每个switch,首先先检查VLAN ID,然后决定如何对帧进行处理.当帧到达和VLAN ID所匹配的access link的时候,switch移去VLAN标识符

VLAN Identification Method

VLAN标识符:在交换机的trunk link,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN.附加VLAN信息的方法,最具有代表性的有:

1.Inter-Switch Link(ISL):属于Cisco私有,只能在快速和千兆以太网连接中使用,ISL路由可以使用在switch的断端口,router的接口和服务器接口卡等

2.IEEE 802.1Q:俗称dot 1 Q.IEEE创建,所以在Cisco和非Cisco设备之间,就不能使用ISL必须使用802.1Q.802.1Q所附加的VLAN识别信息,位于数据帧中的源MAC地址与类型字段之间.基于IEEE802.1Q附加的VLAN信息,就像在传递物品时附加的标签

当然ISL802.1Q的主要目的是提供VLAN间通信

Inter-Switch Link(ISL) Protocol

ISL:ISL运作在层2,ISL1种外部标签处理过程,所以原始的数据帧不被改变,ISL在数据帧头部加上26字节长的ISL头部信息,在数据帧尾部加上4字节的FCS字段进行CRC运算,所以只有支持ISL的设备才能对它进行读取,最大程度1522字节.当帧被传送到access link,ISL封装信息将被移去

使用trunk link在多个VLAN中行走,比使用router连接的好处是:减少延时间

VLAN Trunking Protocol(VTP)

VTP也是Cisco创建的,但是现在已经不为Cisco所私有.VTP的主要目的是在1个交换性的环境中管理所有配置好的VLAN使所有的VLAN保持一致性VTP允许增加,删除和重命名VLAN,然后这些修改后的信息传播到整个VTP域里的所有switches

VTP的一些优点:

1.保持VLAN信息的连续性

2.精确跟踪和监视VLAN

3.动态报告增加了的VLAN信息给VTP域中所有switch

4.可以使用即插即用(plug-and-play)的方法增加VLAN

5.可以在混合型网络中进行trunk link,比如以太网到ATM LANE,FDDI

在你使用VTP管理VLAN之前,必须先创建个VTP服务器(VTP server),所有要共享VLAN信息的服务器必须使用相同的域名.而且,假如你把某个switch和其他的switch配置在1VTP域里,这个switch就只能和这个VTP域里的switch共享VLAN信息.其实,如果你只有1VLAN,就不需要使用VTP.VTP信息通过trunk端口进行发送和接收.可以给VTP配置密码,但是要记住的是,所有的switch必须配置相同的密码


 

switch通告VTP管理域信息,加上版本号和已知VLAN配置参数信息.还有种叫做透明VTP模式(transparent VTP mode),在这种模式里,你可以给switch配置成通过trunk端口转发VTP信息,但是不接受VTP更新信息来更新它自己的VTP数据库

switch通过VTP通告检测到增加的VLAN,然后把新增加的VLAN和已有的联结在一起共享信息.新的更新信息在之前的版本号上加1

VTP Modes of Operation

VTP域里操作的3种模式:

1.服务器模式(server mode):所有Catalyst switches的默认设置,1VTP域里必须至少要有1个服务器用来传播VLAN信息,VTP信息的改变必须在服务器模式下操作.配置保存在NVRAM

2.客户机模式(client mode):在这种模式下,switchesVTP服务器接受信息,而且它们也发送和接收更新,但是它们不能做任何改变.VTP服务器通知客户switches说增加了新的VLAN之前,你不能在客户switch的端口上增加新的VLAN.配置不保存在NVRAM

3.透明模式(transparent mode):该模式下的switch不能增加和删除VLAN,因为它们保持的有自己的数据库,不和其他的共享.配置保存在NVRAM

VTP Pruning

VTP pruning:减少广播,组播,单播,保留带宽.VTP pruning只在trunk link上发送广播.默认情况,VTP pruning在所有的switches上是没有启用的.当你在VTP服务器上启用了VTP pruning,整个VTP域就启用了VTP pruning,默认只能在VLAN2VLAN1005,VLAN1是管理VLAN

Routing between VLANs

可以使用支持ISL路由的router来连接VLAN,支持ISL路由的最低型号是2600系列,1600,17002500系列都不支持.如下图,就是router和每个VLAN之间的关联,每个router的接口都插入1access link,这个同时也说明了router的每个接口的IP地址都是每个VLAN的默认网关:

假如你有太多的VLAN,数量超过了router接口数量,明显上面的方法就不适用了.你可以使用Cisco3switch Cisco3550,或者使用router的快速以太网接口来做ISL或者802.1Q trunk link,这样的方法叫做单臂路由(router on a stick).如下图:


 

Configuring VLANs

创建VLAN:

1900,使用vlan [vlan#] name [name] [vlan#]命令, 如下:

>en

#config t

(config)#hostname 1900

1900(config)#vlan 2 name sales

1900(config)#vlan 3 name marketing

1900(config)#vlan 4 name mis

1900(config)#exit

验证,使用show vlan命令,记住在你没给VLAN分配端口之前,之前做的VLAN是不会起作用的.而且所有的端口默认是处在VLAN1,VLAN1是管理VLAN.如下:

1900#sh vlan

VLAN Name Status Ports

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

1 default Enable 1-12, AUI, A, B

2 sales Enable

3 marketing Enable

()

2950下创建VLAN,在特权模式下使用vlan database命令,创建命令和1900下的类似,注意结尾使用apply命令.如下:

2950#vlan database

2950(vlan)#vlan 2 name Marketing

VLAN 2 modified:

Name: Marketing

2950(vlan)#vlan 3 name Accounting

VLAN 3 added:

Name: Accounting

2950(vlan)#apply

APPLY complete

2950(vlan)#^C

2950#

使用show vlan或者show vlan brief命令验证下:

2950#sh vlan brief

VLAN Name Status Ports

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

1 default active Fa0/1...Fa0/12


 

2 Marketing active

3 Accounting active

()

Assigning Switch Ports to VLANs

创建了VLAN,接下来要做的就是给VLAN分配端口.1900,使用vlan-membership命令1次只能分配1,可以staticdynamic作为参数,如下:

1900(config)#int e0/2

1900(config-if)#vlan-membership static 2

1900(config)#int e0/4

1900(config-if)#vlan-membership static 3

1900(config)#int e0/5

1900(config-if)#vlan-membership static 4

1900(config-if)#exit

1900(config)#exit

1900#

验证,如下:

1900#sh vlan

VLAN Name Status Ports

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

1 default Enable 1-12, AUI, A, B

2 sales Enable 2

3 marketing Enable 4

()

2950下的配置,使用switchport access vlan [vlan#]命令,如下:

2950(config-if)#int f0/2

2950(config-if)#switchport access vlan 2

2950(config-if)#int f0/3

2950(config-if)#switchport access vlan 3

2950(config-if)#int f0/4

2950(config-if)#switchport access vlan 4

2950(config-if)#exit

2950(config)#exit

2950#

验证配置信息,如下:

2950#sh vlan brief

VLAN Name Status Ports

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

1 default active Fa0/1 Fa0/5...Fa0/12

2 Marketing active Fa0/2

3 Accounting active Fa0/3

()

Configuring Trunk Ports

1900只使用动态ISL(DISL)封装方式,在快速以太网配置trunk,在接口配置模式下使用trunk [参数]的命令,如下,26接口设置为trunk端口:

1900(config)#int f0/26

1900(config-if)#trunk ?

auto Set DISL state to AUTO

desirable Set DISL state to DESIRABLE

nonegotiate Set DISL state to NONEGOTIATE

off Set DISL state to OFF

on Set DISL state to ON

1900(config-if)#trunk on


 

设置参数为on即接口将作为永久ISLtrunk端口,可以和和相连的设备协商,并且把连接转换成trunk link

2950下在接口配置模式,使用switchport命令,如下:

2950(config)#int f0/12

2950(config-if)#switchport mode trunk

2950(config-if)#^Z

2950#

验证配置信息:

2950#sh run

()

!

interface FastEthernet0/12

switchport mode trunk

no ip address

!

()

Configuring Inter-VLAN Routing

使VLAN间互相通信,就必须使用router或者3switch来连接.要在router的快速以太网接口支持ISL802.1Q,要把接口划分成许多逻辑接口(非物理),1个接口对应1VLAN.这些接口就叫子接口(subinterfaces).还有要必须知道的是,默认你不可能在19002950之间做trunk连接,因为1900只支持ISL路由而2950只支持802.1Q路由,2种相互不兼容

给连接1900trunk端口配置,使用encapsulation isl [vlan#]命令,如下:

2600Router(config)#int f0/0.1

2600Router(config-subif)#encapsulation isl [vlan#]

给连接2950的这样配置,如下:

2600Router(config)#int f0/0.1

2600Router(config-subif)#encapsulation dot1q [vlan#]

Configuring VTP

默认下,19002950都被配置成VTP服务器模式,配置VTP,先配置VTP域名,还有密码,是否pruning.

1900,在全局配置模式下使用vtp命令,如下:

1900(config)#vtp ?

client VTP client

domain Set VTP domain name

password Set VTP password

pruning VTP pruning

server VTP server

transparent VTP transparent

trap VTP trap

1900(config)#vtp server

1900(config)#vtp domain noco

1900(config)#vtp password noko

在特权模式下使用show vtp命令验证,如下:

1900#sh vtp

VTP version: 1

Configuration revision: 0

Maximum VLANs supported locally: 1005

Number of existing VLANs: 5

VTP domain name: noco

VTP password: noko


 

VTP operating mode: Server

()

2950如下:

2950(config)#vtp mode server

2950(config)#vtp domain noco

验证信息,如下:

2950#sh vtp ?

counters VTP statistics

status VTP domain status

2950#sh vtp status

()

Configuring Switching in Our Sample Internetwork

配置实例:

先配置2950C,如下

2950C(config)#enable secret noko

2950C(config)#line con 0

2950C(config-line)#login

2950C(config-line)#password noco

2950C(config-line)#line vty 0 15

2950C(config-line)#login

2950C(config-line)#password noco

2950C(config-line)#banner motd #

2950C

#

2950C(config-line)#exit

2950C(config)#int vlan1

2950C(config-if)#ip address 172.16.10.2 255.255.255.0

2950C(config-if)#no shut

2950C(config-if)#exit

2950C(config)#up default-gateway 172.16.10.1

2950C(config)#^Z

2950C#copy run start

配置2950B,如下:

2950B(config)#enable secret noko

2950B(config)#line con 0


 

2950B(config-line)#login

2950B(config-line)#password noco

2950B(config-line)#line vty 0 15

2950B(config-line)#login

2950B(config-line)#password noco

2950B(config-line)#banner motd #

2950B

#

2950B(config-line)#exit

2950B(config)#int vlan1

2950B(config-if)#ip address 172.16.10.3 255.255.255.0

2950B(config-if)#no shut

2950B(config-if)#exit

2950B(config)#up default-gateway 172.16.10.1

2950B(config)#^Z

2950B#copy run start

配置trunk,2950B如下:

2950B(config)#int f0/1

2950B(config-if)#switchport mode trunk

2950B(config-if)#int f0/4

2950B(config-if)#switchport mode trunk

2950B(config-if)#int f0/5

2950B(confgi-if)#switchport mode trunk

配置trunk,2950C如下:

2950C(config)#int f0/4

2950C(confgi-if)#switchport mode trunk

2950C(config-if)#int f0/5

2950C(config-if)#switchport mode trunk

验证trunk信息,使用show interface trunk命令.如下:

2950B#sh int trunk

Port Mode Encapsulation Status Native vlan

Fa0/1 on 802.1q trunking 1

Fa0/4 on 802.1q trunking 1

Fa0/5 on 802.1q trunking 1

()

之前我们已经对2950B2950C做了基本配置和trunk端口的配置,接下来应该设置VTP和创建VLAN,并且进行验证.2950C如下:

2950C(config)#vtp mode server

2950C(config)#vtp domain Cisco

2950C(config)#^Z

2950C#vlan database

2950C(vlan)#vlan 2 name sales

2950C(vlan)#vlan 3 name marketing

2950C(vlan)#apply

2950C(vlan)#^C

2950C#sh vlan brief

()

接下来分配端口,Fa0/2分配给VLAN2,Fa0/3分配给VLAN3,默认所有的端口都处在VLAN1,配置如下:

2950C(config)#int fa0/2

2950C(config-if)#switchport access vlan2

2950C(config)#int fa0/3

2950C(config-if)#switchport access vlan3

验证信息,注意VLAN1里的Ports,如下:

2950C#sh vlan brief

VLAN Name Status Ports


 

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

1 default active Fa0/1 Fa0/5...Fa0/10

2 sales active Fa0/2

3 marketing active Fa0/3

配置2950B,把它设置成客户模式,2950B2950C接收VLAN信息,如下:

2950B(config)#vtp mode client

2950B(config)#vtp domain Cisco

2950B(config)#^Z

验证,注意2950B已经从2950C知道了VLAN的信息,如下:

2950B#sh vlan brief

VLAN Name Status Ports

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

1 default active Fa0/1...Fa0/12

2 sales active

3 marketing active

但是仍然要给2950B分配端口,如下:

2950B(config)#int fa0/2

2950B(config-if)#switchport access vlan2

2950B(config)#int fa0/3

2950B(config-if)#switchport access vlan3

验证信息,如下:

VLAN Name Status Ports

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

1 default active Fa0/1 Fa0/5...Fa0/12

2 sales active Fa0/2

3 marketing active Fa0/3

到现在,2950C2950B的配置就算是完成了,经过验证,我们也没发现什么问题,接下来该配置什么呢?当然是配置VLAN间的通信,根据上面的拓扑图,可以知道需要在RouterB上进行配置,如下:

RouterB(config)#hostname Trunkrouter

Trunkrouter(config)#int f0/0

Trunkrouter(config-if)#no ip address

Trunkrouter(config-if)#no shut

创建子接口,并定义封装类型,如下:

Trunkrouter(config-if)#int f0/0.1

Trunkrouter(config-subif)#encapsulation dot1q 1

Trunkrouter(config-subif)#ip address 172.16.10.1 255.255.255.0

Trunkrouter(config-if)#int f0/0.2

Trunkrouter(config-subif)#encapsulation dot1q 2

Trunkrouter(config-subif)#ip address 172.16.20.1 255.255.255.0

Trunkrouter(config-if)#int f0/0.3

Trunkrouter(config-subif)#encapsulation dot1q 3

Trunkrouter(config-subif)#ip address 172.16.30.1 255.255.255.0

Trunkrouter(config-if)#exit

创建子接口,每个接口对应1VLAN.注意,如果你试图在第一个子接口分配IP地址,将收到错误信息,除非你先定义了封装类型,如下:

Trunkrouter(config-if)#int f0/0.1

Trunkrouter(config-subif)#ip address 172.16.10.1 255.255.255.0

Configuring IP routing on a LAN subinterface is only allowed if that subinterface is already configured as part of an IEEE 802.10, IEEE 802.1Q, or ISL VLAN.

验证配置信息,如下: Trunkrouter#sh run

()
阅读(880) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~