Subject: [NSIS] GIST-aware NAT Traversal

From: "Christian Dickmann" <[email-masked]>
Date: Tue, 24 Apr 2007 23:03:28 +0200

Hi all,

I tried to implement the Gist-aware NAT Traversal described in Section
7.2 of the GIST draft-v13 and ran into problems.
Processing of Query and Response works fine, but I have a problem with
Confirm and Data messages.

The following scenario is not the most general one, but I picked it to
start with the implementation:
I assume that the Querying node is on the internal side of a NAT and
that the Resonding side is on the external side. 

The steps are:
1. The Querying node creates the Query with the local MRI. I denote this
message as Query(MRI)
2. The GIST-aware NAT translates the MRI to MRI' and adds a NTO with the
original MRI. I denote this message as Query'(MRI', NTO(MRI)).
3. The Responding node creates state for the flow described by MRI' and
generates a Response with MRI' and echos the NTO with the original MRI.
I denote this message as Response(MRI', NTO(MRI)).
4. The GIST-aware NAT touches neither MRI nor NTO (but NLI and SCD, but
this is not relevant here). I call this message Response'(MRI',
NTO(MRI))
5. The Querying node accesses its routing table with the original MRI
contained in the NTO and not with MRI'. It does not care for the MRI' at
all. It generates a Confirm in the normal way with MRI. Especially there
is no NTO in the Confirm. I call this message Confirm(MRI)
6. The GIST-aware NAT does not apply GIST specific processing to the
Confirm, so the Confirm is unchanged.
7. The Responding node receives Confirm(MRI). It has to access its
routing table with that MRI, but it created state only for MRI' (see
step 3).

In Step 7 I can't match the MRI contained in the Confirm to the routing
state table I have.
The only guidance I can find in the draft is:
" In particular, the values for Message-Routing-
   Information are different, which is why the unmodified MRI is
   propagated in the NAT-Traversal object to allow subsequent C-mode
   messages to be interpreted correctly." (end of Section 7.2.2 Page 94)

Should I add an entry to my routing table in the Responding node that
corresponds to MRI instead of MRI'? Did I miss anything else?
The same problem applies to subsequent Data messages and is independent
from D-Mode/C-Mode.

Regards,
Christian Dickmann

_______________________________________________
nsis mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/nsis

---

From: Andrew McDonald <[email-masked]>
Date: Fri, 27 Apr 2007 21:30:22 +0100

Hi Christian,

> Confirm and Data messages.

[snip scenario]
> The same problem applies to subsequent Data messages and is independent

Section 7.2.3, penultimate paragraph says:
   A GIST node receiving such a message MUST use the MRI from the NAT-
   Traversal object as the key to index its internal routing state; it
   MAY also store the translated MRI for additional (e.g. diagnostic)
   information, but this is not used in the GIST processing.  The
   remainder of GIST processing is unchanged.
Which, I think, covers your question.

However, I can't see a mention of what MRI will be delivered to the
NSLP. The translated one is the one you want (since you are the other
side of the NAT), but storing this is only a 'MAY'.

regards,

Andrew