tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
net.ipsecif.use_fixed_reqid=1 -> 2
Hi,
with net.ipsecif.use_fixed_reqid=1 ipsec kernel policies get assigned
the magic IDs:
IPv4: net.ipsecif.requid_base + 2 * UNIT + 0
IPv6: net.ipsecif.requid_base + 2 * UNIT + 1
where net.ipsecif.requid_base=8192 by default. vis:
192.1.2.23[any] 192.1.2.45[any] 4(ipv4)
in ipsec
esp/transport//unique:8194
spid=1 seq=3 pid=PID
refcnt=0
192.1.2.23[any] 192.1.2.45[any] 41(ipv6)
in ipsec
esp/transport//unique:8195
spid=3 seq=2 pid=PID
refcnt=0
192.1.2.45[any] 192.1.2.23[any] 4(ipv4)
out ipsec
esp/transport//unique:8194
spid=2 seq=1 pid=PID
refcnt=0
192.1.2.45[any] 192.1.2.23[any] 41(ipv6)
out ipsec
esp/transport//unique:8195
spid=4 seq=0 pid=PID
refcnt=0
which means that for IPsec traffic to duplicate the kernel states for
the IPv4 policy
192.1.2.23 192.1.2.45
esp mode=transport spi=SPISPI(0xSPISPI) reqid=8194(0x00002002)
...
192.1.2.45 192.1.2.23
esp mode=transport spi=SPISPI(0xSPISPI) reqid=8194(0x00002002)
...
creating a separate pair for kernel states for the IPv6 policy.
Other than the small matter of evading code bear traps, can anyone see
a problem with extending net.ipsecif.use_fixed_reqid so that when set
to 2 it only generates one ID?
(a follow-on could be to drop the kernel policies).
In IKEv2, the norm is to create a single SA (kernel state) and then
use that for both IPv4 and IPv6 traffic.
Home |
Main Index |
Thread Index |
Old Index