mercredi 19 décembre 2012

NAT / PAT Sur routeur Cisco


Préalable:

On a configuré un switch avec deux Vlans, un lien trunk entre le switch et le routeur. Les deux PC se trouvent chacun dans un réseau différent (192.168.1.0 et 192.168.2.0) et dans un Vlan différent. Le routeur dispose de deux ports virtuels sur son interface trunk: 192.168.1.1 (vlan2) et 192.168.2.1 (vlan3).

L'adresse publique de notre routeur est 10.2.18.97. Tous les masques sont en /24.

Identification des interfaces (A faire en premier, quel que soit le type de NAT)

Avant tout, il faut identifier les interfaces publiques et privées.
conf t
         interface fastEthernet 0/1

                  ip nat outside → Si l'interface est publique
                  ex
         interface fastEthernet 0/0.20
                  ip nat inside → Si l'interface est privée
                  ex

Inside Static NAT :

On va créer manuellement une translation :
conf t         ip nat inside source static <local IP> <global IP>

On visualise la table des translations :
show ip nat translations

Pour le désactiver :
conf t         no ip nat inside source static <local IP> <global IP>  
         (Répondre « yes » si le routeur demande si les routes doivent-être supprimées)

Inside Static NAT+PAT :

Avant tout, désactiver toute translation statique déjà en place (no ip nat inside...). Si le routeur refuse de le faire, nous disposons d'une commande "clear ip nat..." permettant de vider la table de translation.

On recrée maintenant une translation statique, mais en précisant les numéros de port:
ip nat inside source static tcp 192.168.2.2 80 10.2.18.97 200

Tout paquet envoyé à l'adresse 10.2.18.24 sur le port 200 sera maintenant redirigé vers l'adresse 192.168.1.2 sur le port 80.

Attention : A ce stade, le ping ne peut plus passer (ping utilise ICMP). On peut afficher la table des translations avec cette commande:
Router#show ip nat translations
Pro Inside global          Inside local       Outside local       Outside global
tcp 10.2.18.97:200     192.168.2.2:80            ---                              ---
On peut tenter d'établir une connexion pour vérifier le bon fonctionnement. Depuis une machine extérieure, taper:
telnet 10.2.18.97 200

La connexion sera refusée, aucun service telnet n'étant installé sur notre machine 192.168.1.2.
En affichant de nouveau la table des translations, on constate que notre tentative de connexion telnet a ouvert une entrée dans la table:

Table affichée:
Pro Inside global Inside local Outside local Outside global tcp 10.2.18.97:200 192.168.2.2:80 10.2.12.4:3696 10.2.12.4.3696 


Inside Dynamic NAT :

On va créer une access-list listant les machines autorisée à être NATées. Dans mon cas :
conf t

         access-list 12 permit 192.168.0.0 0.0.255.255

Vérifiable par :
show access-lists

On créer maintenant un pool d'adresses utilisables.
ip nat pool coucou 10.2.18.97 10.2.18.99 prefix-length 24 → masque en notation CIDR (= /24)


On active maintenant le NAT :
ip nat inside source list 12 pool coucou → Les adresses de l'ACL 12 seront natées derrière les adresses du pool « coucou »

         OU
Lorsque l'on désire nater plusieurs adresses derrière l'adresse externe du routeur (ce qui est le cas sur les box opérateur des particuliers) :
ip nat inside source list 12 fastEthernet0/0 overload → Les adresses de l'ACL 12 seront natées derrière l'adresse de l'interface Fa0/0.


Inside Dynamic NAT + PAT :

On va créer une access-list listant les machines autorisée à être NATées. Dans mon cas :
conf t

         access-list 12 permit 192.168.0.0 0.0.255.255

Vérifiable par :
show access-lists

On créer maintenant un pool d'adresses utilisables (une seule adresse ici) :
ip nat pool coucou 10.2.18.97 10.2.18.97 prefix-length 24 → masque en notation CIDR (= /24)


On active maintenant le NAT :
ip nat inside source list 12 pool coucou overload → Les adresses de l'ACL 12 seront natées derrière les adresses du pool « coucou ». L'adresse pourra être utilisée simultanément par plusieurs machines (« overload » = PAT).


On constate que les adresses sont bien natées derrière une seule IP :
Router(config)#do sho ip nat transPro Inside global Inside local Outside local Outside global icmp 10.2.18.97:50950 192.168.2.2:50950 10.2.18.1:50950 10.2.18.1:50950 icmp 10.2.18.97:38918 192.168.3.2:38918 10.2.18.1:38918 10.2.18.1:38918 

Outside Static NAT (Principe uniquement):

On crée une ACL listant les adresses IP externes.
On crée un pool d'adresses qui seront utilisées pour nater.

La ligne finale sera de la forme :
ip nat outside source list 12 pool coucou overload 

Aucun commentaire:

Enregistrer un commentaire