本文档通过一个示例,展示如何在 Cisco Catalyst 2960/2950 系列交换机中配置语音 VLAN。本文档着重演示如何在 Cisco Catalyst 2950 交换机上配置语音 VLAN 功能。
尝试进行此配置之前,请确保满足以下要求:
具备 Cisco Catalyst 2960/2950 系列交换机的基本配置知识。
对语音 VLAN 有基本了解。
本文档中的信息基于 Cisco Catalyst 2950 交换机。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
通过语音 VLAN 功能,交换机端口可传输来自 IP 电话的具有第 3 层 IP 优先级和第 2 层服务类别 (CoS) 值的语音流量。根据 IEEE 802.1p CoS,交换机支持服务质量 (QoS) 功能,即使用分类和调度方法从交换机发送网络流量。您可以将思科 IP 电话配置为转发具有 IEEE 802.1p 优先级的流量,并将交换机配置为信任或覆盖 IP 电话分配的流量优先级。
您可以将与 IP 电话连接的交换机端口配置为使用两个 VLAN:一个 VLAN 用于语音流量,另一个 VLAN 用于与 IP 电话接入端口连接的设备所发出的数据流量。您可以将交换机接入端口配置为发送思科发现协议 (CDP) 数据包,以指示连接的 IP 电话通过以下任何一种方法向交换机发送语音流量:
通过标记了第 2 层 CoS 优先级值的语音 VLAN 发送
通过标记了第 2 层 CoS 优先级值的接入 VLAN 发送
通过无标记(无第 2 层 CoS 优先级值)的接入 VLAN 发送
交换机可以处理与 IP 电话接入端口连接的设备所发出的数据流量。您可以配置发送 CDP 数据包的交换机端口,指示连接的 IP 电话为其接入端口配置模式(受信任模式或不受信任模式)。
在受信任模式下,IP 电话接入端口无需任何更改即可传递来自 PC 的流量。在不受信任模式下,IP 电话接入端口会接收 IEEE 802.1Q 帧(其中包含已配置的第 2 层 CoS 值)中的所有流量。默认情况下,第 2 层 CoS 值为 0。 默认采用不受信任模式。
此部分将介绍配置本文档中描述的语音 VLAN 功能所需的信息。
默认情况下,交换机中禁用语音 VLAN 功能。在端口上启用语音 VLAN 时,系统会根据默认 CoS 优先级发送所有无标记的流量。在启用语音 VLAN 之前,发出 mls qos 全局配置命令,以在交换机上启用 QoS,然后发出 mls qos trust cos 接口配置命令,将端口的信任状态配置为“信任”。
默认情况下,交换机端口会丢弃硬件中的所有标记帧。要在交换机端口上接受标记帧,应在端口上配置下列任一命令:
switchport voice vlan dot1p
switchport voice vlan V_VLAN_ID
switchport mode trunk
使用 switchport voice vlan dot1p 命令,指示交换机端口使用 IEEE 802.1p 优先级标记,通过本地(接入)VLAN 转发所有具有更高优先级的语音流量。
使用 switchport voice vlan V_VLAN_ID 命令,配置指定的语音 VLAN,以便 IP 电话可以通过具有第 2 层 CoS 值的 IEEE 802.1Q 帧发送语音流量。思科 IP 电话不仅可以发送无标记的语音流量,还可以使用自有配置向交换机的接入 VLAN 发送语音流量。
使用 switchport priority extend trust 命令,将信任状态扩展到与 IP 电话连接的设备 (PC)。发出此命令之后,交换机即可指示电话如何处理与思科 IP 电话接入端口连接的设备所发出的数据包。PC 生成的数据包使用 802.1q 报头中分配的 CoS 值。电话不应更改(信任)从 PC 到达电话端口的帧的优先级。
您必须在 IP 电话所连接的交换机端口上启用 CDP。默认情况下,交换机接口全局启用 CDP。CDP 是交换机和思科 IP 电话之间使用的机制,用于配置思科 IP 电话以与交换机端口进行通信。CDP 为思科系统公司专有,其他制造商的电话可能无法使用此方法配置 IP 电话以匹配交换机的端口配置。
注意:要获取此部分中所用命令的更多信息,可使用命令查找工具(仅限已注册客户)。
本文档使用以下网络设置:
此图为 Cisco Catalyst 2950 交换机的语音 VLAN 配置示例。交换机端口 FastEthernet 0/6 和 0/8 各与一部思科 IP 电话连接,两部 IP 电话的接入端口又各与一台 PC 连接。
本文档使用以下配置:
在 2950 交换机中,FastEthernet 0/6 端口为带有 dot1p 的语音 VLAN 配置 VLAN 10,以针对语音流量使用 IEEE 802.1p 优先级标记,同时为与思科 IP 电话接入端口连接的 PC 所发出的数据流量配置信任模式。在此例中, 根据 CoS,思科 IP 电话信任笔记本电脑或 PC,并且数据流量使用本地 VLAN。此配置通常用于管理工作站、高优先级用户或高 CoS 值应用程序。
思科电话对交换机执行 CDP 时,信任边界始终会扩展至 IP 电话。也就是说,IP 电话的数据包绝不会从 CoS 5 更改为 CoS 默认值。正因如此, switchport priority extend trust 命令可用于笔记本电脑或 PC。此命令通过 CDP 发送,阻止 IP 电话重写高优先级数据包。
FastEthernet 0/8 端口针对语音流量和数据流量配置单独的 VLAN。在此例中,VLAN 10 用于语音流量,VLAN 20 用于数据流量。此配置通常用于不信任笔记本电脑或 PC 的思科 IP 电话。流量使用 IEEE 802.1Q 帧类型。
使用 mls qos trust cos 命令,Catalyst 交换机的端口可查看以太网报头上的 CoS 值,以对入口流量进行分类,同时信任来自思科 IP 电话的标记数据包的 CoS 值。默认情况下,以太网端口不受信任,因此来自语音 VLAN 和数据 VLAN 的流量亦不受信任。
在尝试退出端口以防止抖动时,使用 priority-queue out 命令,可为语音数据包提供队头权限。 spanning tree portfast 命令可根据生成树协议删除接口;如果有人在拔出 IP 电话后尝试将其与新交换机连接, bpduguard 命令可保护网络。如果要插入交换机,端口将变为 err-disable 状态。这些命令通常应添加到电话端口中。
Cisco Catalyst 2950 交换机 |
---|
Switch#configure terminal Switch(config)#mls qos Switch(config)#interface fastethernet 0/6 !--- Set the interface to classify incoming traffic packets by using the packet CoS value. Switch(config-if)#mls qos trust cos !--- Configure the phone to use IEEE 802.1p priority tagging for voice traffic. Switch(config-if)#switchport voice vlan dot1p Switch(config-if)#switchport voice vlan 10 !--- Trust the CoS value the PC sends in on the data VLAN. Switch(config-if)#switchport priority extend trust Switch(config-if)#priority-queue out Switch(config-if)#spanning-tree portfast Switch(config-if)#spanning-tree bpduguard enable Switch(config-if)#exit Switch(config)#interface gigabitethernet0/8 Switch(config-if)#mls qos trust cos !--- Configure specified VLANs for voice and data traffic. Switch(config-if)#switchport voice vlan 10 Switch(config-if)#switchport access vlan 20 Switch(config-if)#priority-queue out Switch(config-if)#spanning-tree portfast Switch(config-if)#spanning-tree bpduguard enable Switch(config-if)#exit |
如果您使用的非思科 IP 电话无法识别思科专有 CDP 并自动设置中继端口,则必须手动配置中继。在此配置示例中,我们将 VLAN 限制为 10 和 20,并阻止默认的本地 VLAN 1 或 VLAN 0。 VLAN 10 用于语音流量,VLAN 20 用于数据流量。非思科 IP 电话通过手动配置或在启动期间下载的 TFTP 文件,获取其标记数据包的正确 VLAN。此例中使用以下配置:
Cisco Catalyst 2950 交换机 |
---|
Switch#configure terminal Switch(config)#interface fastethernet 0/6 !---Trusts tagged packets CoS value; all untagged packets reset DSCP value in IP header to 0. Switch(config-if)#mls qos trust cos !--- Turn off DTP (dynamic trunking protocol). Switch(config-if)#switchport nonegotiate !--- Forces the port into trunking mode. Switch(config-if)#switchport mode trunk Switch(config-if)#switchport trunk native vlan 20 !--- Restricts the VLANs. Switch(config-if)#switchport trunk allowed vlans 10,20 Switch(config-if)#priority-queue out Switch(config-if)#spanning-tree portfast trunk Switch(config-if)#spanning-tree bpduguard enable Switch(config-if)#exit |
由于利用 CoS,仅查看数据包的 L2 报头即可了解数据包的重要性,因此我们在此例中并未使用 CoS 值,而是使用受信任的差分服务代码点 (DSCP) 值。DSCP 是 IP 数据包中的 6 位字段。使用 mls qos trust DSCP 命令以信任 IP 报头中的 DSCP 值。在此例中,IP 电话会在数据包中正确设置其 DSCP,而笔记本电脑亦会正确设置其 DSCP。此例中使用以下配置:
Cisco Catalyst 2950 交换机 |
---|
Switch#configure terminal Switch(config)#interface fastethernet 0/6 !---Trust the DSCP value in the IP header. Switch(config-if)#mls qos trust DSCP !--- IP phone VLAN Switch(config-if)#switchport voice vlan 10 Switch(config-if)#switchport access vlan 20 !--- Trust the DSCP value the PC sends in on the data VLAN. Switch(config-if)#switchport priority extend trust Switch(config-if)#priority-queue out Switch(config-if)#spanning-tree portfast Switch(config-if)#spanning-tree bpduguard enable Switch(config-if)#exit |
使用本部分可确认配置能否正常运行。
命令输出解释程序(仅限注册用户)(OIT) 支持某些 show 命令。使用 OIT 可查看对 show 命令输出的分析。
使用 show interfaces interface-id switchport 命令验证语音 VLAN 配置。
例如:
Switch#show interfaces FastEthernet 0/6 switchport Name: Fa0/6 Switchport: Enabled Administrative Mode: dynamic desirable Operational Mode: static access Administrative Trunking Encapsulation: dot1q Operational Trunking Encapsulation: native Negotiation of Trunking: On Access Mode VLAN: 1 (default) Trunking Native Mode VLAN: 1 (default) Voice VLAN: dot1p Administrative private-vlan host-association: none Administrative private-vlan mapping: none Administrative private-vlan trunk native VLAN: none Administrative private-vlan trunk encapsulation: dot1q Administrative private-vlan trunk normal VLANs: none Administrative private-vlan trunk private VLANs: none Operational private-vlan: none Trunking VLANs Enabled: ALL Pruning VLANs Enabled: 2-1001 Capture Mode Disabled Capture VLANs Allowed: ALL Protected: false Unknown unicast blocked: disabled Unknown multicast blocked: disabled Appliance trust: trusted
使用 show running-config interface interface-id 命令验证特定接口的语音 VLAN 条目。
例如:
Switch#show running-config interface fastEthernet 0/6 Building configuration... Current configuration : 139 bytes ! interface FastEthernet0/6 switchport voice vlan dot1p switchport voice vlan 10 switchport priority extend trust mls qos trust cos priority-queue out spanning-tree portfast spanning-tree bpduguard enable end Switch#show running-config interface fastEthernet 0/8 Building configuration... Current configuration : 137 bytes ! interface FastEthernet0/8 switchport voice vlan 10 switchport access vlan 20 mls qos trust cos priority-queue out spanning-tree portfast spanning-tree bpduguard enable end
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
04-Oct-2011
|
初始版本 |