目錄

簡介

必要條件

需求

採用元件

慣例

語音VLAN概述

設定

網路圖表

組態

基於可信CoS值

使用非Cisco IP電話時

基於IP報頭中的可信DSCP值

驗證

相關資訊

簡介

本文件提供 Cisco Catalyst 2960/2950 系列交換器上語音 VLAN 的範例組態。具體而言，本文件說明如何設定 Cisco Catalyst 2950 交換器上的語音 VLAN 功能。

必要條件

需求

嘗試此組態之前，請確保符合以下要求：

- 具備Cisco Catalyst 2960/2950系列交換機上的配置基礎知識。

- 基本瞭解語音VLAN。

採用元件

本檔案中的資訊是根據Cisco Catalyst 2950交換器。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

慣例

請參閱思科技術提示慣例以瞭解更多有關文件慣例的資訊。

語音VLAN概述

語音VLAN功能允許交換器連線埠從IP電話傳輸具有第3層IP優先順序和第2層服務類別(CoS)值的語音流量。該交換機基於IEEE 802.1p CoS，支援服務品質(QoS)，使用分類和排程從交換機傳送網路流量。您可以將思科IP電話配置為使用IEEE 802.1p優先順序轉發流量，並將交換機配置為信任或覆蓋IP電話分配的流量優先順序。

您可以配置與IP電話連線的交換機埠，將一個VLAN用於語音流量，將另一個VLAN用於來自連線到IP電話接入埠的裝置的資料流量。您可以在交換器上設定存取連線埠以傳送Cisco Discovery Protocol(CDP)封包，以便指示連線的IP電話使用以下任何一種方法將語音流量傳送到交換器：

- 在用第2層CoS優先順序值標籤的語音VLAN中

- 在使用第2層CoS優先順序值標籤的存取VLAN中

- 在存取VLAN中，未標籤（無第2層CoS優先順序值）

交換機可以處理來自連線到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介面配置命令將埠的信任狀態配置為trust。

預設情況下，交換機埠會丟棄硬體中帶有標籤的幀。若要在交換器連線埠上接受標籤的訊框，應該在連線埠上設定以下命令之一：

- 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電話可在IEEE 802.1Q訊框中使用第2層CoS值傳送語音流量。Cisco IP電話還可以傳送未標籤的語音流量，或者使用自己的配置將語音流量傳送到交換機的接入VLAN。

使用switchport priority extend trust命令將信任狀態擴展到連線到IP電話的裝置(PC)。通過發出此命令，交換機將指示電話如何處理來自連線到Cisco IP電話接入埠的裝置的資料包。PC生成的資料包使用802.1q報頭中分配的CoS值。電話不應更改（信任）從PC到達電話埠的幀的優先順序。

您必須在IP電話所連線的交換機埠上啟用CDP。預設情況下，CDP在交換機介面上全域性啟用。CDP是交換器和Cisco IP電話之間使用的機制，用於設定Cisco IP電話與交換器連線埠的通訊。CDP是Cisco Systems專有技術，其他製造商的電話可能無法使用此方法來配置IP電話，使其與交換機的埠配置相匹配。

註：使用Command Lookup Tool(僅供已註冊客戶使用)可獲取本節中使用的命令的詳細資訊。

網路圖表

本檔案會使用以下網路設定：

此圖是Cisco Catalyst 2950交換器上語音VLAN設定的範例。交換機埠FastEthernet 0/6和0/8與Cisco IP電話連線，兩台IP電話的接入埠都連線到PC。

組態

本檔案會使用以下設定：

基於可信CoS值

在2950交換機中，FastEthernet 0/6埠為語音VLAN配置了VLAN 10，其中包含dot1p，用於為語音流量使用IEEE 802.1p優先順序標籤，並且為來自連線到Cisco IP電話接入埠的PC的資料流量配置了trust模式。這裡，Cisco IP電話通過CoS信任筆記型電腦或PC，資料流量使用本徵VLAN。此配置通常用於管理工作站、高優先順序使用者或高CoS值應用程式。

當Cisco電話使用交換機執行CDP時，信任邊界總是擴展到IP電話。也就是說，IP電話的資料包永遠不會從CoS 5更改為CoS預設值。這就是筆記型電腦或PC使用switchport priority extend trust命令的原因。它通過CDP傳送，以告知IP電話不要重寫高優先順序資料包。

FastEthernet 0/8埠配置了用於語音和資料流量的獨立VLAN。在本例中，VLAN 10用於語音流量，VLAN 20用於資料流量。此配置用於典型的Cisco IP電話，不信任筆記型電腦或PC。流量使用IEEE 802.1Q幀型別。

使用mls qos trust cos 命令，Catalyst交換機的埠將檢視乙太網報頭上的CoS值以對入口流量進行分類，並信任來自思科IP電話的標籤資料包的CoS值。預設情況下，乙太網埠不受信任，因此來自語音VLAN和資料VLAN的流量將不受信任。

使用priority-queue out命令，以便在嘗試退出埠時給予語音資料包行首許可權，防止抖動。spanning tree portfast 命令從生成樹協定中刪除介面，並且bpduguard 命令會在有人嘗試在拔出IP電話後將新交換機連線到網路時保護該網路。如果插入交換機，則埠會進入錯誤禁用狀態。這些通常新增到電話埠。

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

使用非Cisco IP電話時

如果您使用的非Cisco IP電話無法識別Cisco專有的CDP並自動設定中繼埠，則必須手動配置中繼。在本配置示例中，我們將VLAN限製為10和20，並阻止預設本徵VLAN 1或VLAN 0。VLAN 10用於語音流量，VLAN 20用於資料流。非Cisco 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

基於IP報頭中的可信DSCP值

這裡，我們使用受信任的DiffService代碼點(DSCP)值而不是CoS值，因為CoS提供了一種方法，通過檢視資料包的L2報頭來瞭解資料包的重要性。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 interfacesinterface-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

相關資訊

- Cisco Catalyst 2950系列交換器支援頁面

- Cisco Catalyst 2960系列交換器支援頁面

- 交換器產品支援

- LAN 交換技術支援

- 技術支援與文件 - Cisco Systems