Re: [IPsec] New draft posted

Yoav Nir <> Mon, 26 April 2010 11:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 067FC3A6984 for <>; Mon, 26 Apr 2010 04:56:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.626
X-Spam-Status: No, score=-1.626 tagged_above=-999 required=5 tests=[AWL=-0.627, BAYES_50=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id m9uEQ1MzEFNZ for <>; Mon, 26 Apr 2010 04:56:47 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 8E7F93A6994 for <>; Mon, 26 Apr 2010 04:56:42 -0700 (PDT)
Received: from ( []) by (8.12.10+Sun/8.12.10) with ESMTP id o3QBuGph013326; Mon, 26 Apr 2010 14:56:16 +0300 (IDT)
X-CheckPoint: {4BD58D1B-0-1B201DC2-2FFFF}
Received: from ([]) by ([]) with mapi; Mon, 26 Apr 2010 14:56:46 +0300
From: Yoav Nir <>
To: Tero Kivinen <>
Date: Mon, 26 Apr 2010 14:56:16 +0300
Thread-Topic: [IPsec] New draft posted
Thread-Index: AcrlN4rfCGCCpQ16R5OcUDpGKgtP/w==
Message-ID: <>
References: <> <A8F897BE25922348AB562D74E6C686E41F457FBA95@mail> <1272187315.22380.46.camel@yaronf-linux> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "" <>, Jitender Arora <>
Subject: Re: [IPsec] New draft posted
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Discussion of IPsec protocols <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 26 Apr 2010 11:56:48 -0000

This is why we need multiple vendors to look at this draft.

On Apr 26, 2010, at 2:29 PM, Tero Kivinen wrote:

> Yoav Nir writes:
>> I agree. And whatever we may think of the particular solution, it does present a problem that can and should be in the problem statement draft.
>> So how about adding teh following sub-section:
>> 3.7.  Different IP addresses for IKE and IPsec
>>   In many implementations there are separate IP addresses for the
>>   cluster, and for each member.  While the packets protected by tunnel
>>   mode child SAs are encapsulated in IP headers with the cluster IP
>>   address, the IKE packets originate from a specific member, and carry
>>   that member's IP address.  For the peer, this looks weird, as the
>>   usual thing is for the IPsec packets to come from the same IP address
>>   as the IKE packets.
> Normally all ESP packets also have the members IP address as their
> outer address, so there is no problem. Both IKE and ESP packets have
> same address (provided the IKE and Child SAs are located on the same
> cluster member).

Actually, in our implementation, all packets (IKE and ESP) have the cluster IP address, so the peer doesn't notice a failover, and also the peer can't tell which member is "active" or which member it is working with.

> If the ESP packets have special handling that will change their outer
> source address to match cluster's IP address instead of individual
> member's IP address, then the same mechanims can easily be used for
> IKE SA too.

Not really. The IPsec stack constructs the ESP header and encapsulating IP header for tunnel mode SAs. It can put whatever external IP address it wants in there. IKE is handled by a user space process that opens a regular UDP socket and sends packets. To get those packets to have the cluster IP address, we need some special OS feature that allows you to override the IP stack, or a NAT mechanism to change the packets.

>>   One obvious solution, is to use some fancy capability of the IKE host
>>   to change things so that IKE packets also come out of the cluster IP
>>   address.  This can be achieved through NAT or through assigning
>>   multiple addresses to interfaces.  This is not, however, possible for
>>   all implementations.
> I would expect this to be one of those very basic systems provided by
> the cluster, so if cluster implementationdoes not offer such setup,
> then it most likely does not offer that for Child SAs either, thus
> there is no problem, as both ESP and IKE will use same IP (i.e.
> member's own IP). 

Again, for ESP, your code constructs the external source IP address, or it is a property of the child SA that the IKE process created.

> We already have standard track mechanims for updating the outer
> address for both Child SAs and IKE (MOBIKE), so even when the
> cluster's outer IP address is used in normal case, the failover to
> another cluster member (using different IP address) is easy to do
> provided both the cluster member's share the same SA state.

MOBIKE was intended for mobile clients such as laptops and phones. It would be weird to use that for the enterprise gateway that uses clustering to improve scalability or availability. But in any case, at the moment we are only dealing with a problem statement. Solutions are yet to come.