# Théo RIVIÈRE et Nohan VIOT
## R201 - TP6 - Translation d’adresses - NAT
**Objectifs:**
- Établir le plan d'adressage du réseau
- Configurer le routage statique
- Configurer la fonction NAT statique, dynamique et la surcharge NAT
### Présentation
Voici la topologie de base du réseau :

Ce réseau d’entreprise comprend trois réseaux privés virtuels reliés au réseau public Internet.
Le VLAN DMZ permet d’isoler les machines serveurs dont on veut contrôler l’accès (intérieur et extérieur), le VLAN Ressources est utilisé pour l’hébergement des services locaux (Intranet, fichiers…) et le VLAN Clients est utilisé pour les postes de travail des utilisateurs. Un quatrième VLAN Gestion est ajouté pour assurer l’administration de l’infrastructure. Il joue aussi le rôle du VLAN natif.
La configuration du commutateur SW1 est la suivante :
| Ports | Affectation | Réseau |
| --------------- | ------------------------------------------- | ----------------- |
| Fa0/1 à Fa0/5 | VLAN 12 – DMZ | 192.168.12.0 /24 |
| Fa0/6 à Fa0/10 | VLAN 102 – Clients (Accès des utilisateurs) | 192.168.102.0 /24 |
| Fa0/11 à Fa0/15 | VLAN 202 – Ressources (Intranet, fichiers…) | 192.168.202.0 /24 |
| Fa0/21 à Fa0/24 | VLAN 77 – Gestion (Agrégations 802.1Q) | 192.168.72.0 /24 |
Le réseau de l’entreprise est relié à Internet par l’intermédiaire du routeur R1. Le fournisseur d’accès Internet (FAI) a attribué l’espace d’adressage IP public **195.200.0.0/28** à l’entreprise. Cela lui permet de disposer de 14 adresses IP publiques. Le routeur ISP devra être configuré avec une route résumé vers ce pool d’adresses.
| Nom du réseau | Adresse réseau | Plage d'adresses IP | Masque de sous-réseau | Adresse de diffusion |
| ------------- | -------------- | -------------------------- | --------------------- | -------------------- |
| VLAN 12 - DMZ | 195.200.0.0 | 195.200.0.1 - 195.200.0.14 | 255.255.255.240 (/28) | 195.200.0.15 |
Internet sera simulé par la présence d’un PC dans le réseau **193.200.0.0/24**. Ce PC jouera le rôle d’un serveur ou d’un client.
La RFC 1918 définit un espace d’adressage privé permettant à toute organisation d’attribuer des
adresses IP aux hôtes de son réseau interne sans risque de conflit avec les adresses IP publiques
allouées par l’IANA (Internet Assignement Number Authority).
Afin que les adresses privées ne soient pas routées dans le domaine public, vous devrez mettre en place un mécanisme de translation d’adresses.
## Adressage, câblage, configuration de base et routage inter-vlan
Voici la nouvelle topologie du réseau :

Tableau des différents périphériques :

Configuration du routeur R1 :
```
en
erase startup-config
reload
en
conf t
hostname R1
no ip domain-lookup
int s0/0/0
clock rate 64000
ip address 209.1.1.1 255.255.255.252
no shutdown
int Gi0/0.77
encapsulation dot1Q 77 native
ip address 192.168.72.254 255.255.255.0
no shutdown
int Gi0/0.12
encapsulation dot1Q 12
ip address 192.168.12.254 255.255.255.0
no shutdown
int Gi0/0.102
encapsulation dot1Q 102
ip address 192.168.102.254 255.255.255.0
no shutdown
int Gi0/0.202
encapsulation dot1Q 202
ip address 192.168.202.254 255.255.255.0
no shutdown
int Gi0/0
no shutdown
end
```
Configuration du routeur ISP :
```
en
erase startup-config
reload
en
conf t
hostname ISP
no ip domain-lookup
int s0/0/0
ip address 209.1.1.2 255.255.255.252
no shutdown
int Gi0/0
ip address 193.200.0.254 255.255.255.0
no shutdown
end
```
Configuration de SW1 :
```
en
erase startup-config
delete vlan.dat
reload
en
conf t
hostname SW1
no ip domain-lookup
vlan 12
name DMZ
vlan 102
name Clients
vlan 202
name Ressources
vlan 77
name Gestion
exit
int range Gi1/0/1-5
switchport mode access
switchport access vlan 12
int range Gi1/0/6-10
switchport mode access
switchport access vlan 102
int range Gi1/0/11-15
switchport mode access
switchport access vlan 202
int range Gi1/0/21-24
switchport mode trunk
switchport trunk native vlan 77
end
```
Vérification de la création des VLANs et de leurs bonnes affectations :

Table de routage de R1 :
```
Gateway of last resort is not set
192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.12.0/24 is directly connected, GigabitEthernet0/0.12
L 192.168.12.254/32 is directly connected, GigabitEthernet0/0.12
192.168.72.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.72.0/24 is directly connected, GigabitEthernet0/0.77
L 192.168.72.254/32 is directly connected, GigabitEthernet0/0.77
192.168.102.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.102.0/24 is directly connected, GigabitEthernet0/0.102
L 192.168.102.254/32 is directly connected, GigabitEthernet0/0.102
192.168.202.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.202.0/24 is directly connected, GigabitEthernet0/0.202
L 192.168.202.254/32 is directly connected, GigabitEthernet0/0.202
209.1.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.1.1.0/30 is directly connected, Serial0/1/0
L 209.1.1.1/32 is directly connected, Serial0/1/0
```
Test de connectivité ping entre le VLAN 12 et VLAN 102 :

Test de connectivité ping entre VLAN 12 et VLAN 202 :

Test de connectivité ping entre VLAN 102 et 202 :

Le fonctionnement du routage inter-vlan est confirmé par les tests de connectivités.
## Analyse du fonctionnement de la translation d’adresses
### Configuration du NAT statique
Dans cette partie, on doit proposer une solution de translation d'adresses statique et de routage pour que :
- les hôtes des VLAN Clients et Ressources puissent communiquer avec le serveur Web de la DMZ.
- le serveur Web soit accessible depuis le réseau Internet.
Pour cela, on ajoute dans la table de routage du routeur ISP, le pool d'adresses publiques affectée à l'entreprise à l'aide de la commande suivante : ```ip route 195.200.0.0 255.255.255.240 s0/0/0```.
Vérification dans la table de routage de ISP que la route résumée à bien été ajoutée :
```
193.200.0.0/24 is variably subnetted, 2 subnets, 2 masks
C 193.200.0.0/24 is directly connected, GigabitEthernet0/0
L 193.200.0.254/32 is directly connected, GigabitEthernet0/0
!!** 195.200.0.0/28 is subnetted, 1 subnets
S 195.200.0.0/28 is directly connected, Serial0/1/0 **!!
209.1.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.1.1.0/30 is directly connected, Serial0/1/0
L 209.1.1.2/32 is directly connected, Serial0/1/0
```
Ensuite on ajoute une route par défaut sur le routeur R1 vers le routeur ISP, grâce à la commande suivante : ```ip route 0.0.0.0 0.0.0.0 209.1.1.2```
Vérification dans la table de routage de R1 que la route par défaut à bien été ajoutée :
```
192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.12.0/24 is directly connected, GigabitEthernet0/0.12
L 192.168.12.254/32 is directly connected, GigabitEthernet0/0.12
192.168.72.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.72.0/24 is directly connected, GigabitEthernet0/0.77
L 192.168.72.254/32 is directly connected, GigabitEthernet0/0.77
192.168.102.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.102.0/24 is directly connected, GigabitEthernet0/0.102
L 192.168.102.254/32 is directly connected, GigabitEthernet0/0.102
192.168.202.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.202.0/24 is directly connected, GigabitEthernet0/0.202
L 192.168.202.254/32 is directly connected, GigabitEthernet0/0.202
209.1.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.1.1.0/30 is directly connected, Serial0/1/0
L 209.1.1.1/32 is directly connected, Serial0/1/0
!!** S* 0.0.0.0/0 [1/0] via 209.1.1.2 **!!
```
:::success
Les routes ajoutées ont bien été apprises par les routeurs !
:::
On configure maintenant le NAT statique sur le routeur R1 pour que les hôtes de l'Internet puissent accéder au serveur Web de la DMZ :
Pour cela, on commence par assigné les interfaces intérieur/extérieur à l'aide des commandes :
```
int Gi0/0
ip nat inside
int s0/0/0
ip nat outside
exit
ip nat inside source static 192.168.12.1 195.200.0.1
```
Vérification du fonctionnement du NAT statique à l'aide d'une requête HTTP :

Puis vérification avec une requête ICMP :

On visualise maintenant la table des traductions et les statistiques à l'aides des commandes ```show ip nat translations``` :
```
Pro Inside global Inside local Outside local Outside global
--- 195.200.0.1 192.168.12.1 --- ---
```
On peut voir que notre adresse IP locale '192.168.12.1' (Inside local) est transformée en adresse IP global '195.200.0.1' (Inside global), par le routeur R1.
et de la commande ```show ip nat statistics``` :
```
Total translations: 1 (1 static, 0 dynamic, 0 extended)
Outside Interfaces: Serial0/1/0
Inside Interfaces: GigabitEthernet0/0.12
Hits: 132 Misses: 32
Expired translations: 11
Dynamic mappings:
```
On voit que le routage fonctionne correctement, et que notre table contient 1 translation d'adresse statique, que l'interface de sortie est S0/1/0, que l'interface interne est Gi0/0.12 (interface de la DMZ).
Acquisation à l'aide de Wireshark des adresses IP utilisées lors d'une requête ICMP :

### Configuration du NAT dynamique
Dans cette partie, on va devoir proposer une solution de translation d'adresses dynamique pour que :
- les hôtes des VLAN Clients et Ressources puissent accéder à Internet
- les hôtes d'Internet ne puissent pas communiquer avec les hôtes de VLAN Clients et Ressources.
Pour cela, on commence par configurer les interfaces internes du routeur R1 :
```
int Gi0/0.102
ip nat inside
int Gi0/0.202
ip nat inside
```
Ensuite, on configure une ACL contenant une liste des adresses source internes qui seront traduites :
```
ip access-list standard Int-List
permit 192.168.102.0 0.0.0.255
permit 192.168.202.0 0.0.0.255
exit
ip nat pool NAT-Pool 195.200.0.2 195.200.0.15 netmask 255.255.255.240
ip nat inside source list Int-List pool NAT-Pool
exit
```
Vérification du fonctionnement du NAT dynamique à l'aide de requêtes ICMP de PC1-VLAN102 vers Internet :

Vérification du fonctionnement du NAT dynamique à l'aide de requêtes ICMP de PC2-VLAN202 vers Internet :

Analyse de la table des traductions :

Statistique du NAT dynamique :

Acquisation à l'aide de Wireshark des adresses IP utilisées lors d'une requête ICMP :

## Accès à Internet
### Configuration de la surcharge NAT (Masquerading)
Dans cette partie, le routeur R1 sera connecté à l’intranet des RT. Chaque table de TP représente un service de l’entreprise (Comptabilité, Production, Recherche…) et doit accéder à Internet. Pour cela, il faut modifier l’architecture du réseau comme indiqué ci-dessous.

La plage d’adresse 192.168.100.222 sera utilisée pour l’adressage statique de l’interface du routeur R1. L’ensemble des ports du commutateur SW-Cisco sont dans le Vlan 60.
On commence par configurer l'interface Gi0/1 du routeur R1 avec les commandes ci-dessous :
```
conf t
int Gi0/1
ip nat outside
ip address 192.168.100.222 255.255.255.0
no shutdown
end
```
Ensuite, pour mettre en œuvre la surcharge NAT dans la topologie proposée, on désactive la translation d’adresses statique et dynamique établies précédemment :
```
no ip access-list standard Int-List
no ip nat pool NAT-Pool 195.200.0.2 195.200.0.15 netmask 255.255.255.240
no ip nat inside source list Int-List pool NAT-Pool
no ip nat inside source static 192.168.12.1 195.200.0.1
```
Vérification de la suppression des NAT (avec la commande ```show ip nat statistics```):

Maintenant, on configure la fonction de surcharge NAT pour les hôtes des VLAN Clients et Ressources en utilisant l’adresse de l’interface du routeur:
```
conf t
ip access-list standard Int-List
permit 192.168.102.0 0.0.0.255
permit 192.168.202.0 0.0.0.255
exit
ip nat inside source list Int-List interface Gi0/1 overload
end
```
On analyse à present la table des traductions et les statistiques à l'aide des commandes 'show ip nat translations' et 'show ip nat statistics' :
show ip nat translations :
```
Pro Inside global Inside local Outside local Outside global
icmp 192.168.100.222:11467 192.168.202.1:11467 8.8.8.8:11467 8.8.8.8:11467
```
- **Protocole**: ICMP (Internet Control Message Protocol),
- **Inside global**: 192.168.100.222:11467
- Adresse IP globale et port utilisé par l'hôte à l'intérieur du réseau pour la communication externe.
- **Inside local**: 192.168.202.1:11467
- Adresse IP locale et port de l'hôte interne avant la traduction NAT.
- **Outside local** et **Outside global**: 8.8.8.8:11467
- Adresses et port de destination à l'extérieur du réseau. Dans ce cas, c'est la même adresse IP car il s'agit d'une seule session de communication vers l'adresse 8.8.8.8 (DNS de Google).
show ip nat statistics :
```
Total active translations: 0 (0 static, 0 dynamic; 0 extended)
Peak translations: 6, occurred 02:57:12 ago
Outside interfaces:
GigabitEthernet0/1
Inside interfaces:
GigabitEthernet0/0, GigabitEthernet0/0.12, GigabitEthernet0/0.102
GigabitEthernet0/0.202
Hits: 46 Misses: 0
CEF Translated packets: 46, CEF Punted packets: 0
Expired translations: 8
Dynamic mappings:
-- Inside Source
[Id: 3] access-list Int-List interface GigabitEthernet0/1 refcount 0
Total doors: 0
Appl doors: 0
Normal doors: 0
Queued Packets: 0
```
- **Total active translations**: 1
- Actuellement, il y a 1 traductions NAT actives.
- **Peak translations**: 6
- Le nombre maximum de traductions actives atteintes était de 6, il y a 2 heures, 57 minutes et 12 secondes.
- **Interfaces**:
- Outside: GigabitEthernet0/1
- L'interface externe utilisée pour les communications sortantes.
- Inside: Plusieurs interfaces internes (GigabitEthernet0/0, GigabitEthernet0/0.12, GigabitEthernet0/0.102, GigabitEthernet0/0.202).
- **Hits**: 46
- Le nombre de fois où des paquets ont été traduits avec succès.
- **Misses**: 0
- Le nombre de fois où des paquets n'ont pas pu être traduits.
- **CEF Translated packets**: 46
- Paquets traduits par Cisco Express Forwarding (CEF), un mécanisme de transfert de paquets rapide.
- **Expired translations**: 8
- Le nombre de traductions NAT qui ont expiré.
:::success
En conclusion, le NAT est correctement configuré et fonctionne comme prévu, avec un historique récent de traductions actives et aucune erreur apparente. :+1:
:::
On réalise une acquisition de trames avec Wireshark afin de monterer que les paquets circulants entre R1 et Routeur-RT possèdent l'adresse de l'interface du routeur R1 :

On voit que c'est bien le cas.
L'intérêt d'utiliser une translation d'adresses entre sous-réseau internes sont :
- **Épuisement des adresses IPv4**: NAT permet de pallier l'épuisement des adresses IPv4 en réutilisant des adresses IP privées dans différents sous-réseaux internes.
- **Réduction du besoin d'adresses IP publiques**: Un seul pool d'adresses IP publiques peut être partagé par plusieurs sous-réseaux internes, réduisant ainsi le besoin d'acquérir et de gérer de nombreuses adresses IP publiques.
- **Facilité d'ajout de nouveaux sous-réseaux**: NAT permet d'ajouter facilement de nouveaux sous-réseaux internes sans avoir à se soucier de l'allocation d'adresses IP publiques supplémentaires.
Pour configurer le NAT avec redirection de ports, sur le routeur R1, afin que les hôtes du réseau 192.168.100.0/24 puissent s'y connecter, on utilise la commande suivante : ```ip nat inside source static tcp 192.168.12.1 80 192.168.100.222 80```
On teste que notre page web est accessible depuis le réseau 192.168.100.0/24 :

Pour ajouter un accès SSH, on rajoute à l'aide de cette commande : ```ip nat inside source static tcp 192.168.12.1 22 192.168.100.222 22```, une redirection de port vers le port de SSH (22).
On test en essayant de se connecter à notre serveur WEB via SSH :

:::success
Notre NAT est donc, en conclusion, bien configuré ! :+1:
:::