# [Cisco] ICMP

## Introduction

Cette page va décrire les différentes possibilités offertes par les équipements Cisco afin de pouvoir débugger avce l'ICMP.

## ![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-09/scaled-1680-/OKZimage.png)Ping

Voici la syntaxe basique de la commande **ping** par défaut :

```
ping <IP_DST>
```

<span style="text-decoration: underline;">Remarque :</span> La commande ping peut être interrompue par la combinaison **CTRL + Shift + 9** .

La commande ping peut aussi s'utiliser en mode interactif, ce qui permet de définir les options unes à unes en répondant aux questions :

```
ping
```

On peut aussi spécifier une adresse IP source, pour tester si la machine de destination parvient à accéder à l'interface qu'on souhaite de notre machine :

```
ping <IP_DST> [source IP_SRC]
```

Il est possible de définir le nombre de paquet à envoyer grâce à l'option repeat :

```
ping <IP_DST> [repeat NUMBER]
```

On peut définir le **timeout** (en seconde) :

```
ping <IP_DST> [timeout NUMBER]
```

Ou encore la **taille** du paquet (en octet) :

```
ping <IP_DST> [size NUMBER]
```

On peut activer le mode **Record** (ping étendu) qui permet d'afficher chaque interface de sortie par lesquels le paquet est passé.

Pour cela, on entre en mode interactif, on met la valeur de <span style="text-decoration: underline;">*"Extended commands"*</span> sur **y** et on met la valeur de *<span style="text-decoration: underline;">"Loose, Strict, Record, Timestamp, Verbose\[none\]"</span>* sur **R** :

```
R1#ping
Protocol [ip]:
Target IP address: 192.168.0.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface:
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0x0000ABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]: R
Number of hops [ 9 ]:
Loose, Strict, Record, Timestamp, Verbose[RV]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
```

## Activer le mode debug icmp

Permet d'afficher les logs dans la console à chaque fois qu'une requête icmp est envoyée ou reçue.

```
debug ip icmp
```

## Traceroute

La commande **traceroute** permet d'afficher l'adresse IP des interfaces d'entrées des routeurs que le paquet à traverser avant d'arriver à destination :

```
traceroute <IP_DST>
```

En cas de réussite, la commande affichera **"Port unreachable"**. Dans le cas contraire, elle affichera **"Time exceeded"**.

On peut spécifier un nombre de **tentative** :

```
traceroute <IP_DST> [probe NUMBER]
```