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地址对应的是哪个口?