Static subnet NAT avec VRF pour monter des ‘PODs’ (LAB)

Etant en train de monter un LAB, et celui-ci se décomposant en plusieurs PODs, j’ai voulu faire en sorte que ces PODs soient identiques (topologie, adressage IP, …), tout en ayant un accès vers un réseau externe. Voici donc comment j’ai fait pour réaliser ça:

On va utiliser cette topologie pour l’exemple:

Topologies PODs

Topologies PODs

On va donc ici utiliser des VRFs pour chacuns des PODs, et on va ajouter du NAT statique pour tout le réseau du POD. Cela veut dire que 2 PODs peuvent avoir le même réseau, mais seront vu depuis l’extérieur comme des réseau différent. Cela permets de copier/déplacer des machines depuis un POD vers l’autre.

On commence par la configuration IP et VRF sur R2:

!
hostname R2
!
ip vrf pod1
rd 65000:1
!
ip vrf pod2
rd 65000:2
!
interface FastEthernet1/0
ip address 192.168.10.2 255.255.255.0
ip nat outside
ip virtual-reassembly
duplex auto
speed auto
!
interface FastEthernet1/1
ip vrf forwarding pod1
ip address 192.168.0.1 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto
!
interface FastEthernet2/0
ip vrf forwarding pod2
ip address 192.168.0.1 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto
!

On ajoute ensuite la config du NAT et du routage:

!
ip nat inside source static network 192.168.0.0 192.168.1.0 /24 vrf pod1
ip nat inside source static network 192.168.0.0 192.168.2.0 /24 vrf pod2
ip route vrf pod1 0.0.0.0 0.0.0.0 192.168.10.1 global
ip route vrf pod2 0.0.0.0 0.0.0.0 192.168.10.1 global
!

Voilà, le plus gros du travail est fait. Si on regarde la syntaxe des commandes nat, on voit que l’ont traduit le réseau 192.168.0.0 de la VRF pod1 vers le réseau 192.168.1.0, avec un masque de 24bits (on auraient pu mettre netmask 255.255.255.0). On fait la même chose avec le réseau 192.168.0.0 de la VRF pod2 que l’ont traduit en 192.168.2.0. L’astuce ici est d’utiliser le « source static network » qui indique que l’on va translater un réseau et non pas une IP.

Ensuite, on ajoute des routes dans les VRF vers la table globale afin que le traffic puisse joindre le réseau extérieur.

La configuration des autres routeurs est assez simple ici :

R1:

!
interface FastEthernet1/0
ip address 192.168.10.1 255.255.255.0
duplex auto
speed auto
!
ip route 192.168.0.0 255.255.0.0 192.168.10.2
!

R3/R4:

!
interface FastEthernet1/0
ip address 192.168.0.2 255.255.255.0
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 192.168.0.1
!

Ici, si je ping 192.168.1.2 depuis R1, je ping R3, et si je ping 192.168.2.2 je ping R4:

R1#ping 192.168.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 132/159/176 ms
R1#ping 192.168.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 152/167/188 m

R3#
*Jun 14 14:08:51.187: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0
*Jun 14 14:08:51.335: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0
*Jun 14 14:08:51.491: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0
*Jun 14 14:08:51.667: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0
*Jun 14 14:08:51.819: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0

R4#
*Jun 14 14:08:54.023: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0
*Jun 14 14:08:54.183: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0
*Jun 14 14:08:54.323: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0
*Jun 14 14:08:54.531: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0
*Jun 14 14:08:54.667: ICMP: echo reply sent, src 192.168.0.2, dst 192.168.10.1, topology BASE, dscp 0 topoid 0

On peut voir sur R2 que le traffic est bien natté:

R2#sh ip nat translations 
Pro Inside global      Inside local       Outside local      Outside global
icmp 192.168.1.2:7     192.168.0.2:7      192.168.10.1:7     192.168.10.1:7
--- 192.168.1.2        192.168.0.2        ---                ---
--- 192.168.1.0        192.168.0.0        ---                ---
icmp 192.168.2.2:6     192.168.0.2:6      192.168.10.1:6     192.168.10.1:6
--- 192.168.2.2        192.168.0.2        ---                ---
--- 192.168.2.0        192.168.0.0        ---                ---


!

hostname R2

!

ip vrf pod1

rd 65000:1

!

ip vrf pod2

rd 65000:2

!

interface FastEthernet1/0

ip address 192.168.10.2 255.255.255.0

ip nat outside

ip virtual-reassembly

duplex auto

speed auto

!

interface FastEthernet1/1

ip vrf forwarding pod1

ip address 192.168.0.1 255.255.255.0

ip nat inside

ip virtual-reassembly

duplex auto

speed auto

!

interface FastEthernet2/0

ip vrf forwarding pod2

ip address 192.168.0.1 255.255.255.0

ip nat inside

ip virtual-reassembly

duplex auto

speed auto

!

Recent Entries

2 Responses to “Static subnet NAT avec VRF pour monter des ‘PODs’ (LAB)”

  1. mika Says:

    Bonjour,

    Qu’appellez-vous des ‘PODs » ?

    Merci d’avance.

  2. Bastien Migette Says:

    Bonjour,
    Ce que j’appelle un POD est un Mini Lab autonome conçu pour faire fonctionner et tester des produits / technologies. Dans cet article le but était de montrer comment avoir plusieurs Mini labs avec le même schéma d’adressage ce qui simplifie la gestion des configs, des clones de machine Virtuelles …

Leave a Reply

Le temps imparti est dépassé. Merci de recharger le CAPTCHA.