Re: [IPFIX] templateLifePacket on IPFIX collector

Petr Velan <[email protected]> Mon, 2 Oct 2017 15:24:17 +0200
Newsgroups gmane.ietf.ipfix
Message-ID <CALbOe5M+YzXN8VPKBU_04ZGxk43bauyfbZspiRUcFAjXeO4JOA@mail.gmail.com>
--===============1939123794526503692==
Content-Type: multipart/alternative; boundary="94eb2c0e71fca8fb96055a904a33"

--94eb2c0e71fca8fb96055a904a33
Content-Type: text/plain; charset="UTF-8"

Hi Benoit,

I think that there is a slight confusion. I'm talking specifically about
__Collection Process__, not __Exporting Process__. My focus is on
templateLifeTime, optionsTemplateLifeTime, templateLifePacket, and
optionsTemplateLifePacket options and not at all about
templateRefreshTimeout, optionsTemplateRefreshTimeout,
templateRefreshPacket, and optionsTemplateRefreshPacket options.

With that cleared out, let my try to clarify:

On Mon, Oct 2, 2017 at 2:11 PM, Benoit Claise <[email protected]> wrote:

> Hi Petr,
>
> Hi Brian,
>
> I understand that the Exporter is required to export the templates at
> regular intervals. It is not clear, whether "regular intervals" mean "time
> intervals" (as suggested by the templateRefreshTimeout example) or if it
> can mean "packet intervals" as well (as suggested by the RFC 6728).
>
> As mentioned, the two options come from NetFlow v9, with UDP.
>
> Moreover, this discusses only the Exporter Processes. My question was
> primarily about the Collecting Process, where the RFC 7011 specifies the
> following:
>
>    In order to minimize resource requirements for Templates that are no
>    longer being used by the Exporting Process, the Collecting Process
>    MAY associate a lifetime with each Template received in a Transport
>    Session.  Templates not refreshed by the Exporting Process within the
>    lifetime can then be discarded by the Collecting Process.  The
>    Template lifetime at the Collecting Process MAY be exposed by a
>    configuration parameter or MAY be derived from observation of the
>    interval of periodic Template retransmissions from the Exporting
>    Process.  In this latter case, the Template lifetime SHOULD default
>    to at least 3 times the observed retransmission rate.
>
> So the IPFIX configuration model only suggests that the Collecting Process
> can use the *TemplateLifePacket options without actually requiring their
> implementation anywhere. Is that correct?
>
> Not sure I understand.
> From RFC7011
>
>    Since UDP provides no method for reliable transmission of Templates,
>    Exporting Processes using UDP as the transport protocol MUST
>    periodically retransmit each active Template at regular intervals.
>    The Template retransmission interval MUST be configurable via, for
>    example, the templateRefreshTimeout and optionsTemplateRefreshTimeout
>    parameters as defined in [RFC6728 <https://tools.ietf.org/html/rfc6728>].  Default settings for these
>    values are deployment- and application-specific.
>
>
> If the collector is the one that configured the templateRefreshTimeout and
> optionsTemplateRefreshTimeout for the Exporter, then it knows this
> information. Alternatively, it can try to deduce it.
>
> This says that an __Exporting Process__ must implement some kind of the
template refresh timeout for UDP and that it must be configurable. However,
template lifetime tracking is only suggested for __Collecting Processes__
for the UDP protocol in the RFC 7011 and the template lifepacket expiration
is not mentioned at all. My original question was whether the template
lifepacket tracking was required/suggested by the IPFIX protocol as it was
present in the IPFIX information model. The answer to that question seems
to be _no_.


> Now, an editorial errata (more for completeness that anything else) could
> be that RFC7011 should mention RFC 6728 templateRefreshPacket and
> optionsTemplateRefreshPacket.
> However, it says "for example, the templateRefreshTimeout and
> optionsTemplateRefreshTimeout parameters as defined in [RFC6728
> <https://tools.ietf.org/html/rfc6728>]."
> So there might be other examples.
>
>
> On a related note, while reading through the RFC 6728, I've noticed that
> it still references the obsoleted RFC 5101, which is not good, especially
> regarding the template timeout on collecting process. The problem is that
> it forces the configuration of templateLifeTime and optionsTemplateLifeTime
> options per RFC 5101, Section 10.3.7 where it states:
>
>    The Collecting Process MUST associate a lifetime with each Template
>    (or another definition of an identifier considered unique within the
>    Transport Session) received via UDP.  Templates (and similar
>    definitions) not refreshed by the Exporting Process within the
>    lifetime are expired at the Collecting Process.
>
> However, the RFC 7011 obsoletes this (see my first quote) and changes this
> behaviour to optional. Would it make sense to update the RFC 6728 to
> reflect this change?
>
> Maybe.
>

That is a significant change from RFC 5101 which _required_ the template
lifetime tracking. The relevant text in RFC 6728 stil references RFC 5101
and suggest that implementing the template lifetime expiration for UDP it
is still required for __Collecting Processes_ by the IPFIX protocol, which
is no longer true.

The template expiration based on number of packets at the __Collecting
Process__ was not present anywhere in the RFC 3954. Therefore, I'm
surprised to find it in the IPFIX information model when it is not
mentioned in the standard. I fully agree that the templateRefreshPacket
makes complete sense at the __Exporting Process__, but my focus here is on
the __Collecting Process__.

Cheers,
Petr

>
> Regards, Benoit
>
>
> Cheers,
> Petr
>
> On Mon, Oct 2, 2017 at 10:05 AM, Brian Trammell (IETF) <[email protected]>
> wrote:
>
>> hi Petr,
>>
>> This is specified in section 8.4 of RFC 7011 for UDP:
>>
>>    Since UDP provides no method for reliable transmission of Templates,
>>    Exporting Processes using UDP as the transport protocol MUST
>>    periodically retransmit each active Template at regular intervals.
>>    The Template retransmission interval MUST be configurable via, for
>>    example, the templateRefreshTimeout and optionsTemplateRefreshTimeout
>>    parameters as defined in [RFC6728].  Default settings for these
>>    values are deployment- and application-specific.
>>
>> For transports with reliable template lifetimes (TCP, SCTP), templates
>> require no refresh, since template state remains synchronized between
>> exporter and collector.
>>
>> Cheers,
>>
>> Brian
>>
>>
>> > On 2 Oct 2017, at 09:37, Petr Velan <[email protected]> wrote:
>> >
>> > Hello IPFIX masters,
>> >
>> > we are implementing an IPFIX collector and a question came up whether
>> to support templateLifePacket configuration as specified in RFC 6728 (
>> https://tools.ietf.org/html/rfc6728#section-4.5.2). It seems, that the
>> *LifePacket options are not mentioned anywhere else in the IPFIX related
>> documents and that the IPFIX protocol specifies only time based timeout
>> expiration. Therefore, my question is why the *LifePacket options are even
>> present in the RFC 6728 and whether it is necessary to implement them for
>> the collector (and exporter as well) to be compliant with the IPFIX
>> standard.
>> >
>> > I think that the whole *LifePacket option came from NetFlow v9 where
>> the informational RFC 3954 states that:
>> >       On a regular basis, the Exporter MUST send all the Template
>> >       Records and Options Template Records to refresh the Collector.
>> >       Template IDs have a limited lifetime at the Collector and MUST be
>> >       periodically refreshed.  Two approaches are taken to make sure
>> >       that Templates get refreshed at the Collector:
>> >             * Every N number of Export Packets.
>> >             * On a time basis, so every N number of minutes.
>> >       Both options MUST be configurable by the user on the Exporter.
>> >       When one of these expiry conditions is met, the Exporter MUST send
>> >       the Template FlowSet and Options Template.
>> >
>> >
>> > If that is the case, should the IPFIX standard specify something
>> similar as well? Otherwise, it would seem that removing the *LifePacket
>> options from the RFC 6728 would prevent further confusion.
>> >
>> > Kind regards,
>> > Petr Velan
>> >
>> > _______________________________________________
>> > IPFIX mailing list
>> > [email protected]
>> > https://www.ietf.org/mailman/listinfo/ipfix
>>
>>
>
>
> _______________________________________________
> IPFIX mailing [email protected]://www.ietf.org/mailman/listinfo/ipfix
>
>
>

--94eb2c0e71fca8fb96055a904a33
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi Benoit,<br><br></div>I think that there is a =
slight confusion. I&#39;m talking specifically about __Collection Process__=
, not __Exporting Process__. My focus is on templateLifeTime, optionsTempla=
teLifeTime, templateLifePacket, and optionsTemplateLifePacket options and n=
ot at all about templateRefreshTimeout, optionsTemplateRefreshTimeout, temp=
lateRefreshPacket, and optionsTemplateRefreshPacket options.<br><br></div>W=
ith that cleared out, let my try to clarify:<br><div><br><div><div class=3D=
"gmail_extra"><div class=3D"gmail_quote">On Mon, Oct 2, 2017 at 2:11 PM, Be=
noit Claise <span dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]" targ=
et=3D"_blank">[email protected]</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF">
    <div class=3D"gmail-m_-6801902955678215617moz-cite-prefix">Hi Petr,<br>
    </div><span class=3D"gmail-">
    <blockquote type=3D"cite">
     =20
      <div dir=3D"ltr">
        <div>
          <div>
            <div>
              <div>Hi Brian,<br>
                <br>
              </div>
              I understand that the Exporter is required to export the
              templates at regular intervals. It is not clear, whether
              &quot;regular intervals&quot; mean &quot;time intervals&quot;=
 (as suggested by
              the templateRefreshTimeout example) or if it can mean
              &quot;packet intervals&quot; as well (as suggested by the RFC=
 6728).
            </div>
          </div>
        </div>
      </div>
    </blockquote></span>
    As mentioned, the two options come from NetFlow v9, with UDP.<span clas=
s=3D"gmail-"><br>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div>
            <div>Moreover, this discusses only the Exporter Processes.
              My question was primarily about the Collecting Process,
              where the RFC 7011 specifies the following:<br>
              <br>
              <pre class=3D"gmail-m_-6801902955678215617gmail-newpage">   I=
n order to minimize resource requirements for Templates that are no
   longer being used by the Exporting Process, the Collecting Process
   MAY associate a lifetime with each Template received in a Transport
   Session.  Templates not refreshed by the Exporting Process within the
   lifetime can then be discarded by the Collecting Process.  The
   Template lifetime at the Collecting Process MAY be exposed by a
   configuration parameter or MAY be derived from observation of the
   interval of periodic Template retransmissions from the Exporting
   Process.  In this latter case, the Template lifetime SHOULD default
   to at least 3 times the observed retransmission rate.<span style=3D"font=
-family:arial,helvetica,sans-serif">
</span></pre>
              So the IPFIX configuration model only suggests that the
              Collecting Process can use the *TemplateLifePacket options
              without actually requiring their implementation anywhere.
              Is that correct?<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote></span>
    Not sure I understand.<br>
    From RFC7011<span class=3D"gmail-"><br>
    <pre class=3D"gmail-m_-6801902955678215617newpage">   Since UDP provide=
s no method for reliable transmission of Templates,
   Exporting Processes using UDP as the transport protocol MUST
   periodically retransmit each active Template at regular intervals.
   The Template retransmission interval MUST be configurable via, for
   example, the templateRefreshTimeout and optionsTemplateRefreshTimeout
   parameters as defined in [<a href=3D"https://tools.ietf.org/html/rfc6728=
" title=3D"&quot;Configuration Data Model for the IP Flow Information Expor=
t (IPFIX) and Packet Sampling (PSAMP) Protocols&quot;" target=3D"_blank">RF=
C6728</a>].  Default settings for these
   values are deployment- and application-specific.

</pre></span>
    If the collector is the one that configured the
    templateRefreshTimeout and optionsTemplateRefreshTimeout for the
    Exporter, then it knows this information. Alternatively, it can try
    to deduce it.<br>
    <br></div></blockquote><div>This says that an __Exporting Process__ mus=
t implement some kind of the template refresh timeout for UDP and that it m=
ust be configurable. However, template lifetime tracking is only suggested =
for __Collecting Processes__ for the UDP protocol in the RFC 7011 and the t=
emplate lifepacket expiration is not mentioned at all. My original question=
 was whether the template lifepacket tracking was required/suggested by the=
 IPFIX protocol as it was present in the IPFIX information model. The answe=
r to that question seems to be _no_.<br>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex"><div bgcolor=3D"#FFFFFF">
    Now, an editorial errata (more for completeness that anything else)
    could be that RFC7011 should mention RFC 6728 templateRefreshPacket
    and optionsTemplateRefreshPacket.<br>
    However, it says &quot;for example, the templateRefreshTimeout and
    optionsTemplateRefreshTimeout parameters as defined in [<a href=3D"http=
s://tools.ietf.org/html/rfc6728" title=3D"&quot;Configuration Data Model fo=
r the IP Flow Information
      Export (IPFIX) and Packet Sampling (PSAMP) Protocols&quot;" target=3D=
"_blank">RFC6728</a>].&quot;<br>
    So there might be other examples.<span class=3D"gmail-"><br>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div>
            <div><br>
              On a related note, while reading through the RFC 6728,
              I&#39;ve noticed that it still references the obsoleted RFC
              5101, which is not good, especially regarding the template
              timeout on collecting process. The problem is that it
              forces the configuration of templateLifeTime and
              optionsTemplateLifeTime options per RFC 5101, Section
              10.3.7 where it states:<br>
              <pre class=3D"gmail-m_-6801902955678215617gmail-newpage">   T=
he Collecting Process MUST associate a lifetime with each Template
   (or another definition of an identifier considered unique within the
   Transport Session) received via UDP.  Templates (and similar
   definitions) not refreshed by the Exporting Process within the
   lifetime are expired at the Collecting Process.</pre>
            </div>
            However, the RFC 7011 obsoletes this (see my first quote)
            and changes this behaviour to optional. Would it make sense
            to update the RFC 6728 to reflect this change?<br>
          </div>
        </div>
      </div>
    </blockquote></span>
    Maybe.<br></div></blockquote><div><br>That is a significant change from=
 RFC 5101 which _required_ the template lifetime tracking. The relevant tex=
t in RFC 6728=20
stil references RFC 5101 and suggest that implementing the template=20
lifetime expiration for UDP it is still required for __Collecting=20
Processes_ by the IPFIX protocol, which is no longer true. <br><br>The temp=
late expiration based on number of packets at the __Collecting Process__ wa=
s not present anywhere in the RFC 3954. Therefore, I&#39;m surprised to fin=
d it in the IPFIX information model when it is not mentioned in the standar=
d. I fully agree that the templateRefreshPacket makes complete sense at the=
 __Exporting Process__, but my focus here is on the __Collecting Process__.=
<br><br></div><div>Cheers,<br></div><div>Petr<br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex"><div bgcolor=3D"#FFFFFF">
    <br>
    Regards, Benoit<div><div class=3D"gmail-h5"><br>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div><br>
          </div>
          Cheers,<br>
        </div>
        Petr<br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">On Mon, Oct 2, 2017 at 10:05 AM, Brian
          Trammell (IETF) <span dir=3D"ltr">&lt;<a href=3D"mailto:ietf@tram=
mell.ch" target=3D"_blank">[email protected]</a>&gt;</span>
          wrote:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8=
ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">hi Petr,<br>
            <br>
            This is specified in section 8.4 of RFC 7011 for UDP:<br>
            <br>
            =C2=A0 =C2=A0Since UDP provides no method for reliable transmis=
sion of
            Templates,<br>
            =C2=A0 =C2=A0Exporting Processes using UDP as the transport pro=
tocol
            MUST<br>
            =C2=A0 =C2=A0periodically retransmit each active Template at re=
gular
            intervals.<br>
            =C2=A0 =C2=A0The Template retransmission interval MUST be confi=
gurable
            via, for<br>
            =C2=A0 =C2=A0example, the templateRefreshTimeout and
            optionsTemplateRefreshTimeout<br>
            =C2=A0 =C2=A0parameters as defined in [RFC6728].=C2=A0 Default =
settings for
            these<br>
            =C2=A0 =C2=A0values are deployment- and application-specific.<b=
r>
            <br>
            For transports with reliable template lifetimes (TCP, SCTP),
            templates require no refresh, since template state remains
            synchronized between exporter and collector.<br>
            <br>
            Cheers,<br>
            <br>
            Brian<br>
            <div>
              <div class=3D"gmail-m_-6801902955678215617h5"><br>
                <br>
                &gt; On 2 Oct 2017, at 09:37, Petr Velan &lt;<a href=3D"mai=
lto:[email protected]" target=3D"_blank">[email protected]</a>&gt;
                wrote:<br>
                &gt;<br>
                &gt; Hello IPFIX masters,<br>
                &gt;<br>
                &gt; we are implementing an IPFIX collector and a
                question came up whether to support templateLifePacket
                configuration as specified in RFC 6728 (<a href=3D"https://=
tools.ietf.org/html/rfc6728#section-4.5.2" rel=3D"noreferrer" target=3D"_bl=
ank">https://tools.ietf.org/html/r<wbr>fc6728#section-4.5.2</a>).
                It seems, that the *LifePacket options are not mentioned
                anywhere else in the IPFIX related documents and that
                the IPFIX protocol specifies only time based timeout
                expiration. Therefore, my question is why the
                *LifePacket options are even present in the RFC 6728 and
                whether it is necessary to implement them for the
                collector (and exporter as well) to be compliant with
                the IPFIX standard.<br>
                &gt;<br>
                &gt; I think that the whole *LifePacket option came from
                NetFlow v9 where the informational RFC 3954 states that:<br=
>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0On a regular basis, the Expo=
rter MUST send
                all the Template<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Records and Options Template=
 Records to
                refresh the Collector.<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Template IDs have a limited =
lifetime at the
                Collector and MUST be<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0periodically refreshed.=C2=
=A0 Two approaches are
                taken to make sure<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0that Templates get refreshed=
 at the
                Collector:<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Every=
 N number of Export Packets.<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* On a =
time basis, so every N number of
                minutes.<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Both options MUST be configu=
rable by the user
                on the Exporter.<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0When one of these expiry con=
ditions is met,
                the Exporter MUST send<br>
                &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the Template FlowSet and Opt=
ions Template.<br>
                &gt;<br>
                &gt;<br>
                &gt; If that is the case, should the IPFIX standard
                specify something similar as well? Otherwise, it would
                seem that removing the *LifePacket options from the RFC
                6728 would prevent further confusion.<br>
                &gt;<br>
                &gt; Kind regards,<br>
                &gt; Petr Velan<br>
                &gt;<br>
              </div>
            </div>
            &gt; ______________________________<wbr>_________________<br>
            &gt; IPFIX mailing list<br>
            &gt; <a href=3D"mailto:[email protected]" target=3D"_blank">IPFIX@=
ietf.org</a><br>
            &gt; <a href=3D"https://www.ietf.org/mailman/listinfo/ipfix" re=
l=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mailman/l<wbr>istin=
fo/ipfix</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class=3D"gmail-m_-6801902955678215617mimeAttachmentHeader">=
</fieldset>
      <br>
      <pre>______________________________<wbr>_________________
IPFIX mailing list
<a class=3D"gmail-m_-6801902955678215617moz-txt-link-abbreviated" href=3D"m=
ailto:[email protected]" target=3D"_blank">[email protected]</a>
<a class=3D"gmail-m_-6801902955678215617moz-txt-link-freetext" href=3D"http=
s://www.ietf.org/mailman/listinfo/ipfix" target=3D"_blank">https://www.ietf=
.org/mailman/<wbr>listinfo/ipfix</a>
</pre>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br></div></div></div></div>

--94eb2c0e71fca8fb96055a904a33--


--===============1939123794526503692==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
IPFIX mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipfix

--===============1939123794526503692==--