<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nat0 &#187; VPN</title>
	<atom:link href="http://nat0.net/category/english/security/vpn/feed/" rel="self" type="application/rss+xml" />
	<link>http://nat0.net</link>
	<description>a blog about networking, Cisco-solutions and security</description>
	<lastBuildDate>Mon, 30 Jan 2012 11:48:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cisco Anyconnect for Iphone!</title>
		<link>http://nat0.net/cisco-anyconnect-for-iphone/</link>
		<comments>http://nat0.net/cisco-anyconnect-for-iphone/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 13:27:53 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[English posts]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[Anyconnect]]></category>
		<category><![CDATA[ASA]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1167</guid>
		<description><![CDATA[For those of you that haven´t heard &#8211; Cisco Anyconnect VPN client for Iphone is finally released! /Jimmy]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>For those of you that haven´t heard &#8211; <a href="http://itunes.apple.com/us/app/cisco-anyconnect/id392790924?mt=8">Cisco Anyconnect VPN client for Iphone</a> is finally released!</p>
<p>/Jimmy</p>
<div class="shr-publisher-1167"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/cisco-anyconnect-for-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EzVPN Server on IOS in three different flavous</title>
		<link>http://nat0.net/ezvpn-server-on-ios-in-three-different-flavous/</link>
		<comments>http://nat0.net/ezvpn-server-on-ios-in-three-different-flavous/#comments</comments>
		<pubDate>Thu, 13 May 2010 20:06:16 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco IOS]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[EzVPN]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1099</guid>
		<description><![CDATA[Comparizon between 3 different ways to configure EzVPN on IOS. Example 1: EzVPN-server vanilla-style aaa new-model ! ! aaa authentication login default none aaa authentication login AAA-AUTHEN local aaa authorization network default none aaa authorization network AAA-AUTHOR local ! ! username cisco password 0 cisco ! ! crypto isakmp policy 10 encr aes authentication pre-share [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Comparizon between 3 different ways to configure EzVPN on IOS.</p>
<p><b>Example 1: EzVPN-server vanilla-style</b></p>
<p><code><br />
aaa new-model<br />
!<br />
!<br />
aaa authentication login default none<br />
aaa authentication login AAA-AUTHEN local<br />
aaa authorization network default none<br />
aaa authorization network AAA-AUTHOR local<br />
!<br />
!<br />
username cisco password 0 cisco<br />
!<br />
!<br />
crypto isakmp policy 10<br />
 encr aes<br />
 authentication pre-share<br />
 group 2<br />
!<br />
crypto isakmp client configuration group MYGROUP<br />
 key cisco<br />
 dns 8.8.8.8<br />
 pool LOCALPOOL<br />
 acl SPLITTUNNEL<br />
 save-password<br />
!<br />
!<br />
crypto ipsec transform-set TSET esp-aes esp-sha-hmac<br />
!<br />
crypto dynamic-map DYNMAP 10<br />
 set transform-set TSET<br />
 reverse-route<br />
!<br />
!<br />
crypto map CMAP client authentication list AAA-AUTHEN<br />
crypto map CMAP isakmp authorization list AAA-AUTHOR<br />
crypto map CMAP client configuration address respond<br />
crypto map CMAP 1 ipsec-isakmp dynamic DYNMAP<br />
!<br />
interface GigabitEthernet0/1<br />
 crypto map CMAP<br />
!<br />
!<br />
ip access-list extended SPLITTUNNEL<br />
 permit ip 8.9.5.0 0.0.0.255 any<br />
 permit ip 8.9.6.0 0.0.0.255 any<br />
!<br />
!<br />
</code></p>
<p><b>Example 2: Vanilla-style with ISAKMP profile on top</b></p>
<p><code><br />
aaa new-model<br />
!<br />
!<br />
aaa authentication login default none<br />
aaa authentication login AAA-AUTHEN local<br />
aaa authorization network default none<br />
aaa authorization network AAA-AUTHOR local<br />
!<br />
!<br />
crypto keyring EZVPN-KEYRING<br />
  pre-shared-key address 0.0.0.0 0.0.0.0 key cisco<br />
!<br />
crypto isakmp policy 10<br />
 encr aes<br />
 authentication pre-share<br />
 group 2<br />
!<br />
crypto isakmp client configuration group MYGROUP<br />
 key cisco<br />
 dns 8.8.8.8<br />
 pool LOCALPOOL<br />
 acl SPLITTUNNEL<br />
 save-password<br />
!<br />
crypto isakmp profile ISAKMP-PROFILE<br />
   keyring EZVPN-KEYRING<br />
   match identity group MYGROUP<br />
   client authentication list AAA-AUTHEN<br />
   isakmp authorization list AAA-AUTHOR<br />
   client configuration address respond<br />
!<br />
!<br />
crypto ipsec transform-set TSET esp-aes esp-sha-hmac<br />
!<br />
crypto dynamic-map DYNMAP 10<br />
 set transform-set TSET<br />
 set isakmp-profile ISAKMP-PROFILE<br />
 reverse-route<br />
!<br />
!<br />
crypto map CMAP 1 ipsec-isakmp dynamic DYNMAP<br />
!<br />
!<br />
interface GigabitEthernet0/1<br />
 crypto map CMAP<br />
!<br />
ip local pool LOCALPOOL 8.9.24.201 8.9.24.254<br />
!<br />
!<br />
!<br />
ip access-list extended SPLITTUNNEL<br />
 permit ip 8.9.5.0 0.0.0.255 any<br />
 permit ip 8.9.6.0 0.0.0.255 any<br />
!<br />
!<br />
</code></p>
<p><b>Differences between Example 1 and Example 2:</b><br />
<code><br />
crypto keyring EZVPN-KEYRING<br />
  pre-shared-key address 0.0.0.0 0.0.0.0 key cisco<br />
!<br />
crypto isakmp profile ISAKMP-PROFILE<br />
   keyring EZVPN-KEYRING<br />
   match identity group MYGROUP<br />
   client authentication list AAA-AUTHEN<br />
   isakmp authorization list AAA-AUTHOR<br />
   client configuration address respond<br />
!<br />
crypto dynamic-map DYNMAP 10<br />
 set isakmp-profile ISAKMP-PROFILE<br />
!<br />
<strike>crypto map CMAP client authentication list AAA-AUTHEN</strike><br />
<strike>crypto map CMAP isakmp authorization list AAA-AUTHOR</strike><br />
<strike>crypto map CMAP client configuration address respond</strike><br />
</code></p>
<p><b>Example 3: DVTI</b><br />
<code><br />
aaa new-model<br />
!<br />
!<br />
aaa authentication login default none<br />
aaa authentication login AAA-AUTHEN local<br />
aaa authorization network default none<br />
aaa authorization network AAA-AUTHOR local<br />
!<br />
!<br />
username cisco password 0 cisco<br />
!<br />
crypto keyring EZVPN-KEYRING<br />
  pre-shared-key address 0.0.0.0 0.0.0.0 key cisco<br />
!<br />
crypto isakmp policy 10<br />
 encr aes<br />
 authentication pre-share<br />
 group 2<br />
!<br />
crypto isakmp client configuration group MYGROUP<br />
 key cisco<br />
 dns 8.8.8.8<br />
 pool LOCALPOOL<br />
 acl SPLITTUNNEL<br />
 save-password<br />
!<br />
crypto isakmp profile ISAKMP-PROFILE<br />
   keyring EZVPN-KEYRING<br />
   match identity group MYGROUP<br />
   client authentication list AAA-AUTHEN<br />
   isakmp authorization list AAA-AUTHOR<br />
   client configuration address respond<br />
   virtual-template 1<br />
!<br />
!<br />
crypto ipsec transform-set TSET esp-aes esp-sha-hmac<br />
!<br />
crypto ipsec profile IPSEC-PROFILE<br />
 set transform-set TSET<br />
 set isakmp-profile ISAKMP-PROFILE<br />
!<br />
interface Virtual-Template1 type tunnel<br />
 ip unnumbered GigabitEthernet0/1<br />
 tunnel source GigabitEthernet0/1<br />
 tunnel mode ipsec ipv4<br />
 tunnel protection ipsec profile IPSEC-PROFILE<br />
!<br />
ip local pool LOCALPOOL 8.9.24.201 8.9.24.254<br />
!<br />
!<br />
ip access-list extended SPLITTUNNEL<br />
 permit ip 8.9.5.0 0.0.0.255 any<br />
 permit ip 8.9.6.0 0.0.0.255 any<br />
</code></p>
<p><b>Differences between Example 2 and Example 3</b><br />
<code><br />
crypto isakmp profile ISAKMP-PROFILE<br />
   virtual-template 1<br />
!<br />
crypto ipsec profile IPSEC-PROFILE<br />
 set transform-set TSET<br />
 set isakmp-profile ISAKMP-PROFILE<br />
!<br />
<strike>crypto dynamic-map DYNMAP 10</strike><br />
<strike> set transform-set TSET </strike><br />
<strike> set isakmp-profile ISAKMP-PROFILE</strike><br />
<strike> reverse-route</strike><br />
!<br />
!<br />
<strike>crypto map CMAP 1 ipsec-isakmp dynamic DYNMAP </strike><br />
!<br />
interface GigabitEthernet0/0<br />
<strike> crypto map CMAP</strike><br />
!<br />
interface Virtual-Template1 type tunnel<br />
 ip unnumbered GigabitEthernet0/1<br />
 tunnel source GigabitEthernet0/1<br />
 tunnel mode ipsec ipv4<br />
 tunnel protection ipsec profile IPSEC-PROFILE<br />
!</p>
<p></code></p>
<div class="shr-publisher-1099"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/ezvpn-server-on-ios-in-three-different-flavous/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Config example: GRE tunnel-interfaces</title>
		<link>http://nat0.net/config-example-gre-tunnel-interfaces/</link>
		<comments>http://nat0.net/config-example-gre-tunnel-interfaces/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 14:02:42 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=881</guid>
		<description><![CDATA[GRE tunnel-interfaces Tunnel-interfaces are real cool. In later post I will describe how to use them to establish ipsec-tunnel but for now we will just ignore the fact that we doesn´t encrypt the packets. GRE (Generic Routing Encapsulation) is invented by Cisco. It uses IP protocol 47 and encapsultates the entire packet within a new [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>GRE tunnel-interfaces</p>
<p>Tunnel-interfaces are real cool. In later post I will describe how to use them to establish ipsec-tunnel but for now we will just ignore the fact that we doesn´t encrypt the packets.</p>
<p>GRE (Generic Routing Encapsulation) is invented by Cisco. It uses IP protocol 47 and encapsultates the entire packet within a new GRE-header.</p>
<p>Lets setup a GRE-tunnel in our <a href="http://blogg.kvistofta.nu/configuration-examples-for-vpn-solutions/">example-topology</a>. A Tunnel-interface is a virtual interface created in the router. It has an IP-address and can be treated just like any physical interface. In normal case a tunnel-interface needs to be configured with a tunnel source (usually a physical interface in the local router) and a tunnel destination (usually the remote IP to which to establish the tunnel). Like this:</p>
<p><img src="http://www.gliffy.com/pubdoc/2034509/M.png" alt="GRE tunnel setup" /></p>
<p>Lets do it. First, make sure that we have connectivity with remote peer. Never forget that.</p>
<p><code><br />
r1#ping 10.10.30.3</code></p>
<p><code> </code></p>
<p><code>Type escape sequence to abort.<br />
Sending 5, 100-byte ICMP Echos to 10.10.30.3, timeout is 2 seconds:<br />
!!!!!<br />
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms<br />
r1#<br />
</code></p>
<p>Now we configure our tunnel-interfaces:</p>
<p><code><br />
r1(config)#int tu0<br />
r1(config-if)#<br />
*Mar 19 13:31:05.402: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down<br />
r1(config-if)#<br />
r1(config-if)#ip address 10.99.99.1 255.255.255.0<br />
r1(config-if)#tunnel source fa0.11<br />
r1(config-if)#tunnel destination 10.10.30.3<br />
*Mar 19 13:32:24.014: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up<br />
r1(config-if)#<br />
r1(config-if)#tunnel mode gre ip</code></p>
<p><code> </code></p>
<p><code>r3(config)#int tu0<br />
r3(config-if)#ip address 1<br />
*Mar 19 13:34:54.058: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down<br />
r3(config-if)#<br />
r3(config-if)#ip address 10.99.99.3 255.255.255.0<br />
r3(config-if)#tunnel source fa0.30<br />
r3(config-if)#tunnel destination 10.10.11.1<br />
*Mar 19 13:36:00.578: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up<br />
r3(config-if)#<br />
r3(config-if)#tunnel mode gre ip<br />
r3(config-if)#<br />
</code></p>
<p>Now we can see that we have our tunnel-interfaces configured and up/up:<br />
<code><br />
r1#sh ip int brie | excl unassigned<br />
Interface                  IP-Address      OK? Method Status                Protocol<br />
FastEthernet0.10           10.10.10.2      YES NVRAM  up                    up<br />
FastEthernet0.11           10.10.11.1      YES NVRAM  up                    up<br />
Loopback0                  10.1.1.1        YES NVRAM  up                    up<br />
Tunnel0                    10.99.99.1      YES manual up                    up<br />
r1#<br />
</code></p>
<p>Does it work?</p>
<p><code><br />
r1#ping 10.99.99.3</code></p>
<p><code> </code></p>
<p><code>Type escape sequence to abort.<br />
Sending 5, 100-byte ICMP Echos to 10.99.99.3, timeout is 2 seconds:<br />
!!!!!<br />
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms<br />
r1#<br />
</code></p>
<p>Great. Now we have a virtual interface on each router inter-connecting them.  Wanna have a look at the transit-traffic? Lets go to the wireshark between the routers:</p>
<p><a href="http://blogg.kvistofta.nu/wp-content/uploads/2010/03/gre-wireshark.JPG"><img src="http://blogg.kvistofta.nu/wp-content/uploads/2010/03/gre-wireshark.JPG" alt="GRE wireshark" width="528" height="347" /></a></p>
<p>As you see in the screen-dump above wireshark is smart enough to see that it is icmp-pings in the packets. Have a look at the middle-part of the window and you can see that the original IP-packet is inserted into a GRE-packet which in turn is inserted into a new IP-header. The internal (original) IP-header is destinated to the ip-address we pinged but the outer header is between the GRE tunnel endpoints, the physical interfaces. Remember, in my transit-network I might have routers that has no clue about any 10.99.99-addresses.</p>
<p>But our goal was to make our client 192.168.1.50 behind r1 reach the 10.3.3.3-address behind r3, right? How about routing? First r1.</p>
<p><code><br />
r1#sh ip route<br />
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP<br />
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area<br />
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2<br />
E1 - OSPF external type 1, E2 - OSPF external type 2<br />
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2<br />
ia - IS-IS inter area, * - candidate default, U - per-user static route<br />
o - ODR, P - periodic downloaded static route</code></p>
<p><code>Gateway of last resort is 10.10.10.1 to network 0.0.0.0</code></p>
<p><code> </code></p>
<p><code> 10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks<br />
D EX    10.2.2.2/32 [170/1285120] via 10.10.10.1, 23:48:00, FastEthernet0.10<br />
C       10.99.99.0/24 is directly connected, Tunnel0<br />
C       10.10.10.0/24 is directly connected, FastEthernet0.10<br />
C       10.10.11.0/24 is directly connected, FastEthernet0.11<br />
C       10.1.1.1/32 is directly connected, Loopback0<br />
S       10.10.30.3/32 [1/0] via 10.10.11.2<br />
D EX 192.168.1.0/24 [170/1285120] via 10.10.10.1, 23:48:00, FastEthernet0.10<br />
D*EX 0.0.0.0/0 [170/1285120] via 10.10.10.1, 23:48:02, FastEthernet0.10<br />
r1#<br />
</code></p>
<p>and r3.</p>
<p><code><br />
r3#sh ip route<br />
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP<br />
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area<br />
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2<br />
E1 - OSPF external type 1, E2 - OSPF external type 2<br />
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2<br />
ia - IS-IS inter area, * - candidate default, U - per-user static route<br />
o - ODR, P - periodic downloaded static route</code></p>
<p><code>Gateway of last resort is not set</code></p>
<p><code> </code></p>
<p><code> 10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks<br />
C       10.3.3.3/32 is directly connected, Loopback0<br />
C       10.99.99.0/24 is directly connected, Tunnel0<br />
S       10.10.11.1/32 [1/0] via 10.10.30.1<br />
C       10.10.30.0/24 is directly connected, FastEthernet0.30<br />
r3#<br />
</code></p>
<p>Ooops. r1 doesn´t know of 10.3.3.3 and r3 doesnt know of 192.168.1.50. First we do it the ugly lazy way: add static routes of remote networks. Next-hop should be the remote router tunnel-interface:</p>
<p><code><br />
r1(config)#ip route 10.3.3.3 255.255.255.255 10.99.99.3<br />
r3(config)#ip route 192.168.1.50 255.255.255.255 10.99.99.1<br />
</code></p>
<p>Now we have a working tunnel. My windows-client 192.168.1.50 can ping 10.3.3.3</p>
<p><code><br />
^C<br />
C:UsersJimmyDesktop&gt;ping 10.3.3.3</code></p>
<p><code>Skickar ping-signal till 10.3.3.3 med 32 byte data:<br />
Svar från 10.3.3.3: byte=32 tid=1ms TTL=254<br />
Svar från 10.3.3.3: byte=32 tid=1ms TTL=254<br />
Svar från 10.3.3.3: byte=32 tid=1ms TTL=254<br />
Svar från 10.3.3.3: byte=32 tid=2ms TTL=254</code></p>
<p><code>Ping-statistik för 10.3.3.3:<br />
Paket: Skickade = 4, Mottagna = 4, Förlorade = 0 (0 %),<br />
Ungefärlig överföringstid i millisekunder:<br />
Lägsta = 1 ms, Högsta = 2 ms, Medel = 1 ms</code></p>
<p><code> </code></p>
<p><code>C:UsersJimmyDesktop&gt;<br />
</code></p>
<p>One of the major functions of tunnel-interfaces is that it supports routing protocols. In r1 we already have eigrp running. Lets try to run eigrp thru the tunnel&#8230;</p>
<p>First, remove our static routes.</p>
<p><code><br />
r1(config)#no ip route 10.3.3.3 255.255.255.255 10.99.99.3<br />
r3(config)#no ip route 192.168.1.50 255.255.255.255 10.99.99.1<br />
</code></p>
<p>First, add the tunnel-interface to the eigrp-process of r1:<br />
<code><br />
r1#sh run | sect router<br />
router eigrp 11<br />
network 10.1.1.1 0.0.0.0<br />
network 10.10.10.2 0.0.0.0<br />
no auto-summary<br />
r1#conf t<br />
Enter configuration commands, one per line.  End with CNTL/Z.<br />
r1(config)#router eigrp 11<br />
r1(config-router)#network 10.99.99.1 0.0.0.0<br />
r1(config-router)#<br />
</code></p>
<p>In r3 we have no routing protocol running. Time to add that&#8230;<br />
<code><br />
r3(config)#router eigrp 11<br />
r3(config-router)#network 10.3.3.3 0.0.0.0<br />
r3(config-router)#network 10.99.99.3 0.0.0.0<br />
*Mar 19 14:06:26.522: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 11: Neighbor 10.99.99.1 (Tunnel0) is up: new adjacency<br />
r3(config-router)#no auto-summary<br />
r3(config-router)#<br />
</code></p>
<p>So, what happened?<br />
<code><br />
r3#sh ip route<br />
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP<br />
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area<br />
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2<br />
E1 - OSPF external type 1, E2 - OSPF external type 2<br />
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2<br />
ia - IS-IS inter area, * - candidate default, U - per-user static route<br />
o - ODR, P - periodic downloaded static route</code></p>
<p><code>Gateway of last resort is 10.99.99.1 to network 0.0.0.0</code></p>
<p><code> </code></p>
<p><code> 10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks<br />
D EX    10.2.2.2/32 [170/26885120] via 10.99.99.1, 00:01:08, Tunnel0<br />
C       10.3.3.3/32 is directly connected, Loopback0<br />
C       10.99.99.0/24 is directly connected, Tunnel0<br />
S       10.10.11.1/32 [1/0] via 10.10.30.1<br />
D       10.10.10.0/24 [90/26882560] via 10.99.99.1, 00:01:08, Tunnel0<br />
D       10.1.1.1/32 [90/27008000] via 10.99.99.1, 00:01:08, Tunnel0<br />
C       10.10.30.0/24 is directly connected, FastEthernet0.30<br />
D EX 192.168.1.0/24 [170/26885120] via 10.99.99.1, 00:01:09, Tunnel0<br />
D*EX 0.0.0.0/0 [170/26885120] via 10.99.99.1, 00:01:09, Tunnel0<br />
r3#</code></p>
<p>Cool. r3 got itself a default-route to the world thru the tunnel.</p>
<p><code><br />
r1#sh ip route<br />
*Mar 19 14:06:30.122: %SYS-5-CONFIG_I: Configured from console by console<br />
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP<br />
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area<br />
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2<br />
E1 - OSPF external type 1, E2 - OSPF external type 2<br />
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2<br />
ia - IS-IS inter area, * - candidate default, U - per-user static route<br />
o - ODR, P - periodic downloaded static route</code></p>
<p><code>Gateway of last resort is 10.10.10.1 to network 0.0.0.0</code></p>
<p><code> </code></p>
<p><code> 10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks<br />
D EX    10.2.2.2/32 [170/1285120] via 10.10.10.1, 1d00h, FastEthernet0.10<br />
D       10.3.3.3/32 [90/27008000] via 10.99.99.3, 00:02:06, Tunnel0<br />
C       10.99.99.0/24 is directly connected, Tunnel0<br />
C       10.10.10.0/24 is directly connected, FastEthernet0.10<br />
C       10.10.11.0/24 is directly connected, FastEthernet0.11<br />
C       10.1.1.1/32 is directly connected, Loopback0<br />
S       10.10.30.3/32 [1/0] via 10.10.11.2<br />
D EX 192.168.1.0/24 [170/1285120] via 10.10.10.1, 1d00h, FastEthernet0.10<br />
D*EX 0.0.0.0/0 [170/1285120] via 10.10.10.1, 1d00h, FastEthernet0.10<br />
r1#</code></p>
<p>&#8230; and r1 knows how to find 10.3.3.3</p>
<p>As I said before: Voila!</p>
<p>Here are the configs for <a href="http://blogg.kvistofta.nu/wp-content/uploads/2010/03/r1_gre.txt">r1 </a>and <a href="http://blogg.kvistofta.nu/wp-content/uploads/2010/03/r3_gre.txt">r3</a>.</p>
<p>Next session will add encryption to this configuration.</p>
<div class="shr-publisher-881"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/config-example-gre-tunnel-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Config example: Static to dynamic IPSec</title>
		<link>http://nat0.net/config-example-static-to-dynamic-ipsec/</link>
		<comments>http://nat0.net/config-example-static-to-dynamic-ipsec/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 08:37:58 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=871</guid>
		<description><![CDATA[(Topology here) Ok. So we have established a static VPN-tunnel between two routers. But what if r1 has a dynamic or unknown peer ip? Let´s change the previous configuration to reflect this: The config on r1 will be the same. The changes will be done on r3. First, remove what we don´t need anymore: r3(config)#no [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>(Topology <a href="http://blogg.kvistofta.nu/configuration-examples-for-vpn-solutions/">here</a>)</p>
<p>Ok. So we have established a static VPN-tunnel between two routers. But what if r1 has a dynamic or unknown peer ip? Let´s change the  <a href="http://blogg.kvistofta.nu/config-example-vanilla-static-ipsec-vpn-with-crypto-map">previous </a>configuration to reflect this:</p>
<p>The config on r1 will be the same. The changes will be done on r3. First, remove what we don´t need anymore:</p>
<p><code><br />
r3(config)#no crypto map CMAP 10<br />
r3(config)#no crypto isakmp key cisco address 10.10.11.1<br />
</code></p>
<p>Next, let´s compensate for that. Since we cannot use a standard crypto map we need to create a dynamic one instead. Into that we ties the proxy-acl (acl_vpn) as well as the transform-set. What´s the difference? Well it doesn´t have any set peer statement&#8230;</p>
<p><code><br />
r3(config)#crypto dynamic-map DYNMAP 10<br />
r3(config-crypto-map)#set transform-set TSET<br />
r3(config-crypto-map)#match address acl_vpn<br />
</code></p>
<p>Also, we must have a pre-shared key. But we don´t know which host ip to tie it to, so it must be a wildcard key.</p>
<p><code><br />
r3(config)#crypto isakmp key cisco address 0.0.0.0<br />
</code></p>
<p>We still need a crypto map into which we ties the dynmap. Let´s make it with the highest sequence-number available since we might add more tunnels in the future, and this &#8220;wildcard&#8221;-alike dynmap need to be put as a last resort to not match all other tunnels&#8230;</p>
<p><code><br />
r3(config)#crypto map CMAP 65535 ipsec-isakmp dynamic DYNMAP<br />
</code></p>
<p>One thing left. Remember that reverse-route in the crypto-map of our <a href="http://blogg.kvistofta.nu/config-example-vanilla-static-ipsec-vpn-with-crypto-map">previous </a>config? Can we put it into the dynmap instead?</p>
<p><code><br />
r3(config)#crypto dynamic-map DYNMAP 10<br />
r3(config-crypto-map)#reverse-route static<br />
%Static keyword not applicable to dynamic maps, re-enter cmd<br />
r3(config-crypto-map)#<br />
</code></p>
<p>Darn! Then we have to use a static route to point out the direction of the remote network:</p>
<p><code><br />
r3(config)#ip route 192.168.1.50 255.255.255.255 10.10.30.1<br />
</code></p>
<p>Now the tunnel goes up! But only if we try to initiate it from 192.168.1.50. It cannot be initiated from 10.3.3.3 since r3 doesn´t have a clue how to contact r1. However, as long as the tunnel is up traffic can be generated from both ends.</p>
<p>Here are the relevant parts of configurations:</p>
<p>r1<br />
<code><br />
ip access-list extended acl_vpn<br />
 permit ip host 192.168.1.50 host 10.3.3.3<br />
!<br />
crypto isakmp policy 10<br />
 encr aes<br />
 authentication pre-share<br />
 group 5<br />
crypto isakmp key cisco address 10.10.30.3<br />
!<br />
crypto ipsec transform-set TSET esp-aes esp-sha-hmac<br />
!<br />
crypto map CMAP 10 ipsec-isakmp<br />
 set peer 10.10.30.3<br />
 set transform-set TSET<br />
 match address acl_vpn<br />
 reverse-route static<br />
!<br />
interface FastEthernet0.11<br />
 ip address 10.10.11.1 255.255.255.0<br />
 crypto map CMAP<br />
</code></p>
<p>r3<br />
<code><br />
ip access-list extended acl_vpn<br />
 permit ip host 10.3.3.3 host 192.168.1.50<br />
!<br />
crypto isakmp policy 10<br />
 encr aes<br />
 authentication pre-share<br />
 group 5<br />
crypto isakmp key cisco address 0.0.0.0 0.0.0.0<br />
!<br />
crypto ipsec transform-set TSET esp-aes esp-sha-hmac<br />
!<br />
crypto dynamic-map DYNMAP 10<br />
 set transform-set TSET<br />
 match address acl_vpn<br />
crypto map CMAP 65535 ipsec-isakmp dynamic DYNMAP<br />
!<br />
interface FastEthernet0.30<br />
 ip address 10.10.30.3 255.255.255.0<br />
 crypto map CMAP<br />
</code></p>
<p>(and the full configs for <a href="http://blogg.kvistofta.nu/upload/2010/03/r1_dynmap.txt">r1 </a>and <a href="http://blogg.kvistofta.nu/upload/2010/03/r3_dynmap.txt">r3</a>)</p>
<div class="shr-publisher-871"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/config-example-static-to-dynamic-ipsec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Config example: Vanilla static ipsec vpn with crypto map</title>
		<link>http://nat0.net/config-example-vanilla-static-ipsec-vpn-with-crypto-map/</link>
		<comments>http://nat0.net/config-example-vanilla-static-ipsec-vpn-with-crypto-map/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 13:37:16 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco IOS]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[ipsec]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=848</guid>
		<description><![CDATA[(Topology here) This is the far most common implementation of IPSEC Lan2Lan (at least in my world). It uses static crypto-maps applied to outbound interface of each router. A proxy-acl defines interresting traffic, authentication is done with a pre-shared key and it uses isakmp main-mode for setting up the tunnel. Ok. First thing first. Make [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>(Topology <a href="http://blogg.kvistofta.nu/configuration-examples-for-vpn-solutions/">here</a>)</p>
<p>This is the far most common implementation of IPSEC Lan2Lan (at least in my world). It uses static crypto-maps applied to outbound interface of each router. A proxy-acl defines interresting traffic, authentication is done with a pre-shared key and it uses isakmp main-mode for setting up the tunnel.</p>
<p>Ok. First thing first. Make sure that the peer router is reachable before doing anything else:</p>
<p><code><br />
r1#ping 10.10.30.3</p>
<p>Type escape sequence to abort.<br />
Sending 5, 100-byte ICMP Echos to 10.10.30.3, timeout is 2 seconds:<br />
!!!!!<br />
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms<br />
</code></p>
<p>Great. Now for the config. Start with r1. What traffic need to be protected? Create the crypto acl.<br />
<code><br />
ip access-list extended acl_vpn<br />
 permit ip host 192.168.1.50 host 10.3.3.3<br />
</code></p>
<p>Next. Create an isakmp policy defining the parameters for phase 1.<br />
<code><br />
crypto isakmp policy 10<br />
 encr aes<br />
 authentication pre-share<br />
 group 5<br />
</code></p>
<p>For phase 1 we also need to set the pre-shared key.<br />
<code><br />
crypto isakmp key cisco address 10.10.30.3<br />
</code></p>
<p>For phase 2 we need to create an ipsec transform-set.<br />
<code><br />
crypto ipsec transform-set TSET esp-aes esp-sha-hmac<br />
</code></p>
<p>Now this needs to be put together in a crypto map.<br />
<code><br />
crypto map CMAP 10 ipsec-isakmp<br />
 set peer 10.10.30.3<br />
 set transform-set TSET<br />
 match address acl_vpn<br />
</code></p>
<p>Last step is to assign this crypto-map to the outside interface.<br />
<code><br />
interface FastEthernet0.11<br />
 crypto map CMAP<br />
</code></p>
<p>On the other router the exact thing needs to be defined, except for the crypto access-list that of course must be mirrored because of the reverse point of view. Also the peer ip must be the correct one. Here is the config for r3 with modifications from above highlighted.<br />
<code><br />
ip access-list extended acl_vpn<br />
 permit ip <FONT style="BACKGROUND-COLOR: yellow">host 10.3.3.3 host 192.168.1.50</font><br />
crypto isakmp policy 10<br />
 encr aes<br />
 authentication pre-share<br />
 group 5<br />
crypto isakmp key cisco address <FONT style="BACKGROUND-COLOR: yellow">10.10.11.1</font><br />
crypto ipsec transform-set TSET esp-aes esp-sha-hmac<br />
crypto map CMAP 10 ipsec-isakmp<br />
 set peer <FONT style="BACKGROUND-COLOR: yellow">10.10.11.1</font><br />
 match address acl_vpn<br />
 reverse-route static<br />
 crypto map CMAP<br />
interface FastEthernet0.30<br />
 crypto map CMAP<br />
</code></p>
<p>In this example there is only one thing left to do: make sure that there are routes for the remote-end network. In my daily work I´ve setup lots of tunnels like this. It´s almost always the same: the router (or firewall) is connected to internet on outside with a default-route to the isp. But what if there is no default route? In my XXXXXXXXXXXXXXXXXXXXXXtopology the isn´t.  Look: </p>
<p><code><br />
r1#sh ip route<br />
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP<br />
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area<br />
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2<br />
       E1 - OSPF external type 1, E2 - OSPF external type 2<br />
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2<br />
       ia - IS-IS inter area, * - candidate default, U - per-user static route<br />
       o - ODR, P - periodic downloaded static route</p>
<p>Gateway of last resort is 10.10.10.1 to network 0.0.0.0</p>
<p>     10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks<br />
D EX    10.2.2.2/32 [170/1285120] via 10.10.10.1, 17:32:22, FastEthernet0.10<br />
C       10.10.10.0/24 is directly connected, FastEthernet0.10<br />
C       10.10.11.0/24 is directly connected, FastEthernet0.11<br />
C       10.1.1.1/32 is directly connected, Loopback0<br />
S       10.10.30.3/32 [1/0] via 10.10.11.2<br />
D EX 192.168.1.0/24 [170/1285120] via 10.10.10.1, 17:32:22, FastEthernet0.10<br />
D*EX 0.0.0.0/0 [170/1285120] via 10.10.10.1, 17:32:23, FastEthernet0.10</p>
<p>r3#sh ip route<br />
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP<br />
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area<br />
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2<br />
       E1 - OSPF external type 1, E2 - OSPF external type 2<br />
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2<br />
       ia - IS-IS inter area, * - candidate default, U - per-user static route<br />
       o - ODR, P - periodic downloaded static route</p>
<p>Gateway of last resort is not set</p>
<p>     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks<br />
C       10.3.3.3/32 is directly connected, Loopback0<br />
S       10.10.11.1/32 [1/0] via 10.10.30.1<br />
C       10.10.30.0/24 is directly connected, FastEthernet0.30<br />
r3#<br />
</code></p>
<p>As you can see r1 has no route for 10.3.3.3 but only a default-route pointing in the wrong direction. R3 has no default-route at all, and certanly not a route for 192.168.1.50.</p>
<p>That means that even thou the vpn-peers have connectivity to establish a VPN-tunnel AND there is a definition of crypto traffic in the acl bound to the crypto map on outside interface the router is not clever enough to understand to send it that way. The route is not in the routing table. So, we need to add that. The cheapest way to do it is with static routes:</p>
<p>r1:<br />
<code><br />
ip route 10.10.30.3 255.255.255.255 10.10.11.2<br />
</code></p>
<p>r3:<br />
<code><br />
ip route 10.10.11.1 255.255.255.255 10.10.30.1<br />
</code></p>
<p>Now we are good to go. Lets ping 10.3.3.3 from our 192.168.1.50-host:</p>
<p><code><br />
C:>ping 10.3.3.3</p>
<p>Skickar ping-signal till 10.3.3.3 med 32 byte data:<br />
Svar från 10.3.3.3: byte=32 tid=2ms TTL=254<br />
Svar från 10.3.3.3: byte=32 tid=2ms TTL=254<br />
Svar från 10.3.3.3: byte=32 tid=2ms TTL=254<br />
Svar från 10.3.3.3: byte=32 tid=2ms TTL=254</p>
<p>Ping-statistik för 10.3.3.3:<br />
    Paket: Skickade = 4, Mottagna = 4, Förlorade = 0 (0 %),<br />
Ungefärlig överföringstid i millisekunder:<br />
    Lägsta = 2 ms, Högsta = 2 ms, Medel = 2 ms</p>
<p>C:><br />
</code><br />
(I apologize for the swedish OS <img src='http://nat0.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>But what if we are not allowed to use static routes. In real world noone would ever care but remember that in CCIE lab they will often throw a &#8220;and besides, you are not allowed to do it the easy way!&#8221; at you. </p>
<p>One solution could be to make the crypto map to insert a route for the remote networks into the local routing table. By doing that we can later on modify our crypto access-list without the need to care about static routes. Let´s do it!</p>
<p><code><br />
r1#conf t<br />
Enter configuration commands, one per line.  End with CNTL/Z.<br />
r1(config)#no ip route 10.3.3.3 255.255.255.255 10.10.11.2<br />
r1(config)#crypto map CMAP 10 ipsec-isakmp<br />
r1(config-crypto-map)#reverse-route static<br />
This will remove previously installed VPN routes and SAs<br />
r1(config-crypto-map)#<br />
r1#<br />
r3#conf t<br />
Enter configuration commands, one per line.  End with CNTL/Z.<br />
r3(config)#no ip route 192.168.1.50 255.255.255.255 10.10.30.1<br />
r3(config)#crypto map CMAP 10 ipsec-isakmp<br />
r3(config-crypto-map)#reverse-route static<br />
r3#<br />
</code></p>
<p>The magic is that, in each router, a static route has appeared in the routing-table without a corresponding static route in the config:</p>
<p><code><br />
r1#sh ip route 10.3.3.3<br />
Routing entry for 10.3.3.3/32<br />
  Known via "static", distance 1, metric 0<br />
  Routing Descriptor Blocks:<br />
  * 10.10.30.3<br />
      Route metric is 0, traffic share count is 1</p>
<p>r1#sh run | incl ip route<br />
ip route 10.10.30.3 255.255.255.255 10.10.11.2<br />
r1#<br />
</code></p>
<p>So. What is happening on the wire? First we see the ISAKMP-negotiation and then the encrypted ESP-traffic. Here, the output from wireshark placed in-transit between r1 and r3:</p>
<p><code><br />
No.     Time                       Source                Destination           Protocol Info<br />
      1 2010-03-19 07:44:28.799137 10.10.11.1            10.10.30.3            ISAKMP   Identity Protection (Main Mode)<br />
      2 2010-03-19 07:44:28.805942 10.10.30.3            10.10.11.1            ISAKMP   Identity Protection (Main Mode)<br />
      3 2010-03-19 07:44:28.810611 10.10.11.1            10.10.30.3            ISAKMP   Identity Protection (Main Mode)<br />
      4 2010-03-19 07:44:28.911985 10.10.30.3            10.10.11.1            ISAKMP   Identity Protection (Main Mode)<br />
      5 2010-03-19 07:44:29.022719 10.10.11.1            10.10.30.3            ISAKMP   Identity Protection (Main Mode)<br />
      6 2010-03-19 07:44:29.027372 10.10.30.3            10.10.11.1            ISAKMP   Identity Protection (Main Mode)<br />
      7 2010-03-19 07:44:29.032072 10.10.11.1            10.10.30.3            ISAKMP   Quick Mode<br />
      8 2010-03-19 07:44:29.037702 10.10.30.3            10.10.11.1            ISAKMP   Quick Mode<br />
      9 2010-03-19 07:44:29.042142 10.10.11.1            10.10.30.3            ISAKMP   Quick Mode<br />
     10 2010-03-19 07:44:33.532046 10.10.11.1            10.10.30.3            ESP      ESP (SPI=0x9793dfcd)<br />
     11 2010-03-19 07:44:33.533282 10.10.30.3            10.10.11.1            ESP      ESP (SPI=0x43fe1aba)<br />
     12 2010-03-19 07:44:34.533694 10.10.11.1            10.10.30.3            ESP      ESP (SPI=0x9793dfcd)<br />
     ..<br />
     ..<br />
</code></p>
<p>A key to success in configuring VPN is to interprete the debug output. The most common debug-commands are &#8220;debug crypto isakmp&#8221; and &#8220;deb crypto ipsec&#8221;. But the output is massive and it takes some exercise to learn to read it. Here is the output from r1 in our example above when establishing the VPN. Let´s see what happens:</p>
<p><code>r1#clear crypto session<br />
r1#deb crypto isakmp<br />
Crypto ISAKMP debugging is on<br />
r1#deb crypto ipsec<br />
Crypto IPSEC debugging is on<br />
r1#<br />
r1#<br />
*Mar 19 08:50:47.623: IPSEC(sa_request): ,<br />
  (key eng. msg.) OUTBOUND local= 10.10.11.1, remote= 10.10.30.3,<br />
    local_proxy= <FONT style="BACKGROUND-COLOR: yellow">192.168.1.50/255.255.255.255</font>/0/0 (type=1),<br />
    remote_proxy= <FONT style="BACKGROUND-COLOR: yellow">10.3.3.3/255.255.255.255</font>/0/0 (type=1),<br />
    protocol= ESP, transform= esp-aes esp-sha-hmac  (Tunnel),<br />
    lifedur= 3600s and 4608000kb,<br />
    spi= 0x0(0), conn_id= 0, keysize= 128, flags= 0x0<br />
</code><br />
Above we see that our ping triggered a request to setup a VPN (<br />
<code><br />
*Mar 19 08:50:47.623: ISAKMP:(0): SA request profile is (NULL)<br />
*Mar 19 08:50:47.623: ISAKMP: Created a peer struct for 10.10.30.3, peer port 500<br />
*Mar 19 08:50:47.623: ISAKMP: New peer created peer = 0x840A5978 peer_handle = 0x80000008<br />
*Mar 19 08:50:47.623: ISAKMP: Locking peer struct 0x840A5978, refcount 1 for isakmp_initiator<br />
*Mar 19 08:50:47.623: ISAKMP: local port 500, remote port 500<br />
*Mar 19 08:50:47.623: ISAKMP: set new node 0 to QM_IDLE<br />
*Mar 19 08:50:47.623: ISAKMP: Find a dup sa in the avl tree during calling isadb_insert sa = 8515F140<br />
*Mar 19 08:50:47.623: ISAKMP:(0):Can not start Aggressive mode, trying Main mode.<br />
*Mar 19 08:50:47.623: ISAKMP:(0):found peer pre-shared key matching 10.10.30.3<br />
*Mar 19 08:50:47.623: ISAKMP:(0): constructed NAT-T vendor-rfc3947 ID<br />
*Mar 19 08:50:47.623: ISAKMP:(0): constructed NAT-T vendor-07 ID<br />
*Mar 19 08:50:47.623: ISAKMP:(0): constructed NAT-T vendor-03 ID<br />
*Mar 19 08:50:47.623: ISAKMP:(0): constructed NAT-T vendor-02 ID<br />
*Mar 19 08:50:47.623: ISAKMP:(0):Input = IKE_MESG_FROM_IPSEC, IKE_SA_REQ_MM<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.623: ISAKMP:(0):Old State = IKE_READY  New State = IKE_I_MM1 </font><br />
</code>Going into the next state&#8230;IKE_I_MM1 is &#8220;we are sending main mode msg 1&#8243;<code><br />
*Mar 19 08:50:47.623: ISAKMP:(0): beginning Main Mode exchange<br />
*Mar 19 08:50:47.623: ISAKMP:(0): sending packet to 10.10.30.3 my_port 500 peer_port 500 (I) MM_NO_STATE<br />
*Mar 19 08:50:47.623: ISAKMP:(0):Sending an IKE IPv4 Packet.<br />
*Mar 19 08:50:47.627: ISAKMP (0): received packet from 10.10.30.3 dport 500 sport 500 Global (I) MM_NO_STATE<br />
*Mar 19 08:50:47.627: ISAKMP:(0):Input = IKE_MESG_FROM_PEER, IKE_MM_EXCH<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.627: ISAKMP:(0):Old State = IKE_I_MM1  New State = IKE_I_MM2 </font><br />
</code>Going into the next state&#8230;IKE_I_MM2 means &#8220;we got a reply on our first message&#8221;<code><br />
*Mar 19 08:50:47.627: ISAKMP:(0): processing SA payload. message ID = 0<br />
*Mar 19 08:50:47.627: ISAKMP:(0): processing vendor id payload<br />
*Mar 19 08:50:47.627: ISAKMP:(0): vendor ID seems Unity/DPD but major 69 mismatch<br />
*Mar 19 08:50:47.627: ISAKMP (0): vendor ID is NAT-T RFC 3947<br />
*Mar 19 08:50:47.627: ISAKMP:(0):found peer pre-shared key matching 10.10.30.3<br />
</code>We have a pre-shared key configured for remote peer. That´s good&#8230;<code><br />
*Mar 19 08:50:47.627: ISAKMP:(0): local preshared key found<br />
*Mar 19 08:50:47.627: ISAKMP : Scanning profiles for xauth ...<br />
*Mar 19 08:50:47.627: ISAKMP:(0):Checking ISAKMP transform 1 against priority 10 policy<br />
*Mar 19 08:50:47.627: ISAKMP:      encryption AES-CBC<br />
*Mar 19 08:50:47.627: ISAKMP:      keylength of 128<br />
*Mar 19 08:50:47.627: ISAKMP:      hash SHA<br />
*Mar 19 08:50:47.631: ISAKMP:      default group 5<br />
*Mar 19 08:50:47.631: ISAKMP:      auth pre-share<br />
*Mar 19 08:50:47.631: ISAKMP:      life type in seconds<br />
*Mar 19 08:50:47.631: ISAKMP:      life duration (VPI) of  0x0 0x1 0x51 0x80<br />
*Mar 19 08:50:47.631: ISAKMP:(0):<FONT style="BACKGROUND-COLOR: yellow">atts are acceptable.</font> Next payload is 0<br />
</code>We have match on ISAKMP policies. This example is simple since both peers has only one isakmp policy defined so the first try is a match. Remember, both peers try to find a match among all their localy configured isakmp policies and their buddies. In more complex configurations or when dealing with vpn-clients it´s not uncommon to see tenths of policies from each end. Then the previous lines will be repeated for all attempts.<code><br />
*Mar 19 08:50:47.631: ISAKMP:(0):Acceptable atts:actual life: 0<br />
*Mar 19 08:50:47.631: ISAKMP:(0):Acceptable atts:life: 0<br />
*Mar 19 08:50:47.631: ISAKMP:(0):Fill atts in sa vpi_length:4<br />
*Mar 19 08:50:47.631: ISAKMP:(0):Fill atts in sa life_in_seconds:86400<br />
*Mar 19 08:50:47.631: ISAKMP:(0):Returning Actual lifetime: 86400<br />
*Mar 19 08:50:47.631: ISAKMP:(0)::Started lifetime timer: 86400.<br />
*Mar 19 08:50:47.631: ISAKMP:(0): processing vendor id payload<br />
*Mar 19 08:50:47.631: ISAKMP:(0): vendor ID seems Unity/DPD but major 69 mismatch<br />
*Mar 19 08:50:47.631: ISAKMP (0): vendor ID is NAT-T RFC 3947<br />
*Mar 19 08:50:47.631: ISAKMP:(0):Input = IKE_MESG_INTERNAL, IKE_PROCESS_MAIN_MODE<br />
*Mar 19 08:50:47.631: ISAKMP:(0):Old State = IKE_I_MM2  New State = IKE_I_MM2<br />
*Mar 19 08:50:47.631: ISAKMP:(0): sending packet to 10.10.30.3 my_port 500 peer_port 500 (I) MM_SA_SETUP<br />
*Mar 19 08:50:47.631: ISAKMP:(0):Sending an IKE IPv4 Packet.<br />
*Mar 19 08:50:47.631: ISAKMP:(0):Input = IKE_MESG_INTERNAL, IKE_PROCESS_COMPLETE<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.631: ISAKMP:(0):Old State = IKE_I_MM2  New State = IKE_I_MM3 </font><br />
</code>Ok. IKE_I_MM3 means that we send the third packet (our second as a sender)<code></p>
<p>*Mar 19 08:50:47.731: ISAKMP (0): received packet from 10.10.30.3 dport 500 sport 500 Global (I) MM_SA_SETUP<br />
*Mar 19 08:50:47.731: ISAKMP:(0):Input = IKE_MESG_FROM_PEER, IKE_MM_EXCH<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.731: ISAKMP:(0):Old State = IKE_I_MM3  New State = IKE_I_MM4 </font><br />
</code>And we got a reply. The fourth packet in the 6-packet main-mode flow<code></p>
<p>*Mar 19 08:50:47.731: ISAKMP:(0): processing KE payload. message ID = 0<br />
*Mar 19 08:50:47.827: ISAKMP:(0): processing NONCE payload. message ID = 0<br />
*Mar 19 08:50:47.827: ISAKMP:(0):found peer pre-shared key matching 10.10.30.3<br />
*Mar 19 08:50:47.827: ISAKMP:(2007): processing vendor id payload<br />
*Mar 19 08:50:47.827: ISAKMP:(2007): vendor ID is Unity<br />
*Mar 19 08:50:47.827: ISAKMP:(2007): processing vendor id payload<br />
*Mar 19 08:50:47.827: ISAKMP:(2007): vendor ID is DPD<br />
*Mar 19 08:50:47.827: ISAKMP:(2007): processing vendor id payload<br />
*Mar 19 08:50:47.827: ISAKMP:(2007): speaking to another IOS box!<br />
*Mar 19 08:50:47.827: ISAKMP:received payload type 20<br />
*Mar 19 08:50:47.827: ISAKMP (2007): His hash no match - this node outside NAT<br />
*Mar 19 08:50:47.827: ISAKMP:received payload type 20<br />
*Mar 19 08:50:47.827: ISAKMP (2007): No NAT Found for self or peer<br />
*Mar 19 08:50:47.827: ISAKMP:(2007):Input = IKE_MESG_INTERNAL, IKE_PROCESS_MAIN_MODE<br />
*Mar 19 08:50:47.827: ISAKMP:(2007):Old State = IKE_I_MM4  New State = IKE_I_MM4 </p>
<p>*Mar 19 08:50:47.827: ISAKMP:(2007):Send initial contact<br />
*Mar 19 08:50:47.827: ISAKMP:(2007):SA is doing pre-shared key authentication using id type ID_IPV4_ADDR<br />
*Mar 19 08:50:47.827: ISAKMP (2007): ID payload<br />
        next-payload : 8<br />
        type         : 1<br />
        address      : 10.10.11.1<br />
        protocol     : 17<br />
        port         : 500<br />
        length       : 12<br />
*Mar 19 08:50:47.827: ISAKMP:(2007):Total payload length: 12<br />
*Mar 19 08:50:47.827: ISAKMP:(2007): <FONT style="BACKGROUND-COLOR: yellow">sending packet to 10.10.30.3 my_port 500 peer_port 500 (I) MM_KEY_EXCH</font><br />
*Mar 19 08:50:47.827: ISAKMP:(2007):Sending an IKE IPv4 Packet.<br />
*Mar 19 08:50:47.827: ISAKMP:(2007):Input = IKE_MESG_INTERNAL, IKE_PROCESS_COMPLETE<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.827: ISAKMP:(2007):Old State = IKE_I_MM4  New State = IKE_I_MM5 </font><br />
</code>So. the fifth packet is where we send our pre-shared key<code><br />
*Mar 19 08:50:47.831: ISAKMP (2007): <FONT style="BACKGROUND-COLOR: yellow">received packet from 10.10.30.3 dport 500 sport 500 Global (I) MM_KEY_EXCH</font><br />
*Mar 19 08:50:47.831: ISAKMP:(2007): processing ID payload. message ID = 0<br />
*Mar 19 08:50:47.831: ISAKMP (2007): ID payload<br />
        next-payload : 8<br />
        type         : 1<br />
        address      : 10.10.30.3<br />
        protocol     : 17<br />
        port         : 500<br />
        length       : 12<br />
*Mar 19 08:50:47.831: ISAKMP:(0):: peer matches *none* of the profiles<br />
*Mar 19 08:50:47.831: ISAKMP:(2007): processing HASH payload. message ID = 0<br />
*Mar 19 08:50:47.831: ISAKMP:(2007):SA authentication status:<br />
        authenticated<br />
*Mar 19 08:50:47.831: ISAKMP:(2007):SA has been authenticated with 10.10.30.3<br />
*Mar 19 08:50:47.831: ISAKMP: Trying to insert a peer 10.10.11.1/10.10.30.3/500/,  and inserted successfully 840A5978.<br />
*Mar 19 08:50:47.831: ISAKMP:(2007):Input = IKE_MESG_FROM_PEER, IKE_MM_EXCH<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.831: ISAKMP:(2007):Old State = IKE_I_MM5  New State = IKE_I_MM6 </font><br />
</code>We got a reply, the sixth (and last) packet of Main mode phase 1<code></p>
<p>*Mar 19 08:50:47.835: ISAKMP:(2007):Input = IKE_MESG_INTERNAL, IKE_PROCESS_MAIN_MODE<br />
*Mar 19 08:50:47.835: ISAKMP:(2007):Old State = IKE_I_MM6  New State = IKE_I_MM6<br />
*Mar 19 08:50:47.835: ISAKMP:(2007):Input = IKE_MESG_INTERNAL, IKE_PROCESS_COMPLETE<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.835: ISAKMP:(2007):Old State = IKE_I_MM6  New State = IKE_P1_COMPLETE </font><br />
</code>So. Phase 1 is completed. <code><br />
*Mar 19 08:50:47.835: ISAKMP:(2007):<FONT style="BACKGROUND-COLOR: yellow">beginning Quick Mode exchange, M-ID of -1445410418</font><br />
<code>Quick mode = Phase 1</code><br />
*Mar 19 08:50:47.835: ISAKMP:(2007):QM Initiator gets spi<br />
*Mar 19 08:50:47.835: ISAKMP:(2007): sending packet to 10.10.30.3 my_port 500 peer_port 500 (I) QM_IDLE<br />
*Mar 19 08:50:47.835: ISAKMP:(2007):Sending an IKE IPv4 Packet.<br />
*Mar 19 08:50:47.835: ISAKMP:(2007):Node -1445410418, Input = IKE_MESG_INTERNAL, IKE_INIT_QM<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.835: ISAKMP:(2007):Old State = IKE_QM_READY  New State = IKE_QM_I_QM1</font><br />
</code>IKE_QM_I_QM1 means that we´ve sent our first phase 2 packet<code><br />
*Mar 19 08:50:47.835: ISAKMP:(2007):Input = IKE_MESG_INTERNAL, IKE_PHASE1_COMPLETE<br />
*Mar 19 08:50:47.835: ISAKMP:(2007):Old State = IKE_P1_COMPLETE  New State = IKE_P1_COMPLETE </p>
<p>*Mar 19 08:50:47.843: ISAKMP (2007): <FONT style="BACKGROUND-COLOR: yellow">received packet from 10.10.30.3</font> dport 500 sport 500 Global (I) QM_IDLE<br />
</code>We got an answer. The reply is the second of three packets in phase 2. The content of this received packet is SA-data for ipsec SA:s. Which traffic to protect (proxies), encryption parameters and so on. What happens next is that this information is compared to our local configuration to make sure that it matches. Then the SA:s are being setup&#8230;<br />
<code><br />
*Mar 19 08:50:47.843: ISAKMP:(2007): processing HASH payload. message ID = -1445410418<br />
*Mar 19 08:50:47.843: ISAKMP:(2007): processing SA payload. message ID = -1445410418<br />
*Mar 19 08:50:47.843: ISAKMP:(2007):<FONT style="BACKGROUND-COLOR: yellow">Checking IPSec proposal 1</font><br />
*Mar 19 08:50:47.843: ISAKMP: transform 1, ESP_AES<br />
*Mar 19 08:50:47.843: ISAKMP:   attributes in transform:<br />
*Mar 19 08:50:47.843: ISAKMP:      encaps is 1 (Tunnel)<br />
*Mar 19 08:50:47.843: ISAKMP:      SA life type in seconds<br />
*Mar 19 08:50:47.843: ISAKMP:      SA life duration (basic) of 3600<br />
*Mar 19 08:50:47.843: ISAKMP:      SA life type in kilobytes<br />
*Mar 19 08:50:47.843: ISAKMP:      SA life duration (VPI) of  0x0 0x46 0x50 0x0<br />
*Mar 19 08:50:47.843: ISAKMP:      authenticator is HMAC-SHA<br />
*Mar 19 08:50:47.843: ISAKMP:      key length is 128<br />
*Mar 19 08:50:47.843: ISAKMP:(2007):<FONT style="BACKGROUND-COLOR: yellow">atts are acceptable.</font><br />
*Mar 19 08:50:47.843: IPSEC(validate_proposal_request): proposal part #1<br />
*Mar 19 08:50:47.843: IPSEC(validate_proposal_request): proposal part #1,<br />
  (key eng. msg.) INBOUND local= 10.10.11.1, remote= 10.10.30.3,<br />
<FONT style="BACKGROUND-COLOR: yellow">    local_proxy= 192.168.1.50/255.255.255.255/0/0 (type=1),<br />
    remote_proxy= 10.3.3.3/255.255.255.255/0/0 (type=1),<br />
    protocol= ESP, transform= NONE  (Tunnel),<br />
    lifedur= 0s and 0kb,<br />
</font>    spi= 0x0(0), conn_id= 0, keysize= 128, flags= 0x0<br />
*Mar 19 08:50:47.843: Crypto mapdb : proxy_match<br />
        src addr     : 192.168.1.50<br />
        dst addr     : 10.3.3.3<br />
        protocol     : 0<br />
        src port     : 0<br />
        dst port     : 0<br />
*Mar 19 08:50:47.843: ISAKMP:(2007): processing NONCE payload. message ID = -1445410418<br />
*Mar 19 08:50:47.843: ISAKMP:(2007): processing ID payload. message ID = -1445410418<br />
*Mar 19 08:50:47.843: ISAKMP:(2007): processing ID payload. message ID = -1445410418<br />
*Mar 19 08:50:47.843: ISAKMP:(2007): Creating IPSec SAs<br />
*Mar 19 08:50:47.843:         inbound SA from 10.10.30.3 to 10.10.11.1 (f/i)  0/ 0<br />
        (proxy 10.3.3.3 to 192.168.1.50)<br />
*Mar 19 08:50:47.843:         has spi 0xCB15AC0E and conn_id 0<br />
*Mar 19 08:50:47.843:         lifetime of 3600 seconds<br />
*Mar 19 08:50:47.843:         lifetime of 4608000 kilobytes<br />
*Mar 19 08:50:47.843:         outbound SA from 10.10.11.1 to 10.10.30.3 (f/i) 0/0<br />
        (proxy 192.168.1.50 to 10.3.3.3)<br />
*Mar 19 08:50:47.843:         has spi  0xBA3D8C69 and conn_id 0<br />
*Mar 19 08:50:47.843:         lifetime of 3600 seconds<br />
*Mar 19 08:50:47.847:         lifetime of 4608000 kilobytes<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.847: ISAKMP:(2007): sending packet to 10.10.30.3 my_port 500 peer_port 500 (I) QM_IDLE      </font><br />
</code>We send our third and last packet in phase 2 packet exchange&#8230;<code><br />
*Mar 19 08:50:47.847: ISAKMP:(2007):Sending an IKE IPv4 Packet.<br />
*Mar 19 08:50:47.847: ISAKMP:(2007):deleting node -1445410418 error FALSE reason "No Error"<br />
*Mar 19 08:50:47.847: ISAKMP:(2007):Node -1445410418, Input = IKE_MESG_FROM_PEER, IKE_QM_EXCH<br />
<FONT style="BACKGROUND-COLOR: yellow">*Mar 19 08:50:47.847: ISAKMP:(2007):Old State = IKE_QM_I_QM1  New State = IKE_QM_PHASE2_COMPLETE</font><br />
*Mar 19 08:50:47.847: IPSEC(key_engine): got a queue event with 1 KMI message(s)<br />
*Mar 19 08:50:47.847: Crypto mapdb : proxy_match<br />
        src addr     : 192.168.1.50<br />
        dst addr     : 10.3.3.3<br />
        protocol     : 0<br />
        src port     : 0<br />
        dst port     : 0<br />
*Mar 19 08:50:47.847: IPSEC(crypto_ipsec_sa_find_ident_head): reconnecting with the same proxies and peer 10.10.30.3<br />
*Mar 19 08:50:47.847: IPSEC(rte_mgr): VPN Route Event static keyword or dynamic SA create for 10.10.30.3<br />
*Mar 19 08:50:47.847: IPSEC(policy_db_add_ident): src 192.168.1.50, dest 10.3.3.3, dest_port 0</p>
<p>*Mar 19 08:50:47.847: IPSEC(create_sa): sa created,<br />
  (sa) sa_dest= 10.10.11.1, sa_proto= 50,<br />
    sa_spi= 0xCB15AC0E(3407195150),<br />
    sa_trans= esp-aes esp-sha-hmac , sa_conn_id= 59<br />
    sa_lifetime(k/sec)= (4453107/3600)<br />
*Mar 19 08:50:47.847: IPSEC(create_sa): sa created,<br />
  (sa) sa_dest= 10.10.30.3, sa_proto= 50,<br />
    sa_spi= 0xBA3D8C69(3124595817),<br />
    sa_trans= esp-aes esp-sha-hmac , sa_conn_id= 60<br />
    sa_lifetime(k/sec)= (4453107/3600)<br />
*Mar 19 08:50:47.847: IPSEC(update_current_outbound_sa): updated peer 10.10.30.3 current outbound sa to SPI BA3D8C69<br />
*Mar 19 08:50:48.027: ISAKMP:(2006):purging SA., sa=8515E77C, delme=8515E77C<br />
r1#<br />
</code></p>
<p>Voila!</p>
<p>And just to make sure all looks good let´s check our SA:s:</p>
<p><code><br />
r1#sh crypto isakmp sa<br />
IPv4 Crypto ISAKMP SA<br />
dst             src             state          conn-id status<br />
10.10.30.3      10.10.11.1      QM_IDLE           2007 ACTIVE<br />
r1#<br />
</code>As you can see there is one isakmp SA created. State QM_IDLE is good, it means that all is fine in isakmp/phase 1<code><br />
r1#sh crypto ipsec sa</p>
<p>interface: FastEthernet0.11<br />
    Crypto map tag: CMAP, local addr 10.10.11.1</p>
<p>   protected vrf: (none)<br />
   local  ident (addr/mask/prot/port): (192.168.1.50/255.255.255.255/0/0)<br />
   remote ident (addr/mask/prot/port): (10.3.3.3/255.255.255.255/0/0)<br />
   current_peer 10.10.30.3 port 500<br />
     PERMIT, flags={origin_is_acl,}<br />
    <FONT style="BACKGROUND-COLOR: yellow">#pkts encaps: 7</font>, #pkts encrypt: 7, #pkts digest: 7<br />
    <FONT style="BACKGROUND-COLOR: yellow">#pkts decaps: 7</font>, #pkts decrypt: 7, #pkts verify: 7<br />
    #pkts compressed: 0, #pkts decompressed: 0<br />
    #pkts not compressed: 0, #pkts compr. failed: 0<br />
    #pkts not decompressed: 0, #pkts decompress failed: 0<br />
    #send errors 1, #recv errors 0</p>
<p>     local crypto endpt.: 10.10.11.1, remote crypto endpt.: 10.10.30.3<br />
     path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0.11<br />
     current outbound spi: 0xBA3D8C69(3124595817)<br />
     PFS (Y/N): N, DH group: none</p>
<p>     inbound esp sas:<br />
<FONT style="BACKGROUND-COLOR: yellow">      spi: 0xCB15AC0E(3407195150)</font><br />
        transform: esp-aes esp-sha-hmac ,<br />
        in use settings ={Tunnel, }<br />
        conn id: 59, flow_id: Onboard VPN:59, sibling_flags 80000046, crypto map: CMAP<br />
        sa timing: remaining key lifetime (k/sec): (4453106/1047)<br />
        IV size: 16 bytes<br />
        replay detection support: Y<br />
        Status: ACTIVE</p>
<p>     inbound ah sas:</p>
<p>     inbound pcp sas:</p>
<p>     outbound esp sas:<br />
 <FONT style="BACKGROUND-COLOR: yellow">     spi: 0xBA3D8C69(3124595817)</font><br />
        transform: esp-aes esp-sha-hmac ,<br />
        in use settings ={Tunnel, }<br />
        conn id: 60, flow_id: Onboard VPN:60, sibling_flags 80000046, crypto map: CMAP<br />
        sa timing: remaining key lifetime (k/sec): (4453106/1047)<br />
        IV size: 16 bytes<br />
        replay detection support: Y<br />
        Status: ACTIVE</p>
<p>     outbound ah sas:</p>
<p>     outbound pcp sas:<br />
r1#<br />
</code> There are 2 ipsec SA:s established. One in each direction. That´s just the way it is. Looking at the number of encaps/decaps packets gives us a hint that we are both sending traffic and receiving traffic thru the tunnel.</p>
<p>That´s all for now. This was a massive post. I will use this exampel as a template for the next VPN configurations so hopefully they will not be as massive as this. <img src='http://nat0.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Please feel free to comment if there is anything I´ve missed or if I got something the wrong way&#8230;</p>
<p>Configs for <a href="http://blogg.kvistofta.nu/upload/2010/03/r1_vanilla.txt">r1 </a>and r3 here&#8230;</p>
<div class="shr-publisher-848"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/config-example-vanilla-static-ipsec-vpn-with-crypto-map/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuration examples for VPN solutions</title>
		<link>http://nat0.net/configuration-examples-for-vpn-solutions/</link>
		<comments>http://nat0.net/configuration-examples-for-vpn-solutions/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 11:37:19 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco IOS]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=852</guid>
		<description><![CDATA[IPsec. Gre. Ipsec/Gre. Crypto maps. Isakmp profiles. Ipsec profiles. Dynamic crypto maps. DMVPN Phase 1, phase 2, phase 3. GET VPN. Easy VPN. NHRP. X-auth. PKI. AnyConnect. Portal. RRI. I could continue forever. In my journey of investigating all weird flavours of VPN I´ve decided to try each of them in my home-lab and make [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>IPsec. Gre. Ipsec/Gre. Crypto maps. Isakmp profiles. Ipsec profiles. Dynamic crypto maps. DMVPN Phase 1, phase 2, phase 3. GET VPN. Easy VPN. NHRP. X-auth. PKI. AnyConnect. Portal. RRI. I could continue forever. </p>
<p>In my journey of investigating all weird flavours of VPN I´ve decided to try each of them in my home-lab and make a blog-post of each one. I will use a common base topology like this:<br />
<img src="http://www.gliffy.com/pubdoc/2034133/M.png" alt="Base topology" /></p>
<p>The scenario is this: Two routers, r1 and r3, are connected to a transit-network. It might be internet, it might be anything else. It might be a crossover ethernet-cable and it might be a multi-hop MPLS-cloud. The host 192.168.1.50 needs to access 10.3.3.3 in a secure way over the transit-network.</p>
<p>To make sure that the routers have connectivity they have host-routes of eachother into the transit-network.</p>
<p>This is a blog post to collect the different configurations together. In the list below I will add each configuration example as I go&#8230;</p>
<ul>
<li><a href="http://blogg.kvistofta.nu/config-example-vanilla-static-ipsec-vpn-with-crypto-map/">Vanilla static ipsec vpn with crypto map</a></li>
<li><a href="http://blogg.kvistofta.nu/config-example-static-to-dynamic-ipsec/">Static to dynamic IPSec</a></li>
</ul>
<div class="shr-publisher-852"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/configuration-examples-for-vpn-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

