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:
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
!