Problem with Racoon/IPSec/Setkey - Routing to/from multiple networks

Jamie Heckford jamie at tridentmicrosystems.co.uk
Mon Nov 17 07:47:16 PST 2003


Hi,

Seem to be having a strange problem routing to some of our nets over
here using setkey and racoon. Setkey adds all of the below lines fine,
and racoon doesn't complain.

However, I can only route to the network that I initate the connection
to/from first... For example:

If I ping 192.168.100.254 from 192.168.102.254 then the tunnel is
established after a couple of seconds and it works fine. I can then ping
any other 192.168.0.0/16 address as this is what the setkey entry is
for. If I then try and ping 194.207.93.254 then I get no reponse in
either direction.

However, if I restart racoon and ping 194.207.93.254 first, it works
fine... But then 192.168.100.254 does not!

Could anyone shed any light on why this is happening.. Do I need to do
it slightly differently if I am specifying multiple policies with
setkey?

Any help would be greatly appreciated... Config file and version info
below (router at 192.168.102.254 is a Cisco 827 ADSL)

FreeBSD 4.9-RELEASE #0: Tue Nov  4 14:10:37 GMT 2003

v 17 12:57:11 perry-gw-vpn1 racoon: INFO: main.c:172:main(): @(#)package
version freebsd-20030826a
Nov 17 12:57:11 perry-gw-vpn1 racoon: INFO: main.c:174:main():
@(#)internal version 20001216 sakane at kame.net
Nov 17 12:57:11 perry-gw-vpn1 racoon: INFO: main.c:175:main(): @(#)This
product linked OpenSSL 0.9.7c 30 Sep 2003 (http://www.openssl.org/)


#!/bin/sh
####################################################################

LOCAL_NETWORK=194.207.93.0/24
ALLNET_1=192.168.0.0/16

LOCAL_INSIDE=194.207.93.251
LOCAL_OUTSIDE=81.3.89.53

STJUST_NETWORK=192.168.106.0/24
STJUST_INSIDE=192.168.106.254
STJUST_OUTSIDE=81.17.79.72

BENELUX_NETWORK=192.168.102.0/24
BENELUX_INSIDE=192.168.102.254
BENELUX_OUTSIDE=80.126.6.130

####################################################################


/usr/local/sbin/racoon

# ST JUST

/sbin/ifconfig gif0 destroy
/sbin/ifconfig gif0 create
/sbin/ifconfig gif0 tunnel ${LOCAL_OUTSIDE} ${STJUST_OUTSIDE}
/sbin/ifconfig gif0 inet ${LOCAL_INSIDE} ${STJUST_INSIDE} netmask
255.255.255.255
/sbin/route add -net ${STJUST_NETWORK} ${STJUST_INSIDE}

# BENELUX

/sbin/ifconfig gif1 destroy
/sbin/ifconfig gif1 create
/sbin/ifconfig gif1 tunnel ${LOCAL_OUTSIDE} ${BENELUX_OUTSIDE}
/sbin/ifconfig gif1 inet ${LOCAL_INSIDE} ${BENELUX_INSIDE} netmask
255.255.255.255
/sbin/route add -net ${BENELUX_NETWORK} ${BENELUX_INSIDE}


/usr/sbin/setkey -c << EOF
flush;
spdflush;
spdadd ${LOCAL_NETWORK} ${STJUST_NETWORK} any -P out ipsec
esp/tunnel/${LOCAL_OUTSIDE}-${STJUST_OUTSIDE}/require;
spdadd ${STJUST_NETWORK} ${LOCAL_NETWORK} any -P in  ipsec
esp/tunnel/${STJUST_OUTSIDE}-${LOCAL_OUTSIDE}/require;
spdadd ${ALLNET_1} ${STJUST_NETWORK} any -P out ipsec
esp/tunnel/${LOCAL_OUTSIDE}-${STJUST_OUTSIDE}/require;
spdadd ${STJUST_NETWORK} ${ALLNET_1} any -P in  ipsec
esp/tunnel/${STJUST_OUTSIDE}-${LOCAL_OUTSIDE}/require;
spdadd ${LOCAL_NETWORK} ${BENELUX_NETWORK} any -P out ipsec
esp/tunnel/${LOCAL_OUTSIDE}-${BENELUX_OUTSIDE}/require;
spdadd ${BENELUX_NETWORK} ${LOCAL_NETWORK} any -P in ipsec
esp/tunnel/${BENELUX_OUTSIDE}-${LOCAL_OUTSIDE}/require;
spdadd ${ALLNET_1} ${BENELUX_NETWORK} any -P out ipsec
esp/tunnel/${LOCAL_OUTSIDE}-${BENELUX_OUTSIDE}/require;
spdadd ${BENELUX_NETWORK} ${ALLNET_1} any -P in ipsec
esp/tunnel/${BENELUX_OUTSIDE}-${LOCAL_OUTSIDE}/require;
EOF





--
Jamie Heckford
Network Manager
Trident Microsystems Ltd.

t: +44(0)1737-780790
f: +44(0)1737-771908
w: http://www.tridentmicrosystems.co.uk/ 



More information about the freebsd-net mailing list