Configuration optimisée d'un switch Cisco pour utilisation en VoIP avec des téléphones Aastra, Yealink, SNOM ou Polycom

Dans : Réseau Cisco

La voix sur IP (VoIP) et la téléphonie sur IP (ToIP) sont des technologies qui permettent de délivrer des communications vocales ou multimédias sur un réseau IP (LAN, WAN, Internet). Ce guide a pour but d’indiquer comment configurer un switch Cisco pour une utilisation optimisée pour la voix sur IP, avec détection du voice vlan et priorisation des flux par QoS.

La ToIP est largement démocratisée grâce à l'augmentation des débits disponibles et les nombreux bénéfices financiers et techniques qu'elle apporte. Il existe de nombreux constructeurs de téléphones proposant des équipements de ToIP. Nous conseillons les équipementiers qui ont adopté le protocole standard SIP.

Les configurations proposées ci-après ont été validées pour des téléphones Aastra, Yealink, SNOM et Polycom.

1. Différentes configurations physiques pour la voix sur IP

Il existe deux configurations physiques différentes selon le câblage de votre réseau. Il est important de connaître la configuration que vous souhaitez mettre en place ou avez déjà mise en place, car la configuration du switch Cisco se fait, elle aussi, différemment selon que l'ordinateur est connecté au téléphone, ou directement au switch, comme illustré sur les schémas ci-dessous.

La première architecture possible est organisée de manière à ce que le téléphone fonctionnant par voix sur IP ne soit pas connecté au même port que le reste du LAN :

Schéma de l'architecture réseau de type 1

Architecture 1 "two-leg" : le PC est connecté directement au switch

La deuxième architecture est organisée de manière à ce que le PC (ou un autre équipement informatique) se trouve derrière le téléphone, qui lui est directement connecté au switch :

Schéma de l'architecture réseau de type 2

Architecture 2 "one-leg" : le PC est connecté au téléphone, le téléphone est connecté au switch

2. Configuration de VLANs pour la voix sur IP et les autres données

Avant de commencer, vous devez vous connecter en console, réaliser une connexion Telnet ou une connexion SSH pour accéder à la console de l’équipement Cisco.

Il faut alors créer deux VLANs distincts et leur attribuer un numéro. Le premier sera dédié à la voix sur IP, et le deuxième aux données (data).

Pour ce faire, passez d’abord en mode configuration grâce aux commandes :

enable
configure terminal

puis utilisez la commande suivante pour chaque VLAN à créer :

vlan <numéro_vlan>

Vous passez ainsi dans le mode config-vlan du vlan que vous venez de créer. Il est alors conseillé d’attribuer un nom à chacun des VLAN. Cela permet de mieux les discerner. Entrez donc la commande suivante :

name Voice //pour le VLAN dédié à la voix sur IP
name Data //pour le VLAN dédié aux autres données

Pour quitter le mode config-vlan, tapez ensuite la commande :

exit

Recommencez ces quelques étapes pour le deuxième VLAN à configurer.

Dans notre exemple, nous avons créé le VLAN 10 pour la voix sur IP et le VLAN 20 pour les autres données.

c2950>enable
Password:
c2950#conf t
Enter configuration commands, one per line. End with CNTL/Z.
c2950(config)#vlan 10
c2950(config-vlan)#name Voice
c2950(config-vlan)#exit
c2950(config)#vlan 20
c2950(config-vlan)#name Data
c2950(config-vlan)#exit
c2950(config)# 

3. Attribution d’une adresse IP aux VLANs du switch Cisco (facultatif)

Vous pouvez attribuer au switch une adresse IP dans les VLAN. Si votre switch ne sert pas comme routeur, ce n'est pas indispensable, et permet surtout de faire des tests de connectivité et d'administrer le switch à distance depuis n'importe quel VLAN. Pour ajouter une IP, vaut devez entrer en mode config-if pour chaque interface de VLAN, avec la commande suivante :

interface vlan <numéro_vlan>

Vous devez alors leur assigner une adresse IP et un masque de sous-réseau. Pour ce faire, entrez la commande suivante :

ip address <adresse_ip> <masque_sous_reseau>

Pour que l’interface soit active, pensez à entrer la commande :

no shutdown

Quittez ensuite le mode config-if en entrant la commande :

exit

Recommencez ces quelques étapes pour le deuxième VLAN à configurer.

Attention Pensez à attribuer une adresse IP en accord avec celles déjà configurées dans votre LAN.

Dans notre exemple, nous avons attribué l’adresse 192.168.246.1/24 au VLAN pour la voix sur IP et l’adresse 192.168.247.1/24 au VLAN DATA.

c2950(config)#interface vlan 10
c2950(config-if)#ip address 192.168.246.1 255.255.255.0
c2950(config-if)#no shutdown
c2950(config-if)#
00:27:24: %LINK-3-UPDOWN: Interface Vlan10, changed state to up
c2950(config-if)#exit
c2950(config)#interface vlan 20
c2950(config-if)#ip address 192.168.247.1 255.255.255.0
c2950(config-if)#no shutdown
c2950(config-if)#
00:27:59: %LINK-3-UPDOWN: Interface Vlan20, changed state to up
c2950(config-if)#exit
c2950(config)# 

4. Configuration des ports du switch Cisco pour l’utilisation des VLANs

La configuration des interfaces du switch Cisco pour l’utilisation des VLANs se fait de manière différente selon le type d’architecture que vous avez choisie.

Configuration pour le premier type d’architecture en "two-leg"

Schéma de l'architecture réseau de type 1

Si l’architecture mise en place dans votre LAN est telle qu'illustrée ci-dessus, vous devez appliquer une configuration différente à chaque port du switch, selon qu'il soit connecté à un téléphone ou à un autre équipement.

Pour ce faire, vous devez passer en mode config-if du premier port que vous souhaitez configurer grâce à la commande suivante :

interface <nom_port>

Les ports sont en mode access (sans voice vlan), c’est-à-dire un port qui permet de transmettre les données d’un seul VLAN. C'est la configuration par défaut. Si elle a été changé. Vous pouvez le faire au moyen de la commande suivante :

switchport mode access

Pour le port qui transmettra les autres données (vlan DATA), la commande à entrer est la suivante :

switchport access vlan <numero_vlan>

Dans notre exemple, c'est l’interface fa0/1 qui transmet la voix sur IP et l’interface fa0/2 qui transmet les autres données.

c2950(config)#interface fa0/1
c2950(config-if)#switchport mode access
c2950(config-if)#switchport voice vlan 10
c2950(config-if)#exit
c2950(config)#interface fa0/2
c2950(config-if)#switchport mode access
c2950(config-if)#switch port voice vlan 20
c2950(config-if)#exit
c2950(config-if)# 

À noter que la configuration par défaut d'un port sur un switch est

switchport mode access
switchport access vlan 1

Si vous n'avez pas changé votre VLAN par défaut (vlan 1), vous pouvez donc vous contenter de configurer uniquement les ports connectés aux téléphones avec les commandes :

switchport mode access
switchport access vlan 10

Configuration pour le deuxième type d’architecture en "one-leg", avec détection automatique de VLAN Voix (recommandé)

Schéma de l'architecture réseau de type 2

Si l’architecture mise en place dans votre LAN est telle qu'illustrée ci-dessus, vous pouvez appliquer une configuration unique sur la totalité des ports de votre switch. C'est cette configuration que nous vous conseillons, pour les raisons suivantes :

  • Vous faîtes des économies de câblage
  • Vous utilisez une seule configuration pour tous vos ports
  • Il n'est pas nécessaire de repérer les prises servant à connecter des téléphones, et celles servant à connecter des PC, imprimantes, etc...

Dans un 1er temps, il est nécessaire d'activer la détection de VLAN Voix, afin de permettre aux téléphones de se mettre automatiquement dans le bon VLAN. Nous utilisons pour cela le protocole LLDP. Il faut l'activer avec les commandes ci-dessous, car il n'est pas activé par défaut sur les switchs Cisco.

lldp run

NB Le lldp est disponible à partir de la version IOS 12.2(55). Si vous avez une erreur de type :

% Invalid input detected at '^' marker.

en retour de la commande "lldp run", vous devez mettre à jour votre IOS.

Entrez ensuite en mode de configuration d'interface et appliquer la configuration suivante de manière à activer le voice vlan.

c2950(config)#interface <nom_interface>
c2950(config-if)#switchport mode access
c2950(config-if)#switchport access vlan 1
c2950(config-if)#switchport voice vlan 10
c2950(config)# 

La commande "switchport voice vlan 10" a pour effet de :

  • Activer les annonces LLDP de présence d'un VLAN Voix avec le vlanid 10. Ces annonces sont prises en compte par les téléphones, et ignorées par les PC et les équipements non toip. De cette manière, les équipements sont automatiquement affectés au bon VLAN.
  • Permettre l'émission et la transmission des trames sur le VLAN 10 pour ce port, à la manière d'un mode trunk.
  • De prioriser les flux du VLAN 10 par rapport à ceux du VLAN 1
  • Activer le spanning-tree portfast sur l'interface, afin de transmettre immédiatement les trames sur le port sans attendre l'éventuel calcul de topologie STP.

Configuration pour le deuxième type d’architecture en "one-leg", sans détection automatique de VLAN Voix

Si vos switchs ou vos téléphones IP ne supportent pas le protocole LLDP, la détection automatique du voice vlan ne fonctionnera pas. Dans ce cas, la solution alternative est de configurer "manuellement" vos téléphones pour utiliser le vlan 10, au niveau de votre IPBX, ou de l'interface Web de configuration.

La configuration des ports sur le switch est la même que pour le cas avec détection automatique de VLAN Voix.

5. Gestion de la QoS

En environnement non Cisco, il n'est pas conseillé d'utiliser les mécanismes de QoS Cisco automatique. Pour cela, il est nécessaire d'utiliser les commandes

no mls qos
no auto qos srnd4

Remarque Cette commande n'est pas la même pour tous les modèles de switchs.

Il faut ensuite désactiver la QoS pour tous les ports configurés précédemment. Pour cela, vous pouvez utiliser la configuration de masse avec la commande (exemple)

interface range interface fa0/1-24

puis mettre en place la QoS en utilisant la commande :

no auto qos voip trust

Réalisez cette manipulation pour tous les ports du switch que vous souhaitez configurer.

c2950(config)#no mls qos
c2950(config)#no auto qos srnd4
c2950(config)#interface fa0/1
c2950(config-if)#no auto qos voip trust
c2950(config-if)#exit
c2950(config)#interface fa0/2
c2950(config-if)#no auto qos voip trust
c2950(config-if)#exit
c2950(config)#interface fa0/5
c2950(config-if)#no auto qos voip trust
c2950(config-if)#exit
c2950(config)# 

6. Vérification de la prise en compte de la configuration et enregistrement

Pour vérifier que la configuration de votre switch a bien été prise en compte, vous devez être en mode exec. Pour ce faire, il suffit d’entrer au clavier la commande :

end

Vous pouvez voir toutes les modifications apportées à votre switch en entrant la commande suivante :

show running-config

c2950#show running-config
Building configuration...

Current configuration : 2196 bytes
!
version 12.1
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
--More-- 

!
interface FastEthernet0/1
switchport mode access
switchport voice vlan 10
no mls qos trust cos
no auto qos srnd4
no auto qos voip trust
!
interface FastEthernet0/2
switchport mode access
switch port voice vlan 20
no mls qos trust cos
no auto qos srnd4
no auto qos voip trust
!
--More-- 

!
interface FastEthernet0/5
switchport access vlan 10
switchport trunk native vlan 20
switchport mode trunk
no mls qos trust cos
no auto qos srnd4
no auto qos voip trust
!
--More-- 

!
interface Vlan10
ip address 192.168.246.1 255.255.255.0
no ip route-cache
!
interface Vlan20
ip address 192.168.247.1 255.255.255.0
no ip cache-route
!
--More-- 

Vous pouvez maintenant enregistrer les modifications en entrant simplement “copy running-config startup-config” ou “copy run start” et en appuyant deux fois sur Entrée comme ci-dessous.

c2950#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]
c2950# 

En résumé, voici toutes les commandes à utiliser pour configurer un switch cisco en voix sur IP

>enable
#configure terminal
(config)#vlan <numéro_vlan1> //VLAN par lequel passent la voix sur IP
(config-vlan)#name Voice
(config-vlan)#exit
(config)#vlan <numéro_vlan2> //VLAN par lequel passent les autres données
(config-vlan)#name Data
(config-vlan)#exit
!---A faire pour les deux VLANs
(config)#interface vlan <numéro_vlan>
(config-if)#ip address <adresse_ip> <masque_sous_reseau>
(config-if)#no shutdown
(config-if)#exit
!--- Pour une architecture de type "two-leg"
(config)#interface <nom_port>
(config-if)#swicthport mode access
(config-if)#switchport voice vlan <numero_vlan> //Pour le port où est connecté le téléphone sur IP
(config-if)#switchport access vlan <numero_vlan> //Pour le port où est connecté le reste du LAN
!--- Pour une architecture de type "one-leg"
(config)#lldp run
(config)#interface <nom_port>
(config-if)#switchport mode trunk
(config-if)#switchport mode access
(config-if)#switchport access vlan 1
(config-if)#switchport voice vlan 10
(config-if)#exit
!-- Pour les deux types d’architecture possibles
(config)#no mls qos
c2950(config)#no auto qos srnd4
(config)#interface <nom_interface> //A faire pour toutes les interfaces
(config-if)#no auto qos voip trust
(config-if)#end
#show running-config
#copy running-config startup-config

Commentaires

Commenter cet article