900 lines
25 KiB
Markdown
900 lines
25 KiB
Markdown
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
||
|
||
# Howto switchs Cisco
|
||
|
||
Nous utilisons principalement des switchs Cisco Catalyst 2950/2960/2970/3750 et cette documentation sera orientée pour ces modèles.
|
||
|
||
Ressources diverses :
|
||
|
||
* [Liste des firmwares IOS](http://www.cisco.com/en/US/products/ps10144/prod_release_notes_list.html) ;
|
||
* [Centre de téléchargement cisco](http://www.cisco.com/cisco/software/navigator.html?mdfid=278875285&flowid=7448) ;
|
||
* [Manuel Catalyst 2970 12.1(14)EA1](http://www.cisco.com/en/US/docs/switches/lan/catalyst2970/software/release/12.1_14_ea1/configuration/guide/2970scg.html) ;
|
||
* [Manuel Catalyst 2960/2960-S 12.2(55)SE](http://www.cisco.com/en/US/docs/switches/lan/catalyst2960/software/release/12.2_55_se/configuration/guide/scg_2960.html) ;
|
||
* [Data Sheet Catalyst 3750](http://www.cisco.com/en/US/prod/collateral/switches/ps5718/ps5023/product_data_sheet0900aecd80371991.html) ;
|
||
* [Troubleshooting](http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a008015bfd6.shtml) ;
|
||
* [LED 2960S](http://travaux.evolix.net/2960S_LED.html).
|
||
|
||
Stackable ou non-Stackable ?[[BR]]
|
||
Les switchs _-S Series_ permettent de stacker plusieurs switchs : c'est-à-dire que plusieurs switchs seront vus comme un seul,
|
||
offrant ainsi des facilités en terme d'administration (mais pas forcément en terme de sécurité). Cela se fait par exemple avec
|
||
plusieurs switch 2960-S et des modules Cisco FlexStack : ces modules s'ajoutent à l'arrière de chaque switch, il suffit ensuite
|
||
de les relier avec des câbles Cisco FlexStack.[[BR]]
|
||
Astuce : un switch stackable (S Series) est parfois moins cher qu'un non-stackable... et il peut pourtant très bien être utilisé tout seul !
|
||
|
||
## Administration de switchs Cisco Catalyst
|
||
|
||
### Configuration initiale
|
||
|
||
#### Avec un port série (old-school)
|
||
|
||
* Raccorder le port d'administration du switch au port série d'un poste Linux à l'aide du câble fourni (couleur bleu ciel)
|
||
* Installer `minicom` et créer le fichier de configuration `/etc/minicom/minirc.cisco` avec un contenu du type :
|
||
|
||
~~~
|
||
pu port /dev/ttyS0
|
||
pu baudrate 9600
|
||
pu bits 8
|
||
pu parity N
|
||
pu stopbits 1
|
||
pu rtscts No
|
||
|
||
~~~
|
||
_Note : Avec un adaptateur USB, le device est /dev/ttyUSB0 (ou autre numéro)._
|
||
|
||
* Exécuter la commande `minicom cisco` et observer l'initialisation du switch. A la question `Would you like to enter the initial configuration dialog?`, répondre `no`
|
||
* Passer en mode administrateur avec la commande `enable`, et afficher la configuration par défaut avec `show running-config`
|
||
|
||
#### Avec un câble Ethernet
|
||
|
||
Pour un switch récent, une fois allumé pour la 1ère fois, on appuye 3 à 4 secondes sur le bouton _MODE_ ce qui le fait passer en mode _Express Setup_.
|
||
Note : cela ne fonctionne que si le switch n'a jamais été configuré.
|
||
|
||
On branche un câble sur n'importe quel port et on lance un client DHCP sur un ordinateur :
|
||
|
||
~~~
|
||
# dhclient -d eth0
|
||
Internet Systems Consortium DHCP Client 4.1.1-P1
|
||
Copyright 2004-2010 Internet Systems Consortium.
|
||
All rights reserved.
|
||
For info, please visit <https://www.isc.org/software/dhcp/>
|
||
|
||
Listening on LPF/eth0/f0:de:f1:12:c9:d2
|
||
Sending on LPF/eth0/f0:de:f1:12:c9:d2
|
||
Sending on Socket/fallback
|
||
DHCPREQUEST on eth0 to 255.255.255.255 port 67
|
||
DHCPNAK from 10.0.2.3
|
||
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
|
||
DHCPOFFER from 10.0.2.3
|
||
DHCPREQUEST on eth0 to 255.255.255.255 port 67
|
||
DHCPACK from 10.0.2.3
|
||
bound to 10.0.2.2 -- renewal in 271 seconds.
|
||
~~~
|
||
|
||
On obtient ainsi l'adresse IP actuelle du switch : 10.0.2.3 et l'on peut se connecter en telnet sans mot de passe, ou en HTTP avec cisco/cisco.
|
||
Le plus simple est a priori de le faire en HTTP où l'on renseigne une configuration IP de base et les mots de passe, et l'on sort du mode
|
||
_Express Setup_ une fois terminé.
|
||
|
||
### Commandes de base
|
||
|
||
Commandes de bases sous IOS :
|
||
|
||
~~~
|
||
Switch# show version
|
||
Switch# show mem
|
||
Switch# show processes
|
||
Switch# show process cpu
|
||
Switch# show flash
|
||
Switch# show clock
|
||
Switch# show history
|
||
Switch# show logging
|
||
Switch# show inventory
|
||
Switch# show interfaces
|
||
Switch# show interfaces status
|
||
Switch# show interfaces st
|
||
Switch# show interfaces counter
|
||
Switch# show interfaces counter errors
|
||
Switch# show interfaces Gi0/11
|
||
Switch# show interfaces Gi0/11 status
|
||
Switch# show interfaces Gi0/11 counter
|
||
Switch# show interfaces Gi0/11 counter errors
|
||
Switch# show interfaces trunk
|
||
Switch# show interfaces description
|
||
~~~
|
||
|
||
#### Gestion de base de la configuration
|
||
|
||
~~~
|
||
Configuration en Flash
|
||
Switch# show configuration
|
||
Configuration actuelle
|
||
Switch# show running-config
|
||
Configuration actuelle d'une interface particulière
|
||
Switch# show running-config interface GigabitEthernet1/0/1
|
||
Ecrire la configuration actuelle en Flash
|
||
Switch# write
|
||
~~~
|
||
|
||
#### Changer le nom d'hôte
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Switch(config)# hostname sw-test
|
||
sw-test(config)# end
|
||
~~~
|
||
|
||
#### Changer le nom de domaine
|
||
|
||
~~~
|
||
Switch# conf t
|
||
Switch(config)# ip domain-name test.com
|
||
Switch(config)# end
|
||
~~~
|
||
|
||
#### Chiffrer les mots de passe
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Switch(config)# service password-encryption
|
||
~~~
|
||
|
||
|
||
#### Mise en place d'un mot de passe "enable"
|
||
|
||
Attention : Apparaitra en clair si password-encryption n'est pas activé !
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Switch(config)# enable password le_mot_de_passe
|
||
Switch(config)# end
|
||
~~~
|
||
|
||
Note : si besoin de désactiver un ancien mot de passe, il peut être nécessaire de faire `no enable secret`
|
||
|
||
#### Mise en place d'un mot de passe telnet
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Switch(config)# line vty 0 4
|
||
Switch(config-line)# password le_mot_de_passe
|
||
Switch(config-line)# login
|
||
Switch(config-line)# end
|
||
~~~
|
||
|
||
#### Mise en place d'un mot de passe console
|
||
|
||
Note : ne fonctionne pas a priori...
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Switch(config)# line vty 5 15
|
||
Switch(config-line)# password le_mot_de_passe
|
||
Switch(config-line)# login
|
||
Switch(config-line)# end
|
||
~~~
|
||
|
||
#### Synchronisation NTP
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Switch(config)# ntp server 31.170.8.123
|
||
Switch(config)# end
|
||
Switch# show ntp status
|
||
Switch# show ntp associations
|
||
~~~
|
||
|
||
#### Infos/gestion d'une interface
|
||
|
||
|
||
Voir l'état et la vitesse de tous les ports :
|
||
|
||
~~~
|
||
Switch# show interfaces status
|
||
~~~
|
||
|
||
Statut d'une interface :
|
||
|
||
~~~
|
||
Switch# show interfaces GigabitEthernet1/0/48
|
||
~~~
|
||
|
||
|
||
Infos détaillées sur la config d'un port :
|
||
|
||
~~~
|
||
Switch# show interfaces GigabitEthernet1/0/48 switchport
|
||
~~~
|
||
|
||
Désactiver/activer une interface :
|
||
|
||
~~~
|
||
Switch# conf t
|
||
Switch# interface GigabitEthernet1/0/48
|
||
Switch# shutdown
|
||
Switch# no shutdown
|
||
Switch# exit
|
||
~~~
|
||
|
||
Forcer la vitesse du port :
|
||
|
||
~~~
|
||
Switch# conf t
|
||
Switch# interface GigabitEthernet1/0/48
|
||
Switch# speed {10,100,1000,auto}
|
||
Switch# exit
|
||
~~~
|
||
|
||
Affecter un nom / une description à l'interface :
|
||
|
||
~~~
|
||
Switch# conf t
|
||
Switch# interface GigabitEthernet1/0/48
|
||
Switch# description Machine XYZ
|
||
~~~
|
||
|
||
Gestion du MTU pour toutes les interfaces Gigabits :
|
||
|
||
~~~
|
||
system mtu jumbo 9000
|
||
~~~
|
||
|
||
#### Gérer les fichiers/répertoires
|
||
|
||
~~~
|
||
Switch# cd flash:
|
||
Switch# cd rep
|
||
Switch# dir
|
||
Switch# copy foo bar
|
||
Switch# delete bar
|
||
Switch# mkdir rep
|
||
Switch# rm rep
|
||
Switch# more info.txt
|
||
Switch# verify image.bin
|
||
~~~
|
||
|
||
Commandes à manipuler avec précaution :
|
||
|
||
~~~
|
||
Switch# fsck
|
||
Switch# erase
|
||
Switch# format
|
||
~~~
|
||
|
||
#### Reboot complet du switch
|
||
|
||
~~~
|
||
Switch# reload
|
||
~~~
|
||
|
||
#### Reset complet du switch
|
||
|
||
##### Avec le bouton _MODE_
|
||
|
||
Si l'on appuye plus de 8 secondes sur le bouton _MODE_, le switch redémarre et sera remis en configuration d'usine !
|
||
|
||
##### Autre méthode sans mot de passe
|
||
|
||
Sur certains modèles, cette méthode ne fonctionne pas. Après être raccorder au switch, il faut le redémarrer en maintenant le bouton MODE enfoncé.
|
||
|
||
Ensuite, initialiser le file system flash :
|
||
|
||
~~~
|
||
switch: flash_init
|
||
switch: load_helper
|
||
~~~
|
||
|
||
Si on veut on peut sauvegarder, ou la supprimer l'ancienne configuration :
|
||
|
||
~~~
|
||
switch: dir_flash:
|
||
switch: rename flash:config.text flash:config.old
|
||
~~~
|
||
|
||
Enfin on boot :
|
||
|
||
~~~
|
||
switch: boot
|
||
~~~
|
||
|
||
|
||
### Sauvegardes
|
||
|
||
Voir la liste des protocoles disponibles :
|
||
|
||
~~~
|
||
Switch# show file systems
|
||
File Systems:
|
||
|
||
Size(b) Free(b) Type Flags Prefixes
|
||
- - opaque ro bs:
|
||
* 57931776 42733568 flash rw flash: flash1:
|
||
- - opaque rw system:
|
||
- - opaque rw tmpsys:
|
||
524288 518420 nvram rw nvram:
|
||
- - opaque rw null:
|
||
- - opaque ro tar:
|
||
- - network rw tftp:
|
||
- - opaque ro xmodem:
|
||
- - opaque ro ymodem:
|
||
- - network rw rcp:
|
||
- - network rw <http:>
|
||
- - network rw ftp:
|
||
- - network rw scp:
|
||
- - network rw <https:>
|
||
- - opaque ro cns:
|
||
Switch# show flash
|
||
|
||
Directory of flash:/
|
||
|
||
581 -rwx 5 Mar 21 2012 19:19:25 +01:00 private-config.text
|
||
582 -rwx 3096 Mar 21 2012 19:19:25 +01:00 multiple-fs
|
||
583 -rwx 2739 Mar 21 2012 19:19:25 +01:00 config.text
|
||
2 drwx 512 Mar 1 1993 01:14:39 +01:00 c2960s-universalk9-mz.122-55.SE3
|
||
|
||
57931776 bytes total (42733568 bytes free)
|
||
~~~
|
||
|
||
|
||
Copier la configuration actuelle dans un fichier nommé _sauvegarde_ :
|
||
|
||
~~~
|
||
Switch# copy running-config sauvegarde
|
||
Destination filename [sauvegarde]?
|
||
|
||
2739 bytes copied in 2.076 secs (1319 bytes/sec)
|
||
|
||
Switch# show flash
|
||
|
||
Directory of flash:/
|
||
|
||
580 -rwx 2739 Mar 21 2012 19:29:32 +01:00 sauvegarde
|
||
581 -rwx 5 Mar 21 2012 19:19:25 +01:00 private-config.text
|
||
582 -rwx 3096 Mar 21 2012 19:19:25 +01:00 multiple-fs
|
||
583 -rwx 2739 Mar 21 2012 19:19:25 +01:00 config.text
|
||
2 drwx 512 Mar 1 1993 01:14:39 +01:00 c2960s-universalk9-mz.122-55.SE3
|
||
|
||
57931776 bytes total (42729984 bytes free)
|
||
|
||
|
||
Switch# delete sauvegarde
|
||
Delete filename [sauvegarde]?
|
||
Delete flash:/sauvegarde? [confirm]
|
||
~~~
|
||
|
||
On peut aussi envoyer la configuration sur un serveur distant :
|
||
|
||
~~~
|
||
Switch# copy running-config ftp://<IP>/rep/sauvegarde_29fevrier2012.txt
|
||
~~~
|
||
|
||
De même, on peut sauvegarder le firmware du switch sur un serveur distant :
|
||
|
||
~~~
|
||
Switch# cd flash:/
|
||
Switch# cd c2960s-universalk9-mz.122-55.SE3
|
||
Switch# dir
|
||
|
||
Directory of flash:/c2960s-universalk9-mz.122-55.SE3/
|
||
|
||
3 drwx 5632 Mar 1 1993 01:08:54 +01:00 html
|
||
578 -rwx 10907578 Mar 1 1993 01:10:24 +01:00 c2960s-universalk9-mz.122-55.SE3.bin
|
||
579 -rwx 484 Mar 1 1993 01:13:44 +01:00 info
|
||
|
||
Switch# copy flash:/c2960s-universalk9-mz.122-55.SE3/c2960s-universalk9-mz.122-55.SE3.bin ftp://<IP>/rep/sauvegarde_firmware.bin
|
||
~~~
|
||
|
||
Pour sauvegarder la liste des VLANs, c'est le fichier vlan.dat qui nous intéresse :
|
||
|
||
~~~
|
||
Switch# copy flash:/vlan.dat ftp://<IP>/rep/sauvegarde_vlan.dat
|
||
~~~
|
||
|
||
### Mettre à jour IOS
|
||
|
||
Si il y a assez de place sur la mémoire flash (`dir flash:`), copier le nouveau firmware dessus (`copy ftp://<IP>/fichier.bin flash:`), sinon effacer le contenu de la flash (`erase flash:`), puis placer le nouveau firmware.
|
||
Ensuite, il suffit de spécifier de charger le nouveau firmware.
|
||
|
||
~~~
|
||
enable
|
||
conf t
|
||
system boot flash:new_firmware.bin
|
||
reload
|
||
~~~
|
||
|
||
### Gestion des VLANs
|
||
|
||
#### Affecter une adresse IP à un VLAN
|
||
|
||
~~~
|
||
configure terminal
|
||
interface Vlan 1
|
||
ip address 192.168.0.10 255.255.255.0
|
||
~~~
|
||
|
||
#### Créer un VLAN
|
||
|
||
Dans cet exemple, ce sera le VLAN d'ID 2 nommé "bob".
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Switch(config)# vlan 2
|
||
Switch(config-vlan)# name bob
|
||
Switch(config-vlan)# end
|
||
~~~
|
||
|
||
#### Supprimer un VLAN
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Switch(config)# no vlan 2
|
||
Switch(config)# end
|
||
~~~
|
||
|
||
#### Affecter des interfaces (ports) à un VLAN
|
||
|
||
Dans cet exemple on affecte l'interface `GigabitEthernet 0/13` au VLAN 2
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Enter configuration commands, one per line. End with CNTL/Z.
|
||
Switch(config)# interface gigabitethernet0/13
|
||
Switch(config-if)# switchport mode access
|
||
Switch(config-if)# switchport access vlan 2
|
||
Switch(config-if)# end
|
||
~~~
|
||
|
||
On peut affecter un range de ports à un VLAN :
|
||
|
||
~~~
|
||
Switch# conf t
|
||
Switch(config)#interface range GigabitEthernet1/0/1-24
|
||
Switch(config-if-range)#switchport mode access
|
||
Switch(config-if-range)#switchport access vlan 13
|
||
Switch(config-if-range)#exit
|
||
~~~
|
||
|
||
#### Voir la configuration des VLAN
|
||
|
||
##### D'un VLAN en particulier
|
||
|
||
~~~
|
||
Switch# show vlan <ID>
|
||
Switch# show interfaces vlan <ID>
|
||
~~~
|
||
|
||
##### De tous les VLAN
|
||
|
||
Voir un résumé de la configuration :
|
||
|
||
~~~
|
||
Switch# show vlan brief
|
||
~~~
|
||
|
||
Voir la configuration de tous les VLAN :
|
||
|
||
~~~
|
||
Switch# show vlan
|
||
~~~
|
||
|
||
#### Faire un port trunk
|
||
|
||
Dans cet exemple l'interface _trunké_ est l'interface `GigabitEthernet0/24`
|
||
|
||
~~~
|
||
Switch# configure terminal
|
||
Enter configuration commandsss, one per line. End with CNTL/Z.
|
||
Switch(config)# interface gigabitethernet0/24
|
||
Switch(config-if)# switchport trunk encapsulation dot1q
|
||
Switch(config-if)# switchport mode trunk
|
||
Switch(config-if)# end
|
||
~~~
|
||
|
||
Sur les 2960, le switch ne supporte que le dot1q. On aura juste à basculer le port en mode trunk :
|
||
|
||
~~~
|
||
# switchport mode trunk
|
||
~~~
|
||
|
||
Il est possible de spécifier le ou les vlans transportés par le trunk :
|
||
|
||
~~~
|
||
# switchport trunk allowed vlan 11,13
|
||
~~~
|
||
|
||
Astuce : pour ajouter un VLAN sur un trunk sans reprendre toute la liste de ceux déjà autorisés on peut utiliser la syntaxe :
|
||
|
||
~~~
|
||
# switchport trunk allowed vlan add 42
|
||
~~~
|
||
|
||
Une façon de contrôler si le trunk est bien mis en place des 2 côté est de consulter la sortie de la commande "show vlan brief". Si le port est toujours dans le vlan 1, c'est que le trunk n'est pas opérationnel (interface non montée, ou port distant non configuré en trunk). Si tout fonctionne bien, on ne doit le voir dans aucun vlan, mais on le verra en trunk dans un "show interfaces status".
|
||
|
||
Pour afficher les VLAN autorisés sur un trunk :
|
||
|
||
~~~
|
||
# show interfaces Gi1/0/50 trunk
|
||
~~~
|
||
|
||
ATTENTION : si l'on configure un port trunk, il est indispensable de créer le VLAN sur le switch, sinon cela ne marche pas !
|
||
|
||
### Administration à distance
|
||
|
||
#### Par HTTP/HTTPS
|
||
|
||
"Les interfaces web, c'est pour les lusers" :
|
||
|
||
~~~
|
||
Switch# conf t
|
||
Enter configuration commands, one per line. End with CNTL/Z.
|
||
Switch(config)# no ip http secure-server
|
||
Switch(config)# no ip http server
|
||
~~~
|
||
|
||
#### Par SSH
|
||
|
||
Activation et ajout d'un utilisateur local :
|
||
|
||
~~~
|
||
configure terminal
|
||
aaa new-model
|
||
aaa authentication login default local
|
||
aaa authorization exec default local
|
||
aaa authorization network default local
|
||
#username name privilege 15 password 7 le_mot_de_passe #password 0 le_mot_de_passe ==> en clair
|
||
username root privilege 15 secret 0 mot_de_passe
|
||
end
|
||
~~~
|
||
|
||
Important : Mettre en place le nom d'hôte et le nom de domaine.
|
||
|
||
Activation de SSH :
|
||
~~~
|
||
configure terminal
|
||
crypto key generate rsa
|
||
~~~
|
||
|
||
#### Activer SNMP
|
||
|
||
Afin de permettre des requêtes SNMP :
|
||
|
||
~~~
|
||
Switch# conf t
|
||
(config)# snmp-server community public RO
|
||
~~~
|
||
|
||
On pourra ainsi faire des requêtes du type :
|
||
|
||
~~~
|
||
$ snmpwalk -v2c -c public <IP switch> .1
|
||
~~~
|
||
|
||
#### Configuration IP
|
||
|
||
Configuration IP de base :
|
||
|
||
~~~
|
||
Switch# conf t
|
||
(config)# interface Vlan1
|
||
(config-if)# ip address 192.168.0.1 255.255.255.0
|
||
(config-if)# no shutdown
|
||
~~~
|
||
|
||
La configuration IP de base permet un accès au switch via telnet
|
||
|
||
#### Désactiver services web
|
||
|
||
~~~
|
||
Switch(config)#no ip http server
|
||
Switch(config)#no ip http secure-server
|
||
~~~
|
||
|
||
### Gestion des adresses MAC
|
||
|
||
Lister toutes les adresses MAC connues :
|
||
|
||
~~~
|
||
Switch#show mac address-table
|
||
Switch#show mac address-table int Gi0/11
|
||
~~~
|
||
|
||
Gestion des adresses MAC dynamiques, notamment forcer la suppression
|
||
|
||
~~~
|
||
Switch#clear mac address-table dynamic
|
||
Switch#clear mac address-table dynamic address <mac>
|
||
Switch#clear mac address-table dynamic interface <if>
|
||
Switch#clear mac address-table dynamic vlan <id>
|
||
~~~
|
||
|
||
Configurer des alertes lors de modifications :
|
||
|
||
~~~
|
||
snmp-server enable traps mac-notification change
|
||
snmp-server enable traps mac-notification move
|
||
~~~
|
||
|
||
Forcer des adresses MAC de façon statique :
|
||
|
||
~~~
|
||
mac address-table static <mac> vlan <id> interface <if>
|
||
~~~
|
||
|
||
### STP : Spanning Tree Protocol
|
||
|
||
<http://en.wikipedia.org/wiki/Spanning_Tree_Protocol>
|
||
|
||
<http://www.cisco.com/image/gif/paws/10556/spanning_tree1.swf>
|
||
|
||
Le STP est un protocole permettant de détecter et désactiver automatiquement des boucles sur un segment Ethernet.
|
||
Cela permet donc d'éviter une boucle faite par erreur (ce qui en découle sur un Packet Storm et un réseau très dégradé)
|
||
...ou de créer des boucles volontairement pour assurer de la redondance !
|
||
|
||
Le principe de fonctionnement est qu'un des switchs est élu ROOT (racine de l'arbre STP), et qu'un coût est associé à chaque lien vers le ROOT.
|
||
Ce coût est calculé automatiquement à partir du nombre de connexions et du type de ces connexions (un lien 10Mb/s coûte 100, un lien 100Mb/s coûte 19, un lien 1Gb/s coûte 4, etc.).
|
||
Ce coût peut aussi être forcé manuellement si l'on veut influencer le calcul du STP.
|
||
Ensuite, grâce à ces coûts, si une boucle est détectée certains ports peuvent être bloqués.
|
||
Des vérifications sont réalisées régulièrement pour détecter un changement et adapter les blocages si nécessaire.
|
||
|
||
/!\ Le _keepalive_ - élement essentiel pour STP - n'est pas activé par défaut sur les ports *SFP* d'un switch Cisco : il faut absolument l'activer si vos segments Ethernet sont propagés sur les ports SFP !
|
||
|
||
~~~
|
||
Switch#conf t
|
||
(config)# int Gi0/49
|
||
(config-if)# keepalive
|
||
~~~
|
||
|
||
Sur les Cisco 2960-2970, le STP est géré par VLAN on parle de « per-VLAN spanning-tree plus (PVST+) » et si le mode « Rapid » est activé de « rapid per-VLAN spanning-tree plus (rapid-PVST+) ».
|
||
La valeur par défaut de la priorité du root switch est 3276.
|
||
Le root ID est calculé avec cette priorité + une dérivation de l'adresse MAC. C'est le plus petit ID qui l'emporte.
|
||
Il peut être intéressant de changer la priorité pour choisir le switch root.
|
||
On peut aussi changer la priorité des ports (128 par défaut + coût du lien [10MBps # 100, 100Mbps 19, 1Gbps = 4]) pour influencer le calcul SPT et les connexions à désactiver.
|
||
La configuration par défaut des timers respecte les recommandations de la norme 802.1d.
|
||
|
||
~~~
|
||
Hello time: 2 seconds.
|
||
Forward-delay time: 15 seconds.
|
||
Maximum-aging time: 20 seconds.
|
||
Transmit hold count: 6 BPDUs
|
||
~~~
|
||
|
||
Il faut avoir les mêmes valeurs si d'autres équipements interviennent sur le réseau, comme des machines OpenBSD ou Linux.
|
||
|
||
Voir les informations du STP sur le switch :
|
||
|
||
~~~
|
||
#show spanning-tree summary
|
||
#show spanning-tree
|
||
#show spanning-tree detail
|
||
~~~
|
||
|
||
Activer le mode rapid STP 802.1w.
|
||
|
||
~~~
|
||
#conf t
|
||
(config)#spanning-tree mode rapid-pvst
|
||
~~~
|
||
|
||
Forcer un switch en root (la priorité sera calculée automatiquement).
|
||
|
||
~~~
|
||
#conf t
|
||
(config)#spanning-tree vlan 1-4096 root primary
|
||
~~~
|
||
|
||
Changer le coût d'un port :
|
||
|
||
~~~
|
||
Switch# conf t
|
||
(config)# interface gigabitEthernet 0/50
|
||
(config-if)# spanning-tree cost 65536
|
||
~~~
|
||
|
||
Changer le coût uniquement pour un ou plusieurs VLANs :
|
||
|
||
~~~
|
||
# spanning-tree vlan 1-4096 cost 1
|
||
~~~
|
||
|
||
|
||
### rate-limiting
|
||
|
||
On peut forcer un port à rate-limiter à 10, 20, 30.... ou 90% de sa capacité.
|
||
|
||
Par exemple pour rate-limiter à du 8 Mb/s :
|
||
|
||
~~~
|
||
int Gi0/1
|
||
speed 10
|
||
srr-queue bandwidth limit 80
|
||
~~~
|
||
|
||
Infos sur le rate-limiting :
|
||
|
||
~~~
|
||
show mls qos interface GigabitEthernet0/1 queueing
|
||
GigabitEthernet0/1
|
||
QoS is disabled. When QoS is enabled, following settings will be applied
|
||
Egress Priority Queue : disabled
|
||
Shaped queue weights (absolute) : 25 0 0 0
|
||
Shared queue weights : 25 25 25 25
|
||
The port bandwidth limit : 10 (Operational Bandwidth:11.12)
|
||
The port is mapped to qset : 1
|
||
~~~
|
||
|
||
### Cisco L3
|
||
|
||
#### DHCP relay sur plusieurs VLANs
|
||
|
||
* [Exemple de mise en oeuvre de DHCP Relay sur 2 VLANs](http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tech_note09186a0080114aee.shtml)
|
||
|
||
##### Serveur DHCP
|
||
|
||
Côté serveur DHCP (serveur linux), configurer un subnet par VLAN. Penser aux routes permettant d'accéder à chaque réseau de chaque VLAN.
|
||
Le serveur DHCP pourra être dans un VLAN dédié.
|
||
|
||
##### Cisco 3750
|
||
|
||
Pour activer le DHCP Relay, sur chaque interface VLAN, rajouter la directive _ip address helper <ip-server-dhcp>_.
|
||
|
||
Voici un exemple de création d'un VLAN avec l'adresse 192.168.200.1/24, faisant office de DHCP relay pour le serveur 10.0.1.2 :
|
||
~~~
|
||
(config)#interface vlan 200
|
||
(config-if)#ip address 192.168.200.1 255.255.255.0
|
||
(config-if)#ip helper-address 10.0.1.2
|
||
(config-if)#end
|
||
~~~
|
||
|
||
On répètera cette manipulation pour chaque VLANs et chaque subnet déclaré sur le serveur DHCP que l'on souhaite activer.
|
||
|
||
#### Routage Inter-VLANs
|
||
|
||
L'activation du routage inter-VLANs se fait de la manière suivante :
|
||
|
||
~~~
|
||
(config)# ip routing
|
||
~~~
|
||
|
||
Tous les VLANs seront routés entre eux. Il sera possible si besoin de limiter le routage inter-VLANs grâce aux ACLs.
|
||
|
||
#### Définir une route par défaut
|
||
|
||
~~~
|
||
(config)# ip default-gateway IP_routeur
|
||
~~~
|
||
|
||
ou
|
||
|
||
~~~
|
||
(config)# ip route 0.0.0.0 0.0.0.0 IP_routeur
|
||
~~~
|
||
|
||
### Divers
|
||
|
||
#### Cron / tâches planifiées
|
||
|
||
Voir <http://www.tmartin.io/articles/2010/sauvegarder-la-configuration-de-cisco-ios-vers-un-serveur-distant-avec-kron/>
|
||
|
||
#### Désactiver la vérification des modules GBIC
|
||
|
||
Par défaut, CISCO n'autorise pas les modules GBIC non agréés, il faut donc désactiver la vérification des checksum des modules GBIC pour pouvoir les connecter :
|
||
|
||
~~~
|
||
#conf t
|
||
#service unsupported-transceiver
|
||
~~~
|
||
|
||
On peut ensuite les lister via :
|
||
|
||
~~~
|
||
#show inventory
|
||
~~~
|
||
|
||
#### Remettre un port désactivé par errdisable
|
||
|
||
Un port est désactivé dans divers cas, tel que la non-autorisation des modules GBIC tiers.
|
||
|
||
~~~
|
||
#conf t
|
||
#interface GigabitEthernet0/28
|
||
#shutdown
|
||
#no shutdown
|
||
~~~
|
||
|
||
#### Consulter les informations DOM d'un SFP
|
||
|
||
Pour surveiller la température, ou le voltage :
|
||
|
||
~~~
|
||
Switch# show interface transceiver
|
||
~~~
|
||
|
||
#### Passer un port SFP en "speed nonegotiate"
|
||
|
||
On ne peut pas forcer la vitesse d'un port SFP... mais il faut parfois passer en "speed nonegotiate" :
|
||
|
||
~~~
|
||
(config-if)# speed nonegotiate
|
||
(config-if)# shutdown
|
||
(config-if)# no shutdown
|
||
~~~
|
||
|
||
Lire <http://herdingpackets.net/2013/03/21/disabling-gigabit-link-negotiation-on-fiber-interfaces/>
|
||
|
||
#### Synchro immédiate : Spanning Tree Portfast
|
||
|
||
Lorsque l’on se branche sur un port, il faut 50s pour que l’il soit utilisable à cause du Spanning Tree.
|
||
Le Spanning Tree Portfast permet de passer un port dans l'état forwarding de façon immédiate, en lui faisant sauter les états listening et learning.
|
||
On utilisera cette commande uniquement si l'on est sûr de ne pas avoir besoin du Spanning Tree
|
||
(serveur non virtuel connecté directement au port, etc.).
|
||
|
||
##### Activer
|
||
|
||
~~~
|
||
(config)#interface GigabitEthernet0/28
|
||
(config-if)#spanning-tree portfast
|
||
~~~
|
||
|
||
##### Désactiver
|
||
|
||
~~~
|
||
(config)#interface GigabitEthernet0/28
|
||
(config-if)#no spanning-tree portfast
|
||
~~~
|
||
|
||
## Howto switchs Cisco Small Business
|
||
|
||
Les switchs Cisco Small Business Pro (par exemple, le modèle Cisco ESW 500) sont en fait d'anciens switchs Linksys. Ils n'ont pas de système IOS habituel.
|
||
La connexion par le port console ou par telnet donne seulement accès à un menu interactif permettant d'effectuer seulement quelques opérations de base. On préférera donc l'utilisation de l'interface HTTP.
|
||
|
||
Pour l'initialiser, suivre les instructions du Quick Start Guide. En résumé :
|
||
|
||
* Brancher un câble RJ45 sur un port quelconque
|
||
* Se connecter à l'adresse IP par défaut 192.168.10.2
|
||
* S'identifier avec cisco/cisco
|
||
|
||
### Changer le mode (trunk, access...etc) d'une plage de ports
|
||
|
||
Avec la WebUI ce n'est pas évident, mais il est bien possible d'appliquer une configuration à plusieurs ports d'un coup :
|
||
Dans la section "VLAN Management > Interface Settings" il suffit de configurer un port, puis en cliquant sur "Copy settings" en bas de la page, de renseigner la plage de ports à laquelle appliquer la même configuration.
|
||
|
||
### Changer le VLAN d'une plage de ports
|
||
|
||
Probablement dans un souci de cohérence, c'est également possible mais avec une méthode totalement différente...
|
||
Dans la section "VLAN Management > Port to VLAN" selectionner le VLAN ID désiré, et cliquer sur Go. Puis passer cocher "Untagged" au lieu de "Excluded" pour tous les ports désirés, et valider avec "Apply".
|
||
L'application des modifications est visible dans "VLAN Management > Port VLAN Membership"
|
||
|
||
### CLI Small Business
|
||
|
||
~~~
|
||
Switch# wr
|
||
Switch# sh vlan
|
||
Switch# sh interface gi1
|
||
Switch# sh interfaces status gi1
|
||
Switch# show interface switchport gi1
|
||
|
||
Switch# show fiber-ports optical-transceiver
|
||
Switch# show fiber-ports optical-transceiver detailed
|
||
|
||
Switch(config)# vlan 2
|
||
Switch(config-vlan)# name bob
|
||
Switch(config-vlan)# end
|
||
|
||
Switch(config)# no vlan 2
|
||
Switch(config)# end
|
||
|
||
Switch(config)# interface gigabitethernet0/13
|
||
|
||
Switch(config)# interface gi1
|
||
Switch(config-if)# switchport mode access
|
||
Switch(config-if)# switchport access vlan 2
|
||
Switch(config-if)# end
|
||
|
||
Switch(config)# interface gi1
|
||
Switch(config-if)# switchport mode trunk
|
||
Switch(config-if)# switchport trunk allowed vlan add all
|
||
Switch(config-if)# end
|
||
|
||
Switch(config)# no lldp run
|
||
Switch(config)# no bonjour enable
|
||
Switch(config)# jumbo-frame 10000
|
||
Switch(config)# hostname foo
|
||
~~~ |