LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: FreeS/WAN Cluster - any experiences?

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: FreeS/WAN Cluster - any experiences?
From: Roberto Nibali <ratz@xxxxxx>
Date: Thu, 14 Feb 2002 16:30:09 +0100
Hello Julian,

We should be working for our bosses, despite the fact that this
might be more interesting then what we need to do at work. :)

> These unique hash keys are able to identify all VPN clients behind
> CIP. We better not to try to differentiate the different masqueraded
> VPN clients behind CIP by SPI. It is a job for the web director

Maybe.

> behind the IPSec termination to play with the cookies. What is the
> drawback: all the masqueraded VPN clients will be scheduled to
> same RS - bad for load balancing? Not sure for IPSec.

Well, load balancing IPsec will anyway tend to be more kind of a
load imbalancing. But we can still try. I would already have a new
scheduler which I think could help for protocols that do not have
information for scheduling. I will tell you and Wensong when I'm
done investigating.
 
>         Hm, use rsync :))) Push all private RSA keys or X.509
> Certificates to all real servers :) Or any other standardized
> proto for cert management :)

Shudder, rsync is broken! (And before all kinds of people on this
list tell me that rsync works for them: it simply doesn't work
for me, so don't bother convincing me.)
 
> > Hope that Henrik can wait that long.
> 
>         Yes, this will need rewriting the LVS, in the next devel
> versions. Of course, until then someone can experiment too :)

Not a plain rewriting, just some addition. Or do you plan to rewrite
it for 2.5.x?
 
> > Yes, I think the first approach should be LVS-DR and IPsec using
> > transport mode. After that we move to IPsec tunnel mode.

Yep.
 
>         Yes, for the tunnel mode I'm not sure how the routing through
> the real servers will work, from the Director A. May be SNAT.

Why SNAT?
 
> > Ahhh, this is nasty. Netfilter has a table for AH/ESP in conntrack
> > but if we do LVS-DR we cannot use this, or can we? It would be easy
> 
>         It is useless for me. We can get it if it is needed.

We maybe first read the RFC or ask the AH/ESP netfilter guy what he
does with the timeouts.
 
> > to poll conntrack timeout entries and fill in those or we just define
> > one. Someone of us should start reading the RFC :)
> 
>         Yep

I started, but somehow I fell asleep at 5.00 this morning. It's
rather boring and a lot of stuff we will never need, like the
whole encryption an other things.
 
> > IMO ESP doesn't need a key, or what do you mean by key? And yes,
> > fwmark is excellent for this task.
> 
>         I mean the hash keys needed to maintain the LVS entries

:) Ahh, this makes sense now, thanks!
 
>         The first IP header, where iph->protocol==ESP.
> No need to lookup into the internal headers, may be only for SPI.

Exactly, so basically transport mode should be quite easy.
 
> > +-+-+---+-------+-+---+----+-------+---------+
> > |A|B|SPI|Seq.Nr.|C|TCP|Data|Padding|Auth.Data|
> > +-+-+---+-------+-+---+----+-------+---------+
> >
> > Where:
> >   A: new IP header (DGW, in our case the load balancer)
> >   B: new extensions (not sure, I think hop-by-hop stuff)
> >   C: original IP header (unfortunately _encrypted_)
> 
>         A

???
 
> > LVS_DR with case 1 should be ok:
> >   o fwmark the service
> >   o route key from IP header
> >   o persistency template including <saddr:daddr:SPI>
> 
>         Agreed

But here we need to look into the ESP header if iph->protocol==ESP.
Another problem is that I'm not so sure how to distinguish transport
mode and tunneling mode. Because IPsec doesn't and should never know
that there is a router in between. Maybe I have a look at the Cisco
IOS source code, but it is so big ... :)
 
> > LVS_DR with case 2 is a little bit tricky:
> >   o fwmark the service
> >   o route key is not possible from encapsulated packet
> 
>         No, we need the saddr and daddr which are the secure
> gateway IPs

daddr in tunnel mode will always be equal to the VIP. No way of 
routing based on daddr.
 
> >   o persistency template could be some information of the new
> >     extensions and maybe SPI
> 
>         Or SNET->FWMARK/AnyPROTO (already implemented)

This is redundant. fwmark is based on proto ESP/AH and VIP already.
We need a third argument, like SPI from the decapsulated ESP header.
 
>         Yes, we don't know how much time to keep one ISAKMP and
> ESP session. Are there any keep-alives standardized? (A: RTFM :))

I have no idea, I don't know much about IPsec, still happy with
cipe (because I like to MASQ). I will maybe join the IPsec developer
mailinglist.

Cheers,
Roberto Nibali, ratz

-- 
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc


<Prev in Thread] Current Thread [Next in Thread>