本文档提供用于连接到 Cisco IP 电话的 Catalyst 交换机上的示例配置。本文档包括交换机端口、嵌入式电源和服务质量 (QoS) 的配置。交换机端口配置使用预定义的宏,该宏使用最少的命令配置交换机端口和 QoS 设置。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本文档说明在交换机端口上连接 PC 和 IP 电话的交换机的配置。该 Cisco IP 电话包含一个集成式三端口 10/100 交换机。这些端口专用于连接。
端口 1 连接到 Catalyst 交换机或支持 IP 语音的其他设备。
端口 2 是一个内部 10/100 接口,用于传输话流量。
端口 3 连接到 PC 或其他设备。
注意:只有两个端口可以实际查看。第三个端口是内部端口,无法实际看到。这里,端口 2 是无法实际看到的端口。
交换机具有两个 VLAN:一个传输数据流量,一个传输语音流量。交换机端口可以是接入 VLAN 或中继 VLAN,但您需要配置一个语音 VLAN 以传输语音流量。
如果您的交换机模块可以向终端站提供以太网供电 (PoE),您可以将该模块上的每个接口都设置为当终端站需要电源时自动检测并应用 PoE。默认情况下,当交换机在某个接口上检测到用电设备时,它会假定用电设备使用它所能提供的最大功率端口。传统 PoE 模块上的最大功率为 7 W,而 Cisco IOS® 软件版本 12.2(18)EW 中引入的 IEEE PoE 模块上的最大功率为 15.4W。当交换机收到来自用电设备的 Cisco 设备发现协议 (CDP) 数据包时,功率将自动向下调整到设备所需的特定瓦数。通常,此自动调整可以进行得很好,并不需要或建议进一步的配置。但是,您可以为整个交换机(或特定接口)指定用电设备的功耗,以便从您的交换机提供额外的功能。当 CDP 被禁用或不可用时,这会很有用。
因为在不均匀地发送数据的情况下,IP 电话呼叫的音质会变差,所以交换机使用基于 IEEE 802.1p Class of Service (CoS) 的 QoS。 QoS 使用分类和计划以可预期的方式从交换机传输网络流量。有关 QoS 的详细信息,请参阅配置 QoS。Cisco AutoQoS 能够以一致方式自动在 Cisco 路由器和交换机间部署 QoS 功能。它能够根据网络环境和 Cisco 最佳实践建议启用各种 Cisco QoS 组件。
本部分提供有关如何配置本文档所述功能的信息。
注意:使用命令查找工具(仅限注册客户)可获取有关本节中使用的命令的详细信息。
本文档使用以下网络设置:
Catalyst 交换机的配置包括以下配置:
使用中继链路将 IP 电话连接到交换机时,会导致交换机中的 CPU 使用率过高。因为特定接口的所有 VLAN 都中继到该电话,所以会增加交换机必须管理的 STP 实例数。并进而提高 CPU 使用率。中继行为还会造成不必要的广播/组播/未知单播流量流入电话链路。
为避免这种情况,请删除中继配置并保留与服务质量 (QoS) 一起配置的语音和接入 VLAN。 从技术上来说,它仍然是中继,但它称为多 VLAN 接入端口 (MVAP)。 因为语音和数据流量可以通过相同端口传输,所以您应为每种类型的流量都指定不同的 VLAN。您可以将某个交换机端口配置为在不同的 VLAN 上转发语音和数据流量。请使用语音 VLAN 配置来配置 IP 电话端口。此配置创建一个伪中继,但不需要您手工修剪不必要的 VLAN。
语音 VLAN 功能允许接入端口传输来自 IP 电话的 IP 语音流量。该语音 VLAN 功能默认为禁用。当配置了语音 VLAN 时,端口快速功能会自动启用。当禁用语音 VLAN 时,端口快速功能不会自动禁用。以下是语音 VLAN 配置中的选项:
Switch(config-if)#switchport voice vlan ? <1-4094> Vlan for voice traffic dot1p Priority tagged on PVID none Do not tell telephone about voice vlan untagged Untagged on PVID
输入语音 VLAN ID 以发送 CDP 数据包,这些数据包将 IP 电话配置为以带有语音 VLAN ID 和第 2 层 CoS 值(对于语音流量,默认为 5;对于语音控制流量,默认为 3)标记的 802.1Q 帧的形式传输语音流量。 有效的 VLAN ID 范围是 1 到 4094。交换机将 802.1Q 语音流量置于语音 VLAN 中。
输入 dot1p 关键字以发送 CDP 数据包,这些数据包将 IP 电话配置为以带有语音 VLAN ID 0 和第 2 层 CoS 值(对于语音流量默认为 5,对语音控制流量默认为 3)标记的 802.1p 帧的形式传输语音流量。 交换机将 802.1p 语音流量置于接入 VLAN 中。
输入 untagged 关键字以发送 CDP 数据包,这些数据包将 IP 电话配置为传输未标记的语音流量。交换机将未标记的语音流量置于接入 VLAN 中。
输入 none 关键字以允许 IP 电话使用其自己的配置和传输未标记的语音流量。交换机将未标记的语音流量置于接入 VLAN 中。
此示例对 VLAN 10 传输数据流量而 VLAN 20 传输语音流量进行了详细说明:
配置 Catalyst 交换机以传输语音和数据流量 |
---|
Switch#configure terminal Switch(config)#interface fastethernet 2/5 Switch(config-if)#switchport mode access Switch(config-if)#Switchport access vlan 10 Switch(config-if)#switchport voice vlan 20 !--- Configures the IP phone to transmit voice traffic in !--- 802.1Q frames tagged with voice VLAN ID 20. end |
注意: 您无法禁用 7960/40 电话中的 PC 端口 SPAN 功能。
Cisco 提供了多种 Catalyst 交换机,这些交换机支持与 802.3af 兼容的 PoE,同时还支持 Cisco 试行标准 PoE 实现方案。IEEE 802.3af-2003 描述了设备可以属于的五个电源分类。IEEE 802.3af 中的默认电源分类为每个设备提供 15.4W 的电源。提供使用 IEEE 802.3af 默认分类的 PoE 会显著提高电源设备 (PSE) 交换机和电源基础设施的功率要求。为了以经济、高效的方式提供 PoE,除了 IEEE 802.3af 分类之外,Catalyst 交换机还支持智能电源管理。这使得用电设备和 PSE 能够就其各自容量进行协商以确切管理设备的功率需求量,并明确具备 PSE 功能的交换机如何管理各个用电设备的功率分配。
发出以下 show power inline 命令以查看交换机可以提供的默认功耗:
Switch#show power inline consumption default Default PD consumption : 15400 mW
默认情况下,所有交换机端口都配置为自动检测 PoE 设备并为其供电。发出以下 show power inline 命令以查看任何端口的内联电源配置状态:
Switch#show power inline FastEthernet 2/5 Interface Admin Oper Power Device Class Max (Watts) --------- ------ ---------- ------- ------------------- ----- ---- Fa2/5 auto on 7.0 IP Phone 7960 n/a 15.4 !--- You can see the Admin status as auto. This is the default configuration.
可以发出 power inline 命令来配置单个端口的内联电源。下面显示了嵌入式电源的配置选项:
Switch(config-if)#power inline ? auto Automatically detect and power inline devices consumption Configure the inline device consumption never Never apply inline power static High priority inline power interface
Auto — 默认情况下,具备 PoE 功能的端口将配置为“auto”。用电设备是基于先到先服务的原则供电的。如果电源没有足够的内联电源可提供给自动模式下的所有用电设备,则无法保证哪些用电设备将获得供电。
Static — 静态端口在配电和关闭电源方面比自动端口的优先级高。配置静态端口时,交换机会为其分配电力。然后会为该端口保留电力,即使该端口未与任何设备连接。分配的电量既可以使用默认的最大值 (15.4W),也可以在使用此选项时指定。此分配量从未根据 IEEE 分类或 CDP 消息进行调整。
Never — Supervisor 引擎不会指示交换模块给端口加电,即使该端口连接了一个无源电话也是如此。
在静态模式下,用电设备可保证在插入时联机。这通常用于优先级较高的用户,例如公司主管或无线接入点。但是,如果用电设备的 IEEE 分类功率高于静态端口的最大功率,则不会为用电设备供电。同样,对于 Cisco 试行标准 PoE,如果来自用电设备的 CDP 消息表明所需功率高于分配给静态端口的最大功率,该端口将断电。如果所需静态端口数超出电源容量,则会将一个新指定的静态端口置于错误禁用状态,并为其分配为 0W。如果由于电源出现故障并且发生电力不足的情况,交换机需要关闭用电设备,则自动模式的用电设备将早于静态模式的用电设备而关闭。
以下示例显示了一个交换机端口的嵌入式电源配置。如本部分中前面所述,端口的默认内联电源配置为“自动”。如果在更改了默认配置后希望将端口重新配置为“自动”,请如下所示配置端口:
为运行 Cisco IOS 的 Catalyst 交换机配置内联电源支持 |
---|
Switch#configure terminal Switchj(config)#interface fastethernet 2/5 Switch(config-if)#power inline auto !--- Configures inline power support on fast Ethernet port 2/5. |
您可以使用 Auto-QoS 功能简化所存在的 QoS 功能的部署。Auto-QoS 会对网络设计做出假定。因此,交换机可以对不同流量排定优先顺序,并相应地使用出口队列而不是使用默认 QoS 行为。QoS 默认为禁用。然后,不管数据包的内容或大小如何,交换机都会尽力为每个数据包提供最佳服务,并通过单个队列发送它。
Auto-QoS 会配置 QoS 分类和出口队列。在配置 auto-QoS 之前,请确保交换机上未配置任何 QoS。首次在交换机上配置 auto-QoS 时,将在交换机上启用 QoS(如果它已禁用),并在全局配置中配置队列和阈值。最后,它会将交换机端口配置为信任传入的 CoS 参数,并为该端口配置流量整形参数。此后,每次您为任何端口配置 auto-QoS 时,都只是使用 QoS 参数配置交换机端口。
在启用模式下启用 debug auto qos 命令,然后针对交换机端口配置 auto-qos,以确定在 auto-QoS 配置过程中应用了哪些 QoS 配置。debug auto qos 显示已在交换机上应用的命令。
发出 auto qos 命令后,可以根据您的需求更改 QoS 配置。但是,不建议这样做。您可以在此处查看 auto qos voice 命令的可用选项:
Switch(config-if)#auto qos voip ? cisco-phone Trust the QoS marking of Cisco IP Phone cisco-softphone Trust the QoS marking of Cisco IP SoftPhone trust Trust the DSCP/CoS marking
为运行 IOS 的 Catalyst 交换机配置 Auto-QoS |
---|
Switch#configure terminal Switch(config)#interface fastethernet 2/5 Switch(config-if)#auto qos voip cisco-phone !--- Configures the port to trust the CoS labels !--- in the incoming packets and configures the !--- traffic-shaping parameters. |
虽然 auto qos 命令语法在所有 Catalyst 交换机上都是相同的,但是,通过 auto-QoS 在 Catalyst 交换机上应用的 QoS 配置,却因 Catalyst 交换机而异。
如果语音流量要通过中继链路跨越交换机,则需要针对中继端口配置 QoS 参数。在这种情况下,需要发出 auto qos voip trust 命令,而不是 auto qos voip cisco-phone 命令。
针对运行 IOS 的 Catalyst 交换机的中继链路配置 Auto-QoS |
---|
Switch#configure terminal Switch(config)#interface gigabitethernet 1/1 Switch(config-if)#auto qos voip trust !--- Configures the port to trust the CoS labels !--- in the incoming packets and configures the !--- traffic-shaping parameters. |
如果语音流量通过第 3 层链路,则需要使用 auto qos voip trust 命令配置端口,并需要将端口配置为 trust dscp。此示例显示用于传输语音流量的第 3 层端口的配置:
在运行 IOS 的 Catalyst 交换机中针对第 3 层端口配置 Auto-QoS |
---|
Switch#configure terminal Switch(config)#interface gigabitethernet 1/1 Switch(config-if)#auto qos voip trust !--- Configures the port to trust the CoS labels !--- in the incoming packets and configures the !--- traffic-shaping parameters. Switch(config-if)#mls qos trust dscp !--- Configures the port to trust the DSCP labels !--- in the incoming packets. This command is for !--- Catalyst 3560/3750/6500 Switches. or Switch(config-if)#qos trust dscp !--- Configures the port to trust the DSCP labels !--- in the incoming packets. This command is for !--- Catalyst 4500 Switches. |
在运行 Cisco IOS 软件版本 12.2 及更高版本的 Catalyst 3560、3750 和 4500 交换机中,有一些预定义的宏可用于配置交换机端口。以下是用来支持 IP 电话的交换机端口的配置中的宏及其角色的示例:
cisco-phone — 此宏适用于这样的交换机端口:IP 电话直接连接到此端口,并且一台 PC 可以连接到该电话。此宏为端口配置接入 VLAN、语音 VLAN、端口安全性、spanning-tree portfast/bpduguard 和 auto qos voip cisco-phone。
cisco-switch — 此宏适用于从接入交换机到分布层交换机的上行链路端口。如果您的语音流量通过中继链路穿过交换机,则可以使用 cisco-switch 宏来配置上行链路端口。此宏为端口配置 dot1q 中继、spanning-tree link-type point-to-point 和 auto qos voip trust。不应将此宏用于 EtherChannel/端口组。
注意:这些交换机支持两种类型的宏:
Smartport 宏 — 此宏在本部分中讨论。有关详细信息,请参阅配置 Smartports 宏。
接口宏 — 此宏是用户定义的宏,用于自动选择一组接口以进行配置。有关详细信息,请参阅配置和使用接口范围宏。
发出以下 show 命令以查看可用的宏:
Switch#show parser macro brief default global : cisco-global default interface: cisco-desktop default interface: cisco-phone default interface: cisco-switch default interface: cisco-router default interface: cisco-wireless
发出以下 show 命令以查看宏的脚本:
Switch#show parser macro name cisco-phone # Cisco IP phone + desktop template # macro keywords $access_vlan $voice_vlan # VoIP enabled interface - Enable data VLAN # and voice VLAN # Recommended value for access vlan should not be 1 switchport access vlan $access_vlan switchport mode access # Update the Voice VLAN value which should be # different from data VLAN # Recommended value for voice vlan should not be 1 switchport voice vlan $voice_vlan # Enable port security limiting port to a 2 MAC # addressess -- One for desktop on data vlan and # one for phone on voice vlan switchport port-security switchport port-security maximum 2 # Ensure port-security age is greater than one minute # and use inactivity timer switchport port-security violation restrict switchport port-security aging time 2 switchport port-security aging type inactivity # Enable auto-qos to extend trust to attached Cisco phone auto qos voip cisco-phone # Configure port as an edge network port spanning-tree portfast spanning-tree bpduguard enable
此示例显示在 IP 电话环境中交换机端口的配置:
使用预定义的宏配置交换机 |
---|
Switch#configure terminal Switch(config)#interface gigabitethernet 2/5 Switch(config-if)#macro apply $access_vlan 10 $voice_vlan 20 !--- Configures the access port to connect the IP phone. !--- The PC connects to the IP phone. It configures the port that !--- belongs to access VLAN 10 and voice VLAN 20. It also configures !--- auto qos voip cisco-phone. Switch(config-if)#exit Switch(config)#interface gigabitethernet 1/1 Switch(config-if)#macro apply cisco-switch $native_vlan 10 !--- Configures the uplink port as dot1q trunk port !--- with native VLAN 10. It also configures auto qos voip trust. |
发出以下 show interface 命令以确认配置是否在运行 Cisco IOS 的交换机上正常工作:
Switch#show interface fastethernet 2/5 switchport Name:Fa2/5 Switchport: Enabled Administrative Mode: static access Operational Mode: static access Administrative Trunking Encapsulation: negotiate Operational Trunking Encapsulation: native Negotiation of Trunking: Off Access Mode VLAN: 10 (VLAN0010) Trunking Native Mode VLAN: 1 (default) Administrative Native VLAN tagging: enabled Voice VLAN: 20 (VLAN0020) Administrative private-vlan host-association: none Administrative private-vlan mapping: none Administrative private-vlan trunk native VLAN: none Administrative private-vlan trunk Native VLAN tagging: enabled 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: none
命令输出解释程序(仅限注册用户)(OIT) 支持某些 show 命令。使用 OIT 可查看对 show 命令输出的分析。
Catalyst 3560G 不会向连接到这样的端口的 IP 电话提供内联电源:以前无源设备曾经连接到该端口,又从该端口拔出。端口的自动和静态 PoE 设置会导致此问题。3750 系列交换机也会发生此问题。此错误已在 Cisco Bug ID CSCsc10999(仅限注册用户)中标识。
解决方法是对端口发出 shutdown/no shutdown。然后,交换机会向 IP 电话提供电源。此问题已在 Cisco IOS 软件版本 12.2(25)SED1 中解决。
如果将 7935 IP 会议电话连接到交换机,则会议电话会接收来自数据 VLAN 的 IP 地址。如果将 7960 IP 电话连接到与 7935 IP 会议电话相同的交换机端口,则 7960 会接收语音 VLAN 上的 IP 地址。
此问题是由于 7935 IP 会议电话的设计导致的。此会议电话没有用来连接 PC 的 10/100 端口,而其他 7900 系列 IP 电话有。语音 VLAN 或辅助 VLAN 的概念不直接应用于 7935 IP 会议电话。
有关详细说明和解决方案,请参阅 7935 IP 会议电话的最佳性能配置。
在将 MAB 用于对网络设备授予访问权限的交换机中,辅助(语音)VLAN 上允许使用所有通过 CDP 获知的 IP 电话 MAC 地址。但是,如果 IP 电话是单独的(没有任何 PC 连接到它)并且连接到配置了数据和语音 VLAN 的端口,则 IP 电话将被置于数据 VLAN 中。因此,当 IP 电话注册到 Cisco CallManager 时,会遇到问题。
要解决此问题,请使用语音 VLAN 的 ID 配置该端口的接入 VLAN,或将一台 PC 连接到 IP 电话。
如果已在交换机中启用了动态地址解析协议 (ARP) 检测 (DAI),则它会根据 DHCP 监听绑定数据库中的条目,来验证传入 ARP 请求和 ARP 响应中的 IP 到 MAC 地址绑定。请确保启用 DHCP 监听以允许具有动态分配的 IP 地址的 ARP 数据包。
另外,ARP 访问控制列表 (ACL) 优先于 DHCP 监听绑定数据库中的条目。只有当您使用 ip arp inspection filter vlan 全局配置命令配置了 ACL 时,交换机才会使用 ACL。交换机会先将 ARP 数据包与用户配置的 ARP ACL 进行比较。如果 ARP ACL 拒绝 ARP 数据包,则交换机也会拒绝该数据包,即使 DHCP 监听功能填充的数据库中存在有效的绑定,也是如此。