• Antony Antony's avatar
    xfrm: fix state migration copy replay sequence numbers · a486cd23
    Antony Antony authored
    During xfrm migration copy replay and preplay sequence numbers
    from the previous state.
    
    Here is a tcpdump output showing the problem.
    10.0.10.46 is running vanilla kernel, is the IKE/IPsec responder.
    After the migration it sent wrong sequence number, reset to 1.
    The migration is from 10.0.0.52 to 10.0.0.53.
    
    IP 10.0.0.52.4500 > 10.0.10.46.4500: UDP-encap: ESP(spi=0x43ef462d,seq=0x7cf), length 136
    IP 10.0.10.46.4500 > 10.0.0.52.4500: UDP-encap: ESP(spi=0xca1c282d,seq=0x7cf), length 136
    IP 10.0.0.52.4500 > 10.0.10.46.4500: UDP-encap: ESP(spi=0x43ef462d,seq=0x7d0), length 136
    IP 10.0.10.46.4500 > 10.0.0.52.4500: UDP-encap: ESP(spi=0xca1c282d,seq=0x7d0), length 136
    
    IP 10.0.0.53.4500 > 10.0.10.46.4500: NONESP-encap: isakmp: child_sa  inf2[I]
    IP 10.0.10.46.4500 > 10.0.0.53.4500: NONESP-encap: isakmp: child_sa  inf2[R]
    IP 10.0.0.53.4500 > 10.0.10.46.4500: NONESP-encap: isakmp: child_sa  inf2[I]
    IP 10.0.10.46.4500 > 10.0.0.53.4500: NONESP-encap: isakmp: child_sa  inf2[R]
    
    IP 10.0.0.53.4500 > 10.0.10.46.4500: UDP-encap: ESP(spi=0x43ef462d,seq=0x7d1), length 136
    
    NOTE: next sequence is wrong 0x1
    
    IP 10.0.10.46.4500 > 10.0.0.53.4500: UDP-encap: ESP(spi=0xca1c282d,seq=0x1), length 136
    IP 10.0.0.53.4500 > 10.0.10.46.4500: UDP-encap: ESP(spi=0x43ef462d,seq=0x7d2), length 136
    IP 10.0.10.46.4500 > 10.0.0.53.4500: UDP-encap: ESP(spi=0xca1c282d,seq=0x2), length 136
    Signed-off-by: default avatarAntony Antony <antony@phenome.org>
    Reviewed-by: default avatarRichard Guy Briggs <rgb@tricolour.ca>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    a486cd23
xfrm_state.c 58.8 KB