Multi-Protocol Label Switching (MPLS) is a versatile solution to address the problems faced by present-day networks—speed, scalability, quality-of-service (QoS) management, and traffic engineering. MPLS involves setting up a specific path for a given sequence of packets, identified by a label put in each packet, thus avoiding complex lookups in a routing table.
Here are some resources to help you learn MPLS
A+ N+ CCNA CCNP CCIE
by Edgar C Francis
Generic Routing Encapsulation (GRE) is a network tunneling protocol developed by Cisco Systems that can encapsulate a wide variety of network layer protocols inside virtual point-to-point links or point-to-multipoint links over an Internet Protocol network. GRE tunnels also allow unicast, multicast, and broadcast traffic between routers but there is a problem with GRE tunnels it is clear text and GRE needs to provide better-grade protection. However, we can encrypt the complete GRE tunnel with IPsec security which provides good-grade security. we already configure IPsec with GRE click here. but in this blog, we will configure an IPsec with a Dynamic Virtual-Template interface.
VTI does the same job that GRE with IPsec does. They both encrypt the tunnel with IPsec. VTI removed the additional 4 bytes GRE header, thus reducing the bandwidth for sending encrypted data. VTI allows the configuration of ACL, NAT, and QoS. remember the default mode for a tunnel is GRE you have to define the mode IPsec IPv4 to configure the SVTI tunnel.
let's see the configuration- in this topology, we have head office router 1 and branch routers 3 and 4. Router 2 is acting as an internet.
Topology:-
Goal: is to make sure all the traffic is encrypted with IPsec
Configure the topology as per the diagram
Configure the IP addresses as per the topology
Configure default route on head office and branch routers
Configure crypto ISAKMP policy
Configure crypto keyring
Configure crypto ISAKMP profile
Configure crypto IPsec transform-set
Configure crypto IPsec Profile
Configure dynamic virtual-template 1 type tunnel
Configure EIGRP 100
Configure tunnel 0 on branches.
Apply the IPsec protection on the virtual tunnel
make sure all the traffic is encrypted
verify the configuration with show commands and ping + trace
R1(config)#interface serial 3/0 R1(config-if)#ip address 192.168.12.1 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#exit
R2(config)#ip route 192.168.10.0 255.255.255.0 serial 3/0 R2(config)#ip route 192.168.30.0 255.255.255.0 serial 3/1 R2(config)#ip route 192.168.40.0 255.255.255.0 serial 3/2 R3(config)#ip route 0.0.0.0 0.0.0.0 serial 3/1
R4(config)#ip route 0.0.0.0 0.0.0.0 serial 3/2 R1#show ip interface brief Interface
IP-Address OK? Method
Status Protocol FastEthernet0/0
192.168.10.1 YES manual up up Serial3/0
192.168.12.1 YES manual up up Loopback0
192.168.111.1 YES manual up up R2#show ip interface brief Interface
IP-Address OK? Method
Status Protocol Serial3/0
192.168.12.2 YES manual up up Serial3/1
192.168.23.2 YES manual up up Serial3/2
192.168.24.2 YES manual up up R3#show ip interface brief Interface
IP-Address OK? Method
Status Protocol FastEthernet0/0
192.168.30.1 YES manual up up Serial3/1
192.168.23.1 YES manual up up Loopback0
192.168.133.1 YES manual up up R4#show ip interface brief Interface
IP-Address OK? Method
Status Protocol FastEthernet0/0
192.168.40.1 YES manual up up Serial3/2
192.168.24.1 YES manual up up Loopback0
192.168.144.1 YES manual up up
R1(config)#crypto keyring DVTI-KEYRING R1(conf-keyring)#pre-shared-key address 192.168.23.1 key
INTERNET R1(conf-keyring)#pre-shared-key address 192.168.24.1 key
INTERNET R1(conf-keyring)#exit
R1(config)#crypto isakmp profile DVTI-ISAKMP % A profile is deemed incomplete until it has match identity
statements R1(conf-isa-prof)#keyring DVTI-KEYRING R1(conf-isa-prof)#match identity address 192.168.23.1 R1(conf-isa-prof)#match identity address 192.168.24.1 R1(conf-isa-prof)#virtual-template 1 R1(conf-isa-prof)#exit
R3(config)#crypto keyring DVTI-KEYRING R3(conf-keyring)#pre-shared-key address 192.168.12.1 key
INTERNET R3(conf-keyring)#exit
R3(config)#crypto isakmp profile DVTI-ISAKMP % A profile is deemed incomplete until it has match identity
statements R3(conf-isa-prof)#keyring DVTI-KEYRING R3(conf-isa-prof)#match identity address 192.168.12.1 R3(conf-isa-prof)#exit
R4(config)#crypto keyring DVTI-KEYRING R4(conf-keyring)#pre-shared-key address 192.168.12.1 key
INTERNET R4(conf-keyring)#exit
R4(config)#crypto isakmp profile DVTI-ISAKMP % A profile is deemed incomplete until it has match identity
statements R4(conf-isa-prof)#keyring DVTI-KEYRING R4(conf-isa-prof)#match identity address 192.168.12.1
R1(config)#router eigrp 100 R1(config-router)#network 192.168.10.0 R1(config-router)#network 192.168.111.0 R1(config-router)#no auto-summary R1(config-router)#exit *Apr 8 12:06:26.907:
%CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
*Apr 8 12:09:06.051:
%LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state
to up *Apr 8 12:09:58.035:
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.133.1 (Virtual-Access1) is
up: new adjacency *Apr 8 12:28:57.435:
%LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access2, changed state
to up *Apr 8 12:29:58.979:
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.144.1 (Virtual-Access2) is
up: new adjacency
R1#show interfaces virtual-template 1
Virtual-Template1 is up, line protocol is down
Hardware is Virtual Template interface
Interface is unnumbered. Using address of Loopback0 (192.168.111.1)
Internet Key Exchange or
IKE Is used by IPsec to establish security parameters between two sites. IKE allows us to exchange keys securely used for encryption and authentication over the internet. In the previous blog we discussed KE click here
IKEv2 phase 2 is also
known as child mode. the IKEv2 initiator sends a CREATE_CHILD_SA request, containing
a list of acceptable proposals for the child SA.
The attributes that can be
negotiated include the following:
Protocol (AH 0r ESP) AH, and ESP are the two protocols we use to protect user data. Both of them can be used in transport or tunnel mode, let’s see all the possible options.
Encapsulation mode (tunnel
or transport) Transport mode is very simple, it just adds an AH header just after the IP header. Here’s an example of an IP packet that carries some TCP traffic:
Encryption algorithm (for
example DES,3DES, or AES)
Authentication algorithm
(for example, HMAC-MD5 or HMAC-SHA) peers have to show their identity to prove who he is. Peers use shared keys or digital certificates.
Diffle-hellman group
information (for example, group 1, group 2, group 5, or group 14) DH group determines how strong the key is and how it's used in the exchange process of the key. The higher number means more secure but it takes longer to compute.
R1(config)#do ping 192.168.30.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.30.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 52/59/72 ms
R1#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 192.168.10.1 YES manual up up Serial3/0 192.168.123.1 YES manual up up
R3(config)#do ping 192.168.10.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 52/64/76 ms
R3#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 192.168.30.1 YES manual up up Serial3/1 192.168.31.1 YES manual up up
R3#show ip route static Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP + - replicated route, % - next hop override Gateway of last resort is 0.0.0.0 to network 0.0.0.0 S* 0.0.0.0/0 is directly connected, Serial3/1
Interesting traffic (ACL)
R1(config)#ip access-list extended ACL-TRAFFIC R1(config-ext-nacl)# permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255 R1(config-ext-nacl)#exit R1#show access-lists Extended IP access list ACL-TRAFFIC 10 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255 (6 matches)
R3(config)#ip access-list extended ACL-TRAFFIC
R3(config-ext-nacl)# permit ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255
R3(config-ext-nacl)#exit
R3#show access-list Extended IP access list ACL-TRAFFIC 10 permit ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255 (9 matches)
R1(config)#crypto ikev2 policy IKEV2-POLICY IKEv2 policy MUST have atleast one complete proposal attached R1(config-ikev2-policy)# proposal IKEV2-PROPOSAL R1(config-ikev2-policy)#exit R1(config)# R1#show crypto ikev2 policy IKEv2 policy : IKEV2-POLICY Match fvrf : global Match address local : any Proposal : IKEV2-PROPOSAL22 IKEv2 policy : default Match fvrf : any Match address local : any Proposal : default
R3(config)#crypto ikev2 policy IKEV2-POLICY IKEv2 policy MUST have atleast one complete proposal attached R3(config-ikev2-policy)# proposal IKEV2-PROPOSAL R3(config-ikev2-policy)#exit R3#show crypto ikev2 policy IKEv2 policy : IKEV2-POLICY Match fvrf : global Match address local : any Proposal : IKEV2-PROPOSAL IKEv2 policy : default Match fvrf : any Match address local : any Proposal : default
IKEv2 Keyring
R1(config)#crypto ikev2 keyring IKEV2-KEYRING R1(config-ikev2-keyring)# peer R3 R1(config-ikev2-keyring-peer)# address 192.168.31.1 R1(config-ikev2-keyring-peer)# pre-shared-key local internet R1(config-ikev2-keyring-peer)# pre-shared-key remote internet R1(config-ikev2-keyring-peer)# exit R1(config-ikev2-keyring)#exit
R3(config)#crypto ikev2 keyring IKEV2-KEYRING R3(config-ikev2-keyring)# peer R1 R3(config-ikev2-keyring-peer)# address 192.168.123.1 R3(config-ikev2-keyring-peer)# pre-shared-key local internet R3(config-ikev2-keyring-peer)# pre-shared-key remote internet R3(config-ikev2-keyring-peer)# exit R3(config-ikev2-keyring)#exit
IKEv2 Profile
R1(config)#crypto ikev2 profile IKEV2-PROFILE IKEv2 profile MUST have: 1. A local and a remote authentication method. 2. A match identity or a match certificate statement. R1(config-ikev2-profile)#match identity remote address 192.168.31.1 255.255.255.255 R1(config-ikev2-profile)# authentication remote pre-share R1(config-ikev2-profile)# authentication local pre-share R1(config-ikev2-profile)# keyring local IKEV2-KEYRING R1(config-ikev2-profile)#exit R1#show crypto ikev2 profile IKEV2-PROFILE IKEv2 profile: IKEV2-PROFILE Ref Count: 2 Match criteria: Fvrf: global Local address/interface: none Identities: address 192.168.31.1 255.255.255.255 Certificate maps: none Local identity: none Remote identity: none Local authentication method: pre-share Remote authentication method(s): pre-share EAP options: none Keyring: IKEV2-KEYRING Trustpoint(s): none Lifetime: 86400 seconds DPD: disabled NAT-keepalive: disabled Ivrf: none Virtual-template: none AAA EAP authentication mlist: none AAA Accounting: none AAA group authorization: none AAA user authorization: none
R3(config)#crypto ikev2 profile IKEV2-PROFILE IKEv2 profile MUST have: 1. A local and a remote authentication method. 2. A match identity or a match certificate statement. R3(config-ikev2-profile)#match identity remote address 192.168.123.1 255.255.255.255 R3(config-ikev2-profile)# authentication remote pre-share R3(config-ikev2-profile)# authentication local pre-share R3(config-ikev2-profile)# keyring local IKEV2-KEYRING R3(config-ikev2-profile)#exit R3#show crypto ikev2 profile IKEV2-PROFILE IKEv2 profile: IKEV2-PROFILE Ref Count: 2 Match criteria: Fvrf: global Local address/interface: none Identities: address 192.168.123.1 255.255.255.255 Certificate maps: none Local identity: none Remote identity: none Local authentication method: pre-share Remote authentication method(s): pre-share EAP options: none Keyring: IKEV2-KEYRING Trustpoint(s): none Lifetime: 86400 seconds DPD: disabled NAT-keepalive: disabled Ivrf: none Virtual-template: none AAA EAP authentication mlist: none AAA Accounting: none AAA group authorization: none AAA user authorization: none
Transform-set
R1(config)#crypto ipsec transform-set TRANS-set esp-3des esp-md5-hmac R1(cfg-crypto-trans)#exit R1#show crypto ipsec transform-set Transform set default: { esp-aes esp-sha-hmac } will negotiate = { Transport, }, Transform set TRANS-set: { esp-3des esp-md5-hmac } will negotiate = { Tunnel, },
R3(config)#crypto ipsec transform-set TRANS-set esp-3des esp-md5-hmac R3(cfg-crypto-trans)#exit R3#show crypto ipsec transform-set Transform set default: { esp-aes esp-sha-hmac } will negotiate = { Transport, }, Transform set TRANS-set: { esp-3des esp-md5-hmac } will negotiate = { Tunnel, },
Crypto Map
R1(config)#crypto map CRYPTO-MAP 11 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. R1(config-crypto-map)# set peer 192.168.31.1 R1(config-crypto-map)# set transform-set TRANS-set R1(config-crypto-map)# set ikev2-profile IKEV2-PROFILE R1(config-crypto-map)# match address ACL-TRAFFIC R1(config-crypto-map)#exit
R1#show crypto map
Crypto Map IPv4 "CRYPTO-MAP" 11 ipsec-isakmp
Peer = 192.168.31.1
IKEv2 Profile: IKEV2-PROFILE
Extended IP access list ACL-TRAFFIC
access-list ACL-TRAFFIC permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
Current peer: 192.168.31.1
IKEV2 profile IKEV2-PROFILE
Security association lifetime: 4608000 kilobytes/3600 seconds
Responder-Only (Y/N): N
PFS (Y/N): N
Transform sets={
TRANS-set: { esp-3des esp-md5-hmac } ,
}
R3(config)#crypto map CRYPTO-MAP 11 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. R3(config-crypto-map)# set peer 192.168.123.1 R3(config-crypto-map)# set transform-set TRANS-set R3(config-crypto-map)# set ikev2-profile IKEV2-PROFILE R3(config-crypto-map)# match address ACL-TRAFFIC R3(config-crypto-map)#exit R1#show crypto map Crypto Map IPv4 "CRYPTO-MAP" 11 ipsec-isakmp Peer = 192.168.31.1 IKEv2 Profile: IKEV2-PROFILE Extended IP access list ACL-TRAFFIC access-list ACL-TRAFFIC permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255 Current peer: 192.168.31.1 IKEV2 profile IKEV2-PROFILE Security association lifetime: 4608000 kilobytes/3600 seconds Responder-Only (Y/N): N PFS (Y/N): N Transform sets={ TRANS-set: { esp-3des esp-md5-hmac } , }
Applying the Crypto Map
R1(config)#interface serial 3/0 R1(config-if)#crypto map CRYPTO-MAP R1(config-if)#exit
*Apr 1 17:15:52.575: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R1(config)#do ping 192.168.30.1 source fa 0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.30.1, timeout is 2
seconds: Packet sent with a source address of 192.168.10.1 .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max =
52/69/92 ms R1(config)#end
R1#show crypto ikev2 sa IPv4 Crypto
IKEv2 SA Tunnel-id Local Remote fvrf/ivrf Status 1
192.168.123.1/500
192.168.31.1/500
none/none READY Encr: 3DES,
Hash: SHA96, DH Grp:5, Auth sign: PSK, Auth verify: PSK Life/Active
Time: 86400/2693 sec IPv6 Crypto
IKEv2 SA R3(config)#interface serial 3/1 R3(config-if)#crypto map CRYPTO-MAP R3(config-if)#exit
*Apr 1 17:14:39.975: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R3#show crypto map interface serial 3/1 Interfaces using crypto map CRYPTO-MAP: Serial3/1
R1#ping 192.168.30.1 source 192.168.10.1 repeat 100 Type escape sequence to abort. Sending 100, 100-byte ICMP Echos to 192.168.30.1, timeout is
2 seconds: Packet sent with a source address of 192.168.10.1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Success rate is 100 percent (100/100), round-trip
min/avg/max = 52/63/112 ms
R1#show crypto ipsec sa interface: Serial3/0 Crypto map tag:
CRYPTO-MAP, local addr 192.168.123.1 protected vrf:
(none) local ident (addr/mask/prot/port):
(192.168.10.0/255.255.255.0/0/0) remote ident
(addr/mask/prot/port): (192.168.30.0/255.255.255.0/0/0) current_peer
192.168.31.1 port 500 PERMIT,
flags={origin_is_acl,} #pkts encaps: 104,
#pkts encrypt: 104, #pkts digest: 104 #pkts decaps: 104,
#pkts decrypt: 104, #pkts verify: 104 #pkts compressed:
0, #pkts decompressed: 0 #pkts not
compressed: 0, #pkts compr. failed: 0 #pkts not
decompressed: 0, #pkts decompress failed: 0 #send errors 0,
#recv errors 0 local crypto
endpt.: 192.168.123.1, remote crypto endpt.: 192.168.31.1 path mtu 1500, ip
mtu 1500, ip mtu idb Serial3/0 current outbound
spi: 0xCF0FA2FE(3473908478) PFS (Y/N): N, DH
group: none inbound esp sas: spi:
0x5AAC2F32(1521233714) transform:
esp-3des esp-md5-hmac , in use
settings ={Tunnel, } conn id: 2,
flow_id: 2, sibling_flags 80000040, crypto map: CRYPTO-MAP sa timing:
remaining key lifetime (k/sec): (4184586/795) IV size: 8
bytes replay
detection support: Y Status:
ACTIVE(ACTIVE) inbound ah sas: inbound pcp sas: outbound esp sas: spi:
0xCF0FA2FE(3473908478)
transform:
esp-3des esp-md5-hmac , in use
settings ={Tunnel, } conn id: 1,
flow_id: 1, sibling_flags 80000040, crypto map: CRYPTO-MAP sa timing:
remaining key lifetime (k/sec): (4184586/795) IV size: 8
bytes replay
detection support: Y Status:
ACTIVE(ACTIVE) outbound ah sas: outbound pcp sas: