On 2. May 2012, at 18:50 , Zmiter wrote:

> 24.04.2012 23:10, Andreas Longwitz ?????:
>> There is one limitation I would like to get over. From man 8 setkey:
>> System that do not perform the port check cannot support multiple
>> endpoints behind the same NAT. I think this is a FreeBSD kernel restriction:
>> For the first incoming L2TP packet the IPSEC part of the kernel does not
>> save the source port in the corresponding SA (maybe a field like
>> natt_l2tp_port). So the kernel does for outgoing L2TP packets not know
>> the correct SA, if two ore more SA's with the same IP exists.
>> 
>> I would like to know if the patch mentioned in this thread adresses this
>> problem.
> Thank you very much for your attention.
> I've been testing those patches (actually, without your part) and YES it's a 
> big problem with clients (Android, Windows Mobile) behind the same NAT. I 
> cannot find the solution yet, but I'm very interested in it.
> So, my Androids is some sort of stupid bricks, they do not send NAT-OA 
> payloads at phase 2, and ipsec-tools fills the SPD with IPs taken from IDs. 
> But this is not the correct way. IDs contain LAN (which is behind the NAT) 
> addresses, and FreeBSD cannot route packets to the IPSec crypto part.
> I've made some quick patching of IPSec tools to get my devices working, but I 
> don't know if they accomodate to the RFCs and ISAKMP. The main idea is to 
> take NAT-OAi and NAT-OAr addresses not from IDs when we are using NAT-T, but 
> from real source and destination addresses of the server and client NATs.
> 
> Here is my ipsec-tools patch (i've call it patch-zz-local-2.diff and place at 
> /usr/ports/security/ipsec-tools/files with two other patches from kern 
> /146190)

...

> It differs from that in kern/146190 in one simple thing. I have problems with 
> the original patch from kern/146190. When there was no NAT-OAi or NAT-OAr 
> values in the kernel space, checksums was calculated at 0, but they were not 
> ignored despite of the sysctl net.inet.esp.esp_ignore_natt_cksum value. The 
> improvement allows to ignore every checksum in esp packets when 
> net.inet.esp.esp_ignore_natt_cksum=1.

Just replying to the last one -- you all need to make sure that this will work 
with a double-NAT (both i and r sitting behind a NAT) and not just i behind a 
NAT and r sitting there with a globally routable IP.

The changes suddenly become a lot more complex.  Just my 5cts.

/bz

-- 
Bjoern A. Zeeb                                 You have to have visions!
   It does not matter how good you are. It matters what good you do!

_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to