Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Aug 2006 23:58:08 +0400
From:      "Andrew Pantyukhin" <infofarmer@FreeBSD.org>
To:        "Yu-Shun Wang" <yushunwa@isi.edu>
Cc:        remko@freebsd.org, net@freebsd.org
Subject:   Re: Routing IPSEC packets?
Message-ID:  <cb5206420608181258w3c845f93w589525e4c7293816@mail.gmail.com>
In-Reply-To: <44E619F7.7030300@isi.edu>
References:  <44E58E9E.1030401@FreeBSD.org> <44E5F19E.9070600@isi.edu> <cb5206420608181236h34c0b85fwffc93bdd6c6979f4@mail.gmail.com> <44E619F7.7030300@isi.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 8/18/06, Yu-Shun Wang <yushunwa@isi.edu> wrote:
> Andrew Pantyukhin wrote:
> > On 8/18/06, Yu-Shun Wang <yushunwa@isi.edu> wrote:
> >> Remko Lodder wrote:
> >> > I was looking around for using IPsec services instead of
> >> > OpenVPN services, but I found out that with our current
> >> > implementation of IPsec, we cannot actually route packets
> >> > through the various IPsec hops [1].  OpenBSD adds IPsec
> >> > flows in their routing table, making it possible to route
> >> > traffic between IPsec tunnels.
> >> >
> >> > Can someone either confirm my above statement that FreeBSD
> >> > is indeed not capable of doing this?
>
> >> It's not an implementation issue, but a design problem with
> >> IPsec tunnel mode. See RFC3884:
> >>
> >> <http://www.ietf.org/rfc/rfc3884.txt>;
> >>
> >> The proposed solution is to use IP-IP tunnel (gif iface in
> >> FreeBSD, which you can route) then apply IPsec transport mode
> >> on the outer header. Refer to the rfc for more detail.
> >>
> >> The policy will be different, but we've verified long ago
> >> with FreeBSD that it works. The packets on the wire is
> >> compatible with regular tunnel mode IPsec.
> >
> > Eh? gif(4) says:
> >
> > BUGS
> >     There are many tunnelling protocol specifications, all defined differ-
> >     ently from each other.  The gif device may not interoperate with peers
> >     which are based on different specifications, and are picky about outer
> >     header fields.  For example, you cannot usually use gif to talk with
> >     IPsec devices that use IPsec tunnel mode.
>
> You won't have any problem is you are using IP-IP with IPsec
> transport mode on both end. It's been a while, but we did
> try one end with IP-IP+IPsec transport and the other with
> IPsec tunnel mode. (Of course, you will need to make sure
> everything matches, SPI, inner/outer addresses, keys, etc.)
> The rfc is dated Sep. 2004, we probably tried it long before
> that, so it had to be some older FreeBSD versions. We even
> tested with Linux (FreeSWAN back then) as the other end.
>
> I haven't been tracking the gif code, it SHOULD work, but
> if something did changed the packets on the wire, then
> all bets are off.
>
> Hope this clarified a bit.

Yep, thanks.

I'm actually trying to marry FreeBSD to PIX. The latter only
supports IPSec (tunnel/transport). I'm still struggling with
firewalls on both sides, but tunnel-tunnel works right now.
I'm a bit puzzled because the howto I see
(http://www.bshell.com/projects/freebsd_pix/) uses gif(4)
with tunnel-mode IPSec. Either something is wrong with
the way things work or the author doesn't understand what
he's doing (or both). The bitter thing is that we have a
similar setup in our handbook:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ipsec.html



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cb5206420608181258w3c845f93w589525e4c7293816>