Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26902
  • 博文数量: 12
  • 博客积分: 460
  • 博客等级: 下士
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-20 22:13
文章分类

全部博文(12)

文章存档

2012年(3)

2010年(9)

我的朋友

分类:

2012-02-04 19:03:04

VLAN相关知识

VLAN在实际应用中用的比较多,一直对其认识模糊,故想借此总结一下。结合本人工作,文章分为三个部分,第一部分介绍VLAN原理,第二部分介绍在CISCO交换机上如何配置VLAN,第三部分应用OPNET Modeler,实例分析VLAN各项性能。

PART Ⅰ VLAN基本原理

一、链路层相关知识

数据链路层使用的信道类型可以分为点对点信道和广播信道;工作在数据链路层的网络设备是交换机,要明白数据包在网络中的流动,了解交换机的工作原理很重要。下面依次介绍以上知识点。

1、点对点信道

①、首先要分清链路和数据链路的区别

链路(link),又叫物理链路,是指从一个节点到相邻节点的一段物理线路;而数据链路(data link),又叫逻辑链路,将实现通信协议的软硬件加到链路上就构成了数据链路。

②、数据链路层的协议要解决三个问题:封装成帧、透明传输和差错检测

成帧中,MTUMaximum Transfer Unit)是指链路层协议规定的帧的数据部分的长度上限。

透明传输中,使用转义字符ESC0x1B)字节填充法解决透明传输的问题。

由于存在BERBit Error Rate)误码率,链路层通常采用CRCCyclic Redundancy Check)循环冗余检验,其基本思想就是在数据流后添加供差错检测用的冗余码。CRC注意和FCS区别。现在有线网络的数据链路层已经很少采用可靠传输,所以取消了帧编号、确认和重传等机制,这些机制在TCP协议中实现。

③、HDLCHigh-level Data Link Control)高级数据链路控制

在通信线路质量较差的年代使用,实现数据链路层数据的可靠传输。

④、PPPPoint-to-Point Protocol)点对点协议

应用于用户计算机和ISP进行通信时所用的数据链路层协议。

一个将IP数据报封装到串行链路中的方法,一个用来建立、配置和测试数据链路连接的链路控制协议LCPLink Control Protocol),一套支持不同网络层的网络控制协议NCPNetwork Control Protocol)。

以上两种链路层协议不是本文的主题不再展开讨论。

2、广播信道

广播信道可以进行一对多的通信,局域网中使用的就是广播信道。

①、局域网、以太网

以太网是局域网的一种标准,局域网中要着重考虑的是一个共享信道的问题,共享信道在技术上可以分为两类,第一是静态信道划分,频分时分波分码分等,但代价较高,不适合局域网。第二是动态媒体接入控制,这又可以分为随机接入和受控接入。

IEEE 802委员会是一个专门制定局域网和城域网标准的机构,局域网没有一个统一的标准,其中包括802.3-CSMA/CD802.4-令牌总线网、802.5-令牌环网等。

以太网是符合DIX Ethernet V2标准的局域网,和IEEE 802.3只有很小的差别,经常不严格区分。目前,以太网在局域网市场已取得了垄断性的地位,几乎成了局域网的代名词。

②、网络适配器

网络适配器又称网络接口卡NICNetwork Interface Card),其功能形象的表示在下图中。

见谢希仁P79

③、CSMA/CD协议

以太网发送的都是使用曼彻斯特(Manchester)编码,数字基带传输,优点是方便提取同步信号,缺点是所占用的带宽增加一倍。

这里涉及到以太网的最短有效帧的问题,规定凡是长度小于64字节的帧都是由于冲突而异常中止的无效帧。

具体的Multiple AccessCarrier SenseCollision Detection不再展开讨论。

3、使用广播信道的以太网

①、典型的使用集线器的双绞线以太网

堆叠式(Stackable)集线器以太网

  

②、MAC地址

IEEE RARegistration Authority)注册管理机构是局域网全球地址的法定管理机构,负责分配MAC地址的OUIOrganizational Unique Identifier)组织惟一标识符,也就是MAC地址的高24位,也叫公司标识符(company_id)。MAC地址也叫EUIExtended Unique Identifier),EUI-48

I/G表示Individual/Group位,是第一个字节的最低位,若为0,则为单个站地址;若为1,则为组地址。

G/L表示Group/Local位,是第一个字节的最低第二位,若为0,则为全球管理;若为1,则为本地管理,以太网几乎不使用这个G/L位。

单播(unicast)帧:收到帧的MAC帧地址与本站的硬件地址相同。

广播(broadcast)帧:发给本局域网上所有站的帧(全1地址),注意由于路由器不转发广播帧,所以广播域以路由器为间隔。

多播(multicast)帧:发给本局域网上的一部分站点。

③、MAC帧格式

4、物理层上扩展以太网

①、主机使用光纤和一对光纤调制解调器连接到集线器。

②、使用集线器连接成覆盖更大范围的多级星型结构的以太网。

③、缺点有两点:其一,整个网络的吞吐量不变,属于一个碰撞域(Collision Domain)。其二,集线器不能缓存帧,连接的双方必须使用相同的以太技术,例如若速率不同,则降低为最低速率。

5、数据链路层上扩展以太网

①、透明网桥(Transparent Bridge

其标准在IEEE 802.1D中规定。

自学习(self-learning),通过自学习构建转发表,构建原理基于这样一个事实,若源地址为A的帧从接口x进入某网桥,那么从这个接口出发沿相反方向一定可以把这个帧传送到A

STPspanning tree protocol)生成树协议,目的是为了防止产生的转发帧在网络中不断的兜圈子,相互连接在一起的网桥在彼此通信后,就能找出原来的网络的拓扑的一个子集,在这个子集中,整个连通的网络中不存在回路,即在任何两个站点间只有一条路径。为了防止生成树老化,要定期生成树更新。

②、以太网交换机

单播:按转发表存储转发。

广播:MAC地址为全1?应该是向除了进入端口外的其它所有端口转发。

组播:?如何实现的。IP层组播地址的范围为224~239。在因特网范围的多播要靠路由器来实现,能够运行组播协议的路由器称为多播路由器。在因特网上进行多播就叫多IP多播。

由于多播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据包的主机,还要在IP层利用软件过滤,把不是本主机要接收的数据报丢弃。

交换机接收多播帧,应该像广播一样处理,因为多播协议在IP层实现。

二、虚拟局域网VLAN基础

利用以太网交换机可以很方便的实现VLANVLAN是用户和网络资源的逻辑组合,可以用来在一个纯交换的互联网络中分割广播域。

1、以太网帧格式的扩展

帧格式的扩展定义在IEEE 802.3ac中,添加了一个4字节的VLAN tag,指明该帧属于哪一个VLAN

需要注意的是,由于增加了4B,所以以太网最大帧长度变为1522B(以太网MTU1500,帧的头部由18B变为22B)。

2、交换机分割冲突域,路由器分割广播域

我们都知道这句话,那么它们是如何分割的呢。交换机分割冲突域好理解,无非是根据MAC地址不转发不需要转发的帧。那么路由器是如何分割广播域的呢,广播可以分为MAC层广播和IP层广播,在IP广播中用到MAC广播。

当某主机向一个网络广播时,广播地址为该netid+1,该数据报会被传送到该网络的直跳路由器,路由器将数据报传输到MAC层,将MAC目标地址改为全1,这样就会向该网络广播,因为广播是向某个特定网络的,路由器的不同端口连接的是不同的网络,所以路由器不会转发该广播。

3、VLAN之间通信需要通过三层设备

①、VLAN1是负责管理的VLAN,无法改动或者删除VLAN1,尽管其可以用作工作组,但Cisco推荐这个VLAN只用于管理。默认时,交换机所有端口都是VLAN1成员,直到改动为止。

②、每个VLAN都被认为是一个广播域,因此必须有自己的子网号,这就是为什么VLAN必须通过三层设备才能通信。

4、静态VLAN与动态VLAN

①、静态VLAN

由于安全性已经更加容易设置和监控等因素,通常创建的VLAN都是静态VLAN,将交换机的每个端口分配到VLAN

②、动态VLAN

自动决定一个节点VLAN分配,例如基于MAC地址绑定。

需要注意的是,在一个交换机上可以有动态接入端口和中继端口,但动态接入端口必须接到终端工作站或集线器,而不能接到另一台交换机。

5、交换机的端口类型

交换机的端口类型可以通过两种方式进行配置,一种是手动配置,另一种是通过动态中继协议DTPDynamic Trunk Protocol),做法是通过与链路另一端进行协商。

①、访问端口

这里指的是访问链路,这样好理解一点,在access链路上无论如何都不会带有VLAN tag,如果端口接收到这样的帧,则将其丢弃。

并不是每个访问端口只能分配给某一个VLAN,可以添加一个语音VLAN,这样就允许将一部电话机与一台PC连接到同一个交换机端口,但这两台设备属于不同的VLAN

②、中继端口

同样这里指的是中继链路。

当配置为中继链路时,所有的VLAN都可以通过,除非手动清除某个VLAN。(这里注意在Cisco交换机中是这样的,但在opnet中不一样,设置为trunk后还需要手动添加支持的VLAN

用在交换机之间、交换机和路由器之间、交换机和服务器之间。可以同时在两个广播域中设置为使用同一台服务器,这样用户就不用通过层三设备访问它。下面会看到,设置单臂路由的时候需要在一个路由器接口上设置多个逻辑接口,分配不同的IP地址,因为广播域属于不同的网络。

6、VLAN的识别方法

①、ISLInter-Switch Link)交换机间链路

Cisco专用的方法,在以太网帧上显式标记VLAN信息,运行ISL可以将多台交换机互联起来,当流量在交换机之间的中继链路上传递时,仍然维持VLAN信息,其对数据帧重新封装。

②、IEEE 802.1Q

在帧间插入字段,为每个交换机端口分配一个PVID,使他们成为本机VLANnative vlan)。

7、VTPVLAN Trunk ProtocolVLAN中继协议

没怎么弄懂,有待进一步研究

①、默认时,所有Cisco交换机都配置为VTP服务器,当有多台交换机和多个VLAN时就应当使用VTP

②、VTP修剪,默认所有交换机禁用VTP修剪。

show interface trunk

interface f0/8

switchport trunk pruning vlan 3-4

8、VLAN之间的路由

使用独臂路由,为路由器的端口设置不同的逻辑端口。

PART Ⅱ 3560G交换机配置

1、创建VLAN

config t

vlan 2  -------------------全局配置命令

name sales

2、保留的VLAN

保留的VLANVLAN1/VLAN1002/VLAN1003/VLAN1004/VLAN1005

VLAN1006~VLAN4094属于扩展的VLAN,在VTP server模式下不可用。

3、查看VLAN

show vlan

show interface trunk  -------------------查看中继端口

4、将交换机端口分配到VLAN

config t

int fa0/3

switchport mode access

switchport access vlan 3

5、配置VLAN中继端口

config t

Int fa0/8

① switchport mode dynamic auto

默认所有以太端口都是这种模式,若邻居端口设为中继或需要模式,该端口变为中继端口。

② switchport mode dynamic desirable

试图将链路转换为中继链路,若邻居为中继、需要或者自动模式,该端口将变为中继端口。

③ switchport mode trunk

④ switchport nonegotiate

这个是为了防止产生DTP帧,DTP是用来协商的,当端口为accesstrunk模式时,不需要协商,采用此命令。

6、3560G上配置中继端口

switchport trunk encapsulation dot1q

switchport mode trunk

switchport trunk allowed vlan remove 4-8

7、变更或修改中继端口本机VLAN

config t

int f0/1

switchport trunk native vlan 40

结果用show running-config查看,所有交换机必须使用相同的本地vlan,这里有个问题,可以试试看,在access模式下,有没有native vlan

8、配置VLAN之间的路由

①、路由器的配置

config t

int f0/0

no ip address

no shutdown

int f0/0.1

encapsulation dot1q 1

ip address 192.168.10.17 255.255.255.240

...

②、交换机的配置

config t

int f0/1

switchport mode trunk

int f0/2

switchport access vlan 1

...

PART Ⅲ VLAN仿真分析

一、创建一个VLAN网络

交换机的端口配置出了一点问题,端口始终是not configured,不能选择,但是在opnet 10.0上是可以的。

通过查阅VLAN用户手册,发现14.510.0在这里确实不一样,在14.5的手册里有这样一段话:

The port type of a switch port is inferred by the simulation engines from the setting of the Tagging attribute and is not determined from the Port Type attribute. If all rows in the Supported VLANs table are set to Send Untagged, the port is inferred to be an access port. As such, packets exiting the port are always untagged. Packets entering an access port are tagged with the value set in the PVID attribute. If the PVID attribute is not configured, the packets are tagged with the VLAN ID from the first row of the Supported VLANs table. 

If all rows of the Supported VLANs table have the Tagging attribute set to Send Tagged, the port is inferred to be a trunk port. Packets exiting a trunk port are always tagged, and the trunk port expects to receive only tagged packets and will drop incoming untagged packets. PVID is not relevant to trunk ports

If the rows in the Supported VLANs table have a mixture of Send Tagged and Send Untagged values in the Tagging attribute, the port is inferred to be a hybrid port. Packets are sent and received on a hybrid port with or without VLAN tags based on their respective VLAN tagging configuration. Untagged packets use the VLAN ID from the first row of the Supported VLANs table that has the Tagging attribute set to Send Untagged. 

可见端口模式是通过Supported VLANs属性来配置的,这点和OPNET10.0不同。

二、流量分析

从主机client vlan20加一个IP数据流到两个服务器,分别查看两个服务器的情况。

图中,server vlan10没有收到数据包,而与client vlan20同属一个vlanserver vlan20接收到了数据包,可见vlan划分有效。

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