Hi, Pars,

On 9/11/2012 11:36 PM, Pars Mutaf wrote:
Hi Joe, all,

We really shouldn't enter in design questions before we understand what
we want.

Sure. However, INT-AREA isn't the place for this sort of discussion. You might consider trying at [email protected], which is the typical place where end-to-end discussions on architecture are first made.

The IETF is a place for engineering solutions, not research. The IRTF serves that purpose, and the above list is the original IRTF list for these sorts of discussions.

You (and others) are welcome to take this discussion there, but I expect the thread has lost its usefulness to the INTAREA WG.

Joe

Please question everything you learned, even the research method.

As I see it, the following research style would be ideal:

-I propose that we do not touch the core Internet.
-People should be free to choose the IP version that they wish because
deciding for others is a technology blocker. IETF designs IPv6, IETF
blocks its development. Because IETF does not give freedom of choice.
This is not normal. Some entities may use IPv6 others IPv4 yet others
IPv7 for unknown reasons. Everybody may agree on IPv6, or not. We do not
know. We do not have to.
-To give such freedom of choice, we need to change the end-nodes.
-This is the end-to-end principle.

Here is a picture:
http://htmlimg3.scribdassets.com/2hdm1jwfcw1sxm1y/images/4-5930b39cea.jpg

Is this the model that we would prefer? Could we first answer this
question? Anything can be designed. The hard part of research is
deciding on the best solution.

Thanks,
Pars




On Wed, Sep 12, 2012 at 8:35 AM, Joe Touch <[email protected]
<mailto:[email protected]>> wrote:



    On 9/11/2012 10:20 PM, Pars Mutaf wrote:
    ...

             Known problems, in no specific order:


                      a) like NAT, this fails for all protocols that use
        in-band
                      identifiers (e.g., FTP) unless the entire body of
        the packet
                      is translated too, and that might not be possible
        for some
                      services

        I don't understand. I just copy the whole payload. Or, replace
        the IPv4
        header with an IPv6 header. I don't have to know what's in the
        payload.


    If the payload includes an IP address (take a look at how FTP
    works), then you have to translate that. That's how current NATs
    work for *many* protocols.


                      b) you fail to explain why this needs to happen
        for the
                      first packet and not all subsequent packets, or
        what to do
                      with subsequent packets (and what happens when the
        second
                      packet arrives - e.g., at the translator or
        elsewhere -
                      before the first one?)

        1. I send the first packet to the copier. In the same message, I
        tell
        the destination IPv6 address that I learned using DNS for
        example. (this
        is not exactly a tunnel I don't have to speak IPv6)
        3. The copier creates state for my IPv4 address and destination IPv6
        address.
        4. Forwards packets in both directions


    Why does the second packet not also need to be tunneled?

    FWIW, what happens if the second packet shows up at the copier
    before the first one? Keep in mind that many protocols (including
    some variants of TCP) don't wait for an exchange to complete before
    sending the second, third, etc., packets.


                      c) the first packet won't be tunneled unless you
        upgrade
                      the source endpoint node to speak your new version
        of things;
                      if we could do that, everyone would be speaking IPv6

        Yes it is not a tunnel exactly. This is my bad. The first packet
        is a
        special packet, call it a Discrete IP packet, telling the copier the
        destination IPv6 address.


    Is this from the DNS or the source?

    And if this is a signalling packet, it's not a tunnel at all, FWIW.


                      d) what name/ID are you looking up in the DNS?
                      the node application already did a lookup for the
                      destination, and you now need to rewrite every
        application
                      to use your solution instead

        I assume a new host identifier, other than IP address.


    Have you considered the implications of this assumption? Aren't you
    then assuming that this identifier *never changes* as you deploy new
    versions of IP, e.g.? Why do you think that will be true if it
    wasn't for IPv4?


                      (i.e., right now the DNS use is decoupled from network
                      packet processing; you want to integrate it - have you
                      seen Cheriton's I3 proposal along these lines?)

        I am not sure if it should be integrated.

                      e) which DNS do you register endpoints in?
        (answer: all of
                      them, except that you can't know where the ones
        outside your
                      "IP version" bubble are) so basically you're never
        going to
                      find the endpoints in other bubbles anyway

        You do not know what we can or cannot do yet. We didn't even
        discuss if
        we want my proposal.
        We attacked the details.


    I do know that you need to register in every DNS or you won't find
    the name (or you need to tie the DNSes together - and if you do
    that, you provably already have a common internetworking layer, but
    you can't assume a common internetworking layer in your solution to
    provide one).

    Until you prove otherwise.

    Having a blank margin and a claim didn't work for Fermat, and it
    isn't sufficient here either.


                      f) which payload-only are you forwarding? the one
        in the
                      tunneled packet includes headers the next bubble
        doesn't
                      understand; if you strip off those headers, you
        lose a lot
                      of state

        No. The copier copies IPv4 payload to the IPv6 header that it
        creates
        itself.


    OK, so that's just a NAT at that point.


             Again, from your paper: "We do not need to use NATs
        anymore" only
             because you don't call them that, but you're implementing a
        stateful
             NAT as a translator.

        The question is not they are like NATs or not, we are changing the
        architecture. I can reuse yahoo's global IP address at home.

             You claim:

             ---

                 We do not touch the core network, i.e. the current IPv4
                 infrastructurewhich works. Those who wish, add additional
                 infrastructure
                 if necessary(IPv4, IPv6, etc.)


             You change the DNS and add translators on that IPv4 network.


        I change DNS, I also change TCP.


    DNS is part of the core of the network - at least it's in-network
    infrastructure, not an end service on the user's host.


        IPsec doesn't work, multicast is gone.


    How do you restore those capabilities? Or will security not work here?


        But this is a trade-off:

        We are now free from core Internet's IP version decisions
        forever. This
        is the real discussion that we should have here. Do we want this
        approach or not? Once we decided that it is desirable, anything is
        designable. Because we do not depend on core network anymore, we
        change
        the end points. This is the end-to-end principle.

        Do we want to be free from this IP version problem forever? What
        can we
        sacrifice to solve this problem?

                 We modify the end-hosts only

             Your translators are not end-hosts.

        It is not a modification. People add them and remove them as
        they wish.


    If I remove them - all of them - then the system won't work. You
    need to have them for your solution.


        It is not like modifying all Internet routers.


    It's a lot like installing new boxes that act a lot like routers,
    except that you refuse to call them routers and they're not nearly
    as robust or useful as routers.


                 We do not have worry about others' IP version
        preferences, we do
                 not have to implement IPv6 for example

             Your translators have to worry a lot about version preference.

        They are designed for that. And it is not big deal, they just
        copy payload.

             ---

             Please read the Catenet paper.

             You are treating each IP version as a link layer, your
        translators
             are IP routers, and your DNS works like ARP.

             Unfortunately, that doesn't remove the need for an end-to-end
             internetworking layer with global addresses, which you
        don't have
             and don't address at all.

        Let's first discuss what we want. We may have a host identification
        layer above IP for example but it is early to discuss technical
        details.


    That's not a technical detail; that's the key to the solution. That
    IS what IP *is*. That's why shifting from IPv4 to IPv6 is hard.


        We do not even know what we want.


    Then write a paper on the requirements. But you cannot expect to
    satisfy a want you *agree* we do not currently understand.

    Joe


_______________________________________________
Int-area mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/int-area

Reply via email to