[strongSwan] up-host not always executed
Vonlanthen, Elmar
Elmar.Vonlanthen at united-security-providers.ch
Tue Nov 11 17:00:07 CET 2014
Hello all
We use the old (pluto-) updown scripts to add or delete GRE tunnels inside VPN tunnels.
/etc/ipsec.conf looks like this:
conn chbet2_aa
left=10.10.110.1
leftupdown="sudo /opt/usp/vpn/bin/updown.sh"
right=10.10.120.1
ike=aes128-sha1-modp2048
esp=aes128-sha1-modp2048
ikelifetime=3h
keylife=1h
dpddelay=10
dpdtimeout=300
dpdaction=restart
rekey=yes
authby=secret
type=transport
keyexchange=ikev1
auto=start
/opt/usp/vpn/bin/updown.sh:
...
up-host:)
log_syslog "Starting gre tunnel chbet2_aa"
ip tunnel add chbet2_aa mode any local 10.10.110.1 remote 10.10.120.1 ttl 225 tos inherit
ip link set chbet2_aa up multicast on mtu 1356
ip addr add 10.254.10.1 peer 10.254.10.2/32 dev chbet2_aa
;;
down-host:)
log_syslog "Stopping gre tunnel chbet2_aa"
Ip link set chbet2_aa down
Ip tunnel del chbet2_aa
;;
...
With Strongswan v4 with don't have any problems. With Strongswan v5 (U5.2.1/K3.14.17-SMP) sometimes if a rekey happens (not sure, when exactly) the down-Script will be executed, but not the up-script.
2014-11-06 02:44:40 chbet1fw01 charon: 09[IKE] <chbet2_aa|79> closing CHILD_SA chbet2_aa{3} with SPIs c9e5d10b_i (0 bytes) c5c00be6_o (216656 bytes) and TS 10.10.110.1 === 10.10.120.1
2014-11-06 02:44:40 chbet1fw01 updown.sh: Stopping gre tunnel chbet2_aa
2014-11-06 02:45:39 chbet1fw01 charon: 12[IKE] <chbet2_aa|79> CHILD_SA chbet2_aa{3} established with SPIs cf6022da_i cf5223e2_o and TS 10.10.110.1 === 10.10.120.1
But in most cases, the up-host commands will be executed!
I think it has something to do with the code here:
src/libcharon/sa/ikev2/tasks/child_create.c:
METHOD(task_t, build_r, status_t,
private_child_create_t *this, message_t *message)
{
...
if (!this->rekey)
{ /* invoke the child_up() hook if we are not rekeying */
charon->bus->child_updown(charon->bus, this->child_sa, TRUE);
}
...
}
Or here:
src/libcharon/sa/ikev1/tasks/quick_mode.c:
static bool install(private_quick_mode_t *this)
{
...
if (old)
{
charon->bus->child_rekey(charon->bus, old, this->child_sa);
}
else
{
charon->bus->child_updown(charon->bus, this->child_sa, TRUE);
}
....
}
We have played with the options "rekey" and "reauth", but it doesn't change anything.
Do you have any idea, what the problem might be?
Thank you very much for any help.
Best regards
Elmar
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5383 bytes
Desc: not available
URL: <http://lists.strongswan.org/pipermail/users/attachments/20141111/e767750b/attachment.bin>
More information about the Users
mailing list