VRF-Aware GETVPN, DMVPN, et FLEXVPN Spoke To Spoke

Dans cet article, je vais vous présenter l’utilisation de 3 VPNs multipoints (GETVPN, FLEXVPN Spoke To Spoke, et DMVPN) avec des VRFs (Virtual Routing and Forwarding).
Pour rappel, une VRF permets de virtualiser la table de routage d’un routeur afin de segmenter le routage de manière logique.

Topology

 

J’ai par contre pas le courage de détailler chaque point de la configuration, je vous mets donc le but du lab, ainsi que les configurations Initiale et Finales. Si vous avez des questions laissez un commentaire :).

Adressage

Device Interface IP VRF
ASA3 G0/0.172 (Outside – MGMT Context) 172.17.0.30+1/24
ASA3 G0/0.254 (Outside – DATA Context) 10.254.0.30+1/24
ASA3 G0/1 (inside – MGMT Context) 10.1.1.30+1/24
ASA3 G0/1 (inside – DATA Context) 10.1.1.40+1/24
ASA3 G0/2 (FAIL) 99.99.99.30+1/24
R10 G0/1.172 172.17.0.10/24 DataVRF
R11 G0/1.172 172.17.0.11/24 DataVRF
R10 G0/1.254 10.253.0.10/24 MgmtVRF
R11 G0/1.254 10.253.0.11/24 MgmtVRF
R10 G0/0 100.0.0.10/24 InternetVRF
R11 G0/0 100.0.0.11/24 InternetVRF
R7 G0/0 100.0.0.7/24 InternetVRF
R8 G0/0 100.0.0.8/24 InternetVRF
R1 L0 1.1.1.1/24
R7 L0 7.7.7.7/24 DataVRF
R8 L0 8.8.8.8/24 DataVRF
R10 Tun100 172.16.0.10/24 MgmtVRF
R11 Tun100 172.16.0.11/24 MgmtVRF
R7 Tun100 172.16.0.7/24 MgmtVRF
R8 Tun100 172.16.0.8/24 MgmtVRF
R10 Tun200 10.254.0.10/24 MgmtVRF
R11 Tun200 10.254.0.11/24 MgmtVRF
R7 Tun200 10.254.0.7/24 MgmtVRF
R8 Tun200 10.254.0.8/24 MgmtVRF
R1 G0/0 10.1.1.1/24

En gros le but est d’avoir du GETVPN over DMVPN. Les données transiteront dans la VRF DataVRF (partie DMVPN/GRE), mais les terminaisons des tunnels seront dans la VRF InternetVRF. Les données dans la VRF InternetVRF seront sécurisées via GETVPN.
Pour rappel, avec IPSEC, nous avons la notions de I-VRF ou Inside VRF qui identifie la VRF des données qui seront chiffrées, et la F-VRF ou Frontdoor VRF qui identifie la VRF de transport IPSEC. Ces deux VRFs peuvent ou non être identique.
R1 sera le KeyServer, et les autres routeurs seront les GroupMembers.

Parce que c’est fun, j’ai aussi mis un deuxième reseau DMVPN lui sécurisé par IPSEC classic qui vas servir au rekeying multicast du réseau GETVPN.

Enfin, puisque l’ASA en mode multi contexte ne gère pas le routage multicast, j’ai mis un 3e cloud VPN utilisant IKEv2 et FLEXVPN spoke to spoke pour le multicast vers le KeyServer R1.
Ce qui est fun avec le FlexVPN Spoke to Spoke, c’est que l’on instancie une VirtualTemplate lors de la redirection NHRP, et on a donc non plus un seul tunnel multi-point, mais plusieurs tunnels point-to-point créé a la volée. IKEv2 Mode config permets aussi en théorie de s’affranchir d’un protocole de routage.

On termine par quelques vérifications:

R8#ping vrf DataVRF 10.1.1.1 source Lo0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 8.8.8.8 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R8#ping vrf MgmtVRF 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

R10#sh crypto session detail 
Crypto session current status

Code: C - IKE Configuration mode, D - Dead Peer Detection     
K - Keepalives, N - NAT-traversal, T - cTCP encapsulation     
X - IKE Extended Authentication, F - IKE Fragmentation

Interface: GigabitEthernet0/0
Session status: UP-ACTIVE     
Peer: 0.0.0.0 port 848 fvrf: InternetVRF ivrf: InternetVRF
      Desc: (none)
      Phase1_id: (none)
  IKEv1 SA: local 239.1.2.3/848 remote 1.1.1.1/848 Active 
          Capabilities:(none) connid:1061 lifetime:0
  IPSEC FLOW: permit 47 0.0.0.0/0.0.0.0 0.0.0.0/0.0.0.0 
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 2651 drop 0 life (KB/Sec) KB Vol Rekey Disabled/2088
        Outbound: #pkts enc'ed 2641 drop 0 life (KB/Sec) KB Vol Rekey Disabled/2088

Interface: Tunnel100
Uptime: 01:49:01
Session status: UP-ACTIVE     
Peer: 100.0.0.11 port 500 fvrf: InternetVRF ivrf: MgmtVRF
      Phase1_id: 100.0.0.11
      Desc: (none)
  IKEv1 SA: local 100.0.0.10/500 remote 100.0.0.11/500 Active 
          Capabilities:(none) connid:1048 lifetime:22:10:57
  IPSEC FLOW: permit 47 host 100.0.0.10 host 100.0.0.11 
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 1492 drop 0 life (KB/Sec) 4171263/504
        Outbound: #pkts enc'ed 1513 drop 0 life (KB/Sec) 4171262/504

Interface: Tunnel100
Uptime: 01:49:03
Session status: UP-ACTIVE     
Peer: 100.0.0.8 port 500 fvrf: InternetVRF ivrf: MgmtVRF
      Phase1_id: 100.0.0.8
      Desc: (none)
  IKEv1 SA: local 100.0.0.10/500 remote 100.0.0.8/500 Active 
          Capabilities:(none) connid:1046 lifetime:22:10:56
  IPSEC FLOW: permit 47 host 100.0.0.10 host 100.0.0.8 
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 1784 drop 0 life (KB/Sec) 4184809/466
        Outbound: #pkts enc'ed 1525 drop 0 life (KB/Sec) 4184832/466

Interface: Tunnel100
Uptime: 01:49:01
Session status: UP-ACTIVE     
Peer: 100.0.0.7 port 500 fvrf: InternetVRF ivrf: MgmtVRF
      Phase1_id: 100.0.0.7
      Desc: (none)
  IKEv1 SA: local 100.0.0.10/500 remote 100.0.0.7/500 Active 
          Capabilities:(none) connid:1047 lifetime:22:10:57
  IPSEC FLOW: permit 47 host 100.0.0.10 host 100.0.0.7 
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 1778 drop 0 life (KB/Sec) 4312433/481
        Outbound: #pkts enc'ed 1514 drop 0 life (KB/Sec) 4312456/481

Interface: Tunnel0
Uptime: 00:59:01
Session status: UP-ACTIVE     
Peer: 10.1.1.1 port 500 fvrf: MgmtVRF ivrf: MgmtVRF
      Phase1_id: R1.cciesec.local
      Desc: (none)
  IKEv2 SA: local 172.17.0.10/500 remote 10.1.1.1/500 Active 
          Capabilities:(none) connid:1 lifetime:23:00:59
  IPSEC FLOW: permit 47 host 172.17.0.10 host 10.1.1.1 
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 137 drop 0 life (KB/Sec) 4182850/3544
        Outbound: #pkts enc'ed 140 drop 0 life (KB/Sec) 4182850/3544

Interface: Tunnel100
Profile: GET
Session status: UP-IDLE
Peer: 1.1.1.1 port 848 fvrf: MgmtVRF ivrf: DataVRF
      Phase1_id: 1.1.1.1
      Desc: (none)
  IKEv1 SA: local 172.16.0.10/848 remote 1.1.1.1/848 Active 
          Capabilities:(none) connid:1060 lifetime:23:39:29

R1#crypto gdoi ks rekey 

% There has not been a GDOI policy change for group GETVPN, a rekey is not needed

Are you sure you want to proceed ? [yes/no]: yes
R1#
*Mar 30 16:21:28.833: %GDOI-5-KS_SEND_MCAST_REKEY: Sending Multicast Rekey with policy-replace for group GETVPN from address 1.1.1.1 to 239.1.2.3 with seq # 1

R7#
*Mar 30 16:11:41.650: %GDOI-5-SA_KEK_UPDATED: SA KEK was updated
*Mar 30 16:11:41.650: %GDOI-5-SA_TEK_UPDATED: SA TEK was updated
*Mar 30 16:11:41.650: %GDOI-5-GM_RECV_REKEY: Received Rekey for group GET from 1.1.1.1 to 239.1.2.3 with seq # 1
*Mar 30 16:11:41.650: %GDOI-5-GM_INSTALL_POLICIES_SUCCESS: SUCCESS: Installation of Reg/Rekey policies from KS 1.1.1.1 for group GET & gm identity  239.1.2.3
R7#sh ip mroute vrf MgmtVRF
 (*, 239.1.2.3), 01:17:16/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Tunnel100, Forward/Dense, 01:17:16/stopped

(1.1.1.1, 239.1.2.3), 00:00:46/00:02:13, flags: PLT
  Incoming interface: Tunnel100, RPF nbr 172.16.0.11
  Outgoing interface list: Null

Fichiers de configurations

Recent Entries

Leave a Reply

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