At 02:42 AM 3/6/2002, you wrote:
I don't see how classification of PPP as a layer 2, layer 3, or any other
layer
would have had an affect on how we designed L2TP (perhaps it would have
affected
the name of the protocol though).
PPP actually consists of two distinct and separate sets of protocols. The
LCP and its negotiation should be totally separate from the NCPs and their
negotiation.
Layers aside, PPP was already deployed and it
was pretty obvious what we wanted to do - make it run over IP without the
installed base of PPP clients being made aware of it.
Do it right would not have changed that.
How would you have done
this that is substantially different than L2TP? (As an aside, of the list of
obscene things we did have to do to make L2TP work, the worst were more due to
badly implemented PPP stacks than anything else.)
<sigh> It has been many years since I argued this with Karl Fox back when
he chaired the L2TP WG. At that time he agreed but also said that there
was too much water under the bridge to fix L2TP at that time so it was
going to go forward in its subtlely-broken form. I haven't looked at it
since then. I don't even remember the lexicon so I will undoubtedly sound
uninformed.
The LCP negotiation should take place with the L2TP equivalent of the
NAS. That is independent of anything else that happens and nothing
associated with that needs to be communicated to the edge device at the
target network. The authentication phase then takes place so you can do
authorization and configuration. Once that is complete you can do the
MLPPP and NCP negotiation(s) because then and only then do you know what
the end system is authorized to do.
"But MLPPP is negotiated during LCP," you say! Right. That is broken and
I helped make it broken and, in retrospect, I am *really* sorry I did.
So, as I said, this is water under the bridge and it isn't going to
change. Any attempt to do so would be met with a barrage of "but we have
lots of systems in the field and this would break them" arguments.
Tunneling, particularly L2 tunneling, is by its very definition a "layer
violation". The perfect world where this is not necessary or desirable
does not
exist beyond textbooks and laboratories. So here we are in the real world,
tunneling not just PPP but a plethora of L2 or L2-like layers.
There is nothing wrong with tunneling per-se. In fact, it solves many
problems. IMHO tunneling is a good thing. My comments had only to do with
the fallacy of rigid layering, how many people don't really understand
layering, and as a side issue, how PPP was really a suite of protocols at
different layers and how that affects MLPPP and L2TP.
YMMV
Brian Lloyd
brian(_at_)lloyd(_dot_)com
+1.530.676.1113 - voice
+1.360.838.9669 - fax