18
0
Fork 0
wiki/SwitchCisco.md

38 KiB
Raw Blame History

VTP Operating Mode : Server Maximum VLANs supported locally : 255 Number of existing VLANs : 5 Configuration Revision : 0


### 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 :

Switch(config)# int Gi0/1 Switch(config-if)# speed 10 Switch(config-if)# srr-queue bandwidth limit 80


La négociation de la vitesse (commande `speed`) ne fonctionne que sur une interface ethernet, et non fibre.

Infos sur le rate-limiting :

Switch# 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


### Port mirroring

Activer le port mirroring, en copiant la sortie des ports G0/1 à G0/3 vers le port G0/5, et en gardant la même encapsulation :

Switch(config)# monitor session 1 source interface g0/1 - 3 tx Switch(config)# monitor session 1 destination interface g0/5 encapsulation replicate


On peut aussi mirrorer tout ce qui passe dans un vlan particulier :

Switch(config)# monitor session 1 source vlan 2 , 5 Switch(config)# monitor session 1 destination interface g0/5 encapsulation replicate


Désactiver le port mirroring :

Switch(config)# no monitor session 1


#### Copier la transmission ou la réception

Sans aucun des deux mots clefs `rx` ou `tx`, la réception et la transmission sont tous les deux mirrorés. Il faut préciser `tx` si on ne veut mirrorer que ce qui sort du port, ou `rx` si on ne veut mirrorer que ce qui rentre dans le port.

Si on veut monitorer à la fois un port en tx et un autre en rx :

Switch(config)# monitor session 1 source interface g0/1 tx Switch(config)# monitor session 1 source interface g0/2 rx


La deuxième commande n'écrase pas la première, mais la configuration s'additionne.

#### Encapsulation replicate

Par défaut, le port mirroring renvoie tout le trafic vers l'interface de destination de façon non étiqueté (sans aucun marquage de VLAN), et sans les protocoles de niveau 2 : CDP (Cisco Discovery Protocol), VTP (VLAN Trunking Protocol), DTP (Dynamic Trunk Protocol), STP (Spanning Tree Protocol) et PAgP (Port Aggregation Protocol).

En rajoutant le mot clef `encapsulation replicate`, les paquets sont envoyés en gardant le même étiquetage VLAN qu'à la source, et les protocoles de niveau 2 sont également copiés.

#### Filtrer les VLANs

Si un port source est un port trunk dans lequel passent les VLANs 2, 3, 4, 5 et 6, mais que l'on ne veut mirrorer que les VLANs 3 et 5 :

Switch(config)# monitor session 1 filter 3 , 5


Si parmi les ports source, l'un est en mode trunk et l'autre est en mode access, seul la source en trunk est affectée par ce filtre.

#### Autoriser un IDS/IPS à agir sur ce qu'il voit

L'IDS/IPS derrière la destination du port mirroring peut être configuré pour agir sur ce qu'il reçoit, et être ainsi capable d'envoyer par exemple un reset d'une connexion TCP qu'il a detecté comme étant indésirable. Le port de destination doit alors être autorisé à recevoir des paquets de l'IDS/IPS :

Switch(config)# monitor session 1 source interface g0/1 , g0/5 Switch(config)# monitor session 1 destination interface g0/15 ingress vlan 15



### Cron / tâches planifiées

Voir <http://www.tmartin.io/articles/2010/sauvegarder-la-configuration-de-cisco-ios-vers-un-serveur-distant-avec-kron/>.

Exemple pour sauvegarder périodiquement la configuration du switch :

On commence par définir la tâche planifiée :

switch(config)# kron policy-list backupConfig switch(config-kron-policy)# cli show running-config | redirect ftp:////cisco.txt switch(config-kron-policy)# exit


Puis on définit la période, par exemple tous les jours à 01h15 :

switch(config)# kron occurrence backupConfig_occurence at 01:15 recurring switch(config-kron-occurrence)# policy-list backupConfig switch(config-kron-occurrence)# exit switch(config)# exit


### 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 :

Switch# conf t Switch(config)# service unsupported-transceiver


On peut ensuite les lister via :

Switch# 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.

Switch# conf t Switch(config)# interface GigabitEthernet0/28 Switch(config-if)# shutdown Switch(config-if)# 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" :

Switch(config-if)# speed nonegotiate Switch(config-if)# shutdown Switch(config-if)# no shutdown


Lire <http://herdingpackets.net/2013/03/21/disabling-gigabit-link-negotiation-on-fiber-interfaces/>


### Dynamic Trunk Protocol

Le Dynamic Trunk Protocol (DTP) est un protocole permettant de négocier la création automatique de trunk sur une liaison. Pour en profiter, il faut passer l'interface soit en mode dynamic auto, soit en mode dynamic desirable :

Switch(config-if)# switchport mode dynamic auto Switch(config-if)# switchport mode dynamic desirable


Selon l'état de l'interface de l'autre côté, la liaison sera en mode access ou en mode trunk :

                       Dynamic Auto    Dynamic Desirable   Trunk                 Access
---------------------  -------------   -----------------   --------------------  --------
**Dynamic Auto**       Access          Trunk               Trunk                 Access
**Dynamic Desirable**  Trunk           Trunk               Trunk                 Access
**Trunk**              Trunk           Trunk               Trunk                 ?
**Access**             Access          Access              ?                     Access

L'utilisation de DTP (et donc du mode dynamic) est risquée car un serveur en face pourrait négocier un trunk et ainsi avoir accès à tous les vlans. Il est donc conseillé de ne jamais utiliser le mode dynamic.

Le DTP peut également être désactivé :

Switch(config-if)# switchport nonegotiate


Mais cette commande n'a pas d'intérêt dans le cas où le mode dynamic n'est pas utilisé. Attention cependant, désactiver cette option (`no switchport nonegotiate`) entraînera une coupure de 3 secondes de la liaison.

## Catalyst niveau 3

### 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)

#### Côté 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é.

#### Côté Switch

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 :

Switch(config)# interface vlan 200 Switch(config-if)# ip address 192.168.200.1 255.255.255.0 Switch(config-if)# ip helper-address 10.0.1.2 Switch(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 :

Switch(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

Switch(config)# ip default-gateway IP_routeur


ou

Switch(config)# ip route 0.0.0.0 0.0.0.0 IP_routeur


La première commande est à utiliser si `ip routing` n'est pas configuré. Si c'est configuré, il faut utiliser la deuxième commande.

## 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» sélectionner le VLAN ID désiré, et cliquer sur Go. Puis 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

Commandes similaires aux Catalyst :

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


#### Rate-limiting

Rate-limiter à 10 Mb/s :

Switch(config)# interface gi1 Switch(config-if)# traffic-shape 10000 Switch(config-if)# rate-limit 10000 Switch(config-if)# end


`traffic-shape` rate-limite en sortie, et `rate-limite` en entrée.

## Ansible

Voir [HowtoAnsible/Cisco](HowtoAnsible/Cisco)

## FAQ

### Switchs stackables (séries S)

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 termes d'administration (mais pas forcément en termes 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.

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 !