Tero, I am not comfortable with the following statement:

        . . . thus it will send back traffic selectors having IPN1 and IP2 
as their IP addresses . . .

I would prefer that the server re-map the TS values back to IP1 and IPN2 
when sending its response.  This is consistent with the general 
expectation that the response's TS payloads are a subset of the request's 
payloads.  The client does not absolutely need this information (it would 
perhaps help for deterministic checksum fixup, however in transport mode 
as long as an integrity algorithm is used the checksum provides no 
additional value anyway).  I think it is also advantageous to contain this 
fixup processing to one code path (processing TS payloads in received 
requests), and it also simplifies the response message processing (the 
client does not need to complicate its checks to verify that the 
response's TS payloads are a subset of the request's).  This separation of 
responsibility is more advantageous to a client implementation that needs 
to be as minimal as possible.

Finally, what I propose above is how our own IKEv1 implementation works in 
cases where ID payloads are sent for transport mode. :)  As a responder we 
found it best to bend over backwards to cater to the initiator's view of 
the world.

I'm also concerned about the following statement:

        After this it does SPD lookup based on those new traffic 
selectors. . . .
        If entry is found but it does not allow transport mode, then MUST
        undo the address substitution and redo the SPD lookup using the
        original traffic selectors. . . .

This statement is incoherent to me.  From the fact that the initiator 
proposed transport mode, it is clear that the initiator identifies TSi 
with itself and TSr with the server.  The address substitution exactly 
translates these addresses into the domain of the responder's SPD.  If the 
responder's policy indicates that transport mode is not acceptable for 
this SPD entry, then I think the only possible outcome is that SA 
negotiation should be failed.  No other SPD entry could possibly match the 
initiator's intentions.  However, the MUST quoted above causes the 
responder to treat these addresses in an incoherent way:

1) The responder has detected a NAT in front of the initiator, so treating 
IP1 as being within the domain of the responder's SPD isn't appropriate; 
we need to use IPN1.
2) NATs aside, the responder knows that the initiator identifies IP1 with 
the initiator itself (because the initiator proposed transport mode), so 
treating IP1 as anything other than the initiator (i.e., IPN1) -- perhaps 
as some address behind the initiator for which it is acting as a gateway 
-- isn't appropriate, because the initiator could not possibly have had 
gateways in mind.
3) The responder has detected a NAT in front of itself, so treating IPN2 
as being within the domain of the responder's SPD isn't appropriate; we 
need to use IP2.
4) NATs aside, the responder knows that the initiator identifies IPN2 as 
the responder (because the initiator proposed transport mode), so treating 
IPN2 as anything other than the responder (i.e., IP2) -- as though it were 
some address behind the responder for which the responder is acting as a 
gateway -- isn't appropriate, because the initiator could not possibly 
have had gateways in mind.

I don't think this is an appropriate way for the responder to interpret 
TSi and TSr.  I propose that the MUST above be changed to "MUST fail the 
SA negotiation."


Scott Moonen (smoo...@us.ibm.com)
z/OS Communications Server TCP/IP Development
1-919-254-1388 (T/L: 444-1388)
http://scott.andstuff.org/
http://www.linkedin.com/in/smoonen



From:
Tero Kivinen <kivi...@iki.fi>
To:
Yaron Sheffer <yar...@checkpoint.com>
Cc:
"ipsec@ietf.org" <ipsec@ietf.org>
Date:
08/26/2009 12:01 PM
Subject:
[IPsec] #28: Obtaining src/dest IP addresses for UDP-encapsulated 
transport mode ESP



Yaron Sheffer writes:
> [2.23, NAT Traversal]
> >     o  Implementations MUST process received UDP-encapsulated ESP 
packets
> >        even when no NAT was detected.
> > 
> >     o  The original source and destination IP address required for the
> >        transport mode TCP and UDP packet checksum fixup (see 
[UDPENCAPS])
> >        are obtained from the Traffic Selectors associated with the
> >        exchange.  In the case of NAT traversal, the Traffic Selectors
> >        MUST contain exactly one IP address, which is then used as the
> >        original IP address.
> 
> Tero:
> 
> Getting original source and destination IP address from the traffic
> selectors do not really work currently. Especially when combined with
> the selectors from the packet and when responder is behind nat or
> similar problems.
> 
> Paul: Not done. Specify replacement text and discuss on the mailing 
list.
> 
> People who care about Transport Mode are requested to help resolve this 
NAT
> Traversal issue.

I wrote better long description about the problem, and also proposed
solution text at 2009-04-07:
http://www.ietf.org/mail-archive/web/ipsec/current/msg04131.html
-- 
kivi...@iki.fi
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec


_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to