Subject: [Pppext] Technical Request about a correct protocol behavior (RFC2661)

From: <[email-masked]>
Date: Thu, 18 Feb 2016 14:09:11 +0100

Dear IETF colleagues,

we, at Deutsche Telekom Germany, have an urgent technical request
regarding behavior of LAC/LNS during L2TPv2 (RFC2661) protocol
communication. The question is not an errata report. We need only to
verify the MUST behavior of a LAC/LNS implementation on the basis
of the RFC2661.

It is needed to clarify a proper, standard-compliant behavior of
L2TP protocol implementations related to the following use case.

RFC 2661 (L2TPv2 standard):

      "The Mandatory (M) bit within the Message Type AVP has special
      meaning. Rather than an indication as to whether the AVP itself
      should be ignored if not recognized, it is an indication as to
      whether the control message itself should be ignored.
      If the M-bit is not set, then the implementation may ignore an unknown
      message type."  

According to the RFC2661 statement quoted above, an unknown non-mandatory (M=0)
control message received from the peer may be ignored. While ignoring that
unknown control message in our use case, the implementation does not send
ZLB-Ack also after several retransmissions of that control message by the peer.

Questions:
---------
- If the implementation receives and ignores (without ZLB Acknowledgement) an
  unknown non-mandatory (M=0) control message, what should happen with the Nr
  counters in the implementation according to the RFC2661?
- Should the local Nr counter be incremented in the implementation or not?
- Should the peer's (sender's) Ns counter be incremented after several
  unacknowledged retransmissions of that control message or not?

Thank you in advance for your help!

Best regards
Jewgenij Bytschkow 

T-Systems International GmbH
IT Division, Global IT Operations
GCU MPHS, Security Consulting & Engineering
Security Consulting I
Jewgenij Bytschkow, Dipl.-Ing./Dipl.-Math., CCNA certified
Senior Security Consultant
Deutsche-Telekom-Allee 7, 64295 Darmstadt
+49 (0)6151 583-4944 (Phone)
+49 (0)6151 583-7753 (Fax)
+49 (0)170 6156507 (Mobile)
E-Mail: [email-masked]
Internet: http://www.t-systems.com

T-Systems International GmbH
Aufsichtsrat: Thomas Dannenfeldt (Vorsitzender)
Geschäftsführung: Reinhard Clemens (Vorsitzender), Dr. Ferri Abolhassan, Thilo Kusch, Dr. Markus Müller, Georg Pepping, Hagen Rickmann
Handelsregister: Amtsgericht Frankfurt am Main HRB 55933
Sitz der Gesellschaft: Frankfurt am Main
WEEE-Reg.-Nr. DE50335567

-----Ursprüngliche Nachricht-----
Von: Amy Vezza via RT [mailto:[email-masked]] 
Gesendet: Mittwoch, 17. Februar 2016 23:15
An: Bytschkow, Jewgenij
Betreff: [www.ietf.org/rt #113526] Technical Request about a correct protocol behavior (RFC2661)

Hi Jewgenij Bytschkow,

You have reached the IETF Secretariat, the administrative branch of the IETF,
and as such we are not qualified to answer your technical question.

The RFC you are asking about came out of the now-closed PPPEXT Working Group in
the Internet Area. The group may be closed, but the mailing list remains open.
You may try posting your question to the list at [email-masked].
Alternatively, you may ask your question of the Area Directors for the Internet
Area, Brian Haberman and Terry Manderson ([email-masked]).

Best regards,

Amy Vezza
IETF Secretariat

On Wed Feb 17 07:45:36 2016, [email-masked] wrote:
> Dear IETF colleagues,
>
> we, at Deutsche Telekom Germany, have an urgent technical request
> regarding behavior of LAC/LNS during L2TPv2 (RFC2661) protocol
> communication. The question is not an errata report. We need only to
> verify on the basis of RFC2661 a proper, standard-compliant
> behavior of L2TP implementations on LAC/LNS related to our use case.
> The use case I’m talking about is unfortunately NOT covered by
> the RFC2661 but is still very important for the functioning of the
> L2TP protocol on LAC/LNS in general and for real operation of
> LAC/LNS at Deutsche Telekom in particular.
>
> Can you please forward this e-mail request to the authors of the
> RFC2661 (L2TP) standard who can answer such a question? A technical
> description of the mentioned use case will be then posted to these
> IETF colleagues who are responsible for the RFC2661 life cycle.
>
> Thank you for your help!
>
> Best regards
> Jewgenij Bytschkow
>
> T-Systems International GmbH
> IT Division, Global IT Operations
> GCU MPHS, Security Consulting & Engineering
> Security Consulting I
> Jewgenij Bytschkow, Dipl.-Ing./Dipl.-Math., CCNA certified
> Senior Security Consultant
> Deutsche-Telekom-Allee 7, 64295 Darmstadt
> +49 (0)6151 583-4944 (Phone)
> +49 (0)6151 583-7753 (Fax)
> +49 (0)170 6156507 (Mobile)
> E-Mail: [email-masked]
> Internet: http://www.t-systems.com
>
> T-Systems International GmbH
> Aufsichtsrat: Thomas Dannenfeldt (Vorsitzender)
> Geschäftsführung: Reinhard Clemens (Vorsitzender), Dr. Ferri
> Abolhassan, Thilo Kusch, Dr. Markus Müller, Georg Pepping, Hagen
> Rickmann
> Handelsregister: Amtsgericht Frankfurt am Main HRB 55933
> Sitz der Gesellschaft: Frankfurt am Main
> WEEE-Reg.-Nr. DE50335567
>
>

---

From: James Carlson <[email-masked]>
Date: Thu, 18 Feb 2016 16:48:03 -0500

> verify the MUST behavior of a LAC/LNS implementation on the basis

Although design of L2TP was started in the IETF PPPEXT working group,
most of the original people involved have moved over to the L2TPEXT
working group.  You may also wish to consult with them:

https://datatracker.ietf.org/wg/l2tpext/charter/

> ZLB-Ack also after several retransmissions of that control message by the peer.

Although I agree that the text of the document is somewhat ambiguous, I
don't believe that common sense supports reading it that way.

L2TP is designed to operate on unreliable media, so simply omitting ZLB
ACK sounds quite wrong to me.  There would be no way to recover from
such an omission.

My understanding is that when the Message Type AVP has M=0 and the type
is unknown to the receiver, the receiver is expected to skip
*processing* of that message -- including all of the AVPs contained in
the message, and sending no new message in reply -- but then resume
normal handling of the message stream, including any acknowledgement
requirements.

In other words, a sequence with multiple ignored (non-mandatory)
messages might look like this:

Peer A                Peer B
SCCRQ ->
Nr: 0, Ns: 0
                   <- UNKNOWN1
                      Nr: 1, Ns: 0
ZLB ->
Nr: 1, Ns: 1
                   <- SCCRP
                      Nr: 1, Ns: 1
UNKNOWN2 ->
Nr: 2, Ns: 1
SCCN ->
Nr: 2, Ns: 2
                   <- ZLB
                      Nr: 3, Ns: 2

>   counters in the implementation according to the RFC2661?

This should not happen.  I argue that failing to send a proper ZLB when
the transmission queue is empty is an error, and a system that does this
is faulty.

> - Should the local Nr counter be incremented in the implementation or not?

Nr reflects the number of in-order messages received, regardless of
whether or not those messages were understood.  So, yes.

>   unacknowledged retransmissions of that control message or not?

No, the Ns number is not incremented for retransmissions.  See B.2 in
the spec.

The sender should, in my estimation, retry multiple times and then
terminate the connection.  Once the sender has determined that the
recipient is broken, there's no need to send it any more packets.

-- 
James Carlson         42.703N 71.076W         <[email-masked]>