From owner-freebsd-net@FreeBSD.ORG Fri Aug 18 19:50:40 2006 Return-Path: X-Original-To: net@freebsd.org Delivered-To: freebsd-net@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D92D616A4DF; Fri, 18 Aug 2006 19:50:40 +0000 (UTC) (envelope-from yushunwa@ISI.EDU) Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6F20743D53; Fri, 18 Aug 2006 19:50:40 +0000 (GMT) (envelope-from yushunwa@ISI.EDU) Received: from [128.9.168.94] (max.isi.edu [128.9.168.94]) by boreas.isi.edu (8.11.6p2+0917/8.11.2) with ESMTP id k7IJoEY24114; Fri, 18 Aug 2006 12:50:14 -0700 (PDT) Message-ID: <44E619F7.7030300@isi.edu> Date: Fri, 18 Aug 2006 12:50:15 -0700 From: Yu-Shun Wang User-Agent: Thunderbird 1.5.0.5 (Macintosh/20060719) MIME-Version: 1.0 To: Andrew Pantyukhin References: <44E58E9E.1030401@FreeBSD.org> <44E5F19E.9070600@isi.edu> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-ISI-4-43-8-MailScanner: Found to be clean X-MailScanner-From: yushunwa@isi.edu Cc: remko@freebsd.org, net@freebsd.org Subject: Re: Routing IPSEC packets? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Aug 2006 19:50:40 -0000 Andrew Pantyukhin wrote: > On 8/18/06, Yu-Shun Wang 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: >> >> >> >> 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. yushun