[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Comments on multi6dt documents





With this clarifying example (the temporal element to the address ownership) I think the potential issues this brings up are clearer. Thanks.

ok. I'll add it to the draft.


Agree that NAT is a loaded word and better avoided. I used it to refer to the fact that address mapping seems to be required, as well as rather NATty behaviour or looking at the payload and interpreting the content in some manner, and trying to mangle it.

Per this definition I think header compression would be categorized as a NAT, because it mangles the packet. The difference with multi6 and header compression is that the mangling will be undone i.e. the output at the other end will be the same as the input. This isn't the case for NAT, which is why I think using that term here adds confusion.



The sender needs to be able to demux a packet it sent based on the
first 64 bytes.

I misremembered the ICMPv6 spec about the size of the returned offending packet. It will be more like 1000 bytes (as much of the offending packet that fits without exceeding 1280 bytes for the ICMP error).


Unless we can make some simplifying assumptions here it seems like bringing up issues described in section 2.1.9 of draft-savola-v6ops-security-overview-03.txt and prior to that in a different draft -- i.e., the nodes must be able interpret and process, or skip over -- all the possible headers out there.

Are you saying the middleboxes will inspect, not the IP+ICMP part, but the offending packet contained in the ICMP error?
There might be concern about adding an extension header to get e.g. IP+EXT+TCP and what that does to the packets in middleboxes, but the context of this piece of the discussion is the ICMP errors, right?
If the middlebox lets through IP+EXT+TCP then presumably it will allow the error which is IP+ICMP+IP+EXT+TCP in the reverse direction.



Just demuxing the packet (and doing reverse mapping if needed) would be one thing, but don't you also have to parse inside the packet and translate that back as well? Then the implementation should have to know which protocols to parse and how, i.e., where the "juicy bits" to look are.

Yes, the implementation needs to be able to pass the indication that an ICMP error was received to the correct ULP "connection", which involves finding the ULIDs that were used before the shim did its work on the xmit side.
The details of this depends on how the internal interfaces in the implementation for delivering notifications about ICMP errors to the ULPs; does it deliver the actual ICMP packets or something more abstract,


So it involves writing code in an implementation and should be noted in the draft. Is it hard? No.


Yes.
But since this is added by the sender and not something in the middle
many of those concerns (such as ICMP too big not getting through) do not apply. But we should discuss this further in the draft.


Agreed. Protocols such as UDP probably incur fragmentation and TCP just adjusts.

Yes, sending e.g. 8k NFS packets over UDP has been observed to cause fragmentation :-)


But since the added bytes are on the sending host an implementation should be able to do a good job of fragmenting things. Thus there isn't a need to end up with one 1500 byte piece followed by an 8 byte fragment followed by 1500, 8, 1500, etc.

   Erik