Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Jul 2017 14:33:44 +0200
From:      "Muenz, Michael" <m.muenz@spam-fetish.org>
To:        freebsd-net@freebsd.org
Subject:   Re: NAT before IPSEC - reply packets stuck at enc0
Message-ID:  <6bf87e8a-f557-bfab-13ce-dd8accb88299@spam-fetish.org>
In-Reply-To: <2672efbc-49f2-efba-07d6-feeb5c8e3757@yandex.ru>
References:  <459d59f7-2895-8aed-d547-be46a0fbb918@spam-fetish.org> <1279753e-9ad1-2c02-304e-5001e2bbc82f@spam-fetish.org> <15e6eb38-ef0c-7bfd-5f2c-d2acc8ea1af4@yandex.ru> <cdb7e172-4074-4559-1e91-90c8e9276134@spam-fetish.org> <63e80fcf-915e-2dd5-d8c9-1904c8261c6f@yandex.ru> <1c91cd8f-105d-e886-3126-67505c6c3900@spam-fetish.org> <c738380c-e0cc-2d32-934e-a05502887b93@yandex.ru> <1e889acf-49d1-b70f-7097-82e6e4dfabb6@spam-fetish.org> <454ed1b7-a80f-b096-cfa1-3c32d1e60f7d@yandex.ru> <f4c5a11c-a329-d746-ece8-e3752a6c82ea@spam-fetish.org> <5dfdfbb3-1046-5abe-b23a-b62c215b5d08@yandex.ru> <ada882bb-7344-49c5-0e47-e1432f27f1c9@spam-fetish.org> <860b48aa-b99e-7b71-3724-587ee0a7fe80@spam-fetish.org> <1b831b84-1d3f-38cb-acee-07a339315417@yandex.ru> <0bbf5bb9-8089-f9ce-3b1d-e9bcbdbc6c76@spam-fetish.org> <e870fe5e-431c-49b6-5960-123d0c7be0a9@yandex.ru> <3a7d5a5b-3b72-4cfe-2d8e-c832f7bfab5c@spam-fetish.org> <2672efbc-49f2-efba-07d6-feeb5c8e3757@yandex.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 26.07.2017 um 12:20 schrieb Andrey V. Elsukov:
> On 26.07.2017 12:47, Muenz, Michael wrote:
>> When I type setkey -PD I get:
>>
>> 10.24.66.0/24[any] 10.26.1.0/24[any] any
>>          in ipsec
>>          esp/tunnel/81.24.74.3-213.244.192.191/unique:2
>>          created: Jul 26 11:03:53 2017  lastused: Jul 26 11:40:02 2017
>>          lifetime: 9223372036854775807(s) validtime: 0(s)
>>          spid=5 seq=1 pid=4292
>>          refcnt=1
>> 10.26.1.0/24[any] 10.24.66.0/24[any] any
>>          out ipsec
>>          esp/tunnel/213.244.192.191-81.24.74.3/unique:2
>>          created: Jul 26 11:03:53 2017  lastused: Jul 26 11:40:02 2017
>>          lifetime: 9223372036854775807(s) validtime: 0(s)
>>          spid=6 seq=0 pid=4292
>>          refcnt=1
>>
>>
>> So it's in use.
>>
>> But when I type in your command it just "hangs". Not the system, but the
>> command doesn't get completed.
>>
>> root@PB-FW1-FRA:~ # setkey -v -c spdadd -4 10.26.2.0/24 10.24.66.0/24
>> any -P out ipsec esp/tunnel/213.244.192.191-81.24.74.3/require ;
>> <waiting cursor>
> You need to do it this way:
> 1. setkey -v -c <press Enter>
> 2. type the policy specification
> 3. press Enter and then press ^D
>
>
> # setkey -v -c
> spdadd -4 10.26.2.0/24 10.24.66.0/24 any -P out ipsec
> esp/tunnel/213.244.192.191-81.24.74.3/unique:2 ;
> ^D
>
> Also, since your policies uses "unique" level, you need to specify the
> same level using "unique:N" syntax.
>
> Also if it is interesting to you, I patched ipfw_nat to be able specify
> needed direction. The patch is untested at all :)
> 	https://people.freebsd.org/~ae/nat_in_out.diff
>
> You need to rebuild ipfw(4) and ipfw_nat(4) kernel modules, and also
> ipfw(8) binary.
>
> With this patch you can use the following commands:
>
> ipfw nat 1 config ip 10.26.1.1 log
> ipfw add 179 nat-out 1 all from 10.26.2.0/24 to 10.24.66.0/24 in recv vtnet1
> ipfw add 179 nat-in 1 all from 10.24.66.0/24 to 10.26.1.1 in recv enc0
>
> or these:
> ipfw nat 1 config ip 10.26.1.1 log reverse
> ipfw add 179 nat-in 1 all from 10.26.2.0/24 to 10.24.66.0/24 in recv vtnet1
> ipfw add 179 nat-out 1 all from 10.24.66.0/24 to 10.26.1.1 in recv enc0
>
> Or maybe guys from OpenSense can help with testing.
>

You are a genius! Many thanks for you patience with me! Now I have a 
running setup and it also works with unpatched OPNsense kernel:

kldload ipfw_nat
ipfw nat 1 config ip 10.26.1.1 log
ipfw add 179 nat 1 log all from 10.26.2.0/24 to 10.24.66.0/24 out xmit enc0
ipfw add 179 nat 1 log all from 10.24.66.0/24 to 10.26.1.1 in recv enc0

setkey -PD | grep unique
setkey -v -c
spdadd -4 10.26.2.0/24 10.24.66.0/24 any -P out ipsec 
esp/tunnel/213.244.192.191-81.24.74.3/unique:X ;
^D

Thats all! I got it running, did a reboot and then it failed everytime 
until I saw the number after unique changes.

How is this number calculated? I need this for templating the script.

Thanks for you help, you made my day/week/month/year :)


Michael




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6bf87e8a-f557-bfab-13ce-dd8accb88299>