18
0
Fork 0
wiki/SwitchCisco.md

70 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


### SPAN : Switch Port Analyzer (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


### LACP : Link Aggregation Control Protocol (Port-Channel)

Le Port-Channel est une technologie qui permet dagréger plusieurs interfaces ensemble. Le trafic est ensuite réparti sur chacune des interfaces. Cette technologie permet une meilleure redondance, ainsi quune augmentation de la bande passante. L'utilisation de l'un ou l'autre lien ne dépend pas de la charge sur les liens mais uniquement de l'algorithme du protocole : même si un lien est surchargé, l'algorithme continuera à pouvoir envoyer du trafic dessus.

Cisco propose le protocole propriétaire PaGP, mais nous utilisons le protocole standardisé [LACP](https://fr.wikipedia.org/wiki/IEEE_802.3ad).

Voici un schéma d'exemple :

┌────────┐Gi0/1 Gi0/1┌────────┐ │ ├─────────────┤ │ │ SW01 │ │ SW02 │ │ ├─────────────┤ │ └────────┘Gi0/2 Gi0/2└────────┘


On veut agréger les interfaces Gi0/1 et Gi0/2 entre SW01 et SW02.

Sur SW01 et sur SW02, on active LACP sur les ports souhaités :

Switch(config)# interface range GigabitEthernet0/1-2 Switch(config-if)# channel-protocol lacp Switch(config-if)# channel-group 1 mode active


La configuration des ports devra ensuite se faire sur l'interface port-channel nouvellement créé. Les interfaces physiques membres du port-channel hériteront automatiquement de la configuration.

Switch(config)# interface Port-channel1 Switch(config-if)# switchport mode trunk Switch(config-if)# switchport trunk allowed vlan X Switch(config-if)# …


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

### Scripting avec tclsh

Les appareils Cisco incluent tclsh, un shell contenant l'interpréteur Tcl.

Il peut permettre par exemple de rapidement exécuter des pings à de multiples destinations :

Switch# tclsh Switch(tcl)# foreach address {
+> 192.168.0.3
+> 192.168.0.4
+> 192.168.0.5
+> } { ping $address repeat 3 }

Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 192.168.0.3, timeout is 2 seconds: !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 5/10/21 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 192.168.0.4, timeout is 2 seconds: !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 1/7/15 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 192.168.0.5, timeout is 2 seconds: !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 1/2/5 ms


## Cisco Catalyst 3750

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

## Cisco Nexus 3000

Beaucoup de commandes sont similaires entre les Catalyst (IOS) et les Nexus (NX-OS). Seules les commandes qui diffèrent sont indiquées.

### Changer le mode d'utilisation des ports QSFP

Pour un C3172PQ par exemple. Par défaut, les 6 ports QSFP sont en modes 4x10G.

Pour tous les passer en mode 1x40G :

Switch# conf t Switch(config)# hardware profile portmode 48x10g+6x40g


Un redémarrage du switch est nécessaire pour que ce soit pris en compte.

### Infos d'une interface

L'obtention des infos d'une interface se fait de la même façon que sur les Nexus. La seule différence est l'orthographe du mot "interface", qui ne prend pas le "s" à la fin, contrairement aux Catalyst :

Switch# show interface Switch# show interface status Switch# show interface description Switch# show interface trunk Switch# show interface vlan Switch# show interface e1/1 Switch# show interface e1/1 status Switch# show interface e1/1 counter Switch# show interface e1/1 counter errors
Switch# show interface e1/1 switchport Switch# show interface e1/1 trunk


### Gestion des VLANs

* Affecter une adresse IP à un VLAN :

Switch# conf t Switch(config)# feature interface-vlan Switch(config)# interface Vlan 1 Switch(config-if)# ip address 192.168.0.10/24 Switch(config-if)# no shutdown


Contrairement à IOS, sous NX-OS il faut d'abord activer la fonctionnalité "interface-vlan" avec la commande `feature interface-vlan` pour pouvoir configurer une SVI (Switch Virtual Interface).

### Configurer l'heure

* Gestion Daylight Savings Time (DST) :

Switch# conf t Switch(config)# clock timezone UTC 1 0 Switch(config)# clock summer-time UTC 5 Sun Mar 02:00 5 Sun Oct 03:00


### Gérer les logs

* Avoir une présicion en microsecondes sur lheure des logs :

Switch# conf t Switch(config)# logging timestamp microseconds


* Ajouter la description de l'interface aux logs concernant une interface :

Switch# conf t Switch(config)# logging message interface type ethernet description


* Envoyer les logs à un serveur syslog :

Switch# conf t Switch(config)# logging server 192.0.2.10 7 facility local6


### Configurer SNMP

* Activer SNMP en écriture :

Si on veut limiter lécriture SNMP par une IP source, et sur certains OID uniquement, il faut créer une `access-list` et un `rôle`, puis les indiquer à SNMP :

Switch# conf t Switch(config)# ip access-list snmp-rw Switch(config-acl)# 10 permit ip host 192.0.2.4 192.0.2.0/24 vlan 1 log Switch(config-acl)# exit Switch(config)# role name ifXTable_only Switch(config-role)# rule 1 permit read-write feature snmp Switch(config-role)# rule 2 permit read-write oid 1.3.6.1.2.1.31.1.1.* Switch(config-role)# exit Switch(config)# snmp-server community private rw Switch(config)# snmp-server community private use-ipv4acl snmp-rw Switch(config)# snmp-server community private group ifXTable_only


### STP : Spanning Tree Protocol

* Synchro immédiate : Spanning Tree Portfast => Spanning Tree Port Type Edge

Le nom "portfast" n'existe pas sous Nexus, c'est une notion de "port type" qui est utilisé. Lorsque le port est connecté à une machine finale, c'est un port de type `edge` (de bord, d'extrémité). 

Activer le Port Type Edge :

Switch(config)# interface Eth1/28 Switch(config-if)# spanning-tree port type edge


Désactiver le Port Type Edge :

Switch(config)# interface Eth1/28 Switch(config-if)# no spanning-tree port type edge


### SPAN : Switch Port Analyzer (Port mirroring)

Activer le port mirroring, en copiant la sortie des ports Eth1/1 à Eth1/3 vers le port Eth1/5 :

Switch(config)# interface ethernet 1/5 Switch(config-if)# switchport monitor Switch(config-if)# exit Switch(config)# monitor session 1 type local Switch(config-monitor)# source interface ethernet 1/1-3 tx Switch(config-monitor)# destination interface ethernet 1/5 Switch(config-monitor)# no shut


Désactiver le port mirroring en gardant la configuration :

Switch(config)# monitor session 1 type local Switch(config-monitor)# shut


### Cron / tâches planifiées

Exemple pour sauvegarder périodiquement la configuration du switch :

On commence par activer la fonctionnalité "scheduler" :

Switch(config)# feature scheduler


On définit la tâche planifiée :

Switch(config)# scheduler job name backupConfig Switch(config-job)# copy running-config ftp://:@//cisco.txt vrf default Switch(config-job)# exit


L'user et le password sont obligatoires. Pour un ftp anonyme, indiquer `ftp://anonymous:anonymous@…`

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

Switch(config)# scheduler schedule name backupConfig Switch(config-schedule)# job name backupConfig Switch(config-schedule)# time daily 01:15


### VPC : Virtual Port-Channel

Ressources : <https://www.packetcoders.io/what-is-cisco-vpc-virtual-port-channel/>, <https://www.networklife.net/images/sheets/Nexus-VPC.pdf>

* Explication globale :

Le Port-Channel est une technologie qui permet d'agréger plusieurs interfaces ensemble. Le trafic est ensuite réparti sur chacune des interfaces. Cette technologie permet une meilleure redondance, ainsi qu'une augmentation de la bande passante.

Cependant un Port-Channel doit se faire depuis un seul serveur vers un seul même switch.

Le Virtual Port-Channel permet de dépasser cette limitation en faisant un Port-Channel virtuel depuis un serveur vers 2 switchs différents. Les deux switchs continuent à être gérés et configurés indépendamment.

Pour fonctionner, le VPC est constitué de plusieurs composants :

* **Switchs pairs VPC** : switchs faisant partie du groupe VPC.
* **Ports membres VPC** : machines (switch ou serveur) branchées à des pairs VPC de façon redondante.
* **Lien VPC peer-link** : lien physique permettant de connecter les 2 switchs pairs VPC et de transpoter les BPDUs et adresses MAC entre eux. Il sert également à transporter le trafic de niveau 2 entre les switchs pairs VPC, soit en cas de défaillance d'une liaison vers un port membre, soit lors de communications entre machines non membres VPC (fonction d'un lien inter-switch classique). Il doit donc être suffisament dimensionné pour supporter ce potentiel trafic.
* **Lien VPC keepalive** : lien physique permettant, dans le cas où le VPC peer-link est down et que les switchs ne pourraient donc plus communiquer à travers celui-ci, de détecter les pairs VPC en mode "tous actifs"/"tous primaires". Dans cette situation, on peut avoir des paquets dupliqués ou d'autres problèmes. Il est donc important de le détecter afin de réagir de façon appropriée. Les ports de management peuvent être utilisés pour créer ce lien.
* **Ports orphelins** : un port qui utilise un des VLANs transportés sur le VPC peer-link mais qui n'est pas un membre VPC. C'est le cas d'une machine branchée de façon volontaire sur un seul switch, sans Port-Channel.

Dans le cas où le lien **VPC peer-link** est down, le lien **VPC keepalive** le détecte, et le **pair VPC** secondary coupe tous ses ports allant vers des **membres VPC** afin d'éviter des boucles réseau. Par défaut, les **ports orphelins** ne seront pas coupés, mais peuvent l'être automatiquement si on le souhaite (voir configuration ci-dessous). Les pairs VPC primaire et secondaire sont déterminés par défaut d'après l'adresse MAC, ou par une priorité configurée manuellement.

Le serveur ne sait pas qu'il est branché sur 2 switchs différents, et croit être sur un Port-Channel classique. Une configuration en [LACP](HowtoDebian/Reseau#mode-802.3ad-lacp) est donc suffisante sur celui-ci.

Voici un schéma avec l'ensemble de ces composants :

┌────────┐VPC peer-link┌────────┐ ┌───────────┐ │ ├─────────────┤ │ │ │ │ SW01 │VPC keepalive│ SW02 ├──────────┤ Serveur3 │ │ ├─────────────┤ │ Port │ │ └──┬───┬─┘ └─┬───┬──┘ orphelin └───────────┘ │ │ │ │ │ │ │ │ │ │ ┌───────────┐ │ │ │ └──┤ ├──┘ │ │ VPC│ Serveur1 │VPC │ │membre│ │membre│ │ └───────────┘ │ │ │ VPC│ │VPC membre│ ┌───────────┐ │membre └──────┤ ├──────┘ │ Serveur2 │ │ │ └───────────┘


* Cas de défaillance d'une liaison vers un port membre :

Imaginons que Serveur1 veuille communiquer avec Serveur2, et que l'algorithme de LACP sur Serveur1 décide d'envoyer le paquet sur l'interface allant vers SW01.
Si tout fonctionne correctement, alors le paquet partira de Serveur1 pour passer par SW01, et arriver depuis SW01 vers Serveur2.

Cependant, dans le cas où le lien entre Serveur2 et SW01 est down, alors le paquet partira de Serveur1 pour passer par SW01, puis passera par le VPC peer-link pour arriver sur SW02, et enfin arriver depuis SW02 vers Serveur2.

* Configuration :

Sur SW01 et SW02, prenons :

* Eth1/48 comme lien VPC keepalive
* Eth1/49 comme lien VPC peer-link
* Eth1/10 comme port membre VPC pour Serveur1
* Eth1/11 comme port membre VPC pour Serveur2
* Eth1/12 comme port orphelin pour Serveur3

Et on utilisera des Port-Channel ayant les mêmes numéros que les interfaces physiques auxquelles elle sont rattachées.

On commence par activer LACP et VPC, sur SW01 et SW02 :

Switch# conf t Switch(config)# feature vpc Switch(config)# feature lacp


On crée une VRF pour le VPC keepalive, sur SW01 et SW02 :

Switch(config)# vrf context VPC_KEEPALIVE Switch(config-vrf)# exit


On crée le domaine VPC et on indique les IPs des 2 pairs, qu'on configure plus tard sur l'interface dédiée au keepalive :

Sur SW01 :

Switch(config)# vpc domain 1 Switch(config-vpc-domain)# peer-switch Switch(config-vpc-domain)# peer-keepalive destination 198.51.100.2 source 198.51.100.1 vrf VPC_KEEPALIVE Switch(config-vpc-domain)# role priority 8192 Switch(config-vpc-domain)# exit


Sur SW02 :

Switch(config)# vpc domain 1 Switch(config-vpc-domain)# peer-switch Switch(config-vpc-domain)# peer-keepalive destination 198.51.100.1 source 198.51.100.2 vrf VPC_KEEPALIVE Switch(config-vpc-domain)# role priority 16384 Switch(config-vpc-domain)# exit


On a configuré une priorité plus faible sur SW01 que sur SW02, permettant de rendre SW01 primary, et SW02 secondary : le plus faible est prioritaire.

La commande `peer-switch` permet aux 2 switchs d'apparaître comme un seul même switch au niveau du protocole Spanning Tree, en leur faisant avoir le même bridge ID. En cas de perte de l'un des 2 switchs, cela permettra de n'avoir aucun recalcul de topologie Spanning Tree.

On crée le VPC peer-link, sur SW01 et SW02 :

Switch(config)# interface Ethernet1/49 Switch(config-if)# description Lien vers SWXX VPC peer-link Switch(config-if)# channel-group 49 mode active

Switch(config)# interface port-channel49 Switch(config-if)# switchport mode trunk Switch(config-if)# switchport trunk allowed vlan <1-4094> Switch(config-if)# vpc peer-link


On crée le VPC keepalive, sur SW01 et SW02 :

Switch(config)# interface Ethernet1/48 Switch(config-if)# description Lien vers SWXX VPC keepalive Switch(config-if)# channel-group 48 mode active

Switch(config)# interface port-channel48 Switch(config-if)# no switchport Switch(config-if)# vrf member VPC_KEEPALIVE Switch(config-if)# ip address 198.51.100.1/24 # IP sur SW01 Switch(config-if)# ip address 198.51.100.2/24 # IP sur SW02


La configuration jusque là est une configuration de base, qu'il ne faudra plus toucher une fois en place.
À partir d'ici, la suite est une configuration qui peut être répétée autant de fois que nécessaire pour de multiples serveurs.

<a name="VPC-server"></a>

Enfin, pour chacun des serveurs, on configure les ports membres VPC. Pour faciliter la gestion, on utilise le numéro de port comme numéro de channel-group/port-channel et comme numéro de vpc :

Pour Serveur1, sur SW01 et SW02 :

Switch(config)# interface Eth1/10 Switch(config-if)# channel-group 10 mode active

Switch(config)# interface port-channel10 Switch(config-if)# vpc 10 Switch(config-if)# switchport access vlan <1-4094>


Pour Serveur2, sur SW01 et SW02 :

Switch(config)# interface Eth1/11 Switch(config-if)# channel-group 11 mode active

Switch(config)# interface port-channel11 Switch(config-if)# vpc 11 Switch(config-if)# switchport access vlan <1-4094>


La configuration des ports devra ensuite se faire sur les interfaces `port-channel` ; l'interface physique (ou les interfaces physiques, s'il y en a plusieurs) membre du port-channel héritera automatiquement de la configuration.

**Attention** : Lors du branchement si le VPC est déjà configuré, il faut brancher en premier le lien `peer-link`, et ensuite le lien `keepalive`, pour éviter que le VPC secondary ne coupe ses ports membres VPC le temps du branchement complet.

* Ports orphelins :

Dans notre cas, si le VPC peer-link est down, alors SW02 (qui est VPC secondary) coupera tous ses ports allant vers des membres VPC, soit Eth1/10 et Eth1/11. Serveur3 sera alors isolé et ne pourra communiquer qu'avec les autres éventuels ports orphelins.

Cependant si Serveur3 était configuré par exemple pour du bonding en mode active/backup ou en mode [ALB](HowtoDebian/Reseau#mode-alb) en étant branché à la fois sur SW01 et SW02, alors le failover ne se ferait pas pour Serveur3 et des problèmes de communications aurraient lieux. Dans ce cas, on souhaiterait que le lien entre Serveur3 et SW02 se coupe pour que la communication entre Serveur1, Serveur2 et Serveur3 fonctionne par SW01.

Pour ça, sur le port où est branché Serveur3, il faut configurer la commande suivante :

Switch(config)# interface Eth1/12 Switch(config-if)# vpc orphan-port suspend


Ainsi, le port sera automatiquement coupé quand le VPC peer-link sera down, et sera automatiquement rétabli lorsque le VPC peer-link sera de nouveau up.

## 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» 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 !

### SSH Unable to negotiate

Lorsque ce type de message est reçu quand on tente de se ssh à un switch :

$ ssh root@192.0.2.1 Unable to negotiate with 192.0.2.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1


Il faut se connecter en précisant que l'on veut utiliser l'offre proposée diffie-hellman-group1-sha1 :

$ ssh root@192.0.2.1 -o "KexAlgorithms diffie-hellman-group1-sha1"