码迷,mamicode.com
首页 > 其他好文 > 详细

VLAN详解

时间:2015-07-22 16:34:19      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:access   交换机   动态   

VLAN的作用:N1P429

1. 控制广播

2. 确保安全

3. 灵活扩展


VLAN类型

静态VLAN(基于端口) 

动态VLAN(基于MAC地址) 通过VPMS 



VLAN帧标识 【N6eP301】

传统交换机:数据帧进入交换机,交换机只检查目的MAC地址,参照MAC地址表转发到适当端口,而不考虑数据帧从哪里来的。如果不知道目的MAC,交换机则开始泛洪。


VLAN交换机:数据帧进入交换机 — 获取VLAN_ID — 匹配过滤表 同时将数据帧转发给trunk口,trunk口不删除VLAN ID — 在交换机access出口删除VLAN_ID  【N1P435】

除了考虑目的MAC地址进行转发外,还必须考虑数据帧的源地址,以便查看它所属的VLAN。追踪一个帧至少有两种方法:

第一种根据数据帧进入的端口属于哪个VLAN,这种方法被称为“帧标记”或“显示标记” 

第二种追踪数据帧的源地址的方法是为每个VLAN保持一张MAC地址表,确定目的地址之后,再做出是否转发的决定。此方法称为“帧过滤”或“隐式标记”

帧标记的优点是能够立即标识VLAN,不需要对帧做进一步VLAN成员关系决定。缺点是大多数不支持VLAN的设备会把这种帧当成无效帧。为了解决这个问题,IEEE组织定义了IEEE802.1Q标准。

帧过滤的优点是不修改帧,因此帧通过网络设备时不会出现问题。缺点是所有VLAN设备必须能对每个帧做出唯一VLAN决定。这意味着如果按数据帧中的源MAC地址进行过滤。那么所有VLAN交换机必须拥有一张MAC地址表,该表还要包含每个MAC地址所属的VLAN。【N6eP301】



VLAN间通信的过程【N6eP303】


1. PC1要与PC3通信,开始PC1并不知道PC3的MAC地址,所以,PC1首先发送了一个ARP的查询包,查询包以广播形式发送。

2. 交换机SW1收到PC1发来的ARP广播包。SW1知道该数据包是从F1/1接口收到的,F1/1接口被分配到了VLAN2中,是一个Access端口,SW1知道这是一个来自VLAN2的广播包。

3. SW1在MAC地址表中加入PC1的MAC地址和对应的VLAN号及端口号。(VLAN交换机与非VLAN交换机都会根据帧的源MAC地址进行学习,但是VLAN交换机除了记录MAC地址对应的端口外,还要记录MAC地址对应的VLAN号)

4. SW1在数据帧中加入VLAN2的标识,VLAN交换机从Access端口接收到数据帧时,需要插入VLAN标识。SW1把ARP广播包从除了F1/1之外的所有属于VLAN2的端口发送出去,发送出去之前,要去除VLAN标识。交换机除了把广播帧从所有属于VLAN2的端口发送出去外,还要从所有主干端口把广播帧发送出去,也就是F1/24。从主干端口转发数据帧时,不修改数据帧的格式

5. 当SW2从f1/24端口收到数据帧时,SW2查看数据帧中的VLAN标识,并在MAC地址中添加学到的MAC地址和对应的VLAN号及端口号。SW2接下来决定要向哪里转发数据帧,SW2查看数据帧中的VLAN标识,知道是VLAN2的数据帧,SW2查看数据帧的目的MAC地址,知道这是VLAN2的一个广播帧。SW2把广播包从除1/24之外所有属于VLAN2的端口发送出去,发送出去之前,交换机要去除数据帧中被加入的VLAN2标识。

6. PC3收到数据帧后,知道是PC1发给自己的ARP请求帧。PC3封装ARP应答包,把应答包发往交换机SW2



VLAN间路由

VLAN间通讯需要三层路由或路由器

每个VLAN都是一个独立子网,最好将VLAN配置为独立的子网,虽然并非必须这样



交换机的VLAN支持矩阵

交换机

VLAN数量

VLAN ID

Catalyst 2940

4

1 - 1005

Catalyst2950/2955

250

1 - 4094

Catalyst 2960

255

1 - 4094

Catalyst 2970/3550/3560/3570

1005

1 - 4094

Catalyst 2848G/2980G/4000/4500

4094

1 - 4094

Catalyst 6500

4094

1 - 4094

    

VLAN范围

范围

用途

VTP传播

0, 4096

保留

仅系统使用N/A1正常

Cisco默认VLAN 用户无法删除

2 - 1001

正常

以太网VLAN 正常使用

1002 - 1005

正常

用于FDDI和令牌环 用户无法删除

1006 - 1024

保留

仅系统使用

N/A

1025 - 4094

扩展

仅用于以太网 动态以太网VLAN

仅VTP v3支持

VLAN配置详解《CCNP Switch》P56



交换机端口

交换机的接口只有 接入口Access 和 中继口Trunk 两种选择。


Access接口:

1.只能传输一个VLAN的数据,除非是 语音VLAN。【N1P433】

2.如果接入端口收到标记过(如IEEE802.1Q 标记)的分组会将其丢弃,因为Access口 转发数据时,不查看源地址,只识别VLAN标识

3.将帧转发给与接入链路相连的设备前,交换机将删除所有的VLAN信息。

4.对于静态接入端口,可手工分配其所属的VLAN ,也可通过RADIUS 服务器进行分配(使用IEEE 802.1x 时)。【N1P432】


Trunk接口:[N2P61]

1.Trunk接口为多个VLAN传输数据流 。分为ISL和802.1Q。ISL封装,MTU是1548字节,802.1Q封装,MTU是1522字节。


2. ISL Cisco私有标识 在以太网帧头部封装26字节,尾部封装4字节,总共30字节标识。ISL性能更好,因为他是通过硬件加载的标识。ISL只能用于快速以太网和吉比特以太网链路。ISL l各由选择多才多艺,可用于交换机端口、路由器接口和服务器接口卡。

ISL帧头部有10个bit用来标识VLAN,能够表示1024个VLAN,编号从0到1023

Cisco Catalyst 4000和4500交换机根据其Superverisor引擎的型号来决定其运行Cisco IOS还是Cisco CatOS。Catalyst 4000 和4500的Supervisor引擎不支持给予每个端口来执行ISL封装。【N2P64】




3. IEEE802.1q  在以太网帧内插入4字节的标识。为让这些端口能够通信,必须指定它们所属的Native VLAN。默认为VLAN1.

802.1Q封装,MTU是1522字节。

802.1Q出现之前,很多厂商都声称他们的交换机实现了VLAN,但是不同厂商之间实现的方法不同,所以彼此无法互联。而现在,802.1Q出现后,在以太网帧头中的源地址后增加了一个4个字节的802.1Q帧头,用新的FCS替换了原来帧中的FCS,其他字段保持不变。

新增标签头中的4个字节信息如下:


* 网络类型:2个字节的标签协议标识,以太网值是0x8100

* VLAN标识:一个12位的域,指明VLAN的ID,最大支持4096个VLAN。

* 令牌环标记:这1位主要使以太网与FDDI、令牌环网交换数据是更容易。

* 优先级:这3位指明帧的优先级,被用于QOS,一共8钟优先级,用于当交换机阻塞时,有线发送哪些数据帧。



4.Catalyst 3560交换机支持ISL和802.1q封装,Catalyst2960只支持802.1q封装,不支持ISL封装。另外,在支持ISL或802.1Q的路由器中,最便宜的是2600。1600、1700和2500系列路由器都不支持ISL或802.1Q。【N1P439】


5.Trunk口 既可以通过标识帧,也可以通过未标识帧。标识帧经过trunk时,直接转发且不删除VLAN标识。未标识帧经过trunk时,标记PVID(默认为VLAN1)通过native VLAN转发。

6.中继端口有一个默认VLAN ID(PVID)用于转发未标记数据流的VLAN ID。默认是VLAN 1,也叫本地VLAN。


帧标记方法ISL 和802.1Q 的基本用途是,提供交换机间VLAN 通信。另外,别忘了,将帧转发到接入链路前,将删除ISL 或802.1Q 帧标记标记只用于中继链路内部。


VLAN配置命令:

S1#config t

S1(config)# vlan 3

S1(config-vlan)# name Sales  \\创建VLAN


S1(config)# no vlan 3  \\删除VLAN

一旦删除VLAN,除非该VLAN所属的Access端口移动到其他VLAN,否则这些接入端口就会进入“inactive”状态,不再转发流量


验证VLAN:

S1# show vlan ?

  brief      VTP all VLAN status in brief

  id           VTP VLAN status by VLAN id

  internal   VLAN internal usage

  name      VTP VLAN status by VLAN name

  summary   VLAN summary information


==========================


S1# show vlan brief  【N5P183】

VLAN Name                             Status    Ports

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

1    default                               active    Fa1/0, Fa1/1, Fa1/2, Fa1/3

                                                Fa1/4, Fa1/5, Fa1/6, Fa1/7

                                                Fa1/8, Fa1/9, Fa1/10, Fa1/11

                                                Fa1/12, Fa1/13, Fa1/14, Fa1/15

3    IT                                        active   

1002 fddi-default                     act/unsup

1003 token-ring-default           act/unsup

1004 fddinet-default                 act/unsup

1005 trnet-default                    act/unsup 


\\ 第一列是VLAN ID;第二列是VLAN的状态,active或act为激活,unsup为非挂起;第三列列出了本交换机上属于该VLAN的接口

==========================


S1#show vlan id 3  【N5P183】

S1#show vlan name IT 【N2P56各项详解】

VLAN Name                             Status    Ports

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

3    IT                               active   


VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2

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

3    enet  100003     1500  -      -      -        -    -        0      0   


\\ 显示各个VLAN的类型和最大传输单元等信息;


==========================


S1#show vlan summary  【N5P183】 

Number of existing VLANs           : 6   \\ 全部VLAN数量

Number of existing VTP VLANs      : 6  \\ 普通VLAN数量

Number of existing extended VLANs : 0  \\ 扩展VLAN数量


==========================


端口加入VLAN

S1#config t

S1(config-if)#swichport mode access 

S1(config-if)# switchport host (此命令相当于下面三条命令)


* switchport mode access 

* spanning-tree portfast 

* disable channel group


S1(config-if)#swichport access vlan 3


配置Trunk

S1#config t

S1(config)# interface f0/1

S1(config-if)# switchport trunk encapsulation  { isl | dot1q | negotiate}

S1(config-if)# swichport mode trunk

S1(config-if)# swichport negotiate \\关闭自动协商


==========================


S1(config-if)# switchport trunk allowed vlan ?  \\ 将某个VLAN从Trunk中添加或者删除

  add     add VLANs to the current list

  all        all VLANs

  except  all VLANs except the following

  none    no VLANs

  remove  remove VLANs from the current list


==========================


验证端口的Trunk状态

SW1#show interfaces f1/5 trunk

Port      Mode         Encapsulation  Status        Native vlan

Fa1/5     on           802.1q         not-trunking  1


Port      Vlans allowed on trunk

Fa1/5     none


Port      Vlans allowed and active in management domain

Fa1/5     none


Port      Vlans in spanning tree forwarding state and not pruned

Fa1/5     none


==========================


验证端口Switchport状态

SW1#show interfaces f1/5 switchport 

Name: Fa1/5           \\ 接口的名字

Switchport: Enabled \\ 接口是交换端口

Administrative Mode: static access  \\ 管理员已经配置接口为access模式

Operational Mode: down  \\ 接口当前模式为access模式,和管理员的配置时一样的。有可能管理员配置的是自动协商,而最终结果为access

Administrative Trunking Encapsulation: dot1q  \\ 封装格式为802.1Q

Negotiation of Trunking: Disabled  \\ 已经关闭了自动协商

Access Mode VLAN: 2 (VLAN0002)  \\ 接口属于VLAN2

Trunking Native Mode VLAN: 1 (default) \\ VLAN1为默认的Native VLAN

Trunking VLANs Enabled: ALL \\ 

Trunking VLANs Active: none

Protected: false

Priority for untagged frames: 0

Override vlan tag priority: FALSE

Voice VLAN: none   \\ 没有配置语音VLAN

Appliance trust: none


SW1# sh interfaces f1/10 status

Port    Name               Status       Vlan       Duplex Speed Type

Fa1/10                     connected    trunk        full     100 10/100BaseTX


==========================



(1) 进入接口配置             Switch(config)# interface {Fastethernet | GigabitEthernet} slot/port

(3) 将接口配置为trunk     Switch(config-if)# switchport mode { dynamic {desirable | auto | trunk}

(4) 指定Native VLAN        Switch(config-if)# switchport trunk native vlan {vlan-id}

(7) 查看接口状态:   Switch(config)# show interface {interface-id} switchport

(8) 还原接口默认配置状态    Sw(config)#default interface {interface-id}



Native VLAN【N6eP312】


PC1:192.168.1.1   VLAN2

PC2:192.168.1.2   VLAN3

PC3:192.168.1.3   VLAN2

PC4:192.168.1.4   VLAN3


配置之后,PC1可以Ping通PC3,PC2可以Ping通PC4。但是PC1无法通过集线器(Hub)ping通PC5。PC1查询PC5的MAC地址,ARP请求包被以广播的形式发送出去。交换机SW1在广播帧上添加VLAN标识,然后从F0/24端口发出,F0/24是中继端口,该端口的Native VLAN是默认的VLAN1,中继端口的Native VLAN和数据帧中的VLAN标识不一样,交换机不能修改数据帧把数据发出。Hub接收到的数据帧并不能被PC识别

PC5收到了PC1发过来的ARP请求,但因为该ARP请求包中的数据帧格式已经被改变,被SW1添加了802.1Q封装,PC5不能识别这样的数据帧,把PC1发过来的ARP请求包丢弃。PC1获取不到PC5的MAC地址,无法完成数据包的封装,也无法与PC5通信。


SW1# config t

SW1(config)# interface f0/24

SW1(config-if)# switchport trunk native vlan 2  \\ 将nativeVLAN 更改为默认VLAN2

SW1(config-if)# no switchport trunk native vlan  \\ 端口配置命令回到缺省的状态


在PC1上再次测试到PC5的连通性,结果可以ping通了。这是因为SW1从F0/24端口把数据帧发出时,当数据帧中的VLAN标识与中继端口的native VLAN号相同,交换机清除数据帧中的VLAN标识。PC5就能够识别该标识。


802.1q 在设计时,为了兼容不支持VLAN的交换机混合部署,特地设计了一个Native VLAN 默认为VLAN 1

指定native VLAN 临街端口两端的nativeVLAN 必须相同 native VLAN 也称 本地VLAN 或 PVID。

需要重点关注的是,两台设备间的802.1Q Trunk端口有一个要求,那就是两边的Native VLAN必须相同。如果两边Native VLAN不同的话,CDP会发送一条“VLAN配置错误”消息。如果禁用了Trunk链路上的VLAN1,CDP有可能就不会传输,或关闭了【N2P63】

另外,如果两边Native VLAN不匹配,就会产生二层环路。理由是在这种情况下,VLAN1的STP BPDU(桥协议数据单元)会在未标记的情况下被发送给IEEE STP MAC地址(0180. c200.0000)【N2P63】



====================================================================



Q&A:

VLAN 与 子网划分的关系? 如果不同VLAN 使用不同子网 会是怎样的呢?每个VLAN都必须处于同一个子网是为什么?(单臂和三层个有什么不同?)

VLAN划分广播域,那么广播占用带宽的比例是多少呢?

VLAN的打标签的过程的怎么样的?上次面试的那道题是为什么?

Accsee和trunk口 能不能通?

如何查看端口是access 还是trunk?

如何查看native vlan? 如何指定native vlan

Native vlan 和 PVID 一样吗?如何指定PVID

VTP可不可以有两台server模式的交换机

能否查看交换机中VLAN,端口等等数据库信息

为什么二层交换机上,无法使用show ip arp 命令

Mac地址在交换机以及PC上的存活时间是怎样的?

VTP修剪是怎么的过程?

DTP与自适应是一回事吗?

CCNP交换P65、P52的内容:P65 为什么分布层不能直接相连呢?

如果采用全交换模式,那么路由器应该连接在什么位置呢?汇聚层(分布层) ?核心层 ?

交换机为什么会有MAC地址?VLAN1的MAC地址对应的是哪个口?


本文出自 “IT晓哥” 博客,请务必保留此出处http://itxiaoge.blog.51cto.com/7885208/1677051

VLAN详解

标签:access   交换机   动态   

原文地址:http://itxiaoge.blog.51cto.com/7885208/1677051

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!