<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>It's hard to argue that there was no transition plan. There were
in fact at least three transition plans for the selected approach
(dual stack, 6to4, and tunneling) some of which have been
discarded along the way; while others came to be based on
operational experience. Moreover, the only way to really know
that a transition mechanism is really going to work is to let it
out of the lab. And ALL of the proposals would have suffered the
very same transition pains, because just as Jeroen has pointed
out, the pain stretched all the way to the application.<br>
</p>
<p>I don't think it's reasonable to argue that we should have waited
for some other mythical better proposal to come along. I don't
recall anyone arguing for that at the time, and there's no reason
to believe that such a mythical proposal would have ever come to
be in any foreseeable time frame. In fact Erik Fair, Dave
Crocker, Tom Kessler and I argued the very opposite, that we were
digging ourselves a hole with NAT. Your argument at the time
(Interop '95, Vegas) was that the IETF didn't have the right to
dictate address usage to deployments. True enough, but then
people shouldn't hang their woes on the IETF.<br>
</p>
<p>As I mentioned earlier, the fundamental issue was that there were
no ng proposals that were in fact substitutable resources for v4,
and NAT was. From there, economics has ruled, arguments be
damned.<br>
</p>
<p>Eliot</p>
<p>* I <b>did</b> in fact posit an approach in 1992 that would have
allowed for orderly transition such that IPv4 could continue, and
that was to define class E addresses as extension blocks that were
in fact name space prefixes for another IPv4 header. It wasn't
taken seriously, and perhaps rightly so. This actually borrowed a
page from the PSTN - most people communicate locally and so you
would rarely use those extended name spaces. This was before Paul
(<span>Tsuchiya) Francis offered PIP, which had a notion of
Landmark Routing that also went nowhere.<br>
</span></p>
<p><br>
</p>
<div class="moz-cite-prefix">On 16.09.21 11:15, John Curran wrote:<br>
</div>
<blockquote type="cite"
cite="mid:0BE31FF9-3B3C-486D-AB98-7346E2E89559@istaff.org">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
On 14 Sep 2021, at 3:46 AM, Eliot Lear <<a
href="mailto:lear@ofcourseimright.com" class=""
moz-do-not-send="true">lear@ofcourseimright.com</a>> wrote:<br
class="">
<div>
<blockquote type="cite" class="">….<br
class="Apple-interchange-newline">
<div class="">
<div class="content-isolator__container">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
<div class="">
<div class="moz-text-html" lang="x-unicode">
<div class="moz-cite-prefix">There is no evidence that
any other design choices on the table at the time
would have gotten us transitioned any faster, and a
lot of evidence and analysis that the exact opposite
is more likely. </div>
</div>
</div>
</div>
</div>
</blockquote>
<br class="">
</div>
<div>Elliot - </div>
<div><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding:
0px;" class="">
<div>If by “design choices” you mean the criteria that we set
forth for the new protocol (IPng), then that’s potentially
true - it’s fairly challenging to hypothecate what impact
different technical criteria would have had on the outcome. </div>
<div><br class="">
</div>
<div>If by “design choices” you mean the tradeoffs accepted in
selecting a particular candidate protocol and declaring
victory, then I’d strongly disagree. I believe that we had
the appropriate technical criteria for IPng (very nicely
compiled and edited by Craig Patridge and Frank Kastenholz in
RFC1726) and then made conscious decisions to disregard those
very criteria in order to “make a decision” & “move
forward.”</div>
<div><br class="">
</div>
<div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0,
0);" class="">All of the IPng proposals where completely
deficient with respect </span><span style="caret-color:
rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">to transition
capabilities. In the rush to make a IPng decision,</span><span
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> </span><span style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">the actual IPng Transition
Criteria [1] that mandated a straightforward transition
plan from</span><span style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class=""> </span><font class=""
color="#000000"><span style="caret-color: rgb(0, 0, 0);"
class="">IPv4 was simply acknowledged and then declared
as “resolved" because</span></font><span
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> </span><font class="" color="#000000">we would
also simultaneously form some working groups to study all of
the transition requirements and made good on the transition
criteria via future deliverables...</font><span
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">(deliverables that were subsequently not delivered
on) </span></div>
<div><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
</div>
<div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0,
0);" class="">The right answer would have been to formally
and critically </span><font class="" color="#000000">evaluate
each of the candidate protocols against the requirements and
not make any selection until candidate presented itself
that actually met the required technical criteria.
Instead, IPv6 transition was left as an afterthought for</font><span
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> the operator community to solve, and thus the
battles with the IETF on NAT-based </span><font class=""
color="#000000"><span style="caret-color: rgb(0, 0, 0);"
class="">transition for nearly two decades to get this
basic technical requirement met.</span></font></div>
</blockquote>
<div><br class="">
</div>
<div>FYI,<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0,
0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">/John</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<font class="" color="#000000"><span style="caret-color: rgb(0,
0, 0);" class="">Disclaimer: my views alone - made from 100%
recycled electrons. </span></font></div>
<div><font class="" color="#000000"><span style="caret-color:
rgb(0, 0, 0);" class=""><br class="">
</span></font></div>
<div><font class="" color="#000000"><span style="caret-color:
rgb(0, 0, 0);" class="">=== [1] </span></font><span
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">The actual IPng Transition criteria (per RFC 1726)
are as follows - </span></div>
<div><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">"</span><br style="caret-color: rgb(0, 0, 0); color:
rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">5.5 Transition</span><br style="caret-color: rgb(0,
0, 0); color: rgb(0, 0, 0);" class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> CRITERION</span><br style="caret-color: rgb(0, 0,
0); color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> The protocol must have a straightforward
transition plan from the</span><br style="caret-color: rgb(0,
0, 0); color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> current IPv4.</span><br style="caret-color:
rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> DISCUSSION</span><br style="caret-color: rgb(0, 0,
0); color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> A smooth, orderly, transition from IPv4 to IPng
is needed. If we</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> can't transition to the new protocol, then no
matter how wonderful</span><br style="caret-color: rgb(0, 0,
0); color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> it is, we'll never get to it.</span><br
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> We believe that it is not possible to have a
"flag-day" form of</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> transition in which all hosts and routers must
change over at</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> once. The size, complexity, and distributed
administration of the</span><br style="caret-color: rgb(0, 0,
0); color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> Internet make such a cutover impossible.</span><br
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> Rather, IPng will need to co-exist with IPv4 for
some period of</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> time. There are a number of ways to achieve
this co-existence</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> such as requiring hosts to support two stacks,
converting between</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> protocols, or using backward compatible
extensions to IPv4. Each</span><br style="caret-color: rgb(0,
0, 0); color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> scheme has its strengths and weaknesses, which
have to be weighed.</span><br style="caret-color: rgb(0, 0,
0); color: rgb(0, 0, 0);" class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> Furthermore, we note that, in all probability,
there will be IPv4</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> hosts on the Internet effectively forever. IPng
must provide</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> mechanisms to allow these hosts to communicate,
even after IPng</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> has become the dominant network layer protocol
in the Internet.</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> The absence of a rational and well-defined
transition plan is not</span><br style="caret-color: rgb(0, 0,
0); color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> acceptable. Indeed, the difficulty of running a
network that is</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> transitioning from IPv4 to IPng must be
minimized. (A good target</span><br style="caret-color:
rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> is that running a mixed IPv4-IPng network should
be no more and</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> preferably less difficult than running IPv4 in
parallel with</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> existing non-IP protocols).</span><br
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">"</span><br style="caret-color: rgb(0, 0, 0); color:
rgb(0, 0, 0);" class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">In short: </span><br style="caret-color: rgb(0, 0,
0); color: rgb(0, 0, 0);" class="">
<br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> 1) The protocol must have a straightforward
transition plan </span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> 2) A number of ways to achieve this which are to be
explored</span><br style="caret-color: rgb(0, 0, 0); color:
rgb(0, 0, 0);" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""> 3) IPng must provide backward-compatibility to
IPv4-only hosts</span><br style="caret-color: rgb(0, 0, 0);
color: rgb(0, 0, 0);" class="">
<font class="" color="#000000"><span style="caret-color: rgb(0,
0, 0);" class=""> 4) The absence of a well-defined
transition plan is not acceptable</span></font></div>
<div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class=""><br class="">
</span></div>
<div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
class="">===</span></div>
</blockquote>
</body>
</html>