Switching : commande « switchport host »

data_sheet_c78-530976-1

Parmi la multitude de commandes qui existent dans l’IOS, certaines sont mises à notre disposition pour nous faire gagner du temps. Qui l’eut cru ?

L’une d’entre-elle permet rapidement d’appliquer quelques bonnes pratiques en matières de configuration d’un port d’accès sur un switch : « switchport host ». Mais que fait réellement cette commande ? Ou l’appliquer ? … C’est ce que nous allons voir ici.

Petit rappel…

On appelle port d’accès un port auquel sera connecté un PC, un serveur, une imprimante, … en gros, tout sauf un équipement d’infrastructure réseau (switch, routeur…).

Un port d’accès n’est donc pas destiné à devenir un trunk ou encore un etherchannel. De plus si un PC y est connecté il peut être nécessaire (voire même conseillé) d’optimiser le fonctionnement de Spanning-Tree afin de permettra à la machine de rapidement communiquer… Ce qui revient à forcer le switch à faire passer le port de l’état « Blocking » à l’état « Forwarding » sans passer par les étapes intermédiaires de « Listening » et « Learning » nécessaires à la résolution d’une topologie Spanning-Tree. C’est ce que l’on fait en activant le « Portfast » sur une interface d’un switch.

Que fait la commande « switchport host » et où la configurer ?

La commande « switchport host » a trois effets:

  • Forcer le mode du port en accès (switchport mode access)
  • Désactiver les channel-groups (empêche la formation d’un etherchannel)
  • Active la fonction portfast (spanning-tree portfast).

Cette commande est à appliquer en configuration d’interface d’un switch:

Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport host

On peut également annuler ses effets…

Switch(config-if)#no switchport host

Etat initial du port…

Voici la configuration par défaut de l’interface fastEthernet 0/1 sur un WS-2960-24TT-L…

Switch#show running-config interface fastEthernet 0/1
Building configuration...
Current configuration : 33 bytes
!
interface FastEthernet0/1
end
Switch#

Voici l’état initial de la même interface …

Switch#show interfaces fastEthernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: dynamic auto
Operational Mode: down
Administrative Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
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 associations: none
Administrative private-vlan trunk mappings: 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
Switch#

Par défaut l’interface est en mode « dynamic auto » ce qui permettrait de former dynamiquement un trunk en y connectant un équipement qui soit le forcerait, soit le négocierait activement… C’est un danger potentiel… il est possible d’avoir accès par l’intermédiaire de se trunk à tous les vlans qui y transiteraient.

Configuration par la commande « switchport host »

Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport host
switchport mode will be set to access
spanning-tree portfast will be enabled
channel group will be disabled

Switch(config-if)#

Voyons l’effet dans la running-config…

Switch#show running-config interface fastEthernet 0/1
Building configuration...

Current configuration : 81 bytes
!
interface FastEthernet0/1
switchport mode access
spanning-tree portfast
end

Switch#

Voyons l’état de fonctionnement de l’interface …

Switch#show interfaces fastEthernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: static access
Operational Mode: down
Administrative Trunking Encapsulation: dot1q
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
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 associations: none
Administrative private-vlan trunk mappings: 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
Switch#

Le port est maintenant en mode « static access », ce qui signifie qu’il ne pourra plus négocier de trunk. Le portfast est activé, ce qui permet à l’interface d’immédiatement traiter les trames entrantes et toute configuration archichancelier qui aurait existé dessus a été supprimée (dans le cas présent il n’y en avait pas).

Remarques

Cette commande, bien que rapide et pratique n’est à elle seule pas suffisante en matière de bonne configuration d’interface. Elle permet néanmoins de gagner un peu de temps.

Il est également nécessaire de veiller à ,ne pas l’utiliser sur un port auquel on connecterait un switch … sans quoi, en raison de l’activation du portfast, une boucle pourrait apparaître dans le réseau de switch et être la source de problèmes comme les tempêtes de broadcasts ou encore l’instabilité des tables d’adresses MAC.

6 Comments on “Switching : commande « switchport host »

  1. En effet c’est une très bonne idée. Mais comme l’a deviné bobby, j’ai pas mal de choses sur le feu pour le moment et d’ailleurs pas spécialement côté networking.
    J’ai quelques articles sur le feu aussi, mais j’essaie de garder un minimum de qualité dans le contenu, et préfère donc je rien sortir dans la hâte.

    En tout cas merci pour vos feedbacks.

  2. Je rejoins David, ce type d’article serait très intéréssant. Pourquoi ne pas faire une session documentaire concernant les best pratices sur les équipements (Switch, router, etc…).

    Steve est assez busy, j’espère que cette idée pourra être envisagé.

  3. C’est dangereux en effet.. j’ai moi même fait une boucle sans le vouloir :s
    Maintenant, j’ajoute en global conf sur tout mes switchs « spanning-tree portfast bpduguard » (et bpdufilter).

    Il serai d’ailleurs intéressant de nous faire un bel article sur la configuration « complète » (et ‘idéale », si l’on peux dire) d’un port access (désactiver cdp, stormcontrol, port-security, etc, ….). Je vois beaucoup d’entreprises (et pas des petites !!) où c’est souvent négligé :s

  4. Merci enfin la commande que chercher.
    Parce que je ne comprenais pas pourquoi mes ports m’étaient autant de temps à se remettre en état UP.
    Pourtant j’avais appliqué quelque commande du type switchport nonegotiate ou encore spanning-tree portfast sur mes ports d’aces et le temps de convergence était toujours long.