[strongSwan] IKE modeconfig IP address assignment

Andreas Steffen andreas.steffen at strongswan.org
Fri Sep 24 10:48:59 CEST 2010


Hello Troy,

do pluto and charon both load the attr-sql and sqlite plugins?
ipsec statusall should enumerate them.

Regards

Andreas

On 24.09.2010 07:20, Troy Telford wrote:
> I must be a problem child... but I'm learning fast.
> 
> I'm mostly satisfied with L2TP (Save for my last tunnel/transport 
> question), so I've moved on to the more secure 'pure' IPsec 
> configurations.
> 
> I've been working on IP Address & DNS assignment setup via IKEv1 & IKEv2;
> 
> I've been following:
> http://www.strongswan.org/uml/testresults/ikev1/ip-pool-db/
> http://www.strongswan.org/uml/testresults/ikev2/ip-pool-db/
> 
> I have the ipsec pool configured properly, I believe; 'ipsec pool 
> --status' shows the pool I'm expecting, at any rate.  However, with 
> both IKEv1 (Racoon/OS X) and IKEv2 (Win 7), I'm unable to get IP 
> addresses.
> 
> With IKEv1, I've got the OS X client so it is able to establish an 
> IPsec SA.  It has the config option "mode_cfg on".  However, I'm not 
> seeing any ModeCfg messages in 'auth.log | grep pluto'.
> 
> For IKEv2, the error is:
> Sep 23 22:37:52 pilot charon: 13[IKE] peer requested virtual IP %any
> Sep 23 22:37:52 pilot charon: 13[IKE] no virtual IP found, sending 
> INTERNAL_ADDRESS_FAILURE
> 
> My network is as follows:
> <something> - Dynamic address; I use DynDNS to resolve it to a host name.
> 192.168.1.1/24 (Main address space)
> 192.168.2.1/24 (DMZ address space; unused)
> 192.168.3.1/24 (Used for OpenVPN - for locations where ESP is blocked 
> at the firewall)
> 192.168.4.1/26 (IPsec pool)
> 
> So I think a connection would be along the lines of:
> (Int. network)     (Internet IP)        (RW ISP)     Road Warrior
> 192.168.0.0/21 -- ISP Assigned IP .. ISP Assigned IP -- NAT IP
> 
> My configuration (with L2TP removed, for clarity) is as follows:
> 
> config setup
>     crlcheckinterval="600"
>     cachecrls=yes
>     nat_traversal=yes
>     
> virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.1.0/24,%v4:!192.168.2.0/24,%v4:!192.168.3.0/24,%v4:!192.168.4.0/24
>  
> 
>    interfaces=%defaultroute
> 
> conn %default
>     keyingtries=1
>     ikelifetime=60m
>     keylife=20m
>     rekeymargin=3m
>     keyexchange=ikev2
>     ike=aes128-sha1-modp1536,aes192-sha1-modp1536,aes256-sha1-modp1536
>     esp=aes128-sha1-modp1536,aes192-sha1-modp1536,aes256-sha1-modp1536
>     compress=yes
>     left=%defaultroute
>     right=%any
>     dpddelay=30
>     dpdtimeout=120
>     dpdaction=clear
>     pfs=yes
> 
> conn rw-local-nat
>     rightsubnet=vhost:%no,%priv
>     also=rw-local
> 
> conn rw-local
>     keyexchange=ikev1
>     # Supposedly rekey can be no, because the client will ask for it...
>     rekey=no
>     leftsubnet=192.168.1.0/24
>     rightsourceip=%hostpool
>     also=rw
> 
> conn rw-charon
>     leftsubnet=192.168.1.0/24
>     # In case we want a different (volatile) pool
>     # rightsourceip=192.168.4.64/26
>     rightsourceip=%hostpool
>     also=rw
> 
> conn rw
>     authby=rsasig
>     leftrsasigkey=%cert
>     rightrsasigkey=%cert
>     leftcert=pilotCert.pem
>     leftid=@pilot.pariahzero.net
>     rightid="C=US... CN=*, E=*"
>     rightca=%same
>     auto=add
> 
> $ ipsec pool --status
> dns servers: 192.168.1.1
> no nbns servers found.
>     name           start             end  timeout   size      online    
>    usage
> hostpool     192.168.4.2    192.168.4.63   static     62     0 ( 0%)    
>  0 ( 0%)
> 
> $ ipsec pool --statusattr
>  type  description           pool        identity              value
>     3  INTERNAL_IP4_DNS                                        192.168.1.1
> 
> $ ipsec pool --showattr
> internal_ip4_netmask  --addr    (INTERNAL_IP4_NETMASK)
> internal_ip6_netmask  --addr    (INTERNAL_IP6_NETMASK)
> netmask               --addr    (INTERNAL_IP4_NETMASK, INTERNAL_IP6_NETMASK)
> internal_ip4_dns      --addr    (INTERNAL_IP4_DNS)
> internal_ip6_dns      --addr    (INTERNAL_IP6_DNS)
> dns                   --addr    (INTERNAL_IP4_DNS, INTERNAL_IP6_DNS)
> internal_ip4_nbns     --addr    (INTERNAL_IP4_NBNS)
> internal_ip6_nbns     --addr    (INTERNAL_IP6_NBNS)
> nbns                  --addr    (INTERNAL_IP4_NBNS, INTERNAL_IP6_NBNS)
> wins                  --addr    (INTERNAL_IP4_NBNS, INTERNAL_IP6_NBNS)
> internal_ip4_dhcp     --addr    (INTERNAL_IP4_DHCP)
> internal_ip6_dhcp     --addr    (INTERNAL_IP6_DHCP)
> dhcp                  --addr    (INTERNAL_IP4_DHCP, INTERNAL_IP6_DHCP)
> internal_ip4_server   --addr    (INTERNAL_IP4_SERVER)
> internal_ip6_server   --addr    (INTERNAL_IP6_SERVER)
> server                --addr    (INTERNAL_IP4_SERVER, INTERNAL_IP6_SERVER)
> application_version   --string  (APPLICATION_VERSION)
> version               --string  (APPLICATION_VERSION)
> unity_banner          --string  (UNITY_BANNER)
> banner                --string  (UNITY_BANNER)
> unity_def_domain      --string  (UNITY_DEF_DOMAIN)
> unity_splitdns_name   --string  (UNITY_SPLITDNS_NAME)
> unity_split_include   --subnet  (UNITY_SPLIT_INCLUDE)
> unity_local_lan       --subnet  (UNITY_LOCAL_LAN)
> 
> So what do I need to do in order to get IP address assignment working?


-- 
======================================================================
Andreas Steffen                         andreas.steffen at strongswan.org
strongSwan - the Linux VPN Solution!                www.strongswan.org
Institute for Internet Technologies and Applications
University of Applied Sciences Rapperswil
CH-8640 Rapperswil (Switzerland)
===========================================================[ITA-HSR]==




More information about the Users mailing list