rfc9343xml2.original.xml | rfc9343.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="UTF-8"?> | <?xml version='1.0' encoding='UTF-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc [ | |||
<!-- A set of on-line citation libraries are maintained on the xml2rfc web site. | <!ENTITY nbsp " "> | |||
The next line defines an entity named RFC2629, which contains the necessary | <!ENTITY zwsp "​"> | |||
XML | <!ENTITY nbhy "‑"> | |||
for the reference element, and is used much later in the file. This XML co | <!ENTITY wj "⁠"> | |||
ntains an | ||||
anchor (also RFC2629) which can be used to cross-reference this item in the | ||||
text. | ||||
You can also use local file names instead of a URI. The environment variab | ||||
le | ||||
XML_LIBRARY provides a search path of directories to look at to locate a | ||||
relative path name for the file. There has to be one entity for each item t | ||||
o be | ||||
referenced. --> | ||||
<!ENTITY RFC2234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2234.xml"> | ||||
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2629.xml"> | ||||
<!ENTITY RFC4234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.4234.xml"> | ||||
<!ENTITY RFC5575 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.5575.xml"> | ||||
<!-- There is also a library of current Internet Draft citations. It isn't a go | ||||
od idea to | ||||
actually use one for the template because it might have disappeared when yo | ||||
u come to test | ||||
this template. This is the form of the entity definition | ||||
<!ENTITY I-D.mrose-writing-rfcs SYSTEM | ||||
"http://xml.resource.org/public/rfc/bibxml3/reference.I-D.mrose-writing-rfc | ||||
s.xml"> | ||||
corresponding to a draft filename draft-mrose-writing-rfcs-nn.txt. The cita | ||||
tion will be | ||||
to the most recent draft in the sequence, and is updated roughly hourly on | ||||
the web site. | ||||
For working group drafts, the same principle applies: file name starts draf | ||||
t-ietf-wgname-.. | ||||
and entity file is reference.I-D.ietf-wgname-... The corresponding entity | ||||
name is | ||||
I-D.ietf-wgname-... (I-D.mrose-writing-rfcs for the other example). Of cou | ||||
rse this doesn't | ||||
change when the draft version changes. | ||||
--> | ||||
<!-- Fudge for XMLmind which doesn't have this built in --> | ||||
<!ENTITY nbsp " "> | ||||
]> | ]> | |||
<!-- Extra statement used by XSLT processors to control the output style. --> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" | |||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | docName="draft-ietf-6man-ipv6-alt-mark-17" number="9343" obsoletes="" updates=" | |||
" submissionType="IETF" consensus="true" xml:lang="en" tocInclude="true" tocDept | ||||
<!-- Processing Instructions can be placed here but if you are editing | h="3" symRefs="true" sortRefs="true" version="3"> | |||
with XMLmind (and maybe other XML editors) they are better placed | ||||
after the rfc element start tag as shown below. --> | ||||
<!-- Information about the document. | ||||
category values: std, bcp, info, exp, and historic | ||||
For Internet-Drafts, specify attribute "ipr". | ||||
(ipr values are: full3667, noModification3667, noDerivatives3667), | ||||
Also for Internet-Drafts, can specify values for | ||||
attributes "docName" and, if relevant, "iprExtract". Note | ||||
that the value for iprExtract is the anchor attribute | ||||
value of a section (such as a MIB specification) that can be | ||||
extracted for separate publication, and is only | ||||
useful whenhe value of "ipr" is not "full3667". --> | ||||
<!-- TODO: verify which attributes are specified only | ||||
by the RFC editor. It appears that attributes | ||||
"number", "obsoletes", "updates", and "seriesNo" | ||||
are specified by the RFC editor (and not by | ||||
the document author). --> | ||||
<rfc | ||||
category="std" | ||||
ipr="trust200902" | ||||
docName="draft-ietf-6man-ipv6-alt-mark-17" > | ||||
<!-- Processing Instructions- PIs (for a complete list and description, | ||||
see file http://xml.resource.org/authoring/README.html and below... -- | ||||
> | ||||
<!-- Some of the more generally applicable PIs that most I-Ds might want to | ||||
use --> | ||||
<!-- Try to enforce the ID-nits conventions and DTD validity --> | ||||
<?rfc strict="yes" ?> | ||||
<!-- Items used when reviewing the document --> | ||||
<?rfc comments="no" ?> <!-- Controls display of <cref> elements --> | ||||
<?rfc inline="no" ?> <!-- When no, put comments at end in comments sectio | ||||
n, | ||||
otherwise, put inline --> | ||||
<?rfc editing="no" ?> <!-- When yes, insert editing marks: editing marks c | ||||
onsist of a | ||||
string such as <29> printed in the blank line a | ||||
t the | ||||
beginning of each paragraph of text. --> | ||||
<!-- Create Table of Contents (ToC) and set some options for it. | ||||
Note the ToC may be omitted for very short documents,but idnits insists | ||||
on a ToC | ||||
if the document has more than 15 pages. --> | ||||
<?rfc toc="yes"?> | ||||
<?rfc tocompact="yes"?> <!-- If "yes" eliminates blank lines before main sect | ||||
ion entries. --> | ||||
<?rfc tocdepth="3"?> <!-- Sets the number of levels of sections/subsection | ||||
s... in ToC --> | ||||
<!-- Choose the options for the references. | ||||
Some like symbolic tags in the references (and citations) and others pr | ||||
efer | ||||
numbers. The RFC Editor always uses symbolic tags. | ||||
The tags used are the anchor attributes of the references. --> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc sortrefs="yes" ?> <!-- If "yes", causes the references to be sorted in | ||||
order of tags. | ||||
This doesn't have any effect unless symrefs is | ||||
"yes" also. --> | ||||
<!-- These two save paper: Just setting compact to "yes" makes savings by no | ||||
t starting each | ||||
main section on a new page but does not omit the blank lines between li | ||||
st items. | ||||
If subcompact is also "yes" the blank lines between list items are also | ||||
omitted. --> | ||||
<?rfc compact="yes" ?> | ||||
<?rfc subcompact="no" ?> | ||||
<!-- end of list of popular I-D processing instructions --> | ||||
<!-- ***** FRONT MATTER ***** --> | ||||
<front> | <front> | |||
<!-- The abbreviated title is used in the page header - it is only necessary | ||||
if the | ||||
full title is longer than 42 characters --> | ||||
<title abbrev="IPv6 AMM">IPv6 Application of the Alternate Marking Method</t | ||||
itle> | ||||
<!-- add 'role="editor"' below for the editors if appropriate --> | <title abbrev="IPv6 Application of the Alternate-Marking Method">IPv6 Applic | |||
ation of the Alternate-Marking Method</title> | ||||
<seriesInfo name="RFC" value="9343"/> | ||||
<author fullname="Giuseppe Fioccola" initials="G." surname="Fioccola"> | <author fullname="Giuseppe Fioccola" initials="G." surname="Fioccola"> | |||
<organization>Huawei</organization> | <organization>Huawei</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Riesstrasse, 25</street> | <street>Riesstrasse, 25</street> | |||
<city>Munich</city> | <city>Munich</city> | |||
<code>80992</code> | <code>80992</code> | |||
<region/> | <region/> | |||
<country>Germany</country> | <country>Germany</country> | |||
</postal> | </postal> | |||
<email>giuseppe.fioccola@huawei.com</email> | <email>giuseppe.fioccola@huawei.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Tianran Zhou" initials="T." surname="Zhou"> | <author fullname="Tianran Zhou" initials="T." surname="Zhou"> | |||
<organization>Huawei</organization> | <organization>Huawei</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>156 Beiqing Rd.</street> | <street>156 Beiqing Rd.</street> | |||
<city>Beijing</city> | <city>Beijing</city> | |||
<code>100095</code> | <code>100095</code> | |||
<region/> | <region/> | |||
<country>China</country> | <country>China</country> | |||
</postal> | </postal> | |||
<email>zhoutianran@huawei.com</email> | <email>zhoutianran@huawei.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Mauro Cociglio" initials="M." surname="Cociglio"> | <author fullname="Mauro Cociglio" initials="M." surname="Cociglio"> | |||
<organization>Telecom Italia</organization> | <organization>Telecom Italia</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city/> | ||||
<city></city> | ||||
<region/> | <region/> | |||
<code/> | ||||
<code></code> | <country/> | |||
<country></country> | ||||
</postal> | </postal> | |||
<email>mauro.cociglio@outlook.com</email> | <email>mauro.cociglio@outlook.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Fengwei Qin" initials="F." surname="Qin"> | <author fullname="Fengwei Qin" initials="F." surname="Qin"> | |||
<organization>China Mobile</organization> | <organization>China Mobile</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>32 Xuanwumenxi Ave.</street> | <street>32 Xuanwumenxi Ave.</street> | |||
<city>Beijing</city> | <city>Beijing</city> | |||
<region/> | <region/> | |||
<code>100032</code> | <code>100032</code> | |||
<country>China</country> | <country>China</country> | |||
</postal> | </postal> | |||
<email>qinfengwei@chinamobile.com</email> | <email>qinfengwei@chinamobile.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Ran Pang" initials="R." surname="Pang"> | <author fullname="Ran Pang" initials="R." surname="Pang"> | |||
<organization>China Unicom</organization> | <organization>China Unicom</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>9 Shouti South Rd.</street> | <street>9 Shouti South Rd.</street> | |||
<city>Beijing</city> | <city>Beijing</city> | |||
<region/> | <region/> | |||
<code>100089</code> | <code>100089</code> | |||
<country>China</country> | <country>China</country> | |||
</postal> | </postal> | |||
<email>pangran@chinaunicom.cn</email> | <email>pangran@chinaunicom.cn</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="December" year="2022"/> | ||||
<date year="2022"/> <!-- month="March" is no longer necessary | ||||
note also, day="30" is optional --> | ||||
<!-- WARNING: If the month and year are the current ones, xml2rfc will fill | ||||
in the day for | ||||
you. If only the year is specified, xml2rfc will fill in the current da | ||||
y and month | ||||
irrespective of the day. This silliness should be fixed in v1.31. --> | ||||
<!-- Meta-data Declarations --> | ||||
<!-- Notice the use of & as an escape for & which would otherwise | ||||
start an entity declaration, whereas we want a literal &. --> | ||||
<area>Internet</area> | <area>Internet</area> | |||
<workgroup>6MAN</workgroup> | ||||
<!-- WG name at the upperleft corner of the doc, | <keyword>Extension</keyword> | |||
IETF fine for individual submissions. You can also | <keyword>Header</keyword> | |||
omit this element in which case in defaults to "Network Working Group" | <keyword>Option</keyword> | |||
- | <keyword>Destination</keyword> | |||
a hangover from the ancient history of the IETF! --> | <keyword>Hop-By-Hop</keyword> | |||
<keyword>Performance</keyword> | ||||
<workgroup>6MAN Working Group</workgroup> | <keyword>Measurement</keyword> | |||
<keyword>Monitoring</keyword> | ||||
<!-- The DTD allows multiple area and workgroup elements but only the first | <keyword>Passive</keyword> | |||
one has any | <keyword>Hybrid</keyword> | |||
effect on output. --> | <keyword>Loss</keyword> | |||
<!-- You can add <keyword/> elements here. They will be incorporated into H | <keyword>Delay</keyword> | |||
TML output | <keyword>Delay Variation</keyword> | |||
files in a meta tag but they have no effect on text or nroff output. -- | <keyword>Multipoint</keyword> | |||
> | <keyword>Cluster</keyword> | |||
<keyword>Closed-Loop</keyword> | ||||
<abstract> | <abstract> | |||
<t>This document describes how the Alternate-Marking Method can be used | ||||
<t>This document describes how the Alternate Marking Method can be used | ||||
as a passive performance measurement tool in an IPv6 domain. It defines an | as a passive performance measurement tool in an IPv6 domain. It defines an | |||
Extension Header Option to encode Alternate Marking information in | Extension Header Option to encode Alternate-Marking information in | |||
both the Hop-by-Hop Options Header and Destination Options Header.</t> | both the Hop-by-Hop Options Header and Destination Options Header.</t> | |||
</abstract> | </abstract> | |||
</front> | ||||
</front> | <middle> | |||
<section numbered="true" toc="default"> | ||||
<middle> | <name>Introduction</name> | |||
<section title="Introduction"> | <t><xref target="RFC9341" format="default"/> and <xref target="RFC9342" fo | |||
rmat="default"/> | ||||
<t><xref target="I-D.ietf-ippm-rfc8321bis"/> and <xref target="I- | ||||
D.ietf-ippm-rfc8889bis"/> | ||||
describe a passive performance measurement method, which can be u sed to measure packet loss, | describe a passive performance measurement method, which can be u sed to measure packet loss, | |||
latency and jitter on live traffic. Since this method is based on | latency, and jitter on live traffic. Since this method is based o | |||
marking consecutive | n marking consecutive | |||
batches of packets, the method is often referred to as the Altern | batches of packets, the method is often referred to as the Altern | |||
ate Marking Method.</t> | ate-Marking Method.</t> | |||
<t>This document defines how the Alternate-Marking Method can be used to m | ||||
<t>This document defines how the Alternate Marking Method can be | easure | |||
used to measure | performance metrics in IPv6. The rationale is to apply the Altern | |||
performance metrics in IPv6. The rationale is to apply the Altern | ate-Marking methodology to IPv6 and | |||
ate Marking methodology to IPv6 and | therefore allow detailed packet loss, delay, and delay variation | |||
therefore allow detailed packet loss, delay and delay variation m | measurements both hop by hop and end to end | |||
easurements both hop-by-hop and end-to-end | ||||
to exactly locate the issues in an IPv6 network.</t> | to exactly locate the issues in an IPv6 network.</t> | |||
<t>The Alternate Marking is an on-path telemetry technique and co nsists of synchronizing the measurements | <t>Alternate Marking is an on-path telemetry technique and consis ts of synchronizing the measurements | |||
in different points of a network by switching the value of a mark ing bit and therefore dividing the packet flow | in different points of a network by switching the value of a mark ing bit and therefore dividing the packet flow | |||
into batches. Each batch represents a measurable entity recogniza ble by all network nodes along the path. | into batches. Each batch represents a measurable entity recogniza ble by all network nodes along the path. | |||
By counting the number of packets in each batch and comparing the values measured by different nodes, | By counting the number of packets in each batch and comparing the values measured by different nodes, | |||
it is possible to precisely measure the packet loss. Similarly, t he alternation of the values | it is possible to precisely measure the packet loss. Similarly, t he alternation of the values | |||
of the marking bits can be used as a time reference to calculate the delay and delay variation. | of the marking bits can be used as a time reference to calculate the delay and delay variation. | |||
The Alternate Marking operation is further described in <xref tar get="operation"/>.</t> | The Alternate-Marking operation is further described in <xref tar get="operation" format="default"/>.</t> | |||
<t>This document introduces a TLV (type-length-value) that can be encoded in the Options Headers | <t>This document introduces a TLV (type-length-value) that can be encoded in the Options Headers | |||
(Hop-by-Hop or Destination), according to <xref target="RFC8200"> | (Hop-by-Hop or Destination), according to <xref target="RFC8200" | |||
</xref>, for the purpose of the | format="default"/>, for the purpose of the | |||
Alternate Marking Method application in an IPv6 domain.</t> | Alternate-Marking Method application in an IPv6 domain.</t> | |||
<t>The Alternate-Marking Method <bcp14>MUST</bcp14> be applied to IPv6 onl | ||||
<t>The Alternate Marking Method MUST be applied to IPv6 only in a | y in a controlled environment, as further described | |||
controlled environment, as further described | in <xref target="ctrldmn" format="default"/>. <xref target="RFC87 | |||
in <xref target="ctrldmn"/>. <xref target="RFC8799"></xref> provi | 99" format="default"/> provides further discussion of network behaviors | |||
des further discussion of network behaviors | ||||
that can be applied only within limited domains.</t> | that can be applied only within limited domains.</t> | |||
<t>The threat model for the application of the Alternate-Marking Method in | ||||
an IPv6 domain is reported in | ||||
<xref target="security" format="default"/>.</t> | ||||
<section numbered="true" toc="default"> | ||||
<name>Terminology</name> | ||||
<t>This document uses the terms related to the Alternate-Marking Method | ||||
as defined in <xref target="RFC9341" format="default"/> and <xref | ||||
target="RFC9342" format="default"/>.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Requirements Language</name> | ||||
<t>The threat model for the application of the Alternate Marking | <t> | |||
Method in an IPv6 domain is reported in | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
<xref target="security"/>.</t> | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
<section title="Terminology"> | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
<t>This document uses the terms related to the Alternate Marking Method | be interpreted as | |||
as defined in <xref target="I-D.ietf-ippm-rfc8321bis"/> and <xref | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
target="I-D.ietf-ippm-rfc8889bis"/>.</t> | when, and only when, they appear in all capitals, as shown here. | |||
</t> | ||||
</section> | ||||
<section title="Requirements Language"> | ||||
<t>The key words "MUST", "MUST NOT", | ||||
"REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", | ||||
"NOT RECOMMENDED", "MAY", and "OPTIONAL& | ||||
quot; | ||||
in this document are to be interpreted as described in BCP 14 | ||||
<xref target="RFC2119"></xref> <xref target="RFC8174"></xref> | ||||
when, and only when, they appear in all capitals, as shown here.< | ||||
/t> | ||||
</section> | ||||
</section> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Alternate-Marking Application to IPv6</name> | ||||
<section title="Alternate Marking application to IPv6"> | <t>The Alternate-Marking Method requires a marking field. Several alternat | |||
<t>The Alternate Marking Method requires a marking field. Several altern | ives | |||
atives | could be considered such as IPv6 Extension Headers, IPv6 Address, | |||
could be considered such as IPv6 Extension Headers, IPv6 Address | and Flow Label. | |||
and Flow Label. | ||||
But, it is necessary to analyze the drawbacks for all the availab le possibilities, | But, it is necessary to analyze the drawbacks for all the availab le possibilities, | |||
more specifically:<list> | more specifically:</t> | |||
<ul empty="false" spacing="normal"> | ||||
<t>Reusing existing Extension Header for Alternate Marking lead | <li>reusing an existing Extension Header for Alternate Marking leads to | |||
s to a | a | |||
non-optimized implementation;</t> | non-optimized implementation;</li> | |||
<li>using the IPv6 destination address to encode the Alternate-Marking p | ||||
<t>Using the IPv6 destination address to encode the Alternate Marki | rocessing | |||
ng processing | is very expensive; and</li> | |||
is very expensive;</t> | <li>using the IPv6 Flow Label for Alternate Marking conflicts with the u | |||
tilization | ||||
<t>Using the IPv6 Flow Label for Alternate Marking conflicts wi | of the Flow Label for load distribution purposes <xref target="RFC6438" f | |||
th the utilization | ormat="default"/>.</li> | |||
of the Flow Label for load distribution purpose (<xref target=" | ||||
RFC6438"></xref>).</t> | ||||
</list></t> | ||||
<t>In the end, a Hop-by-Hop or a Destination Option is the best c | ||||
hoice.</t> | ||||
<t>The approach for the Alternate Marking application to IPv6 spe | ||||
cified in this memo | ||||
is compliant with <xref target="RFC8200"></xref>. It involves the | ||||
following operations:<list style="symbols"> | ||||
<t>The source node is the only one that writes the Option Heade | </ul> | |||
r to mark alternately | <t>In the end, a Hop-by-Hop or a Destination Option is the best choice.</t | |||
the flow (for both Hop-by-Hop and Destination Option). The inte | > | |||
rmediate nodes and destination node | <t>The approach for the Alternate-Marking application to IPv6 specified in | |||
MUST only read the marking values of the option without modifyi | this memo | |||
ng the Option Header.</t> | is compliant with <xref target="RFC8200" format="default"/>. It i | |||
nvolves the following operations:</t> | ||||
<ul spacing="normal"> | ||||
<li>The source node is the only one that writes the Options Header to ma | ||||
rk alternately | ||||
the flow (for both the Hop-by-Hop and Destination Option). The | ||||
intermediate nodes and destination node | ||||
<bcp14>MUST</bcp14> only read the marking values of the Option without mo | ||||
difying the Options Header.</li> | ||||
<t>In case of Hop-by-Hop Option Header carrying Alternate Marki | <li>In case of a Hop-by-Hop Options Header carrying Alternate-Marking bi | |||
ng bits, it is not | ts, the Options Header is not | |||
inserted or deleted, but can be read by any node along the path | inserted or deleted on the path, but it can be read by any node | |||
. The intermediate nodes | along the path. The intermediate nodes | |||
may be configured to support this Option or not and the measure | may be configured to support this Option or not, and the measur | |||
ment can be done only for | ement can be done only for | |||
the nodes configured to read the Option. As further discussed i | the nodes configured to read the Option. As further discussed i | |||
n <xref target="use"/>, | n <xref target="use" format="default"/>, | |||
the presence of the hop-by-hop option should not affect the tra | the presence of the Hop-by-Hop Option should not affect the tra | |||
ffic throughput both on nodes | ffic throughput both on nodes | |||
that do not recognize this option and on the nodes that support | that do not recognize this Option and on the nodes that support | |||
it. However, it is worth | it. However, it is worth | |||
mentioning that there is a difference between theory and practi | mentioning that there is a difference between theory and practi | |||
ce. Indeed, in a real implementation | ce. Indeed, in a real implementation, | |||
it can happen that packets with hop-by-hop option could also be | it is possible for packets with a Hop-by-Hop Option to be skipp | |||
skipped or processed in the slow path. | ed or processed in the slow path. | |||
While some proposals are trying to address this problem and mak e Hop-by-Hop Options more practical | While some proposals are trying to address this problem and mak e Hop-by-Hop Options more practical | |||
(<xref target="I-D.ietf-v6ops-hbh"/>, <xref target="I-D.ietf-6m | (see <xref target="I-D.ietf-v6ops-hbh" format="default"/> and < | |||
an-hbh-processing"/>), these aspects | xref target="I-D.ietf-6man-hbh-processing" format="default"/>), these aspects | |||
are out of the scope for this document.</t> | are out of the scope for this document.</li> | |||
<li>In case of a Destination Options Header carrying Alternate-Marking b | ||||
<t>In case of Destination Option Header carrying Alternate Mark | its, it is not | |||
ing bits, it is not | ||||
processed, inserted, or deleted by any node along the path unti l the packet reaches | processed, inserted, or deleted by any node along the path unti l the packet reaches | |||
the destination node. Note that, if there is also a Routing Hea der (RH), any visited | the destination node. Note that, if there is also a Routing Hea der (RH), any visited | |||
destination in the route list can process the Option Header.</t | destination in the route list can process the Options Header.</ | |||
> | li> | |||
</list></t> | </ul> | |||
<t>A Hop-by-Hop Options Header is also useful to signal to routers on the | ||||
<t>Hop-by-Hop Option Header is also useful to signal to routers o | path to process the | |||
n the path to process the | Alternate Marking. However, as said, routers will only examine this Option | |||
Alternate Marking. However, as said, routers will only examine th | if properly configured.</t> | |||
is option if properly configured.</t> | ||||
<t>The optimization of both implementation and scaling of the Alt | <t>The optimization of both implementation and the scaling of the Alternat | |||
ernate Marking Method is | e-Marking Method is | |||
also considered and a way to identify flows is required. The | also considered, and a way to identify flows is required. The Flo | |||
Flow Monitoring Identification field | w Monitoring Identification | |||
(FlowMonID), as introduced in <xref target="flowmonid"/>, goes in | (FlowMonID) field, as introduced in <xref target="flowmonid" form | |||
this direction and it is used to identify | at="default"/>, goes in this direction, and it is used to identify | |||
a monitored flow.</t> | a monitored flow.</t> | |||
<t>The FlowMonID is different from the Flow Label field of the IPv6 header | ||||
<t>The FlowMonID is different from the Flow Label field of the IP | <xref target="RFC6437" format="default"/>. | |||
v6 Header (<xref target="RFC6437"></xref>). | ||||
The Flow Label field in the IPv6 header is used by a source to la bel sequences of packets to be treated | The Flow Label field in the IPv6 header is used by a source to la bel sequences of packets to be treated | |||
in the network as a single flow and, as reported in <xref target= | in the network as a single flow and, as reported in <xref target= | |||
"RFC6438"></xref>, it can be used | "RFC6438" format="default"/>, it can be used | |||
for load-balancing/equal cost multi-path (LB/ECMP). The reuse of | for load balancing (LB) and equal-cost multipath (ECMP). The reus | |||
Flow Label field for identifying monitored flows | e of the Flow Label field for identifying monitored flows | |||
is not considered because it may change the application intent an d forwarding behavior. Also, the Flow Label | is not considered because it may change the application intent an d forwarding behavior. Also, the Flow Label | |||
may be changed en route and this may also invalidate the integrit y of the measurement. Those reasons make the definition | may be changed en route, and this may also invalidate the integri ty of the measurement. Those reasons make the definition | |||
of the FlowMonID necessary for IPv6. Indeed, the FlowMonID is des igned and only used to identify the monitored flow. | of the FlowMonID necessary for IPv6. Indeed, the FlowMonID is des igned and only used to identify the monitored flow. | |||
Flow Label and FlowMonID within the same packet are totally disjo int, have different scope, | Flow Label and FlowMonID within the same packet are totally disjo int, have different scopes, | |||
are used to identify flows based on different criteria, and are i ntended for different use cases.</t> | are used to identify flows based on different criteria, and are i ntended for different use cases.</t> | |||
<t>The rationale for the FlowMonID is further discussed in <xref target="f | ||||
<t>The rationale for the FlowMonID is further discussed in <xref targ | lowmonid" format="default"/>. This 20-bit field | |||
et="flowmonid"/>. This 20 bit field | ||||
allows easy and flexible identification of the monitored flow and enables improved measurement correlation | allows easy and flexible identification of the monitored flow and enables improved measurement correlation | |||
and finer granularity since it can be used in combination with th | and finer granularity since it can be used in combination with th | |||
e traditional TCP/IP 5-tuple to identify a flow. | e conventional TCP/IP 5-tuple to identify a flow. | |||
An important point that will be discussed in <xref target="flowmo | An important point that will be discussed in <xref target="flowmo | |||
nid"/> is the uniqueness of the FlowMonID | nid" format="default"/> is the uniqueness of the FlowMonID | |||
and how to allow disambiguation of the FlowMonID in case of colli sion.</t> | and how to allow disambiguation of the FlowMonID in case of colli sion.</t> | |||
<t>The following section highlights an important requirement for the appli | ||||
cation of the Alternate Marking to IPv6. | ||||
The concept of the controlled domain is explained and is considered an e | ||||
ssential precondition, as also highlighted | ||||
in <xref target="security" format="default"/>.</t> | ||||
<section anchor="ctrldmn" numbered="true" toc="default"> | ||||
<name>Controlled Domain</name> | ||||
<t>The following section highlights an important requirement for | <t>IPv6 has much more flexibility than IPv4 and innovative applications h | |||
the application of the Alternate Marking to IPv6. | ave been proposed, but | |||
The concept of the controlled domain is explained and it is considered a | ||||
n essential precondition, as also highlighted | ||||
in <xref target="security"/>.</t> | ||||
<section anchor="ctrldmn" title="Controlled Domain"> | ||||
<t>IPv6 has much more flexibility than IPv4 and innovative applic | ||||
ations have been proposed, but | ||||
for security and compatibility reasons, some of these applications are l imited to a controlled environment. | for security and compatibility reasons, some of these applications are l imited to a controlled environment. | |||
This is also the case of the Alternate Marking application to IPv | This is also the case of the Alternate-Marking application to IPv | |||
6 as assumed hereinafter. | 6 as assumed hereinafter. | |||
In this regard, <xref target="RFC8799"></xref> reports further ex | In this regard, <xref target="RFC8799" format="default"/> reports | |||
amples of specific limited domain solutions.</t> | further examples of specific limited domain solutions.</t> | |||
<t>The IPv6 application of the Alternate-Marking Method <bcp14>MUST</bcp | ||||
<t>The IPv6 application of the Alternate Marking Method MUST be d | 14> be deployed in a controlled domain. | |||
eployed in a controlled domain. | ||||
It is not common that the user traffic originates and terminates within the controlled domain, as also noted in | It is not common that the user traffic originates and terminates within the controlled domain, as also noted in | |||
<xref target="altmarkmeasdmn"/>. For this reason, it will typical | <xref target="altmarkmeasdmn" format="default"/>. For this reason | |||
ly only be applicable in an overlay network, | , it will typically only be applicable in an overlay network, | |||
where user traffic is encapsulated at one domain border, decapsul | where user traffic is encapsulated at one domain border and decap | |||
ated at the other domain border and the encapsulation | sulated at the other domain border, and the encapsulation | |||
incorporates the relevant extension header for Alternate Marking. | incorporates the relevant extension header for Alternate Marking. | |||
This requirement also implies that an implementation MUST filter packets that carry Alternate Marking | This requirement also implies that an implementation <bcp14>MUST< /bcp14> filter packets that carry Alternate-Marking | |||
data and are entering or leaving the controlled domain.</t> | data and are entering or leaving the controlled domain.</t> | |||
<t>A controlled domain is a managed network where it is required to sele | ||||
<t>A controlled domain is a managed network where it is required | ct, monitor, and control the access to the network | |||
to select, monitor and control the access to the network | ||||
by enforcing policies at the domain boundaries in order to discar d undesired external packets entering the domain | by enforcing policies at the domain boundaries in order to discar d undesired external packets entering the domain | |||
and check the internal packets leaving the domain. It does not ne cessarily mean that a controlled domain is a single administrative domain | and check the internal packets leaving the domain. It does not ne cessarily mean that a controlled domain is a single administrative domain | |||
or a single organization. A controlled domain can correspond to a single administrative domain or can be composed by | or a single organization. A controlled domain can correspond to a single administrative domain or can be composed by | |||
multiple administrative domains under a defined network managemen | multiple administrative domains under a defined network managemen | |||
t. Indeed, some scenarios may imply that the Alternate Marking Method | t. Indeed, some scenarios may imply that the Alternate-Marking Method | |||
involves more than one domain, but in these cases, it is RECOMMEN | involves more than one domain, but in these cases, it is <bcp14>R | |||
DED that the multiple domains create a whole controlled domain | ECOMMENDED</bcp14> that the multiple domains create a whole controlled domain | |||
while traversing the external domain by employing IPsec <xref tar | while traversing the external domain by employing IPsec <xref tar | |||
get="RFC4301"></xref> authentication and encryption or | get="RFC4301" format="default"/> authentication and encryption or | |||
other VPN technology that provides full packet confidentiality an d integrity protection. In a few words, it must be possible | other VPN technology that provides full packet confidentiality an d integrity protection. In a few words, it must be possible | |||
to control the domain boundaries and eventually use specific prec | to control the domain boundaries and eventually use specific prec | |||
autions if the traffic traverse the Internet.</t> | autions if the traffic traverses the Internet.</t> | |||
<t>The security considerations reported in <xref target="security" forma | ||||
<t>The security considerations reported in <xref target="security | t="default"/> also highlight this requirement.</t> | |||
"/> also highlight this requirement.</t> | <section anchor="altmarkmeasdmn" numbered="true" toc="default"> | |||
<name>Alternate-Marking Measurement Domain</name> | ||||
<section anchor="altmarkmeasdmn" title="Alternate Marking Measure | <t>The Alternate-Marking measurement domain can overlap with the contr | |||
ment Domain"> | olled domain or may be a subset | |||
of the controlled domain. The typical scenarios for the applicati | ||||
<t>The Alternate Marking measurement domain can overlap with the | on of the Alternate-Marking Method | |||
controlled domain or may be a subset | depend on the controlled domain boundaries; in particular:</t> | |||
of the controlled domain. The typical scenarios for the applicati | ||||
on of the Alternate Marking Method | ||||
depend on the controlled domain boundaries, in particular:<list> | ||||
<t>the user equipment can be the starting or ending node, only | <ul empty="false" spacing="normal"> | |||
in case it is fully managed and if it belongs | ||||
to the controlled domain. In this case the user generated IPv6 | ||||
packets contain the Alternate Marking data. | ||||
But, in practice, this is not common due to the fact that the u | ||||
ser equipment cannot be totally secured in the majority of cases.</t> | ||||
<t>the CPE (Customer Premises Equipment) or the PE (Provider Edge) | <li>The user equipment can be the starting or ending node only when/i | |||
routers are most likely to be the starting or | f it is fully managed and belongs | |||
to the controlled domain. In this case, the user-generated IPv6 | ||||
packets contain the Alternate-Marking data. | ||||
But, in practice, this is not common due to the fact that the u | ||||
ser equipment cannot be totally secured in the majority of cases.</li> | ||||
<li>The Customer Premises Equipment (CPE) or the Provider Edge (PE) | ||||
routers are most likely to be the starting or | ||||
ending nodes since they can be border routers of the controlled domain. For instance, the CPE, which connects the user's premises | ending nodes since they can be border routers of the controlled domain. For instance, the CPE, which connects the user's premises | |||
with the service provider's network, belongs to a controlled do main only if it is managed by the service provider and | with the service provider's network, belongs to a controlled do main only if it is managed by the service provider and | |||
if additional security measures are taken to keep it trustworth y. | if additional security measures are taken to keep it trustworth y. | |||
Typically the CPE or the PE can encapsulate a received packet i | Typically, the CPE or the PE can encapsulate a received packet | |||
n an outer IPv6 header which contains the Alternate Marking data. | in an outer IPv6 header, which contains the Alternate-Marking data. | |||
They can also be able to filter and drop packets from outside o | They are also able to filter and drop packets from outside of t | |||
f the domain with inconsistent fields | he domain with inconsistent fields | |||
to make effective the relevant security rules at the domain bou | to make effective the relevant security rules at the domain bou | |||
ndaries, for example a simple security check | ndaries; for example, a simple security check | |||
can be to insert the Alternate Marking data if and only if the | can be to insert the Alternate-Marking data if and only if the | |||
destination is within the controlled domain.</t> | destination is within the controlled domain.</li> | |||
</ul> | ||||
</list></t> | </section> | |||
</section> | ||||
</section> | </section> | |||
</section> | ||||
</section> | ||||
<section title="Definition of the AltMark Option"> | ||||
<t>The definition of a TLV for the Options Extension Headers, | <section numbered="true" toc="default"> | |||
carrying the data fields dedicated to the Alternate Marking method, | <name>Definition of the AltMark Option</name> | |||
<t>The definition of a TLV for the Extension Header Option, | ||||
carrying the data fields dedicated to the Alternate-Marking Method, | ||||
is reported below.</t> | is reported below.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Data Fields Format"> | <name>Data Fields Format</name> | |||
<t>The following figure shows the data fields format for enhanced | <t>The following figure shows the data fields format for enhanced | |||
Alternate Marking TLV (AltMark). This AltMark data can be encapsulated in | Alternate-Marking TLV (AltMark). This AltMark data can be encapsulated in | |||
the IPv6 Options Headers | the IPv6 Options Headers | |||
(Hop-by-Hop or Destination Option). | (Hop-by-Hop or Destination Option). | |||
<figure> | </t> | |||
<artwork name="AltMark: TLV for Alternate Marking"><![CDATA[ | <artwork name="AltMark: TLV for Alternate Marking" type="" align="left" | |||
alt=""><![CDATA[ | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Option Type | Opt Data Len | | | Option Type | Opt Data Len | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| FlowMonID |L|D| Reserved | | | FlowMonID |L|D| Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | <t> | |||
where:</t> | ||||
<t><list style="symbols"> | Where:</t> | |||
<t>Option Type: 8-bit identifier of the type of Option that needs t | ||||
o | ||||
be allocated. Unrecognized Types MUST be ignored on processing. | ||||
For Hop-by-Hop Options Header or Destination Options Header, | ||||
<xref target="RFC8200"></xref> defines how to encode the three | ||||
high-order bits of | ||||
the Option Type field. The two high-order bits specify the acti | ||||
on that must be taken if the | ||||
processing IPv6 node does not recognize the Option Type; for Al | ||||
tMark | ||||
these two bits MUST be set to 00 (skip over this Option and con | ||||
tinue processing the header). | ||||
The third-highest-order bit specifies whether the Option Data c | ||||
an change en route | ||||
to the packet's final destination; for AltMark the value of thi | ||||
s bit MUST be set to 0 | ||||
(Option Data does not change en route). In this way, since the | ||||
three high-order bits of the | ||||
AltMark Option are set to 000, it means that nodes can simply s | ||||
kip this Option if they do not recognize | ||||
and that the data of this Option do not change en route, indeed | ||||
the source is the only one that can write it.</t> | ||||
<t>Opt Data Len: 4. It is the length of the Option Data Fields | <dl> | |||
of this Option in bytes.</t> | <dt>Option Type: | |||
</dt> | ||||
<dd>8-bit identifier of the type of Option that needs to be | ||||
allocated. Unrecognized Types <bcp14>MUST</bcp14> be ignored | ||||
on processing. For the Hop-by-Hop Options Header or Destinatio | ||||
n | ||||
Options Header, <xref target="RFC8200" format="default"/> | ||||
defines how to encode the three high-order bits of the | ||||
Option Type field. The two high-order bits specify the | ||||
action that must be taken if the processing IPv6 node does | ||||
not recognize the Option Type; for AltMark, these two bits | ||||
<bcp14>MUST</bcp14> be set to 00 (skip over this Option and | ||||
continue processing the header). The third-highest-order | ||||
bit specifies whether the Option Data can change en route to | ||||
the packet's final destination; for AltMark, the value of | ||||
this bit <bcp14>MUST</bcp14> be set to 0 (Option Data does | ||||
not change en route). In this way, since the three | ||||
high-order bits of the AltMark Option are set to 000, it | ||||
means that nodes can simply skip this Option if they do not | ||||
recognize it and that the data of this Option does not change e | ||||
n | ||||
route; indeed the source is the only one that can write it. | ||||
</dd> | ||||
<t>FlowMonID: 20-bit unsigned integer. The FlowMon identifier is descr | <dt>Opt Data Len: | |||
ibed in <xref target="flowmonid"/>. | </dt> | |||
As further discussed below, it has been picked as 20 bits since | <dd>4. It is the length of the Option Data Fields of this | |||
it is a reasonable value and a good compromise in relation | Option in bytes. | |||
to the chance of collision. It MUST be set pseudo randomly by t | </dd> | |||
he source node or by a centralized controller.</t> | ||||
<t>L: Loss flag for Packet Loss Measurement as described in <xref targ | <dt>FlowMonID: | |||
et="loss"/>;</t> | </dt> | |||
<dd>20-bit unsigned integer. The FlowMon identifier is | ||||
described in <xref target="flowmonid" format="default"/>. | ||||
As further discussed below, it has been picked as 20 bits | ||||
since it is a reasonable value and a good compromise in | ||||
relation to the chance of collision. It <bcp14>MUST</bcp14> | ||||
be set pseudo-randomly by the source node or by a | ||||
centralized controller. | ||||
</dd> | ||||
<t>D: Delay flag for Single Packet Delay Measurement as described in < | <dt>L: | |||
xref target="delay"/>;</t> | </dt> | |||
<dd>Loss flag for Packet Loss Measurement as described in | ||||
<xref target="loss" format="default"/>. | ||||
</dd> | ||||
<t>Reserved: is reserved for future use. These bits MUST be set to | <dt>D: | |||
zero on transmission and ignored on receipt.</t> | </dt> | |||
</list></t> | <dd>Delay flag for Single Packet Delay Measurement as | |||
described in <xref target="delay" format="default"/>. | ||||
</dd> | ||||
</section> | <dt>Reserved: | |||
</dt> | ||||
<dd>Reserved for future use. These bits | ||||
<bcp14>MUST</bcp14> be set to zero on transmission and | ||||
ignored on receipt. | ||||
</dd> | ||||
</dl> | ||||
</section> | ||||
</section> | </section> | |||
<section anchor="use" title="Use of the AltMark Option"> | <section anchor="use" numbered="true" toc="default"> | |||
<t>The AltMark Option is the best way to implement the Alternate Markin | <name>Use of the AltMark Option</name> | |||
g method and it is carried | <t>The AltMark Option is the best way to implement the Alternate-Marking M | |||
by the Hop-by-Hop Options header and the Destination Options header. | ethod, and it is carried | |||
In case of Destination Option, it is processed only by the source and d | by the Hop-by-Hop Options Header and the Destination Options Header. | |||
estination nodes: the source node inserts | In case of Destination Option, it is processed only by the source and d | |||
estination nodes: the source node inserts it | ||||
and the destination node processes it. | and the destination node processes it. | |||
While, in case of Hop-by-Hop Option, it may be examined by any node alo ng the path, if explicitly configured to do so.</t> | In case of the Hop-by-Hop Option, it may be examined by any node along the path if explicitly configured to do so.</t> | |||
<t>It is important to highlight that the Option Layout can be used both | <t>It is important to highlight that the Option Layout can be used both | |||
as Destination Option and as | as the Destination Option and as the | |||
Hop-by-Hop Option depending on the Use Cases and it is based on the cho | Hop-by-Hop Option depending on the use cases, and it is based on the ch | |||
sen type of performance measurement. | osen type of performance measurement. | |||
In general, it is needed to perform both end to end and hop by hop meas | In general, it is needed to perform both end-to-end and hop-by-hop meas | |||
urements, and the Alternate Marking | urements, and the Alternate-Marking | |||
methodology allows, by definition, both performance measurements. In ma | methodology allows, by definition, both performance measurements. | |||
ny cases the end-to-end measurement | In many cases, the end-to-end measurement | |||
is not enough and it is required the hop-by-hop measurement, so the mos | may not be enough, and the hop-by-hop measurement is required. To meet | |||
t complete choice can be | this need, the most complete choice is the | |||
the Hop-by-Hop Options Header.</t> | Hop-by-Hop Options Header.</t> | |||
<t>IPv6, as specified in <xref target="RFC8200"></xref>, allows nodes t | <t>IPv6, as specified in <xref target="RFC8200" format="default"/>, allows | |||
o optionally process | nodes to optionally process | |||
Hop-by-Hop headers. Specifically the Hop-by-Hop Options header is not i | Hop-by-Hop headers. Specifically, the Hop-by-Hop Options Header is not | |||
nserted or deleted, but may | inserted or deleted, but it may | |||
be examined or processed by any node along a packet's delivery path, until the packet reaches the node | be examined or processed by any node along a packet's delivery path, until the packet reaches the node | |||
(or each of the set of nodes, in the case of multicast) identified in t he Destination | (or each of the set of nodes in the case of multicast) identified in th e Destination | |||
Address field of the IPv6 header. Also, it is expected that nodes along a packet's delivery path | Address field of the IPv6 header. Also, it is expected that nodes along a packet's delivery path | |||
only examine and process the Hop-by-Hop Options header if explicitly co | only examine and process the Hop-by-Hop Options Header if explicitly co | |||
nfigured to do so.</t> | nfigured to do so.</t> | |||
<t>Another scenario is the presence of a Routing Header. | ||||
<t>Another scenario that can be mentioned is the presence of a Routing | Both Hop-by-Hop Options and Destination Options Headers can be used whe | |||
Header. | n a Routing Header is present. | |||
Both Hop-by-Hop Options and Destination Options headers can be used whe | ||||
n a Routing Header is present. | ||||
Depending on where the Destination Options are situated in the header c hain (before or after the Routing Header if any), | Depending on where the Destination Options are situated in the header c hain (before or after the Routing Header if any), | |||
Destination Options headers can be processed by either intermediate rou | Destination Options Headers can be processed by either intermediate rou | |||
ters specified in the Routing Header, or by the destination node. | ters specified in the Routing Header or the destination node. | |||
As an example, a type of Routing Header, referred as Segment Routing He | As an example, a type of Routing Header, referred to as a Segment Routi | |||
ader (SRH), has been defined in <xref target="RFC8754"></xref> | ng Header (SRH), has been defined in <xref target="RFC8754" format="default"/> | |||
for Segment Routing over IPv6 dataplane (SRv6), and more details about | for the Segment Routing over IPv6 (SRv6) data place, and more details a | |||
the SRv6 application can be found in | bout the SRv6 application can be found in | |||
<xref target="I-D.fz-spring-srv6-alt-mark"/>.</t> | <xref target="I-D.fz-spring-srv6-alt-mark" format="default"/>.</t> | |||
<t>In summary, using these tools, it is possible to control on which nodes | ||||
<t>In summary, using these tools, it is possible to control on which no | measurement occurs:</t> | |||
des measurement occurs:<list style="symbols"> | <ul spacing="normal"> | |||
<li>Destination Option not preceding a Routing Header => measurement | ||||
<t>Destination Option not preceding a Routing Header => measurement | only by node in Destination Address</li> | |||
only by node in Destination Address.</t> | <li>Hop-by-Hop Option => every router on the path with feature | |||
enabled</li> | ||||
<t>Hop-by-Hop Option => every router on the path with feature | <li>Destination Option preceding a Routing Header => every destinatio | |||
enabled.</t> | n | |||
node in the route list</li> | ||||
<t>Destination Option preceding a Routing Header => every destination | </ul> | |||
node in the route list.</t> | <t>In general, Hop-by-Hop and Destination Options are the most suitable wa | |||
</list></t> | ys | |||
<t>In general, Hop-by-Hop and Destination Options are the most suitable | ||||
ways | ||||
to implement Alternate Marking.</t> | to implement Alternate Marking.</t> | |||
<t>It is worth mentioning that Hop-by-Hop Options are not strongly reco | <t>It is worth mentioning that Hop-by-Hop Options are not strongly reco | |||
mmended in <xref target="RFC7045"></xref> | mmended in <xref target="RFC7045" format="default"/> | |||
and <xref target="RFC8200"></xref>, unless there is a clear justificati | and <xref target="RFC8200" format="default"/>, unless there is a clear | |||
on to standardize it, because nodes may be | justification to standardize it, because nodes may be | |||
configured to ignore the Options Header, drop or assign packets contain | configured to ignore the Options Header or drop or assign packets conta | |||
ing an Options Header to a slow processing path. | ining an Options Header to a slow processing path. | |||
In case of the AltMark data fields described in this document, the moti | In case of the AltMark Data Fields described in this document, the moti | |||
vation to standardize a Hop-by-Hop Option | vation to standardize a Hop-by-Hop Option | |||
is that it is needed for OAM (Operations, Administration, and Maintenan | is that it is needed for Operations, Administration, and Maintenance (O | |||
ce). An intermediate node can read it or not, but | AM). An intermediate node can read it or not, but | |||
this does not affect the packet behavior. The source node is the only o | this does not affect the packet behavior. The source node is the only o | |||
ne that writes the Hop-by-Hop Option to mark alternately | ne that writes the Hop-by-Hop Option to alternately mark | |||
the flow, so, the performance measurement can be done for those nodes c | the flow; therefore, the performance measurement can be done for those | |||
onfigured to read this Option, | nodes configured to read this Option, | |||
while the others are simply not considered for the metrics.</t> | while the others are simply not considered for the metrics.</t> | |||
<t>The Hop-by-Hop Option defined in this document is designed to take a dvantage of the property of how Hop-by-Hop | <t>The Hop-by-Hop Option defined in this document is designed to take a dvantage of the property of how Hop-by-Hop | |||
options are processed. Nodes that do not support this Option would be e | Options are processed. Nodes that do not support this Option would be e | |||
xpected to ignore it if encountered, | xpected to ignore it if encountered, | |||
according to the procedures of <xref target="RFC8200"></xref>. This can | according to the procedures of <xref target="RFC8200" format="default"/ | |||
mean that, in this case, the performance measurement | >. This can mean that, in this case, the performance measurement | |||
does not account for all links and nodes along a path. The definition o f the Hop-by-Hop Options in this document is also | does not account for all links and nodes along a path. The definition o f the Hop-by-Hop Options in this document is also | |||
designed to minimize throughput impact both on nodes that do not recogn | designed to minimize throughput impact both on nodes that do not recogn | |||
ize the Option and on node that support it. | ize the Option and on nodes that support it. | |||
Indeed, the three high-order bits of the Options Header defined in this | Indeed, the three high-order bits of the Options Header defined in this | |||
draft are 000 and, in theory, as per | document are 000 and, in theory, as per | |||
<xref target="RFC8200"></xref> and <xref target="I-D.ietf-6man-hbh-proc | <xref target="RFC8200" format="default"/> and <xref target="I-D.ietf-6m | |||
essing"/>, this means "skip if do not recognize and | an-hbh-processing" format="default"/>, this means "skip if not recognized and da | |||
data do not change en route". <xref target="RFC8200"></xref> also menti | ta does not change en route". <xref target="RFC8200" format="default"/> also men | |||
ons that the nodes only examine and process the | tions that the nodes only examine and process the Hop-by-Hop Options Header if e | |||
Hop-by-Hop Options header if explicitly configured to do so. For these | xplicitly configured to do so. For these reasons, this Hop-by-Hop Option should | |||
reasons, this Hop-by-Hop Option should not affect the throughput. | not affect the throughput. | |||
However, in practice, it is important to be aware that the things may b | However, in practice, it is important to be aware that things may be di | |||
e different in the implementation and it can happen that packets | fferent in the implementation, and it can happen that packets | |||
with Hop-by-Hop are forced onto the slow path, but this is a general is | with Hop by Hop are forced onto the slow path, but this is a general is | |||
sue, as also explained in <xref target="I-D.ietf-6man-hbh-processing"/>. | sue, as also explained in <xref target="I-D.ietf-6man-hbh-processing" format="de | |||
fault"/>. | ||||
It is also worth mentioning that the application to a controlled domain should avoid the risk of arbitrary nodes dropping packets | It is also worth mentioning that the application to a controlled domain should avoid the risk of arbitrary nodes dropping packets | |||
with Hop-by-Hop Options.</t> | with Hop-by-Hop Options.</t> | |||
</section> | </section> | |||
<section anchor="operation" title="Alternate Marking Method Operation"> | <section anchor="operation" numbered="true" toc="default"> | |||
<name>Alternate-Marking Method Operation</name> | ||||
<t>This section describes how the method operates. <xref target="I-D.iet | <t>This section describes how the method operates. <xref target="RFC9341" | |||
f-ippm-rfc8321bis"/> | format="default"/> | |||
introduces several applicable methods which are reported below, a | introduces several applicable methods, which are reported below, | |||
nd an additional field is introduced | and an additional field is introduced | |||
to facilitate the deployment and improve the scalability.</t> | to facilitate the deployment and improve the scalability.</t> | |||
<section anchor="loss" numbered="true" toc="default"> | ||||
<section anchor="loss" title="Packet Loss Measurement"> | <name>Packet Loss Measurement</name> | |||
<t>The measurement of the packet loss is really straightforward in compa | ||||
<t>The measurement of the packet loss is really straightforward i | rison to the existing mechanisms, | |||
n comparison to the existing mechanisms, | as detailed in <xref target="RFC9341" format="default"/>. | |||
as detailed in <xref target="I-D.ietf-ippm-rfc8321bis"/>. | ||||
The packets of the flow are grouped into batches, and all the pac kets within a batch are marked by setting | The packets of the flow are grouped into batches, and all the pac kets within a batch are marked by setting | |||
the L bit (Loss flag) to a same value. The source node can switch the value of the L bit between 0 and 1 | the L bit (Loss flag) to a same value. The source node can switch the value of the L bit between 0 and 1 | |||
after a fixed number of packets or according to a fixed timer, an d this depends on the | after a fixed number of packets or according to a fixed timer, an d this depends on the | |||
implementation. The source node is the only one that marks the pa ckets to create the batches, while | implementation. The source node is the only one that marks the pa ckets to create the batches, while | |||
the intermediate nodes only read the marking values and identify the packet batches. | the intermediate nodes only read the marking values and identify the packet batches. | |||
By counting the number of packets in each batch and comparing the values measured by | By counting the number of packets in each batch and comparing the values measured by | |||
different network nodes along the path, it is possible to measure the packet loss occurred | different network nodes along the path, it is possible to measure the packet loss that occurred | |||
in any single batch between any two nodes. Each batch represents a measurable entity | in any single batch between any two nodes. Each batch represents a measurable entity | |||
recognizable by all network nodes along the path.</t> | recognizable by all network nodes along the path.</t> | |||
<t>Both fixed number of packets and a fixed timer can be used by the sou | ||||
rce node to create packet batches. | ||||
But, as also explained in <xref target="RFC9341" format="default" | ||||
/>, the timer-based batches are preferable because | ||||
they are more deterministic than the counter-based batches. | ||||
<t>Both fixed number of packets and fixed timer can be used by the sourc | Unlike the timer-based batches, there is no definitive rule | |||
e node to create packet batches. | for counter-based batches, which are not considered in <xref target="RFC9341"/>. | |||
But, as also explained in <xref target="I-D.ietf-ippm-rfc8321bis" | ||||
/>, the timer-based batches are preferable because | Using a fixed timer for the switching offers | |||
they are more deterministic than the counter-based batches. There | better control over the method; indeed, the length of the batches | |||
is no definitive rule for counter-based | can be chosen large enough to simplify | |||
batches, differently from timer-based batches. Using a fixed time | the collection and the comparison of the measures taken by differ | |||
r for the switching offers | ent network nodes. In the implementation, | |||
better control over the method, indeed the length of the batches | ||||
can be chosen large enough to simplify | ||||
the collection and the comparison of the measures taken by differ | ||||
ent network nodes. In the implementation | ||||
the counters can be sent out by each node to the controller that is responsible for the calculation. | the counters can be sent out by each node to the controller that is responsible for the calculation. | |||
It is also possible to exchange this information by using other o | It is also possible to exchange this information by using other o | |||
n-path techniques. But this is out of scope | n-path techniques, but this is out of scope | |||
for this document.</t> | for this document.</t> | |||
<t>Packets with different L values may get swapped at batch bound aries, and in this case, | <t>Packets with different L values may get swapped at batch boundaries, and in this case, | |||
it is required that each marked packet can be assigned to the rig ht batch by each router. | it is required that each marked packet can be assigned to the rig ht batch by each router. | |||
It is important to mention that for the application of this metho | It is important to mention that for the application of this metho | |||
d there are two elements | d, there are two elements | |||
to consider: the clock error between network nodes and the networ | to consider: the clock error between network nodes and the networ | |||
k delay. These can create | k delay. | |||
offsets between the batches and out-of-order of the packets. The | These can create | |||
mathematical formula | offsets between the batches and out-of-order packets. | |||
on timing aspects, explained in section 5 of <xref target="I-D.ie | The mathematical formula | |||
tf-ippm-rfc8321bis"/>, must be satisfied | on timing aspects, explained in <xref sectionFormat="of" section | |||
and it takes into considerations the different causes of reorderi | ="5" target="RFC9341" format="default"/>, must be satisfied, | |||
ng such as clock error and network delay. | and it takes into consideration the different causes of reorderin | |||
The assumption is to define the available counting interval where | g such as clock error and network delay. | |||
to get stable counters and to avoid these issues. | The assumption is to define the available counting interval to ge | |||
t stable counters and to avoid these issues. | ||||
Specifically, if the effects of network delay are ignored, the co ndition to implement the methodology is that | Specifically, if the effects of network delay are ignored, the co ndition to implement the methodology is that | |||
the clocks in different nodes MUST be synchronized to the same cl | the clocks in different nodes <bcp14>MUST</bcp14> be synchronized | |||
ock reference with an accuracy of +/- B/2 time units, | to the same clock reference with an accuracy of +/- B/2 time units, | |||
where B is the fixed time duration of the batch. In this way each | where B is the fixed time duration of the batch. In this way, eac | |||
marked packet can be assigned to the right batch by each node. | h marked packet can be assigned to the right batch by each node. | |||
Usually the counters can be taken in the middle of the batch peri | Usually, the counters can be taken in the middle of the batch per | |||
od to be sure to read quiescent counters. | iod to be sure to read quiescent counters. | |||
In a few words this implies that the length of the batches MUST b | In a few words, this implies that the length of the batches <bcp1 | |||
e chosen large enough so that the method | 4>MUST</bcp14> be chosen large enough so that the method | |||
is not affected by those factors. The length of the batches can b e determined based on the specific deployment scenario.</t> | is not affected by those factors. The length of the batches can b e determined based on the specific deployment scenario.</t> | |||
<figure anchor="Lbit"> | ||||
<figure anchor="Lbit" title="Packet Loss Measurement and Single-Marking | <name>Packet Loss Measurement and Single-Marking Methodology Using L B | |||
Methodology using L bit"> | it</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
L bit=1 ----------+ +-----------+ +---------- | L bit=1 ----------+ +-----------+ +---------- | |||
| | | | | | | | | | |||
L bit=0 +-----------+ +-----------+ | L bit=0 +-----------+ +-----------+ | |||
Batch n ... Batch 3 Batch 2 Batch 1 | Batch n ... Batch 3 Batch 2 Batch 1 | |||
<---------> <---------> <---------> <---------> <---------> | <---------> <---------> <---------> <---------> <---------> | |||
Traffic Flow | Traffic Flow | |||
===========================================================> | ===========================================================> | |||
L bit ...1111111111 0000000000 11111111111 00000000000 111111111... | L bit ...1111111111 0000000000 11111111111 00000000000 111111111... | |||
===========================================================> | ===========================================================> | |||
skipping to change at line 600 ¶ | skipping to change at line 479 ¶ | |||
L bit=1 ----------+ +-----------+ +---------- | L bit=1 ----------+ +-----------+ +---------- | |||
| | | | | | | | | | |||
L bit=0 +-----------+ +-----------+ | L bit=0 +-----------+ +-----------+ | |||
Batch n ... Batch 3 Batch 2 Batch 1 | Batch n ... Batch 3 Batch 2 Batch 1 | |||
<---------> <---------> <---------> <---------> <---------> | <---------> <---------> <---------> <---------> <---------> | |||
Traffic Flow | Traffic Flow | |||
===========================================================> | ===========================================================> | |||
L bit ...1111111111 0000000000 11111111111 00000000000 111111111... | L bit ...1111111111 0000000000 11111111111 00000000000 111111111... | |||
===========================================================> | ===========================================================> | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t>It is worth mentioning that the duration of the batches is considered | ||||
<t>It is worth mentioning that the duration of the batches is considered | stable over time in the previous figure. | |||
stable over time in the previous figure. | ||||
In theory, it is possible to change the length of batches over time an d among different flows for more flexibility. | In theory, it is possible to change the length of batches over time an d among different flows for more flexibility. | |||
But, in practice, it could complicate the correlation of the informati on.</t> | But, in practice, it could complicate the correlation of the informati on.</t> | |||
</section> | ||||
</section> | <section anchor="delay" numbered="true" toc="default"> | |||
<name>Packet Delay Measurement</name> | ||||
<section anchor="delay" title="Packet Delay Measurement"> | <t>The same principle used to measure packet loss can also be applied to | |||
one-way delay measurement. Delay metrics <bcp14>MAY</bcp14> be ca | ||||
<t>The same principle used to measure packet loss can be applied | lculated using the following two | |||
also to | possibilities:</t> | |||
one-way delay measurement. Delay metrics MAY be calculated using | <dl> | |||
the two | <dt>Single-Marking Methodology:</dt> <dd>This approach uses onl | |||
possibilities:<list style="numbers"> | y the L bit to calculate both packet loss | |||
and delay. In this case, the D flag <bcp14>MUST</bcp14> be set to | ||||
<t>Single-Marking Methodology: This approach uses only the L bit | zero on transmit and ignored by the | |||
to calculate both packet loss | ||||
and delay. In this case, the D flag MUST be set to zero on transm | ||||
it and ignored by the | ||||
monitoring points. The alternation of the values of the L bit can be used as a time reference to calculate | monitoring points. The alternation of the values of the L bit can be used as a time reference to calculate | |||
the delay. Whenever the L bit changes and a new batch starts, a n etwork node can store the timestamp | the delay. Whenever the L bit changes and a new batch starts, a n etwork node can store the timestamp | |||
of the first packet of the new batch, that timestamp can be compa | of the first packet of the new batch; that timestamp can be compa | |||
red with the timestamp of the | red with the timestamp of the | |||
first packet of the same batch on a second node to compute packet | first packet of the same batch on a second node to compute packet | |||
delay. But this measurement | delay. But, this measurement | |||
is accurate only if no packet loss occurs and if there is no pack et reordering at the edges | is accurate only if no packet loss occurs and if there is no pack et reordering at the edges | |||
of the batches. A different approach can also be considered and i t is based on the concept of the | of the batches. A different approach can also be considered, and it is based on the concept of the | |||
mean delay. The mean delay for each batch is calculated by consi dering the average arrival time | mean delay. The mean delay for each batch is calculated by consi dering the average arrival time | |||
of the packets for the relative batch. There are limitations also in this case indeed, each node needs | of the packets for the relative batch. There are limitations also in this case indeed; each node needs | |||
to collect all the timestamps and calculate the average timestamp for each batch. In addition, the | to collect all the timestamps and calculate the average timestamp for each batch. In addition, the | |||
information is limited to a mean value.</t> | information is limited to a mean value.</dd> | |||
<t>Double-Marking Methodology: This approach is more complete and | <dt>Double-Marking Methodology:</dt> <dd>This approach is more complet | |||
uses the L bit only to calculate | e and uses the L bit only to calculate | |||
packet loss and the D bit (Delay flag) is fully dedicated to dela | packet loss, and the D bit (Delay flag) is fully dedicated to del | |||
y measurements. The idea is to use | ay measurements. The idea is to use | |||
the first marking with the L bit to create the alternate flow and , within the batches identified by the L bit, | the first marking with the L bit to create the alternate flow and , within the batches identified by the L bit, | |||
a second marking is used to select the packets for measuring dela y. The D bit creates a new set of marked packets | a second marking is used to select the packets for measuring dela y. The D bit creates a new set of marked packets | |||
that are fully identified over the network, so that a network nod e can store the timestamps of these packets; | that are fully identified over the network so that a network node can store the timestamps of these packets; | |||
these timestamps can be compared with the timestamps of the same packets on a second node to compute packet | these timestamps can be compared with the timestamps of the same packets on a second node to compute packet | |||
delay values for each packet. The most efficient and robust mode is to select a single double-marked packet | delay values for each packet. The most efficient and robust mode is to select a single double-marked packet | |||
for each batch, in this way there is no time gap to consider betw | for each batch; in this way, there is no time gap to consider bet | |||
een the double-marked packets to avoid their reorder. | ween the double-marked packets to avoid their reorder. | |||
Regarding the rule for the selection of the packet to be double-m | Regarding the rule for the selection of the packet to be double-m | |||
arked, the same considerations in <xref target="loss"/> | arked, the same considerations in <xref target="loss" format="default"/> | |||
apply also here and the double-marked packet can be chosen within | also apply here, and the double-marked packet can be chosen withi | |||
the available counting interval that | n the available counting interval that | |||
is not affected by factors such as clock errors. | is not affected by factors such as clock errors. | |||
If a double-marked packet is lost, the delay measurement for the considered batch is simply discarded, | If a double-marked packet is lost, the delay measurement for the considered batch is simply discarded, | |||
but this is not a big problem because it is easy to recognize the problematic batch and skip the measurement | but this is not a big problem because it is easy to recognize the problematic batch and skip the measurement | |||
just for that one. So in order to have more information about the | just for that one. So in order to have more information about the | |||
delay and to overcome out-of-order issues | delay and to overcome out-of-order issues, | |||
this method is preferred.</t> | this method is preferred.</dd> | |||
</dl> | ||||
</list></t> | <t>In summary, the approach with Double Marking is better than the appro | |||
ach with Single Marking. Moreover, | ||||
<t>In summary the approach with double marking is better than the | the two approaches provide slightly different pieces of informati | |||
approach with single marking. Moreover, | on, and the data consumer can combine them | |||
the two approaches provide slightly different pieces of informati | ||||
on and the data consumer can combine them | ||||
to have a more robust data set.</t> | to have a more robust data set.</t> | |||
<t>Similar to what is said in <xref target="loss" format="default"/> for | ||||
<t>Similar to what said in <xref target="loss"/> for the packet c | the packet counters, in the implementation, the timestamps can be | |||
ounters, in the implementation the timestamps can be | sent out to the controller that is responsible for the calculatio | |||
sent out to the controller that is responsible for the calculatio | n or exchanged using other on-path techniques. | |||
n or could also be exchanged using other on-path techniques. | But, this is out of scope for this document.</t> | |||
But this is out of scope for this document.</t> | <figure anchor="Dbit"> | |||
<name>Double-Marking Methodology Using L Bit and D Bit</name> | ||||
<figure anchor="Dbit" title="Double-Marking Methodology using L b | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
it and D bit"> | ||||
<artwork><![CDATA[ | ||||
L bit=1 ----------+ +-----------+ +---------- | L bit=1 ----------+ +-----------+ +---------- | |||
| | | | | | | | | | |||
L bit=0 +-----------+ +-----------+ | L bit=0 +-----------+ +-----------+ | |||
D bit=1 + + + + + | D bit=1 + + + + + | |||
| | | | | | | | | | | | |||
D bit=0 ------+----------+----------+----------+------------+----- | D bit=0 ------+----------+----------+----------+------------+----- | |||
Traffic Flow | Traffic Flow | |||
===========================================================> | ===========================================================> | |||
skipping to change at line 672 ¶ | skipping to change at line 543 ¶ | |||
D bit=1 + + + + + | D bit=1 + + + + + | |||
| | | | | | | | | | | | |||
D bit=0 ------+----------+----------+----------+------------+----- | D bit=0 ------+----------+----------+----------+------------+----- | |||
Traffic Flow | Traffic Flow | |||
===========================================================> | ===========================================================> | |||
L bit ...1111111111 0000000000 11111111111 00000000000 111111111... | L bit ...1111111111 0000000000 11111111111 00000000000 111111111... | |||
D bit ...0000010000 0000010000 00000100000 00001000000 000001000... | D bit ...0000010000 0000010000 00000100000 00001000000 000001000... | |||
===========================================================> | ===========================================================> | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t>Likewise, to packet delay measurement (both for Single Marking and Do | ||||
<t>Likewise to packet delay measurement (both for Single Marking | uble Marking), the method can also be used | |||
and Double Marking), the method can also be used | ||||
to measure the inter-arrival jitter.</t> | to measure the inter-arrival jitter.</t> | |||
</section> | ||||
</section> | <section anchor="flowmonid" numbered="true" toc="default"> | |||
<name>Flow Monitoring Identification</name> | ||||
<section anchor="flowmonid" title="Flow Monitoring Identification | <t>The Flow Monitoring Identification (FlowMonID) identifies the flow to | |||
"> | be measured and | |||
is required for some general reasons:</t> | ||||
<t>The Flow Monitoring Identification (FlowMonID) identifies the flow | <ul spacing="normal"> | |||
to be measured and | <li>First, it helps to reduce the per-node configuration. Otherwise, e | |||
is required for some general reasons:<list> | ach node needs to | |||
configure an access control list (ACL) for each of the monitored flow | ||||
<t>First, it helps to reduce the per node configuration. Otherwis | s. | |||
e, each node needs to | Moreover, using a flow identifier allows a flexible granularity f | |||
configure an access-control list (ACL) for each of the monitored flow | or the flow definition; | |||
s. | indeed, it can be used together with other identifiers (e.g., 5-t | |||
Moreover, using a flow identifier allows a flexible granularity f | uple).</li> | |||
or the flow definition, | <li>Second, it simplifies the counters handling. Hardware processing o | |||
indeed, it can be used together with other identifiers (e.g. 5-tu | f flow tuples (and ACL matching) | |||
ple).</t> | is challenging and often incurs into performance issues, especial | |||
ly in tunnel interfaces.</li> | ||||
<t>Second, it simplifies the counters handling. Hardware processing o | <li>Third, it eases the data export encapsulation and correlation for | |||
f flow tuples (and ACL matching) | the collectors.</li> | |||
is challenging and often incurs into performance issues, especial | </ul> | |||
ly in tunnel interfaces.</t> | <t>The FlowMonID <bcp14>MUST</bcp14> only be used as a monitored flow id | |||
entifier in order to determine a monitored flow | ||||
<t>Third, it eases the data export encapsulation and correlation | ||||
for the collectors.</t> | ||||
</list></t> | ||||
<t>The FlowMonID MUST only be used as a monitored flow identifier | ||||
in order to determine a monitored flow | ||||
within the measurement domain. This entails not only an easy iden tification but improved correlation as well.</t> | within the measurement domain. This entails not only an easy iden tification but improved correlation as well.</t> | |||
<t>The FlowMonID allocation procedure can be stateful or stateless. In c | ||||
<t>The FlowMonID allocation procedure can be stateful or stateles | ase of a stateful approach, it is required that | |||
s. In case of a stateful approach, it is required that | ||||
the FlowMonID historic information can be stored and tracked in o rder to assign unique values within the domain. | the FlowMonID historic information can be stored and tracked in o rder to assign unique values within the domain. | |||
This may imply a complex procedure and it is considered out of sc | This may imply a complex procedure, and it is considered out of s | |||
ope for this document. | cope for this document. | |||
The stateless approach is described hereinafter where FlowMonID v | The stateless approach is described hereinafter where FlowMonID v | |||
alues are pseudo randomly generated.</t> | alues are pseudo-randomly generated.</t> | |||
<t>The value of 20 bits has been selected for the FlowMonID since it is | ||||
<t>The value of 20 bits has been selected for the FlowMonID since | a good compromise and implies a low rate | |||
it is a good compromise and implies a low rate | ||||
of ambiguous FlowMonIDs that can be considered acceptable in most of the applications. The disambiguation issue | of ambiguous FlowMonIDs that can be considered acceptable in most of the applications. The disambiguation issue | |||
can be solved by tagging the pseudo randomly generated FlowMonID | can be solved by tagging the pseudo-randomly generated FlowMonID | |||
with additional flow information. | with additional flow information. | |||
In particular, it is RECOMMENDED to consider the 3-tuple FlowMonI | In particular, it is <bcp14>RECOMMENDED</bcp14> to consider the 3 | |||
D, source and destination addresses:<list style="symbols"> | -tuple FlowMonID, source, and destination addresses:</t> | |||
<ul spacing="normal"> | ||||
<t>If the 20 bit FlowMonID is set independently and pseudo rand | <li>If the 20-bit FlowMonID is set independently and pseudo-randomly in | |||
omly in a distributed way there is a chance of collision. | a distributed way, there is a chance of collision. | |||
Indeed, by using the well-known birthday problem in probability | Indeed, by using the well-known birthday problem in probability | |||
theory, if the 20 bit FlowMonID | theory, if the 20-bit FlowMonID | |||
is set independently and pseudo randomly without any additional | is set independently and pseudo-randomly without any additional | |||
input entropy, there is a 50% chance of collision | input entropy, there is a 50% chance of collision | |||
for 1206 flows. So, for more entropy, FlowMonID is combined wit h source and destination addresses. | for 1206 flows. So, for more entropy, FlowMonID is combined wit h source and destination addresses. | |||
Since there is a 1% chance of collision for 145 flows, it is po ssible to monitor 145 concurrent flows per host pairs | Since there is a 1% chance of collision for 145 flows, it is po ssible to monitor 145 concurrent flows per host pairs | |||
with a 1% chance of collision.</t> | with a 1% chance of collision.</li> | |||
<li>If the 20-bit FlowMonID is set pseudo-randomly but in a centralize | ||||
<t>If the 20 bits FlowMonID is set pseudo randomly but in a cen | d way, the controller can instruct the nodes properly | |||
tralized way, the controller can instruct the nodes properly | ||||
in order to guarantee the uniqueness of the FlowMonID. With 20 bits, the number of combinations is 1048576, and the controller | in order to guarantee the uniqueness of the FlowMonID. With 20 bits, the number of combinations is 1048576, and the controller | |||
should ensure that all the FlowMonID values are used without an y collision. Therefore, by considering source and destination addresses | should ensure that all the FlowMonID values are used without an y collision. Therefore, by considering source and destination addresses | |||
together with the FlowMonID, it can be possible to monitor 1048 | together with the FlowMonID, it is possible to monitor 1048576 | |||
576 concurrent flows per host pairs.</t> | concurrent flows per host pairs.</li> | |||
</list></t> | </ul> | |||
<t>A consistent approach <bcp14>MUST</bcp14> be used in the Alternate-Ma | ||||
<t>A consistent approach MUST be used in the Alternate Marking de | rking deployment to avoid the mixture of different ways of identifying. | |||
ployment to avoid the mixture of different ways of identifying. | All the nodes along the path and involved in the measurement <bcp | |||
All the nodes along the path and involved into the measurement SH | 14>SHOULD</bcp14> use the same mode for identification. | |||
OULD use the same mode for identification. | As mentioned, it is <bcp14>RECOMMENDED</bcp14> to use the FlowMon | |||
As mentioned, it is RECOMMENDED to use the FlowMonID for identifi | ID for identification purposes in combination with source and destination addres | |||
cation purpose in combination with source and destination addresses | ses | |||
to identify a flow. By considering source and destination address | to identify a flow. By considering source and destination address | |||
es together with the FlowMonID it can be possible to monitor | es together with the FlowMonID, it is possible to monitor | |||
145 concurrent flows per host pairs with a 1% chance of collision | 145 concurrent flows per host pairs with a 1% chance of collision | |||
in case of pseudo randomly generated FlowMonID, or | in case of pseudo-randomly generated FlowMonID, or | |||
1048576 concurrent flows per host pairs in case of centralized co | 1048576 concurrent flows per host pairs in case of a centralized | |||
ntroller. It is worth mentioning that | controller. It is worth mentioning that | |||
the solution with the centralized control allows finer granularit y and therefore adds even more flexibility to the flow identification.</t> | the solution with the centralized control allows finer granularit y and therefore adds even more flexibility to the flow identification.</t> | |||
<t>The FlowMonID field is set at the source node, which is the ingress p oint of the measurement domain, and | <t>The FlowMonID field is set at the source node, which is the ingress p oint of the measurement domain, and | |||
can be set in two ways:<list style="letters"> | can be set in two ways:</t> | |||
<ul spacing="normal"><li>It can be algorithmically generated by the sour | ||||
<t>It can be algorithmically generated by the source node, that c | ce node, which can set it pseudo-randomly with some | |||
an set it pseudo-randomly with some | ||||
chance of collision. This approach cannot guarantee the uniquenes s of FlowMonID since conflicts and collisions are possible. | chance of collision. This approach cannot guarantee the uniquenes s of FlowMonID since conflicts and collisions are possible. | |||
But, considering the recommendation to use FlowMonID with source | But, considering the recommendation to use FlowMonID with source | |||
and destination addresses the conflict probability is reduced due to | and destination addresses, the conflict probability is reduced due to | |||
the FlowMonID space available for each endpoint pair (i.e. 145 fl | the FlowMonID space available for each endpoint pair (i.e., 145 f | |||
ows with 1% chance of collision).</t> | lows with 1% chance of collision).</li> | |||
<li>It can be assigned by the central controller. Since the controller | ||||
<t>It can be assigned by the central controller. Since the contro | knows the network topology, | |||
ller knows the network topology, | ||||
it can allocate the value properly to avoid or minimize ambiguity and guarantee the uniqueness. In this regard, | it can allocate the value properly to avoid or minimize ambiguity and guarantee the uniqueness. In this regard, | |||
the controller can verify that there is no ambiguity between diff erent pseudo-randomly generated FlowMonIDs on the same path. | the controller can verify that there is no ambiguity between diff erent pseudo-randomly generated FlowMonIDs on the same path. | |||
The conflict probability is really small given that the FlowMonID is coupled with source and destination addresses | The conflict probability is really small given that the FlowMonID is coupled with source and destination addresses, | |||
and up to 1048576 flows can be monitored for each endpoint pair. When al l values in the FlowMonID space are consumed, | and up to 1048576 flows can be monitored for each endpoint pair. When al l values in the FlowMonID space are consumed, | |||
the centralized controller can keep track and reassign the values | the centralized controller can keep track and reassign the values | |||
that are not used any more by old flows.</t> | that are not used any more by old flows.</li> | |||
</ul> | ||||
</list></t> | <t>If the FlowMonID is set by the source node, the intermediate nodes ca | |||
n read the FlowMonIDs from the packets in flight | ||||
<t>If the FlowMonID is set by the source node, the intermediate n | and act accordingly. If the FlowMonID is set by the controller, b | |||
odes can read the FlowMonIDs from the packets in flight | oth possibilities are feasible for the intermediate nodes, | |||
and act accordingly. While, if the FlowMonID is set by the contro | ||||
ller, both possibilities are feasible for the intermediate nodes | ||||
which can learn by reading the packets or can be instructed by the contr oller.</t> | which can learn by reading the packets or can be instructed by the contr oller.</t> | |||
<t>The FlowMonID setting by the source node may seem faster and more sca | ||||
lable than the FlowMonID setting by the controller. But, | ||||
it is supposed that the controller does not slow the process sinc | ||||
e it can enable the Alternate-Marking Method and its parameters (like FlowMonID) | ||||
together with the flow instantiation, as further described in <xr | ||||
ef target="I-D.ietf-idr-sr-policy-ifit" format="default"/> and <xref target="I-D | ||||
.ietf-pce-pcep-ifit" format="default"/>.</t> | ||||
</section> | ||||
<t>The FlowMonID setting by the source node may seem faster and m | <section numbered="true" toc="default"> | |||
ore scalable than the FlowMonID setting by the controller. But, | <name>Multipoint and Clustered Alternate Marking</name> | |||
it is supposed that the controller does not slow the process sinc | <t>The Alternate-Marking Method can be extended to any kind of multipoin | |||
e it can enable Alternate Marking method and its parameters (like FlowMonID) | t-to-multipoint paths. | |||
together with the flow instantiation, as further described in <xr | <xref target="RFC9341" format="default"/> only applies to point-t | |||
ef target="I-D.ietf-idr-sr-policy-ifit"/> and <xref target="I-D.chen-pce-pcep-if | o-point unicast flows, | |||
it"/>.</t> | while the Clustered Alternate-Marking Method, introduced in <xref | |||
target="RFC9342" format="default"/>, | ||||
</section> | is valid for multipoint-to-multipoint unicast flows, anycast, and | |||
ECMP flows.</t> | ||||
<section title="Multipoint and Clustered Alternate Marking"> | ||||
<t>The Alternate Marking method can be extended to any kind of mu | ||||
ltipoint to multipoint paths. | ||||
<xref target="I-D.ietf-ippm-rfc8321bis"/> only applies to point-t | ||||
o-point unicast flows, | ||||
while the Multipoint Alternate Marking Clustered method, introduc | ||||
ed in <xref target="I-D.ietf-ippm-rfc8889bis"/>, | ||||
is valid for multipoint-to-multipoint unicast flows, anycast and | ||||
ECMP flows.</t> | ||||
<t><xref target="I-D.ietf-ippm-rfc8889bis"/> describes the networ k clustering approach which | <t><xref target="RFC9342" format="default"/> describes the networ k clustering approach, which | |||
allows a flexible and optimized performance measurement. | allows a flexible and optimized performance measurement. | |||
A Cluster is the smallest identifiable non-trivial subnetwork of | A cluster is the smallest identifiable non-trivial subnetwork of | |||
the entire Network graph | the entire network graph | |||
that still satisfies the condition that the number of packets tha | that still satisfies the condition that the number of packets tha | |||
t goes in is the same that goes out. | t goes in is the same number that goes out. | |||
With network clustering, it is possible to use the partition of t | With network clustering, it is possible to partition the network | |||
he network into clusters | into clusters | |||
at different levels in order to perform the needed degree of deta il.</t> | at different levels in order to perform the needed degree of deta il.</t> | |||
<t>For Multipoint Alternate Marking, FlowMonID can identify in general | ||||
<t>For Multipoint Alternate Marking, FlowMonID can identify in ge | ||||
neral | ||||
a multipoint-to-multipoint flow and not only a point-to-point flo w.</t> | a multipoint-to-multipoint flow and not only a point-to-point flo w.</t> | |||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Data Collection and Calculation</name> | ||||
</section> | <t>The nodes enabled to perform performance monitoring collect the value | |||
<section title="Data Collection and Calculation"> | ||||
<t>The nodes enabled to perform performance monitoring collect th | ||||
e value | ||||
of the packet counters and timestamps. There are several alternat ives to implement | of the packet counters and timestamps. There are several alternat ives to implement | |||
Data Collection and Calculation, but this is not specified in thi | data collection and calculation, but this is not specified in thi | |||
s document.</t> | s document.</t> | |||
<t>There are documents on the control plane mechanisms of Alternate Mark | ||||
<t>There are documents on the control plane mechanisms of Alterna | ing, e.g., | |||
te Marking, e.g. | <xref target="I-D.ietf-idr-sr-policy-ifit" format="default"/> and | |||
<xref target="I-D.ietf-idr-sr-policy-ifit"/>, <xref target="I-D.c | <xref target="I-D.ietf-pce-pcep-ifit" format="default"/>.</t> | |||
hen-pce-pcep-ifit"/>.</t> | </section> | |||
</section> | ||||
</section> | </section> | |||
<section anchor="security" numbered="true" toc="default"> | ||||
<name>Security Considerations</name> | ||||
<section anchor="security" title="Security Considerations"> | <t>This document aims to apply a method to the performance measurements th | |||
<t>This document aims to apply a method to perform measurements t | at does | |||
hat does | ||||
not directly affect Internet security nor applications that run o n | not directly affect Internet security nor applications that run o n | |||
the Internet. However, implementation of this method must be mind ful | the Internet. However, implementation of this method must be mind ful | |||
of security and privacy concerns.</t> | of security and privacy concerns.</t> | |||
<t>There are two types of security concerns: | ||||
<t>There are two types of security concerns: | ||||
potential harm caused by the measurements and potential harm to t he measurements.</t> | potential harm caused by the measurements and potential harm to t he measurements.</t> | |||
<dl> | ||||
<dt>Harm caused by the measurement: | ||||
</dt> | ||||
<dd>Alternate Marking implies the insertion of an Options Header to the IPv6 | ||||
packets by the source node, but this must be performed in a way that does not | ||||
alter the quality of service experienced by the packets and that preserves | ||||
stability and performance of routers doing the measurements. As already | ||||
discussed in <xref target="use" format="default"/>, the design of the AltMark | ||||
Option has been chosen with throughput in mind, such that it can be | ||||
implemented without affecting the user experience. | ||||
</dd> | ||||
<t>Harm caused by the measurement: Alternate Marking implies the inse | <dt>Harm to the measurement: | |||
rtion of an Option Header | </dt> | |||
to the IPv6 packets by the source node, but this must be performe | <dd>Alternate-Marking measurements could be harmed by routers altering the | |||
d in a way that does not alter | fields of the AltMark Option (e.g., marking of the packets or FlowMonID) or by a | |||
the quality of service experienced by the packets and that preser | malicious attacker adding the AltMark Option to the packets in order to consume | |||
ves stability and performance | the resources of network devices and entities involved. As described above, | |||
of routers doing the measurements. As already discussed in <xref | the source node is the only one that writes the Options Header while the | |||
target="use"/>, the design of the | intermediate nodes and destination node only read it without modifying the | |||
AltMark Option has been chosen with throughput in mind, such that | Options Header. But, for example, an on-path attacker can modify the flags, | |||
it can be implemented | whether intentionally or accidentally, or deliberately insert an Option to the | |||
without affecting the user experience.</t> | packet flow or delete the Option from the packet flow. The consequent effect | |||
could be to give the appearance of loss or delay or to invalidate the measuremen | ||||
t | ||||
by modifying Option identifiers, such as FlowMonID. The malicious implication | ||||
can be to cause actions from the network administrator where an intervention | ||||
is not necessary or to hide real issues in the network. Since the measurement | ||||
itself may be affected by network nodes intentionally altering the bits of the | ||||
AltMark Option or injecting Options Headers as a means for Denial of Service | ||||
(DoS), the Alternate Marking <bcp14>MUST</bcp14> be applied in the context of | ||||
a controlled domain, where the network nodes are locally administered and this | ||||
type of attack can be avoided. For this reason, the implementation of the | ||||
method is not done on the end node if it is not fully managed and does not | ||||
belong to the controlled domain. Packets generated outside the controlled | ||||
domain may consume router resources by maliciously using the Hop-by-Hop Option, | ||||
but | ||||
this can be mitigated by filtering these packets at the controlled domain | ||||
boundary. This can be done because if the end node does not belong to the | ||||
controlled domain, it is not supposed to add the AltMark Hop-by-Hop Option, and | ||||
it | ||||
can be easily recognized. | ||||
</dd> | ||||
<t>Harm to the measurement: Alternate Marking measurements could | </dl> | |||
be harmed by | ||||
routers altering the fields of the AltMark Option (e.g. marking o | ||||
f the packets, FlowMonID) | ||||
or by a malicious attacker adding AltMark Option to the packets i | ||||
n order to consume the resources of | ||||
network devices and entities involved. As described above, the so | ||||
urce node is the only one that writes | ||||
the Option Header while the intermediate nodes and destination no | ||||
de only read it without modifying the | ||||
Option Header. But, for example, an on-path attacker can modify t | ||||
he flags, whether intentionally or accidentally, | ||||
or deliberately insert an option to the packet flow or delete the | ||||
option from the packet flow. The consequent | ||||
effect could be to give the appearance of loss or delay or invali | ||||
date the measurement by modifying option identifiers, | ||||
such as FlowMonID. The malicious implication can be to cause acti | ||||
ons from the network administrator where an intervention | ||||
is not necessary or to hide real issues in the network. | ||||
Since the measurement itself may be affected by network nodes int | ||||
entionally altering the bits of the AltMark Option | ||||
or injecting Options headers as a means for Denial of Service (Do | ||||
S), the Alternate Marking MUST be applied | ||||
in the context of a controlled domain, where the network nodes ar | ||||
e locally administered and this type of attack | ||||
can be avoided. For this reason, the implementation of the method | ||||
is not done on the end node if it is not fully managed | ||||
and does not belong to the controlled domain. Packets generated o | ||||
utside the controlled domain may consume | ||||
router resources by maliciously using the HbH Option, but this ca | ||||
n be mitigated by filtering these packets at the controlled | ||||
domain boundary. This can be done because, if the end node does n | ||||
ot belong to the controlled domain, it is not supposed | ||||
to add the AltMark HbH Option, and it can be easily recognized.</ | ||||
t> | ||||
<t>An attacker that does not belong to the controlled domain can | <t>An attacker that does not belong to the controlled domain can maliciously sen | |||
maliciously send packets with AltMark Option. | d packets with the AltMark Option. | |||
But if Alternate Marking is not supported in the controlled domai | But, if Alternate Marking is not supported in the controlled doma | |||
n, no problem happens because the AltMark Option is treated | in, no problem happens because the AltMark Option is treated | |||
as any other unrecognized option and will not be considered by th | as any other unrecognized Option and will not be considered by th | |||
e nodes since they are not configured to deal with it, so | e nodes since they are not configured to deal with it; so, | |||
the only effect is the increased packet size (by 48 bits). | the only effect is the increased packet size (by 48 bits). | |||
While if Alternate Marking is supported in the controlled domain, | If Alternate Marking is supported in the controlled domain, it is | |||
it is also necessary to avoid that the measurements are affected | necessary to keep the measurements from being affected, | |||
and external packets with AltMark Option MUST be filtered. | and external packets with the AltMark Option <bcp14>MUST</bcp14> | |||
As any other Hop-by-Hop Options or Destination Options, it is pos | be filtered. | |||
sible to filter AltMark Options entering or leaving the domain | As any other Hop-by-Hop Options or Destination Options, it is pos | |||
e.g. by using ACL extensions for filtering.</t> | sible to filter AltMark Options entering or leaving the domain, | |||
e.g., by using ACL extensions for filtering.</t> | ||||
<t>The flow identifier (FlowMonID), together with the two marking | ||||
bits (L and D), comprises the AltMark Option. | ||||
<t>The flow identifier (FlowMonID), together with the two marking | As explained in <xref target="flowmonid" format="default"/>, ther | |||
bit (L and D), comprises the AltMark Option. | e is a chance of collision if the FlowMonID | |||
As explained in <xref target="flowmonid"/>, there is a chance of | is set pseudo-randomly, but there is a solution for this issue. I | |||
collision if the FlowMonID | n general, this may not be a problem, and a low rate of | |||
is set pseudo randomly but that there is a solution for this issu | ambiguous FlowMonIDs can be acceptable since this does not cause | |||
e. In general this may not be a problem and a low rate of | significant harm to the operators or | |||
ambiguous FlowMonIDs can be acceptable, since this does not cause | their clients, and this harm may not justify the complications of | |||
significant harm to the operators or | avoiding it. But, for large scale measurements, | |||
their clients and this harm may not justify the complications of | a big number of flows could be monitored and the probability of a | |||
avoiding it. But, for large scale measurements, | collision is higher; thus, the disambiguation | |||
a big number of flows could be monitored and the probability of a | ||||
collision is higher, thus the disambiguation | ||||
of the FlowMonID field can be considered.</t> | of the FlowMonID field can be considered.</t> | |||
<t>The privacy concerns also need to be analyzed even if the method only r | ||||
<t>The privacy concerns also need to be analyzed even if the meth | elies on information contained | |||
od only relies on information contained | in the Options Header without any release of user data. Indeed, f | |||
in the Option Header without any release of user data. Indeed, fr | rom a confidentiality perspective, | |||
om a confidentiality perspective, | although the AltMark Option does not contain user data, the metad | |||
although AltMark Option does not contain user data, the metadata | ata can be used for network reconnaissance | |||
can be used for network reconnaissance | ||||
to compromise the privacy of users by allowing attackers to colle ct information about network performance and network paths. | to compromise the privacy of users by allowing attackers to colle ct information about network performance and network paths. | |||
AltMark Option contains two kinds of metadata: the marking bits ( L and D bits) and the flow identifier (FlowMonID).<list> | The AltMark Option contains two kinds of metadata: the marking bi ts (L and D) and the flow identifier (FlowMonID).</t> | |||
<t>The marking bits are the small information that is exchange | <ul spacing="normal"> | |||
d between the network nodes. Therefore, due to this intrinsic | <li>The marking bits are the small information that is exchanged between | |||
characteristic, network reconnaissance through passive eavesdr | the network nodes. Therefore, due to this intrinsic | |||
opping on data-plane traffic is difficult. | characteristic, network reconnaissance through passive eavesdr | |||
opping on data plane traffic is difficult. | ||||
Indeed, an attacker cannot gain information about network perf ormance from a single monitoring point. The only way for an attacker | Indeed, an attacker cannot gain information about network perf ormance from a single monitoring point. The only way for an attacker | |||
can be to eavesdrop on multiple monitoring points at the same time, because they have to do the same kind of calculation | can be to eavesdrop on multiple monitoring points at the same time, because they have to do the same kind of calculation | |||
and aggregation as Alternate Marking requires.</t> | and aggregation as Alternate Marking requires.</li> | |||
<li>The FlowMonID field is used in the AltMark Option as the identifier | ||||
<t>The FlowMonID field is used in the AltMark Option as the id | of the monitored flow. It represents more sensitive information | |||
entifier of the monitored flow. It represents a more sensitive information | ||||
for network reconnaissance and may allow a flow tracking type of attack because an attacker could collect information | for network reconnaissance and may allow a flow tracking type of attack because an attacker could collect information | |||
about network paths.</t> | about network paths.</li> | |||
</ul> | ||||
</list></t> | <t>Furthermore, in a pervasive surveillance attack, the information that c | |||
an be derived over time is more. | ||||
<t>Furthermore, in a pervasive surveillance attack, the informati | ||||
on that can be derived over time is more. | ||||
But, as further described hereinafter, the application of the Alt ernate Marking to a controlled domain | But, as further described hereinafter, the application of the Alt ernate Marking to a controlled domain | |||
helps to mitigate all the above aspects of privacy concerns.</t> | helps to mitigate all the above aspects of privacy concerns.</t> | |||
<t>At the management plane, attacks can be set up by misconfiguring or by | ||||
<t>At the management plane, attacks can be set up by misconfiguri | maliciously configuring the AltMark Option. | |||
ng or by maliciously configuring AltMark Option. | Thus, AltMark Option configuration <bcp14>MUST</bcp14> be secured | |||
Thus, AltMark Option configuration MUST be secured in a way that | in a way that authenticates authorized users and verifies the | |||
authenticates authorized users and verifies the | integrity of configuration procedures. Solutions to ensure the in | |||
integrity of configuration procedures. Solutions to ensure the in | tegrity of the AltMark Option are outside the | |||
tegrity of AltMark Option are outside the | ||||
scope of this document. Also, attacks on the reporting of the sta tistics between the monitoring points and the | scope of this document. Also, attacks on the reporting of the sta tistics between the monitoring points and the | |||
network management system (e.g. centralized controller) can inter | network management system (e.g., centralized controller) can interfere w | |||
fere with the proper functioning of the system. | ith the proper functioning of the system. | |||
Hence, the channels used to report back flow statistics MUST be s | Hence, the channels used to report back flow statistics <bcp14>MU | |||
ecured.</t> | ST</bcp14> be secured.</t> | |||
<t>As stated above, the precondition for the application of the Alternate | ||||
<t>As stated above, the precondition for the application of the Alternate | Marking is that it <bcp14>MUST</bcp14> be applied | |||
Marking is that it MUST be applied | ||||
in specific controlled domains, thus confining the potential atta ck vectors within the network domain. | in specific controlled domains, thus confining the potential atta ck vectors within the network domain. | |||
A limited administrative domain provides the network administrato | A limited administrative domain provides the network administrato | |||
r with the means to select, monitor and | r with the means to select, monitor, and | |||
control the access to the network, making it a trusted domain. In | control the access to the network, making it a trusted domain. In | |||
this regard it is expected to enforce policies | this regard, it is expected to enforce policies | |||
at the domain boundaries to filter both external packets with AltMark Op | at the domain boundaries to filter both external packets with the AltMar | |||
tion entering the domain and | k Option entering the domain and | |||
internal packets with AltMark Option leaving the domain. Therefor | internal packets with the AltMark Option leaving the domain. Ther | |||
e, the trusted domain is unlikely subject | efore, the trusted domain is unlikely subject | |||
to hijacking of packets since packets with AltMark Option are pro | to the hijacking of packets since packets with AltMark Option are | |||
cessed and used only within the controlled domain.</t> | processed and used only within the controlled domain.</t> | |||
<t>As stated, the application to a controlled domain ensures control over | ||||
<t>As stated, the application to a controlled domain ensures the | the packets entering and leaving the domain, | |||
control over the packets entering and leaving the domain, | but despite that, leakages may happen for different reasons such | |||
but despite that, leakages may happen for different reasons, such | as a failure or a fault. In this case, nodes | |||
as a failure or a fault. In this case, nodes | outside the domain are expected to ignore packets with the AltMar | |||
outside the domain are expected to ignore packets with AltMark Op | k Option since they are not configured to handle it and | |||
tion since they are not configured to handle it and | ||||
should not process it.</t> | should not process it.</t> | |||
<t>Additionally, note that the AltMark Option is carried by the Options He | ||||
<t>Additionally, it is to be noted that the AltMark Option is car | ader | |||
ried by the Options Header | and it will have some impact on the packet sizes for the monitore | |||
and it will have some impact on the packet sizes for the monitore | d flow and on the path MTU | |||
d flow and on the path MTU, | since some packets might exceed the MTU. However, the relative sm | |||
since some packets might exceed the MTU. However, the relative sm | all size (48 bits in total) | |||
all size (48 bit in total) | of these Options Headers and its application to a controlled doma | |||
of these Option Headers and its application to a controlled domai | in help to mitigate the problem.</t> | |||
n help to mitigate the problem.</t> | <t>It is worth mentioning that the security concerns may change based on t | |||
he specific deployment scenario | ||||
<t>It is worth mentioning that the security concerns may change based on | and related threat analysis, which can lead to specific security solutio | |||
the specific deployment scenario | ns that are beyond the scope of this document. | |||
and related threat analysis, which can lead to specific security solu | As an example, the AltMark Option can be used as a Hop-by-Hop or | |||
tions that are beyond the scope of this document. | Destination Option and, in case of a Destination Option, | |||
As an example, the AltMark Option can be used as Hop-by-Hop or De | ||||
stination Option and, in case of Destination Option, | ||||
multiple administrative domains may be traversed by the AltMark O ption that is not confined to a single administrative domain. | multiple administrative domains may be traversed by the AltMark O ption that is not confined to a single administrative domain. | |||
In this case, the user, aware of the kind of risks, may still wan | In this case, the user, who is aware of the kind of risks, may st | |||
t to use Alternate Marking for telemetry and test purposes but | ill want to use Alternate Marking for telemetry and test purposes, but | |||
the controlled domain must be composed by more than one administrative d | the controlled domain must be composed by more than one administrative d | |||
omains. To this end, the inter-domain links need | omain. To this end, the inter-domain links need | |||
to be secured (e.g., by IPsec, VPNs) in order to avoid external t | to be secured (e.g., by IPsec or VPNs) in order to avoid external | |||
hreats and realize the whole controlled domain.</t> | threats and realize the whole controlled domain.</t> | |||
<t>It might be theoretically possible to modulate the marking or the other | ||||
<t>It might be theoretically possible to modulate the marking or | fields of the AltMark Option to serve as a covert channel | |||
the other fields of the AltMark Option to serve as a covert channel | ||||
to be used by an on-path observer. This may affect both the data and management plane, but, here too, the application to a | to be used by an on-path observer. This may affect both the data and management plane, but, here too, the application to a | |||
controlled domain helps to reduce the effects.</t> | controlled domain helps to reduce the effects.</t> | |||
<t>The Alternate-Marking application described in this document relies on | ||||
<t>The Alternate Marking application described in this document r | a time synchronization | |||
elies on a time synchronization | ||||
protocol. Thus, by attacking the time protocol, an attacker can p otentially compromise the integrity | protocol. Thus, by attacking the time protocol, an attacker can p otentially compromise the integrity | |||
of the measurement. A detailed discussion about the threats again st time protocols and | of the measurement. A detailed discussion about the threats again st time protocols and | |||
how to mitigate them is presented in <xref target="RFC7384"/>. Ne | how to mitigate them is presented in <xref target="RFC7384" forma | |||
twork Time Security (NTS), | t="default"/>. Network Time Security (NTS), | |||
described in <xref target="RFC8915"/>, is a mechanism that can be | described in <xref target="RFC8915" format="default"/>, is a mech | |||
employed. Also, the time, | anism that can be employed. Also, the time, | |||
which is distributed to the network nodes through the time protoc | which is distributed to the network nodes through the time protoc | |||
ol, is centrally taken from an external accurate time source, | ol, is centrally taken from an external accurate time source | |||
such as an atomic clock or a GPS clock. By attacking the time sou | such as an atomic clock or a GPS clock. By attacking the time sou | |||
rce it can be possible to compromise the integrity | rce, it is possible to compromise the integrity | |||
of the measurement as well. There are security measures that can | of the measurement as well. There are security measures that can | |||
be taken to mitigate the GPS spoofing attacks and a | be taken to mitigate the GPS spoofing attacks, and a | |||
network administrator should certainly employ solutions to secure the network domain.</t> | network administrator should certainly employ solutions to secure the network domain.</t> | |||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<section anchor="IANA" title="IANA Considerations"> | <t>IANA has allocated the Option Type in | |||
<t>The Option Type should be assigned in IANA's | the "Destination Options and Hop-by-Hop Options" subregistry of t | |||
"Destination Options and Hop-by-Hop Options" registry.</t> | he | |||
"Internet Protocol Version 6 (IPv6) Parameters" registry (<eref | ||||
<t>This draft requests the following IPv6 Option Type assignment | brackets="angle" target="https://www.iana.org/assignments/ipv6-parameters/"/>) a | |||
from | s follows:</t> | |||
the Destination Options and Hop-by-Hop Options sub-registry of | ||||
Internet Protocol Version 6 (IPv6) Parameters (https://www.iana.o | ||||
rg/assignments/ipv6-parameters/).</t> | ||||
<t><figure> | ||||
<artwork><![CDATA[ | ||||
Hex Value Binary Value Description Reference | ||||
act chg rest | ||||
---------------------------------------------------------------- | ||||
TBD 00 0 tbd AltMark [This draft] | ||||
]]></artwork> | ||||
</figure></t> | ||||
</section> | ||||
<section anchor="Acknowledgements" title="Acknowledgements"> | ||||
<t>The authors would like to thank Bob Hinden, Ole Troan, Martin Duke, L | ||||
ars Eggert, Roman Danyliw, | ||||
Alvaro Retana, Eric Vyncke, Warren Kumari, Benjamin Kaduk, Stewar | ||||
t Bryant, Christopher Wood, | ||||
Yoshifumi Nishida, Tom Herbert, Stefano Previdi, Brian Carpenter, | ||||
Greg Mirsky, Ron Bonica | ||||
for the precious comments and suggestions.</t> | ||||
</section> | ||||
<!-- Possibly a 'Contributors' section ... --> | <table anchor="table_1"> | |||
<name>Destination Options and Hop-by-Hop Options Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th>Hex Value</th> | ||||
<th rowspan="1" colspan="3">Binary Value</th> | ||||
<th>Description</th> | ||||
<th>Reference</th> | ||||
</tr> | ||||
<tr> | ||||
<th></th> | ||||
<th>act</th> | ||||
<th>chg</th> | ||||
<th>rest</th> | ||||
<th></th> | ||||
<th></th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td>0x12</td> | ||||
<td>00</td> | ||||
<td>0</td> | ||||
<td>10010</td> | ||||
<td>AltMark</td> | ||||
<td>RFC 9343</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
</middle> | </middle> | |||
<!-- *****BACK MATTER ***** --> | ||||
<back> | <back> | |||
<!-- References split to informative and normative --> | ||||
<references title="Normative References"> | ||||
<?rfc include='reference.RFC.2119'?> | <displayreference target="I-D.ietf-pce-pcep-ifit" to="PCEP-IFIT"/> | |||
<displayreference target="I-D.fz-spring-srv6-alt-mark" to="SRv6-AMM"/> | ||||
<displayreference target="I-D.ietf-6man-hbh-processing" to="HBH-OPTIONS-PROCES | ||||
SING"/> | ||||
<displayreference target="I-D.ietf-idr-sr-policy-ifit" to="BGP-SR-POLICY-IFIT" | ||||
/> | ||||
<displayreference target="I-D.ietf-v6ops-hbh" to="PROC-HBH-OPT-HEADER"/> | ||||
<?rfc include='reference.RFC.8174'?> | <references> | |||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
119.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
200.xml"/> | ||||
<?rfc include='reference.RFC.8200'?> | <!-- draft-ietf-ippm-rfc8321bis-03: In AUTH48-DONE; Cluster 446 document. | |||
--> | ||||
<reference anchor="RFC9341" target="https://www.rfc-editor.org/info/rfc9341"> | ||||
<front> | ||||
<title>Alternate-Marking Method</title> | ||||
<author initials='G' surname='Fioccola' fullname='Giuseppe Fioccola' role="edito | ||||
r"> | ||||
<organization/> | ||||
</author> | ||||
<?rfc include='reference.I-D.ietf-ippm-rfc8321bis'?> | <author initials='M' surname='Cociglio' fullname='Mauro Cociglio'> | |||
<organization/> | ||||
</author> | ||||
<?rfc include='reference.I-D.ietf-ippm-rfc8889bis'?> | <author initials='G' surname='Mirsky' fullname='Greg Mirsky'> | |||
<organization/> | ||||
</author> | ||||
</references> | <author initials='T' surname='Mizrahi' fullname='Tal Mizrahi'> | |||
<organization/> | ||||
</author> | ||||
<references title="Informative References"> | <author initials='T' surname='Zhou' fullname='Tianran Zhou'> | |||
<!-- A reference written by by an organization not a persoN. --> | <organization/> | |||
</author> | ||||
<?rfc include='reference.RFC.7045'?> | <date month='December' year='2022'/> | |||
</front> | ||||
<seriesInfo name="RFC" value="9341"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9341"/> | ||||
</reference> | ||||
<?rfc include='reference.RFC.8754'?> | <!-- draft-ietf-ippm-rfc8889bis-04: in AUTH48-DONE; Cluster 446 document | |||
--> | ||||
<reference anchor="RFC9342" target="https://www.rfc-editor.org/info/rfc9342"> | ||||
<front> | ||||
<title>Clustered Alternate-Marking Method</title> | ||||
<?rfc include='reference.RFC.6437'?> | <author initials='G' surname='Fioccola' fullname='Giuseppe Fioccola' role="edito | |||
r"> | ||||
<organization/> | ||||
</author> | ||||
<?rfc include='reference.RFC.6438'?> | <author initials='M' surname='Cociglio' fullname='Mauro Cociglio'> | |||
<organization/> | ||||
</author> | ||||
<?rfc include='reference.RFC.7384'?> | <author initials='A' surname='Sapio' fullname='Amedeo Sapio'> | |||
<organization/> | ||||
</author> | ||||
<?rfc include='reference.RFC.8915'?> | <author initials='R' surname='Sisto' fullname='Riccardo Sisto'> | |||
<organization/> | ||||
</author> | ||||
<?rfc include='reference.RFC.8799'?> | <author initials='T' surname='Zhou' fullname='Tianran Zhou'> | |||
<organization/> | ||||
</author> | ||||
<date month='December' year='2022'/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9342"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9342"/> | ||||
</reference> | ||||
<?rfc include='reference.RFC.4301'?> | </references> | |||
<references> | ||||
<name>Informative References</name> | ||||
<?rfc include='reference.I-D.fz-spring-srv6-alt-mark'?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | |||
C.7045.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8754.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.6437.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.6438.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.7384.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8915.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8799.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.4301.xml"/> | ||||
<?rfc include='reference.I-D.ietf-idr-sr-policy-ifit'?> | <!--draft-fz-spring-srv6-alt-mark; I-D exists as of 12/14/22--> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-fz-sprin | ||||
g-srv6-alt-mark.xml"/> | ||||
<?rfc include='reference.I-D.chen-pce-pcep-ifit'?> | <!--draft-ietf-idr-sr-policy-ifit; I-D exists as of 12/14/22 --> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-id | ||||
r-sr-policy-ifit.xml"/> | ||||
<?rfc include='reference.I-D.ietf-v6ops-hbh'?> | <!--draft-chen-pce-pcep-ifit; Expired. Replaced by draft-ietf-pce-pcep-if | |||
it; I-D exists as of 12/14/22--> | ||||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pc | ||||
e-pcep-ifit.xml"/> | ||||
<?rfc include='reference.I-D.ietf-6man-hbh-processing'?> | <!--draft-ietf-v6ops-hbh; I-D exists as of 12/14/22--> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-v6 | ||||
ops-hbh.xml"/> | ||||
<!--draft-ietf-6man-hbh-processing; I-D exists as of 12/14/22--> | ||||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-6m | ||||
an-hbh-processing.xml"/> | ||||
</references> | ||||
</references> | </references> | |||
</back> | <section anchor="Acknowledgements" numbered="false" toc="default"> | |||
<name>Acknowledgements</name> | ||||
<t>The authors would like to thank <contact fullname="Bob Hinden"/>, <cont | ||||
act fullname="Ole Troan"/>, <contact fullname="Martin Duke"/>, <contact fullname | ||||
="Lars Eggert"/>, <contact fullname="Roman Danyliw"/>, | ||||
<contact fullname="Alvaro Retana"/>, <contact fullname="Eric Vync | ||||
ke"/>, <contact fullname="Warren Kumari"/>, <contact fullname="Benjamin Kaduk"/> | ||||
, <contact fullname="Stewart Bryant"/>, <contact fullname="C. A. Wood"/>, | ||||
<contact fullname="Yoshifumi Nishida"/>, <contact fullname="Tom H | ||||
erbert"/>, <contact fullname="Stefano Previdi"/>, <contact fullname="Brian Carpe | ||||
nter"/>, <contact fullname="Greg Mirsky"/>, and <contact fullname="Ron Bonica"/> | ||||
for their valuable comments and suggestions.</t> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 192 change blocks. | ||||
1028 lines changed or deleted | 911 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |