# Cisco

# Premiers pas

IOS de Cisco (le nom du système d'exploitation) est assez bien fait et permet de se débrouiller sans connaitre par cœur des centaines de commandes.

*Mais commençons par le début.*

Pour utiliser du Cisco à moindre coût, le plus simple est de s'enregistrer sur le site de Cisco Netacad (site pour l'apprentissage) puis de télécharger le logiciel Packet Tracer : [https://www.netacad.com/fr/courses/packet-tracer](https://www.netacad.com/fr/courses/packet-tracer)

#### **<span data-darkreader-inline-color="">Comment télécharger Packet Tracer</span>**

Pour télécharger Packet Tracer, procédez comme suit afin de créer votre inscription à la Networking Academy :

- Cliquez sur le bouton « S'inscrire pour télécharger Packet Tracer »
- Inscrivez-vous au cours Introduction to Packet Tracer
- Complétez votre inscription à la Networking Academy
- Lancer le cours Introduction to Packet Tracer
- Les instructions de téléchargement se trouvent dans le cours

Ensuite, il faut l'installer et l'ouvrir.

Le tutoriel fait, vous êtes capable de prendre un élément et le placer dans l'espace de travail.

<span data-darkreader-inline-color="">***N'oubliez pas !!***</span>

<span data-darkreader-inline-color="">***Comme dans la vie, il faut parfois allumer la machine pour y avoir accès ou modifier sa configuration physique. Le logiciel tient le même principe pour les éléments qui peuvent s'éteindre avec un interrupteur.***</span>

#### <span data-darkreader-inline-color="">**Le CLI**</span>

C'est la Command Line Interface de l'IOS qui permet de taper les commandes dans un élément.

C'est ici que vous travaillerez le plus car, et vous le verrez avec l'expérience, c'est plus rapide et simple que l'interface web quand elle existe.

<span data-darkreader-inline-color="">**Informations pratique à savoir !!** </span>

<span data-darkreader-inline-color="">\* Si vous voulez connaitre les commandes possibles là où vous êtes (quelque soit le mode, quelque soit la commande commencé), il faut utiliser le **"?"** Il vous donnera toujours les commandes qui peuvent suivre.</span>

<span data-darkreader-inline-color="">\* Si vous voulez taper plus vite vos commandes, vous n'êtes pas obligé de terminer la commande complétement, juste les premières lettres suffisent souvent</span>

<span data-darkreader-inline-color="">\* Pour compléter ses commandes, au lieu de la taper entièrement, vous pouvez utiliser la touche "Tabulation" pour compléter la commande. Cela permet aussi de vérifier si vous pouvez réaliser ou non une commande. Attention toutefois à être dans le bon menu pour avoir la complétion</span>

#### <span data-darkreader-inline-color="">**Entrer en mode Enable et Configuration Terminal**</span>

Pour commencer, il faut entre en mode <span data-darkreader-inline-color="">**Enable**</span>:

`enable` ou en version courte **`en`**

*Ce mode vous permet de faire différentes choses comme des pings ou vérifier les résultats de configurations.*

Pour par exemple connaitre les interfaces de votre éléments vous pouvez taper ceci :

`show ip interface brief`

et en version courte

`sh ip int b`

Cette commande listera les interface et la configuration associé à chaque interface.

.

C'est aussi en mode Enable que l'on peut sauvegarder la configuration qui est en actuellement utilisé en configuration enregistré (il y a une différence entre la configuration enregistré et celle utilisé).

`copy running-configuration startup-configuration` en version courte : `<strong>copy run star</strong>`

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

C'est après le mode Enable que l'on peut entre en monde <span data-darkreader-inline-color="">**Configuration Terminal**</span>.

`configuration terminal ` ou en version courte **`conf t`**

*Ce mode permet de configurer l'ensemble des fonctionnalités de l'élément. Que ce soit les interfaces, VLAN, routage, sécurité ...*

*Chaque type de configuration peut vous amener dans un sous menu spécifique. La commande pour en sortir est **`exit`** .*

Par exemple, pour attribuer une adresse ip à l'interface g0/0 (interface Gigabit 0/0) il faut taper les commandes suivantes :

`interface g0/0 ` &lt;&lt; nom de l'interface

`ip address 192.168.1.1 255.255.255.0` &lt;&lt; mettre l'adresse ip 192.168.1.1 avec le masque 255.255.255.0 (/24)

`no shutdown  ` &lt;&lt; allumer le port

Si vous avez un doute, vous pouvez entre en mode configuration de l'interface puis taper <span data-darkreader-inline-color="">**"?"** </span>, cela listera toutes les possibilités.

#### <span data-darkreader-inline-color="">**Le "do"**</span>

Lorsque vous configurez votre éléments, pour éviter de devoir revenir au menu principal ou en mode Enable (faisable avec le CTRL+Z), vous pouvez utiliser le "do" et la commande associé en mode Enable.

Si nous sommes toujours en mode configuration de l'interface et que nous souhaitons vérifier que la commande fonctionne, il faut taper :

`do sh ip int b`

Cela listera les interfaces comme en mode Enable et vous verrez la Gigabit 0/0 configuré avec l'adresse 192.168.1.1 .

Pour plus d'informations ou des compléments, vous pouvez lire cet article :

[https://www.commentcamarche.net/faq/17126-routeurs-cisco-parametres-de-base](https://www.commentcamarche.net/faq/17126-routeurs-cisco-parametres-de-base)

# Configuration de base d'un élément actif Cisco

Voici une configuration de base utilisable en copié/collé pour réaliser vos pré-configuration.

Elle permet de mettre le nom de la machine, le mot de passe pour le mode configuration, le mot de passe pour le mode console et le mot de passe pour les sessions vty (ici, 2 autorisé seulement).

On demande aussi à ne pas être dérangé lors de l'utilisation de la console par les messages systèmes.

Aussi, la bannière indispensable pour indiquer les risques encouru par un utilisateur non autorisé.

```
conf t

hostname X

enable secret XYXYXYXYXY

banner motd  % =========Toute personne non autorise se verra poursuivi en fonction des lois en vigueur ============ %

service password-encryption

no ip domain-lookup

line console 0

password XXXXYYXXXX

login

logging synchronous

line vty 0 2

password YYYYYXXYYYY

login

logging synchronous

exit
```

# Tunnel IPSec entre 2 routeurs

On entend souvent qu'il est difficile de faire du VPN IPSec entre 2 routeurs. Bon, c'est en partie vrai mais pas tant que ça.

Voici un exemple concret d'une topologie VPN fonctionnel.

<span data-darkreader-inline-color="">*N'oubliez pas de faire attention à la sécurité si vous souhaitez vous en inspirer.*</span>

Les routeurs Maxime et Jean-Clément vont être configuré pour faire du VPN entre eux, le routeur Stéphane simule un FAI.

<span data-darkreader-inline-color="">**Configuration des interfaces**</span>

<table border="1" id="bkmrk-r-maxime-hostname-ma" style="width: 111.786%;"><tbody><tr><td style="width: 34.565%;">**R-Maxime**

```
hostname Maxime
interface g0/0
ip add 70.0.0.1 255.255.255.252
no shut
interface g0/1
ip add 192.168.6.254 255.255.255.0
no shut
exit
```

</td><td style="width: 35.7569%;">**R-Jean-Clément**

```
hostname JC
interface g0/0
ip add 60.0.0.2 255.255.255.252
no shut
interface g0/1
ip add 192.168.5.254 255.255.255.0
no shut
exit
```

</td><td style="width: 29.7974%;">**R-Stéphane**

```
hostname Stephane
interface fa0/0
ip address 60.0.0.1 255.255.255.252
no shut
interface fa0/1
ip address 70.0.0.2 255.255.255.252
no shut
```

</td></tr></tbody></table>

<span data-darkreader-inline-color="">**Configuration des routes**</span>

Une route par défaut pour les routeurs Maxime et Jean-Clément et 2 routes pour le routeur Stéphane

<table border="1" id="bkmrk-r-maxime-ip-route-0."><tbody><tr><td>**R-Maxime**

```
ip route 0.0.0.0 0.0.0.0 g0/0
```

</td><td>**R-Jean-Clément**

```
ip route 0.0.0.0 0.0.0.0 g0/0
```

</td><td>**R-Stéphane**

```
ip route 192.168.5.0 255.255.255.0 fa0/0
ip route 192.168.6.0 255.255.255.0 fa0/1
```

</td></tr></tbody></table>

<span data-darkreader-inline-color="">**Configuration VPN**</span>

**R-Maxime**

```
crypto isakmp policy 10
hash md5
authentication pre-share
group 2
lifetime 7200
crypto isakmp key schtroumph address 60.0.0.2 255.255.255.252

crypto ipsec transform-set schtroumph esp-aes esp-sha384-hmac
exit
access-list 101 permit ip 192.168.6.0 0.0.0.255 192.168.5.0 0.0.0.255
crypto map babar 12 ipsec-isakmp
set peer 60.0.0.2
set transform-set schtroumph
match address 101
exit
interface g0/0
crypto map babar
exit
```

**R-Jean-Clément**

```
crypto isakmp policy 10
hash md5
authentication pre-share
group 2
lifetime 7200
crypto isakmp key schtroumph address 70.0.0.1 255.255.255.252

crypto ipsec transform-set schtroumph esp-aes esp-sha384-hmac
exit
access-list 101 permit ip 192.168.5.0 0.0.0.255 192.168.6.0 0.0.0.255
crypto map babar 12 ipsec-isakmp
set peer 70.0.0.1
set transform-set schtroumph
match address 101
exit
interface g0/0
crypto map babar
exit
```

*Il faut peut être quelques explications.*

<span data-darkreader-inline-color="">**Configuration du ISAKMP (IKE)**</span>

- `<strong>crypto isakmp policy <span data-darkreader-inline-color="">X</span></strong>` permet d'initier une règle de connexion avec un autre routeur. Le X peut être ce que vous voulez comme nombre.
- Ensuite, on configure le type de `<strong>hash</strong> `(faite ? après `hash` pour connaitre les options). Ici ce sera en md5
- `<strong>authentication pre-share</strong>` permet d'indiquer l'utilisation d'un mot de passe partagé entre les 2 routeur pour l'initialisation de la connexion.
- `<strong>group 2</strong>` C'est le type de groupe pour Diffie-Hellman.  
    Les groupes Diffie-Hellman déterminent la force de la clé utilisée dans le processus d'échange de clés. Les groupes portant un numéro supérieur sont plus sûrs, mais il faut plus de temps pour créer la clé.
    
    
    - Groupe Diffie-Hellman 1 : groupe 768 bits
    - Groupe Diffie-Hellman 2 : groupe 1024 bits
    - Groupe Diffie-Hellman 5 : groupe 1536 bits
    - Groupe Diffie-Hellman 14 : groupe 2 048 bits
    - Groupe Diffie-Hellman 15 : groupe 3 072 bits
    - Groupe Diffie-Hellman 19 : groupe de courbe elliptique 256 bits
    - Groupe Diffie-Hellman 20 : groupe de courbe elliptique 384 bits
    
    Les deux pairs d'un échange VPN doivent utiliser le même groupe, qui est négocié pendant la phase 1 du processus de négociation IPSec. Lorsque vous définissez un tunnel BOVPN manuel, vous spécifiez le groupe Diffie-Hellman pendant la phase de création d'une connexion IPSec. Cette phase désigne le stade où deux pairs créent un canal sécurisé et authentifié pour communiquer.
    
    **Attention à votre débit, si c'est en local (si si, c'est faisable dans certains cas), choisissez ce que vous voulez, si c'est distant et faible en débit, attention à la taille de la clef !**
- **`lifetime 7200`** Durée de vie de la clé de session
- **`crypto isakmp key schtroumph address 70.0.0.1 `**<span data-darkreader-inline-color="">C'est **LA** commande qui définit le mot de passe et l'adresse **PUBLIC** du routeur destinataire.</span>

<span data-darkreader-inline-color="">**Configuration et Application de l'IPSec**</span>

- `<strong>access-list <span data-darkreader-inline-color="">101</span> permit ip <span data-darkreader-inline-color="">192.168.6.0 0.0.0.255 192.168.5.0 0.0.0.255</span></strong>` Création d'une ACL permettant au réseau de Maxime d'atteindre le réseau LAN de Jean-Clément
- `<strong>crypto ipsec transform-set <span data-darkreader-inline-color="">schtroumph</span> <span data-darkreader-inline-color="">esp-aes</span> <span data-darkreader-inline-color="">esp-sha384-hmac</span></strong>` Création d'une transformation IPSec et utilisation du mot de passe définit avant et de la méthode de chiffrement. Il y a plusieurs choix pour la <span data-darkreader-inline-color="">méthode de chiffrement</span> et son <span data-darkreader-inline-color="">option</span>. Pensez à utiliser le ?
- `<strong>crypto map <span data-darkreader-inline-color="">babar</span> <span data-darkreader-inline-color="">X</span> ipsec-isakmp</strong>`  
    **`set peer <span data-darkreader-inline-color="">70.0.0.1</span>`**  
    **`set transform-set <span data-darkreader-inline-color="">schtroumph</span>`**  
    **`match address <span data-darkreader-inline-color="">101</span>`** Ces commandes permettent la création de la Crypto Map (et son nom <span data-darkreader-inline-color="">babar</span>) et de définir le <span data-darkreader-inline-color="">destinataire</span> de ce VPN, le <span data-darkreader-inline-color="">mot de passe d'initialisation</span> de connexion et l'<span data-darkreader-inline-color="">ACL</span> à utiliser.
- `interface g0/0`  
    `crypto map babar` Maintenant, on applique la Crypto Map (via son nom) à l'interface de sortie WAN du routeur.

Il est possible d'avoir plusieurs map à appliquer en fonction du nombre de site que vous souhaitez interconnecter.

La condition de fonctionnement est l'utilisation des mêmes options et mots de passe sur le routeur distant.

Et normalement, ça ping :)

Vous voyez, c'est pas trop difficile.

# Aide mémoire des commandes de commutateurs et routeurs Cisco

##### Changer de mode  


```
switch> enable				# Commande pour passer du Mode 1 au Mode 2. 
switch# conf t				# Commande pour passer du Mode 2 au Mode 3.
switch(config)#             # Nous sommes désormais dans le mode 3
```


##### Créer un Vlan   


Créer un seul Vlan

```
2960-RG(config)# vlan 2
```

Créer plusieurs Vlans

```
2960-RG(config)# vlan 3,4,5
```

Afficher la liste

```
2960-RG# show vlan
```

Pour l’affecter à un port

```
2960-RG(config)# interface fastEthernet 0/1
2960-RG(config-if)# switchport mode access
2960-RG(config-if)# switchport access vlan 3
```

Pour plusieurs ports

```
2960-RG(config)# interface range fastEthernet 0/5-8 
2960-RG(config-if-range)# switchport mode access
2960-RG(config-if-range)# switchport access vlan 4
```


##### Configurer un port   


```
switch(config)# interface fastEthernet 0/1
switch(config-if)# switchport access vlan 50
switch(config-if)# exit
switch(config)# 
```

##### Configurer une plage de port   


```
switch(config)# interface range fastEthernet 0/1-24
switch(config-if)# switchport access vlan 30
switch(config-if-range)# exit
switch(config)#  
```


##### Réinitialiser le switch  


```
switch# write erase
switch# reload
```

##### Configurer SSH   


- Vérification de la prise en compte du protocole ssh par l'IOS
- Tout d'abord, il faut vérifier que l'IOS du switch supporte ssh. La mention k9 (crypto) doit figurer dans le nom de l'IOS.
- La commande pour vérifier la version de l'IOS est:

```
2960-RG#show version
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(55)SE, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Sat 07-Aug-10 23:04 by prod_rel_team

```

- Le protocole ssh peut être activé par défaut. Vérifions avec la commande suivante ```
    2960-RG#show ip ssh
    SSH Enabled - version 2.0
    Authentication timeout: 60 secs; Authentication retries: 3
    
    ```

<div class="console" id="bkmrk-"></div>- Configuration du nom d'hote et du nom de domaine. Le nom du switch ainsi que le nom de domaine doivent avoir été configurés.
- Création de la clé

```
2960-RG(config)#crypto key generate rsa general-keys modulus 1024
The name for the keys will be: 2960-RG.mondomaine.fr
% The key modulus size is 1024 bits
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]

2960-RG(config)#
*Mar 1 00:42:43.625: %SSH-5-ENABLED: SSH 1.99 has been enabled

```

- Activation de ssh

```
 2960-RG(config)#ip ssh version 2
```

- Options ajoutées au service ssh
- - les évènements associés aux connexions ssh sont enregistrés dans les logs.
- - Un timeout de 60 secondes est ajouté en cas d'inactivité durant l'authentification.
- - Nous laissons trois essais pour la connexion au switch. Suite à ces essais, la connexion est fermée.

```
2960-RG(config)#ip ssh logging events
2960-RG(config)#ip ssh time-out 60
2960-RG(config)#ip ssh authentication-retries 3
```

<div class="console" id="bkmrk--1"></div>- Configuration de l'authentification et ajout d'un compte administrateur

```
2960-RG(config)#aaa new-model
2960-RG(config)#aaa authentication login default local
2960-RG(config)#aaa authorization exec default local
2960-RG(config)#username admin secret P@55w0rd
```

- Désactivation de telnet pour l'accès au switch

```
2960-RG(config)#line vty 0 15
2960-RG(config-line)#login local
2960-RG(config-line)#transport input ssh
```

- Vérification de la configuration

```
2960-RG#show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 60 secs; Authentication retries: 3
```

SSH est maintenant activé. nous pouvons accéder au switch avec un client ssh (par exemple putty pour windows).


##### Activation du routage statique  


```
switch(config)#sdm prefer landbase-routing
switch(config-if)#switch#write
switch#reload
```

##### Configurer le routage statique   


Premier routeur :  
Notre premier routeur connaît les routes pour aller sur le réseau 1.0 et 2.0 puisqu’il y est connecté, par contre, il ne sait pas comment accéder aux réseaux 3.0, 4.0 et 5.0. Il faut donc lui indiquer le chemin à prendre. (En gros il est perdu et on lui donne un GPS)

```
Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.2.253 
(on veut aller sur le réseau 3.0, pour y accéder, il est nécessaire de passer par la “patte” 192.168.2.253.)
Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.2.253
Router(config)#ip route 192.168.5.0 255.255.255.0 192.168.2.253
```

Deuxième routeur :  
Quant à lui, notre deuxième routeur ne connaît pas le chemin pour 1.0 et 5.0

```
Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.254
Router(config)#ip route 192.168.5.0 255.255.255.0 192.168.4.253
```

Troisième routeur :  
Notre troisième routeur ne connaît pas le chemin pour aller en 3.0, 2.0 et 1.0.

```
Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.4.254
Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.4.254
Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.4.254
```

##### Routage dynamique BGP

**Théorie**

BGP pour Border Gateway Protocol est le protocole qui est utilisés afin de faire du routage dynamique. Mais contrairement à OSPF, RIP ou EIGRP, BGP est un protocole EGP (Exterior Gateway Protocol), utilisé pour l'échange d'informations de routage entre des systèmes autonomes ( FAI, fournisseurs de contenu, ...).

BGP utilise le port TCP/179.

**(Très) Bonne pratique**:

Pour tous les protocoles de routage (excepté RIP), positionner le router-id 'manuellement'. Le router-id possède le format d'une adresse IP mais peut ne pas correspondre a une adresse IP définie sur le routeur, cependant, il est plus simple, et plus logique du point de vue administration et exploiatation que cette adresse IP corresponde à une address de loopback définie localement.

Le router-id determine (entre autre) qui est le serveur BGP et qui est le client BGP. Le routeur possédant le router-id le plus élevé sera le client (TCP) et initiera la connexion vers le serveur - qui sera donc le routeur avec router-id le plus petit.

**Mise en oeuvre**

```
Router(config)# router bgp <numéro-as>
Router(config-router)# bgp router-id <addresse-ip>
Router(config-router)# neighbor <adresse-ip> remote-as <numéro-as>
Router(config-router)# network adresse-réseau [mask masque-réseau]
```

**Vérification**

La commande `<strong>show ip route bgp</strong>` permet de visualiser les routes acquises par le protocole BGP.

La commande `<strong>show ip bgp</strong>` permet de vérifier que les réseaux IPv4 reçus et annoncés figurent bien dans la table BGP.

La commande `<strong>show ip bgp summary</strong>` ou `<strong>show bgp ipv4 unicast summary</strong>` permet de vérifier les voisins BGP IPv4 et d'autres informations BGP.

**Source**

[https://www.cisco.com/c/fr\_ca/support/docs/ip/border-gateway-protocol-bgp/26634-bgp-toc.html](https://www.cisco.com/c/fr_ca/support/docs/ip/border-gateway-protocol-bgp/26634-bgp-toc.html)

##### Routage Dynamique RIP

<p class="callout danger">En v1 il ne prends pas en compte les masques, contrairement à la v2. Si la v1 reçois des paquets de v2, il va les lire comme des v1. La v2 ne lit que les paquets de la v2.</p>

Activer RIP

```
R1(config)#router rip
R1(config-router)#version 2 
R1(config-router)#network network-address
```

(paramètres du protocole de routage)

```
R1#show ip protocols
```

(liste des routes)

```
R1#show ip route
```

(désactive les classes automatiques (que en version 2))

```
R1(config-router)#no auto-summary 
```

(ajouter une route)

```
R1#ip route 0.0.0.0 0.0.0.0
```

(route par défaut propagé)

```
R1#default-information originate
```

(empêche la transmission des routes via RIP)

```
R1(config-router)#passive interface g0/0
```

(empêche à toute les pattes de transmettre)

```
R1(config-router)#passive interface default
```

(autorise la transmission du RIP)

```
R1(config-router)#no passive interface
```

##### Routage hybride EIGRP

Activer l'EIGRP

```
router eigrp <autonomous-system> (la valeur autonomous-system doit être la même sur tous les routeurs)
```

Dire au routeur sur quel réseau il doit opérer

```
network <network> <wildcard-mask>
```

  
Pour trouver le wildcard-mask, il suffit de soustraire 255 à chaque partie du masque  
Exemple:

<table border="1" id="bkmrk-255-255-255-255---25" style="border-collapse: collapse; width: 27.7381%;"><colgroup><col style="width: 11.8561%;"></col><col style="width: 20.1554%;"></col><col style="width: 19.365%;"></col><col style="width: 20.1554%;"></col><col style="width: 28.85%;"></col></colgroup><tbody><tr><td>  
</td><td>255  
</td><td>255  
</td><td>255  
</td><td>255  
</td></tr><tr><td>-  
</td><td>255  
</td><td>255  
</td><td>255  
</td><td>0  
</td></tr><tr><td>=  
</td><td>0  
</td><td>0  
</td><td>0  
</td><td>255  
</td></tr></tbody></table>

Dans cet exemple, un masque 255.255.255.0 aura donc un wildcard de 0.0.0.255

Une fois l’EIGRP activé, le routeur va commencer à envoyer des "HELLO PACKET" pour découvrir les autres routeurs EIGRP et essayer d’établir une relation de voisinage (neighbor relationship)

Il reste plus qu'a faire la même chose sur chaque routeur

Pour voir la liste des routeurs "voisins", il suffit d'utiliser la commande

```
show ip eigrp neighbors
```

Exemple de configuration

```
R1(config)#router eigrp 1
R1(config-router)#network 192.168.1.0 0.0.0.255
```

##### Relai DHCP  


```
switch(config)# interface vlan 100
switch(config-if)# ip helper-address 172.31.64.10
switch(config-if)# ip helper-address 172.31.64.30
```


##### Configurer un DHCP sur un routeur Cisco

Se connecter et passe en mode config terminal  
ROUTER &gt; enable  
ROUTER # conf t

```
ROUTER > enable
ROUTER # conf t
```

Créer une étendue DHCP

```
ROUTER (config) # ip dhcp pool LAN1
```

Définir la passerelle

```
ROUTER (dhcp-config) # default-router 192.168.1.1
```

Définir l'adresse et le masque de l'étendue

```
ROUTER (dhcp-config) # network 192.168.1.0 255.255.255.0
```

Définir le(s) serveur(s) DNS

```
ROUTER (dhcp-config) # dns-server 192.168.1.254
ROUTER (dhcp-config) # exit
```

Exclure des adresses

```
ROUTER (config) # ip dhcp excluded-address 192.168.1.1 192.168.1.254
```

##### Affichage du routage  


```
switch#show ip route
```

#### Activer le trunk   


```
SW_POD4_BOT#configure terminal
SW_POD4_BOT(config)#interface gigabitEthernet 0/2
SW_POD4_BOT(config-if)#switchport mode trunk
W_POD4_BOT(config-if)#switchport trunk allowed vlan none
SW_POD4_BOT(config-if)#switchport trunk allowed vlan add 400
SW_POD4_BOT(config-if)#switchport trunk allowed vlan add 300
SW_POD4_BOT(config-if)#switchport trunk allowed vlan add 200
SW_POD4_BOT(config-if)#switchport trunk allowed vlan add 100
```

#### ACL  


```
RT_MAIN > enable
RT_MAIN # conf t
```

Création de la liste 10

```
RT_MAIN (config) # access-list 10 permit 192.168.10.0 0.0.0.255
```

Config de l’interface

```
RT_MAIN (config) # interface eth 1/0 
```

Application liste out

```
RT_MAIN (config-if) # ip access-group 1 out
```

Cette règle ACL standard autorise le réseau 192.168.10.0 à sortir de l’interface eth0 pour communiquer avec le réseau 192.168.12.0.  
Le réseau 192.168.11.0 ne pourra pas communiquer avec le réseau 192.168.12.0.

Acl pour faire passer les ip impaires :

```
access-list 10 permit 192.168.0.1 0.0.0.254
```

Exemple de commande:

```
access-list 102 permit tcp 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255 eq 22
```

J’autorise sur le reseau 192.168.2.0 d’aller sur l’HTTP vers le réseau 3.0

<p class="callout warning">Attention: On peut mettre qu’une ACL in et une ACL out par pattes</p>

#### QoS en fonction d'une interface source   


Déclaration de classes de flux :

```
MonRouteur#configure terminal
MonRouteur(config)#class-map match-all prio-sur-interface
MonRouteur(config-cmap)#match input-interface fa1/0
MonRouteur(config-cmap)#exit
MonRouteur(config)#
```

Déclaration d'une politique de QoS :

```
MonRouteur (config)#policy-map ma-politique-qos
MonRouteur (config-pmap)#class prio-sur-interface
MonRouteur (config-pmap-c)#set ip dscp cs7
MonRouteur (config-pmap-c)#exit
MonRouteur (config-pmap)#exit
MonRouteur (config)#
```

Application de la politique de QoS sur une interface :

```
MonRouteur(config)#interface fa0/1
MonRouteur(config-if)#service-policy output ma-politique-qos
MonRouteur(config-if)#exit
MonRouteur(config)#exit
```

#### QoS en fonction du protocole   


Déclaration d'une nouvelle classe de flux :

```
MonRouteur (config)#class-map match-all prio-sur-ftp
MonRouteur (config-cmap)#match protocol ftp
MonRouteur (config-cmap)#exit
MonRouteur (config)#
```

Élargissement de la politique de QoS :

```
MonRouteur (config)#policy-map ma-politique-qos
MonRouteur (config-pmap)#class prio-sur-ftp
MonRouteur(config-pmap-c)#bandwidth percent 10       // On réserve 10% de la bande passante pour ce flux
MonRouteur (config-pmap-c)#set ip dscp cs1
MonRouteur (config-pmap-c)#exit
MonRouteur (config-pmap)#exit
MonRouteur (config)#
```

#### Routage sur un routeur 

```
# VLAN SORTIE
switch(config)# Interface GigabitEthernet 0/1.400
switch(config-if)# encapsulation dot1q 400
switch(config-if)# ip address 172.31.192.1 255.255.192.0
switch(config-if)# no shutdown
switch(config-if)# exit
switch(config)#

# VLAN SERVEURS
switch(config)# Interface GigabitEthernet 0/1.300
switch(config-if)# encapsulation dot1q 300
switch(config-if)# ip address 172.31.64.1 255.255.192.0
switch(config-if)# no shutdown
switch(config-if)# exit
switch(config)#

# VLAN SUPERVISION
switch(config)# Interface GigabitEthernet 0/1.200
switch(config-if)# encapsulation dot1q 200
switch(config-if)# ip address 172.31.128.1 255.255.192.0
switch(config-if)# no shutdown
switch(config-if)# exit
switch(config)#

# VLAN SERVICES UTILISATEURS
switch(config)# Interface GigabitEthernet 0/1.100
switch(config-if)# encapsulation dot1q 100
switch(config-if)# ip address 172.31.0.1 255.255.192.0
switch(config-if)# no shutdown
switch(config-if)# ip helper-address 172.31.64.10
switch(config-if)# ip helper-address 172.31.64.30
switch(config-if)# exit
switch(config)#

# Route par défaut

interface GigabitEthernet 0/1
switch(config)#ip route 0.0.0.0 0.0.0.0 172.31.192.2
switch(config)#no shutdown
```

#### Routage groupé (redondance de routeurs)   


J'ai deux routeurs :   
RT 1 - 192.168.0.1   
RT 2 - 192.168.0.2

Et nous allons créé une interface virtuelle qui permettra la redondance :

SW 1 :

```
// Activation de RIP
SW-1(config)#router rip
SW-1(config-router)#version 2

// Définition de tous les réseaux auquel le routeur est connectés 
SW-1(config-router)#network 192.168.0.0
SW-1(config-router)#network 172.16.0.0

// Maximum de Sauts autorisés (n)
SW-1(config-router)default-metric n

// Réglage des conteurs de retenue
// timers basic update invalid holddown flush 
// update = envoie en seconde des mises à jours de routage ;  
// invalid = temps pour être invalide ; 
// holddown = l'intervalle pendant lequel les informations de routage sur les meilleurs chemins sont supprimées ; 
// flush = le délai écoulé avant que la route ne soit retirée de la table de routage.
//
// 
SW-1(config-router)#timers basic 30 180 180 260

// Propagation de la route par défaut
SW-1(config-router)#default-information originate

// Désactivation de l'auto agrégation
SW-1(config-router)#no auto-summary

// Luter contre les boucles réseau
SW-1(config-router)#ip split-horizon

// Route par défaut
SW-1(config-router)#ip default-network W.X.Y.Z


// Mise en oeuvre du HSRP 
// Où 1 est le numéro du groupe HSRP et l'ip est l'adresse réseau virtuelle du groupe 
SW-1(config-router)#standby 1 ip 192.168.0.254


```

SW 2 :

```
// Activation de RIP
SW-2(config)#router rip
SW-2(config-router)#version 2

// Définition de tous les réseaux auquel le routeur est connectés 
SW-2(config-router)#network 192.168.0.0
SW-2(config-router)#network 172.16.0.0

// Maximum de Sauts autorisés (n)
SW-2(config-router)default-metric n

// Réglage des conteurs de retenue
// timers basic update invalid holddown flush 
// update = envoie en seconde des mises à jours de routage ;  
// invalid = temps pour être invalide ; 
// holddown = l'intervalle pendant lequel les informations de routage sur les meilleurs chemins sont supprimées ; 
// flush = le délai écoulé avant que la route ne soit retirée de la table de routage.
//
// 
SW-2(config-router)#timers basic 30 180 180 260

// Propagation de la route par défaut
SW-2(config-router)#default-information originate

// Désactivation de l'auto agrégation
SW-2(config-router)#no auto-summary

// Luter contre les boucles réseau
SW-2(config-router)#ip split-horizon

// Route par défaut
SW-2(config-router)#ip default-network W.X.Y.Z


// Mise en oeuvre du HSRP 
// Où 1 est le numéro du groupe HSRP et l'ip est l'adresse réseau virtuelle du groupe 
SW-2(config-router)#standby 1 ip 192.168.0.254
SW-2(config-router)#standby 1 priority 120
SW-2(config-router)#standby 1 preempt


```

La tolérance de panne a bien été installée !

#### NTP Maitre   


```
SW-2(config-router)#ntp master 1
```

#### NTP Esclaves   


```
SW-2(config-router)#ntp server 192.168.1.1
```

<div class="page-content" id="bkmrk--5"><div dir="auto"><div id="bkmrk--6"></div></div></div>#### NAT   


```
// Création d'une ACL
routeur1(config)#ip access-list standard NAT_INTERNET_VLAN2
routeur1(config-std-nacl)#permit 192.168.2.0 0.0.0.255
routeur1(config-std-nacl)#exit

// NAT Sortant 
routeur1(config)#int gi0/1
routeur1(config-if)#ip nat outside
routeur1(config-if)#exit

// NAT Entrant
routeur1(config)#int gigabitEthernet 0/0.2
routeur1(config-subif)#ip nat inside
routeur1(config-if)#exit

// Affectation 
routeur1(config)#ip nat inside source list NAT_INTERNET_VLAN2 interface GigabitEthernet0/1 overload

// Porte de sortie 
routeur1(config)#ip nat inside source static 192.168.2.1 223.0.0.1

// Redirection de port
routeur1(config)#ip nat inside source static tcp 192.168.2.1 80 223.0.0.1 80
```

##### Port Security

Configuration de la sécurité des ports

Activer la sécurité des ports sur les ports Fast Ethernet 0/1 et 0/2.

```
conf t

interface fa0/1

switchport mode access

switchport port-security

interface fa0/2

switchport mode access

switchport port-security
```

Opter pour le niveau maximum, de sorte qu’un seul périphérique puisse accéder aux ports Fast Ethernet 0/1 et 0/2.

```
switchport port-security maximum 1
```

Sécuriser les ports de sorte que l’adresse MAC d’un périphérique soit apprise de manière dynamique et ajoutée à la configuration en cours.

```
Switchport port-security mac-address sticky
```

Définir la violation de sorte que les ports Fast Ethernet 0/1 et 0/2 ne soient pas désactivés en cas de violation, mais que les paquets soient abandonnés s’ils proviennent d’une source inconnue.

```
switchport port-security violation protect
```

Désactiver tous les ports inutilisés restants.

```
Interface range fa0/3-24

shutdown

exit
```

Pour vérifier l'état d'un port (fa0/2 par exemple).

```
sh port-security inter fa0/2
```

##### Activer VTP

VTP permet d'ajouter, renommer ou supprimer un ou plusieurs réseaux locaux virtuels sur un seul commutateur (le serveur) qui propagera cette nouvelle configuration à l'ensemble des autres commutateurs du réseau (clients). VTP permet ainsi d'éviter toute incohérence de configuration des VLAN sur l'ensemble d'un réseau local.

```
2960-RG(config)#vtp domain “nom”
2960-RG(config)#vtp mode server / client / transparent
2960-RG(config)#vtp password “password”
2960-RG(config)#vtp version 2
```

##### Changer la vitesse des interfaces

```
R1(config)#interface <nom de l’interface>
R1(config-if)#speed <valeur en mb/s>
```