I found a <b>*dirty*</b> way to workaround this issue : <br><br>In first, you can change ike and key lifetime in your ipsec.conf : <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ikelifetime=8h<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keylife=24h<br><br>But with these values, you will probably reach volume transfer limitation on Windows Vista side.<br>
Normally, you can change default values of transfer limit on Vista. (editing Security Policy)<br><br>But I can&#39;t do this for several reasons in my case (why ? it&#39;s out of scope ;) ).<br><br>So in order to force a connection renewal (and not rekeying), I shutdown the ipsec connection every X minutes.<br>
X depends on your bandwith usage. Default transfer volume limitation on Vista is about 100Mo (if I remember correctly...).<br>If you need a speed of 500kb/s (during a long time : ie &gt; 4mn), you need to do this every 2-3 minutes...<br>
<br>If you don&#39;t have a lot of data transfer volume through the ipsec connection, you can do this every 30-45mn... <br>The important is : Before rekeying !<br><br>I do this with a crontab :<br>*/2 * * * *&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/sbin/ipsec auto --down roadwarrior-l2tp<br>
<br>But in some cases (with a lot of connected Vista roadwarriors), it doesn&#39;t work and provoke disconnections. :(<br><br>I hope that it will be helpful for you, James... It&#39;s not perfect but it could be better ;)<br>
<br>Julien<br>(Sorry for my &quot;rough&quot; English ;))<br>&nbsp;<br><div class="gmail_quote">2008/6/12 James &lt;<a href="mailto:james@nttmcl.com">james@nttmcl.com</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Yeah that&#39;s the exact same problem I have.<br>
<br>
I have one user here that has been able to minimize their rekeying by doing a split tunnel and manual routing but there&#39;s problems with that obviously.<br>
don&#39;t want everyone split tunneling.<br>
<br>
-James<br>
<br>
Julien DELEAN wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">
I tried your patch on openswan 2.4.12 but it doesn&#39;t seem to prevent Vista deconnections.<br>
<br>
In order to quickly provoke this behavior, I download a large file, on Vista client, to reach transfer volume limitations on Windows side and to force rekeying.<br>
<br>
I still have the same error message :<br>
Jun 12 11:56:02 xxx pluto[6962]: &quot;roadwarrior-l2tp&quot;[1] xx.xx.xx.xx #1: responding to Main Mode from unknown peer xx.xx.xx.xx<br>
...<br>
Jun 12 11:56:03 xxx pluto[6962]: &quot;roadwarrior-l2tp&quot;[2] xx.xx.xx.xx #2: STATE_QUICK_R2: IPsec SA established {ESP=&gt;0xfb7982a1 &lt;0xf516b8d0 xfrm=AES_128-HMAC_SHA1 NATD=xx.xx.xx.xx:4500 DPD=none}<br>
Jun 12 12:18:18 xxx pluto[6962]: &quot;roadwarrior-l2tp&quot;[3] xx.xx.xx.xx #3: responding to Quick Mode {msgid:02000000}<br>
Jun 12 12:18:18 xxx pluto[6962]: &quot;roadwarrior-l2tp&quot;[3] xx.xx.xx.xx #3: cannot install eroute -- it is in use for &quot;roadwarrior-l2tp&quot;[2] xx.xx.xx.xx #2<br>
<br>
James, are we talking about the same problem ?<br>
<br>
I think that the only solution is, as you said Paul, to write a patch that allows rekeys to happen to &quot;the same ip/port as currently used&quot;. Am I right ?<br>
<br>
I could try to write this patch but I really don&#39;t know how begin to study Pluto&#39;s source code. Could anybody help me ?<br>
<br>
--<br>
Julien<br>
<br>
<br>
<br></div>
2008/6/11 Paul Wouters &lt;<a href="mailto:paul@xelerance.com" target="_blank">paul@xelerance.com</a> &lt;mailto:<a href="mailto:paul@xelerance.com" target="_blank">paul@xelerance.com</a>&gt;&gt;:<div class="Ih2E3d"><br>

<br>
 &nbsp; &nbsp;On Wed, 11 Jun 2008, James wrote:<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;How would i configure ipsec.conf to do that?<br>
<br>
<br>
 &nbsp; &nbsp;the workaround is a hack, not a config option. diff against<br></div>
 &nbsp; &nbsp;<a href="http://2.6.14." target="_blank">2.6.14.</a> &lt;<a href="http://2.6.14" target="_blank">http://2.6.14</a>.&gt;..<div><div></div><div class="Wj3C7c"><br>
 &nbsp; &nbsp;Might require tweaking for 2.4.x<br>
<br>
 &nbsp; &nbsp;diff --git a/programs/pluto/ikev1_main.c b/programs/pluto/ikev1_main.c<br>
 &nbsp; &nbsp;index e7dbe4f..64a9c00 100644<br>
 &nbsp; &nbsp;--- a/programs/pluto/ikev1_main.c<br>
 &nbsp; &nbsp;+++ b/programs/pluto/ikev1_main.c<br>
 &nbsp; &nbsp;@@ -2948,11 +2948,27 @@ accept_delete(struct state *st, struct<br>
 &nbsp; &nbsp;msg_digest *md, struct payload_digest *p)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
 &nbsp; &nbsp;+<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* attempt at workaround bug 888. If we&#39;re in<br>
 &nbsp; &nbsp;STATE_QUICK_R2, and<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* we receive a Delete AND Rekey, we will hit<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* the passert(sr-&gt;eroute_owner == SOS_NOBODY) in<br>
 &nbsp; &nbsp;state.c<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Workaround: don&#39;t delete IPsec SA now, let it<br>
 &nbsp; &nbsp;linger<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(dst-&gt;st_state == STATE_QUICK_R2) {<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loglog(RC_LOG_SERIOUS, &quot;BUG 888 workaround<br>
 &nbsp; &nbsp;triggered\n. Received and &quot;<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;ignored Delete SA(0x%08lx) payload:<br>
 &nbsp; &nbsp;keeping IPSEC state #%lu&quot;<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, (unsigned long)ntohl((unsigned<br>
 &nbsp; &nbsp;long)*(ipsec_spi_t *)spi)<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, dst-&gt;st_serialno);<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loglog(RC_LOG_SERIOUS, &quot;received Delete<br>
 &nbsp; &nbsp;SA(0x%08lx) payload: &quot;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;deleting IPSEC State #%lu&quot;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, (unsigned long)ntohl((unsigned<br>
 &nbsp; &nbsp;long)*(ipsec_spi_t *)spi)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, dst-&gt;st_serialno);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delete_state(dst);<br>
 &nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* reset connection */<br>
<br>
<br>
<br>
</div></div></blockquote>
</blockquote></div><br>