VLAN就必须不停的配置。 (二) 基于网络层划分VLAN
这种划分VLAN的方法是根据每个主机的网络层地址或协议类型(如果支持多协议)划分的,虽然这种划分方法是根据网络地址,比如IP地址,但它不是路由,与网络层的路由毫无关系。它虽然查看每个数据包的IP地址,但由于不是路由,所以,没有RIP,OSPF等路由协议,而是根据生成树算法进行桥交换,
这种方法的优点是用户的物理位置改变了,不需要重新配置所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要,还有,这种方法不需要附加的帧标签来识别VLAN,这样可以减少网络的通信量。 这种方法的缺点是效率低,因为检查每一个数据包的网络层地址是需要消耗处理时间的(相对于前面两种方法),一般的交换机芯片都可以自动检查网络上数据包的以太网祯头,但要让芯片能检查IP帧头,需要更高的技术,同时也更费时。当然,这与各个厂商的实现方法有关。 (三) 根据IP组播划分VLAN
IP 组播实际上也是一种VLAN的定义,即认为一个组播组就是一个VLAN,这种划分的方法将VLAN扩大到了广域网,因此这种方法具有更大的灵活性,而且也很容易通过路由器进行扩展,当然这种方法不适合局域网,主要是效率不高
1.1.4. VLAN的配置及查看
一、 VLAN 成员类型
可以通过配置一个端口的VLAN 成员类型,来确定这个端口能通过怎样的帧,以及这个端口可以属于多少个VLAN。关于VLAN 成员类型的详细说明,请看下表: VLAN 成员类型 Access Trunk(802.1Q) VLAN 端口特征 一个Access 端口,只能属于一个VLAN,并且是通过手工设置指定VLAN 的。 一个Trunk 口,在缺省情况下是属于本设备所有VLAN 的,它能够转发所有VLAN 的帧。也可以通过设置许可VLAN 列表(Allowed-VLANs)来加以限制。 关于 Trunk Port 的概念及配置会稍后章节做详细介绍。
二、 配置VLAN
一个VLAN 是以VLAN ID 来标识的。在设备中,您可以添加、删除、修改VLAN 2-4094,而VLAN 1 是由设备自动创建,并且不可被删除。可以使用接口配置模式来配置一个端口的VLAN 成员类型或加入、移出一个VLAN。
(一) 缺省的VLAN 配置 参数 VLAN ID VLAN Name 1 VLAN xxxx,xxxx 是
缺省值 范围 1-4094 无范围
VLAN ID 数 VLAN State Active Active,Inactive
(二) 创建及修改VLAN
在特权模式下,您可以创建或者修改一个VLAN:
命令 SWITCH(config)# vlan vlan-id 作用 输入一个VLAN ID。如果输入的是一个新的VLAN ID,则设备会创建一个VLAN , 如果输入的是已经存在的VLAN ID,则修改相应的VLAN。 (可选)为VLAN 取一个名字。如果没有进行这一步,则设备会自动为它起一个名字 VLAN xxxx,其中xxxx 是用0开头的四位VLAN ID 号。比如,VLAN0004 就是VLAN 4 的缺省名字。 SWITCH(config-vlan)# name vlan-name 如果您想把VLAN 的名字改回缺省名字,只需输入no name 命令即可。
下面是一个创建VLAN 888,将它命名为Test888,并且保存进配置文件的例子: SWITCH# configure terminal SWITCH(config)# vlan 888
SWITCH(config-vlan)# name test888 SWITCH(config-vlan)# end
(三) 删除VLAN
您不能删除缺省VLAN(VLAN 1)。 在特权模式下删除一个VLAN:
命令 SWITCH(config)# no vlan vlan-id 作用 输入一个VLAN ID,删除它。
(四) 向VLAN 分配Access 口
如果您把一个接口分配给一个不存在的VLAN,那么这个VLAN 将自动被创建。 在特权模式下,将一个端口分配给一个VLAN: 命令 SWITCH(config-if)# switchport mode access SWITCH(config-if)# switchport access vlan vlan-id 作用 定义该接口的VLAN 成员类型( 二层 ACCESS 口) 将这个口分配给一个VLAN 下面这个例子把Ethernet 1/10 作为Access 口加入了VLAN20: SWITCH# configure terminal
SWITCH(config)# interface fastethernet 1/10 SWITCH(config-if)# switchport mode access SWITCH(config-if)# switchport access vlan 20 SWITCH(config-if)# end
下面这个例子显示了如何检查配置是否正确:
SWITCH(config)# show interfaces gigabitEthernet 3/1 switchport Switchport is enabled Mode is access port
Acsess vlan is 1,Native vlan is 1 Protected is disabled Vlan lists is ALL
2. Trunk port与802.1q
2.1. 技术知识
2.1.1. 基本概念
如上所述,交换机一般都支持 VLAN,VLAN 可以在逻辑上将连接在交换机上的用户进行分组,同时也就限制了帧的广播域。可以看出一个 VLAN 中可以包含多个交换机端口,但有时我们在交换机之间也进行连接,这时就要求在一个端口上能同时属于多个 VLAN, 能同时传输多个VLAN 中的数据, 这种端口也就称为Trunk。
Trunk 链路上的流量一般采用IEEE 802.1Q 标准封装。
但实现 trunk,也就带来新的问题需要解决: ? ? ?
Trunk 上可以同时传输多个 VLAN 的数据,如何区分每个帧属于哪个 VLAN ? 如何交换机收到 untagged 帧 (没有进行 802.1q 封装的帧), 交换机如何处理? 当交换机从端口发出帧时,它如何判断发出的帧是否需要 tag (进行 802.1q 封装)?
2.1.2. 802.1Q
802.1Q协议,即Virtual Bridged Local Area Networks协议,主要规定了VLAN的实现,用于标识帧所属 VLAN。因为 VLAN 的应用越来越广,各个厂商都声称他们的交换机实现了VLAN,但各个厂商实现的方法都可能不相同,所以彼此是无法互连,这样,用户一旦买了某个厂商的交换机,就没法买其 他厂商的了。而现在,VLAN的标准是IEEE 提出的802.1Q协议,只有支持相同的开放标准才能保证网络的互连互通,以及保护网络设备投资。
下图是 802.1q 封装的以太帧格式:
字段说明:
? TPID: 协议标识符, 以太网为0X8100
? Priority: 优先级标识(802.1P),这3 位指明桢的优先级。一共有8种优先级,
主要用于当交换机阻塞时,优先发送哪个数据包。定义了优先级的概念,对于那些实时性要求很高的数据包,主机在发送时就在前面提到MAC桢头增加的3位优先级中指明该数据包优先级高,这样,当以太网交换机数据流量比较多时,它就会考虑优先转发这些优先级高的数据包。 ? CFI: 规范标识符,标明MAC地址是否符合以太网标准,符合为0 ? VLAN ID: 标识帧所属VLAN,范围0—4095
不难看出,802.1Q标签头的4 个字节是新增加的,目前我们使用的计算机默认并不支持802.1Q,即我们计算机发送出去的数据包的以太网帧头部不包含这4个字节,同时也无法识别这4个字节。
2.1.3. 交换机端口的 link type
根据交换机端口对 8021.q 的支持方式和处理方式的不同,将端口的链路类型分为三
种:
? Access ? Trunk
? Hybrid (在很多交换机上并不支持)
一、 link type - access
Access port一般用于连接计算机的网络适配器,此类型的交换机端口仅能属于一个 VLAN (untagged port) (一)
1
2
Access 端口接收报文的规则: 收到 tagged frame, 直接丢弃 收到 untagged frame
2.1 首先进行 802.1q 封装, 802.1q VLAN ID 为此端口所属 VLAN 2.2 然后, 将此封装后的帧转发此 VLAN 内的其它端口 (二层交换)
(二)
1
2
Access 端口发送报文的规则: 将 802.1q 帧进行解封 从端口发送出去
二、 link type - trunk
Trunk port 一般用于交换机与交换机之间的连接,此类型的交换机端口可能属于(允许)多个 VLAN (tagged port), 但需要并仅能属于一个默认 VLAN (native VLAN, untagged port)。所谓Native VLAN,就是指在这个接口上收发的UNTAG 报文,都被认为是属于这个VLAN 的。显然,这个接口的缺省VLANID(即IEEE 802.1Q 中的PVID)就是Native VLAN 的VLAN ID。同时,在Trunk上发送属于Native VLAN 的帧,则必然采用UNTAG 的方式。每个Trunk 口的缺省Native VLAN 是VLAN 1。 (一)
1
Trunk 端口接收报文的规则: 收到 tagged frame
1.1 首先判断此 802.1q 帧的 VLAN ID 是多少 1.2 然后判断 trunk 端口是否属于此 VLAN
1.3 如属于(允许)该VLAN, 此将此帧进行二层转发, 否则直接丢弃 2
收到 untagged frame
2.1 首先进行 802.1q 封装, 802.1q VLAN ID 为此端口所属 native VLAN 2.2 然后, 将此封装后的帧转发此 VLAN 内的其它端口 (二层交换)
(二)
1
2
Trunk 端口发送报文的规则:
分析要转发的 802.1q 帧, 判断其 VLAN 是否是 native VLAN 如是 native VLAN, 则将此帧进行解封(去掉 802.1q 封装)后发出