Internet DRAFT - draft-herbert-host2netsig
draft-herbert-host2netsig
Network Working Group T. Herbert
Internet-Draft SiPanda
Intended status: Informational 4 October 2023
Expires: 6 April 2024
Host to Network Signaling
draft-herbert-host2netsig-00
Abstract
This document discusses the motivations, use cases, and requirements
for Host to Network Signaling. In Host to Network Signaling, hosts
annotate packets with information that is intended for consumption by
on-path elements. Signals may be used to request services on a per
packet basis from on-path elements, to request admission into the
network, or to provide diagnostics and tracing information.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 6 April 2024.
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Herbert Expires 6 April 2024 [Page 1]
Internet-Draft host2netsig October 2023
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4
2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Network services in dumbbell network topologies . . . . . 4
2.2. Requesting network services . . . . . . . . . . . . . . . 5
2.3. Network services . . . . . . . . . . . . . . . . . . . . 6
2.4. Filling the gap of Transport Path Signals . . . . . . . . 7
3. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1. Mapping to network slices . . . . . . . . . . . . . . . . 8
3.2. Host to network signaling in wireless networks . . . . . 8
3.3. Explicit signals . . . . . . . . . . . . . . . . . . . . 8
3.4. Traffic flow analysis . . . . . . . . . . . . . . . . . . 9
3.5. Routing hints . . . . . . . . . . . . . . . . . . . . . . 9
4. Existing mechanisms . . . . . . . . . . . . . . . . . . . . . 9
4.1. Stateful firewalls and proxies . . . . . . . . . . . . . 9
4.1.1. Problems with transport stateful network devices . . 10
4.1.2. Problems with application layer firewalls . . . . . . 11
4.2. Differentiated services . . . . . . . . . . . . . . . . . 12
4.3. Deep packet inspection . . . . . . . . . . . . . . . . . 12
5. Proposals for host to network signaling . . . . . . . . . . . 12
5.1. Embedded information in UDP encapsulation . . . . . . . . 12
5.2. UDP Options . . . . . . . . . . . . . . . . . . . . . . . 14
5.3. Overloading the IPv6 Flow Label . . . . . . . . . . . . . 14
5.4. Overloading bits in IPv6 addresses . . . . . . . . . . . 15
5.5. Stateful mechanisms . . . . . . . . . . . . . . . . . . . 16
5.6. Destination Options . . . . . . . . . . . . . . . . . . . 16
5.7. Hop-by-Hop Options . . . . . . . . . . . . . . . . . . . 17
5.7.1. Processing requirements of Hop-by-Hop Options . . . . 18
5.7.2. Support in IPv4 . . . . . . . . . . . . . . . . . . . 19
6. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 19
7. Security Considerations . . . . . . . . . . . . . . . . . . . 21
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.1. Normative References . . . . . . . . . . . . . . . . . . 22
9.2. Informative References . . . . . . . . . . . . . . . . . 22
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 25
1. Introduction
Host to Network Signaling allows end hosts or applications to signal
the on-path elements, or network nodes in the path, for requests for
service or admission into a network on a per packet basis. The
signal is expressed as ancillary information attached to packets.
Herbert Expires 6 April 2024 [Page 2]
Internet-Draft host2netsig October 2023
Host to Network Signals are explicit signals conveyed in the network
layer for the purpose of being processed and consumed by some or all
network nodes in the path. Host to network signaling can be
contrasted with Transport Path Signals as discussed in [RFC8558].
The primary difference is that Host to Network Signaling employs
explicit signals carried in the network layer, and, unlike Transport
Path Signals, these signals may be independent of the transport layer
and do not require on-path elements to parse transport layer headers
or track transport layer state in the network.
Host to network signals are sent by hosts to network nodes. The
converse of host to network signaling is "network to host signaling"
where network nodes modify ancillary information in packets to signal
the destination host. The purpose of network to host signaling is to
report information on a per packet basis that is consumed by the
destination host; an example of a network to host signaling protocol
is IOAM. Host to network signaling and network to host signaling
have different characteristics in the nature of the signals,
modifiabilty of the data, and security. Network to host signaling is
a separate topic in its own right and is considered out of scope for
this document.
A host to network signal may be scoped such that only particular on-
path nodes process and act on the signal. The scope can be enforced
by encrypting the signal such that only authorized network nodes are
able to decode the signal. This also serves as a security mechanism
to limit the exposure of data in the signal and to minimize the plain
text sent in a packet. The scope can even exclude the source host
from being able to decode the signal such that it must treat that
signal data as an opaque object provided by a local network agent to
be attached to packets. Host to network signals may also encrypted
and authenticated to prevent forgery, to prevent modification, to
hide details about requested services, to hide information that might
reveal application characteristics or users, and to enforce that
signal data is non-transferable between hosts or users.
Host to network signals may include an expiration time to such that
they are only useful for some period of time. For instance, if a
host to network signal is attached to the packets of a flow for the
purpose of requesting network services, an associated expiration time
would allow the infrastructure to limit the use of the signal for a
certain period of time and prevent unlimited reuse of the signal.
While host to network signals do not directly covey connection state,
such as connection establishment and tear down, they may still be
associated with a transport layer flow. For instance, when a host
creates first creates a flow it may be provided with signal by a
network agent to attach to packets of a flow. The signal data
Herbert Expires 6 April 2024 [Page 3]
Internet-Draft host2netsig October 2023
describes the services being requested for the flow. When an on-path
element processes the signal, it applies the services on the basis of
the signal contents without regard to transport layer state.
An important attribute of host to network signals is that they are
stateless inside the network. In particular, this facilitates multi-
homing where routers in different paths for a flow would be able to
decode and process host to network signals in packets associated with
a flow.
Host to network signals are inherently uni-directional. In order for
a source to affect services on the return path of a flow, "signal
reflection" may be employed. The idea is that a signal can be sent
with a "reflect" attribute. At a peer host, the signal can be
reflected in reply packets to affect services for packets in the
return path.
1.1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Motivation
This section discusses the motivation for a consistent and ubiquitous
solution for host to network signaling.
2.1. Network services in dumbbell network topologies
End to end communications can often be modeled as a "dumbbell"
topology where two communicating end hosts connect to the Internet
via a local provider network and the provider networks connect to
transit networks to communicate across the Internet.
_____
__________ ( ) __________
+--------+ ( ) ( ) ( ) +--------+
| User 1 +---( Provider A )--( Transit )--( Provider B )---+ User 2 |
+--------+ (__________) ( ) (__________) +--------+
(_____)
Figure 1
Within each provider network of the dumbbell topology, network
services may be provided on behalf of the users of the local network.
In the figure above, Provider A may provide services and service
agreements for users in its network including User 1; and likewise,
Herbert Expires 6 April 2024 [Page 4]
Internet-Draft host2netsig October 2023
Provider B can provide services to users in its network including
User 2. It is assumed that transit networks don't typically provide
user specific services or service differentiation, that is transit
networks may be considered the "open Internet". Services provided by
different provider networks may be very different and dependent on
the implementation of the network as well as the local policies of
the provider.
2.2. Requesting network services
Based on the dumbbell network topology, services and service
differentiation can be considered local to each network provider.
Host to network signaling is a mechanism whereby each user and
application can request from its local provider the services to be
applied to its traffic. The data of the signal may be provided by an
agent in the local provider network. The contents of the signal
describe the services that the application desires. When a packet is
sent by an application with a host to network signal attached, the
signal is interpreted in the provider network to allow the packet to
traverse the network and to map the packet to the appropriate
services. In this model, the host to network signal is only relevant
in its origin domain, that is the provider network or limited domain
[RFC8799] in which the network signal was issued. Outside of the
origin domain, network signals are uninterpretable opaque objects;
encryption of the signal data can be employed to limit exposure of
the signal's contents. An outcome of this design is that there is no
requirement for a standard set of signals that all networks must
support; signals can be defined in each provider network per their
needs and the network services they offer. While the signal content
may differ between networks, the protocol to carry and request
signals should be common and ubiquitous.
While the signals themselves are intended to be extensible and not
limited to a few predefined possibilities, there is also a motivation
to use a namespace to tag different signals with a global value.
This is especially useful to avoid name conflicts when two networks
share each other's signals. An IANA registry could be employed to
allow different vendors or entities to request a portion of the
common namespace to define their signals.
To facilitate network traversal and service mapping in the return
direction for a flow, that is reply packets sent from a peer host,
peer hosts can be asked to reflect a host to network signal without
modification or interpretation. When a packet with a reflected
signal enters the origin network of the signal, network nodes can
interpret the signal and apply appropriate services for transitting
the network to the destination host.
Herbert Expires 6 April 2024 [Page 5]
Internet-Draft host2netsig October 2023
The use of host to network signals may be bilateral for a flow so
that each peer requests service from its local network. Therefore
packets may contain two types of signals: one that is set by the
source host to signal its local provider network, and the other is a
reflected signal relevant to the provider network of the destination
host.
Signals are scoped values in that they only have meaning in their
origin domain in which a signal was issued. The format, meaning, and
interpretation of host to network signals is specific to the origin
domain. By mutual agreement, two or more networks or limited domains
may share the policy and interpretations of network signals thereby
logically extending the origin domain of the signals. For instance,
there could be an agreement between two provider networks to
interpret each other's signals or to use a common signal format.
2.3. Network services
There are a number of potential use cases for requesting network
services that motivate host to network signaling. As an example,
consider the common problem of applications on mobile devices that
need to signal their provider network for services.
In a typical client/server model of serving content, end host clients
communicate with servers on the Internet. Clients are typically user
devices that are connected to the Internet through a provider
network. In the case of mobile devices, such as smartphones, the
devices are connected to the Internet through a mobile provider
network (RAN). Content providers (web servers and content caches)
tend to be more directly connected to the Internet, the largest of
which can connect at exchange points.
Provider networks can be architected to provide differentiated
services and levels of services to their users based on application
characteristics. For example, a mobile carrier network can provide
different latency and throughput guarantees for different types of
content. A network may offer different services for optimizing
video, for example streaming an HD movie might need high throughput
but not particularly low latency; on the other hand, a live video
chat might have lower throughput demands but could have stringent low
latency requirements.
Note that network services requested by applications are relevant to
both packets sent by an end host and those sent from a peer towards
the end host. For the latter case, the network needs to be able to
map packets sent from hosts on external networks or on the Internet
to the services requested by the receiving application.
Herbert Expires 6 April 2024 [Page 6]
Internet-Draft host2netsig October 2023
Host to network signaling is applicable to the mobile network use
case. The application running in the User Equipment (UE) would
request signals for services from an agent in their local provider.
When packets are sent by the UE into the RAN the signal is attached
data. The first hop router could first validate the signal and then
apply the requested services by mapping the packet into the internal
mechanisms of the network that provide differentiated service
(network slicing, SFC, DSCP, etc.). Reflected signals could also be
used so that when reply packets enter the network, the border router
of the RAN would apply the requested services in the reflected signal
by mapping them to the internal mechanisms for differentiated
services of the network for forwarding to the UE.
2.4. Filling the gap of Transport Path Signals
[RFC8558] discusses the nature of signals seen by on-path elements
examining transport protocols, and [RFC9419] discusses principles for
designing mechanisms that use or provide path signals. [RFC8558]
differentiates implicit and explicit signals. Implicit signals are
those that are inferred from the transport layer, and explicit
signals are data set in packets with the explicit purpose of
signaling network nodes in the path. [RFC8558] notes the trend
towards encrypting more layers of the packet which reduces the
effectiveness of implicit signals and acknowledges that "The
transport messages were not necessarily intended for consumption by
on-path network elements".
To fill the gap created by encryption of transport layer headers and
reduced visibility to network nodes, [RFC8558] suggests that implicit
signals inferred from transport layer headers could replaced by
explicit Network-Layer Signals, which is equivalent to host to
network signals.
[RFC8558] makes several recommendations that are applicable to host
to network signaling. Information should only be exposed to the
network if the sender intends for the data to be consumed by network
elements on the path. The signals should be independent of any
protocol state machine at the endpoints. Signal data should be
integrity protected and unmodifiable in-flight, and furthermore, they
can be scoped by encryption or obfuscation to limit visibility of the
underlying signal to the origin domain and its authorized delegates.
3. Use cases
This section presents some use cases for host to network signaling.
Herbert Expires 6 April 2024 [Page 7]
Internet-Draft host2netsig October 2023
3.1. Mapping to network slices
The 3GPP standard for 5G [_3GPP-5G] defines a set of mechanisms to
provide a rich array of services for users. These mechanisms employ
Network Function Virtualization (NFV), Service Function Chaining
(SFC), and network slices that divide physical network resources into
different virtualized slices to provide different services. To make
use of these mechanisms, the applications running in UEs (User
Equipment) will need to indicate desired services of the RAN (Radio
Access Network). When packets for the UE arrive at the ingress
router to the RAN, the service request in the packet can be mapped to
the mechanisms and protocols to instantiate the services as the
packet traverses the RAN. For instance, a video chat application may
request bounded latency that is implemented by the network by a
network slice; so packets sent by the application should be mapped to
that network slice.
Host to network signals offer a generic and common protocol to allow
applications in UEs to signal the RAN for services.
3.2. Host to network signaling in wireless networks
[I-D.kaippallimalil-tsvwg-media-hdr-wireless] describes a mechanism
to annotate packets with metadata that is attached to packets to
classify packets in wireless networks in order to provide appropriate
QoS. The method is particularly motivated by use cases where fully
encrypted media streams are used or the transport layer flow
information is encrypted or obscured.
The metadata is intended to be processed and consumed by a specific
intermediate node, the Wireless Node. The metadata is a type of host
to network signal, so a common host to network signaling solution
should be applicable.
3.3. Explicit signals
[I-D.reddy-tsvwg-explcit-signal] defines a mechanism for endpoints to
explicitly signal encrypted metadata to the network, and the network
to signal its ability to accommodate that metadata back to the
endpoints. This mechanism can be used where the endpoints desire
that some network elements along the path receive these explicit
signals.
The "explicit signals" described in this draft are a potential use
case of host to network signaling.
Herbert Expires 6 April 2024 [Page 8]
Internet-Draft host2netsig October 2023
3.4. Traffic flow analysis
[I-D.cc-v6ops-wlcg-flow-label-marking] describes a mechanism to mark
packets of flows with information that identifies the application or
user that is sending packets. The information is consumed by network
nodes to perform analysis on how packets for various applications are
flowing through a network.
This draft uses the IPv6 flow label to convey the information to
identify applications. This is a non-standard use of the flow label
and the amount of information that the flow label can carry is quite
limited (the flow label is alternative). A common host to network
signaling solution offers an alternative that would be generic,
extensible and standardizable.
3.5. Routing hints
Host to network signals could be used to indicate routing "hints" to
the network. For instance, a signal might be used to request
services for QoS and the signal might be interpreted by routers when
choosing the right path to provide those services.
It should be noted that host to network signals don't supplant or
replace packet routing. Packets must be deliverable to their
destination solely based on the IP addresses of the packet and a
Routing header if one is present (a Routing header could be
considered a specialized host to network signal). A host to network
signal may be used to affect routing as an optimization.
4. Existing mechanisms
This section surveys some of the current solutions for packet
admission control and requesting networking services. These
solutions tend to generally be ad hoc or architecturally limiting.
4.1. Stateful firewalls and proxies
Stateful firewalls and proxies are the predominantly deployed
techniques to control access to a network and provide services on a
per flow basis. While they provide some benefits of security, they
have a number of problems that have had adverse effects.
Herbert Expires 6 April 2024 [Page 9]
Internet-Draft host2netsig October 2023
4.1.1. Problems with transport stateful network devices
On-path network nodes that maintain transport flow state, such as
firewall and NAT devices, have proven problematic. These devices
break the End-to-End model that has resulted in several detrimental
effects:
* Stateful devices in the network break multi-homing and multi-path.
For instance, when a firewall performs TCP connection tracking,
all packets of the flow in both directions must traverse the
device that has established state. In a multi-homed or multi-path
deployment, if a packet traverses a different firewall device than
the one in which the flow state was established, the result can be
that the connection is broken.
* Stateful devices can be an anonymous single points of failure in
the network path. For instance, stateful devices can break
individual connections mid-flow due to state eviction. Since the
memory for state is a finite resource, stateful network devices
implement eviction policies to prevent resource exhaustion. A
common method is to evict a state once the connection goes idle
for some period of time. To prevent state eviction, an end host
may send keepalives at periodic intervals to make it appear that a
connection isn't idle. A host has no way to determine the idle
timeout of anonymous stateful devices in the path, so it has to
make a guess as the proper frequency of keepalives. Often this
results in packets being sent on the network solely to keep
connections alive and otherwise carry no useful information.
* Stateful devices only work for a narrow set of specific transport
protocols headers that are supported by the device implementation.
As evident by the experience with QUIC deployment, enabling
stateful firewalls for a new transport protocol is a major
undertaking that would likely only be successful if pushed by a
very large player (i.e. QUIC was pushed by Google).
* Stateful devices can only work when the necessary transport layer
headers are parsable and not "too deep" in the packet. For
instance, the TCP headers in an IPsec transport mode packet for
TCP wouldn't be visible to intermediate devices so a stateful
firewall may block such packets. Even if the transport layer
header is in plain text, it may be too deep in the packet such
that an intermediate node is unable to parse the headers; this is
discussed in [I-D.ietf-6man-eh-limits].
Herbert Expires 6 April 2024 [Page 10]
Internet-Draft host2netsig October 2023
* Stateful devices have ossified transport layer protocols.
Transport protocols were originally intended to be End-to-End, and
protocols such as TCP allow negotiation of options between the end
points for extensibility. When a stateful device is in the path,
it is a silent and anonymous, but potentially invasive,
participant in the transport layer protocol. Even if the
endpoints negotiate a options, it might be unacceptable to the
intermediate node which may result in a dropped connection.
* Transport protocols that are encapsulated in UDP, such as QUIC,
have risk of misinterpretation since port numbers are not standard
protocol numbers. Per [RFC7605] "Port numbers are sometimes used
by intermediate devices on a network path,... It is important to
recognize that any interpretation of port numbers -- except at the
endpoints -- may be incorrect". The upshot of this is that an
intermediate node that is parsing an UDP encapsulated protocol
must assume that the interpretation could be incorrect result in
incorrect processing of packets.
4.1.2. Problems with application layer firewalls
Application layer firewalls parse application layers in packets for
the purposes of filtering and classification for services. For
instance, an application layer firewall might parse an HTTP request
to perform virus scanning or fine grained service classification.
Application layer firewalls are typically stateful devices so they
suffer from the same problems as described for transport stateful
devices. Furthermore, they depend on being able to parse transport
layer payloads containing application layer protocols such as HTTP in
TCP. For instance, HTTP is commonly parsed to determine URL, content
type, and other application level information that the network is
interested in for providing services. Application protocol parsing
can only be effective with the specific application layer protocols
that a device is programmed to parse. More importantly, application
layer protocol parsing is essentially obsoleted in the network due
the pervasive use of TLS. TLS interception and SSL inspection,
whereby an intermediate node implements a proxy that decrypts a TLS
session and re-encrypts on behalf of users, is effectively a man-in-
the-middle attack and is considered a security vulnerability
[TLSCERT].
Herbert Expires 6 April 2024 [Page 11]
Internet-Draft host2netsig October 2023
4.2. Differentiated services
In the current Internet, there is little coordination between hosts
and the network to provide services based on characteristics of the
application. Differentiated services [RFC8837] provides an IP layer
means to classify and manage traffic, however it is lacking in
richness of expression and lacks a ubiquitous interface that allows
applications to request service with any granularity. Without
additional state, there is no means for the network infrastructure to
validate that a third party application requesting QoS adheres to
network policies.
4.3. Deep packet inspection
Some network devices perform Deep Packet Inspection (DPI) into the
application layer data to determine whether to admit packets or what
services to apply. Recently, there is a drive to encrypt as much of
the packet as possible including the transport layer. For instance,
this is the approach espoused by QUIC [RFC9000]: "QUIC authenticates
the entirety of each packet and encrypts as much of each packet as is
practical."
The drive to encrypt as much of a packet as possible has
substantially reduced the network's visibility into packets. This is
a prudent security philosophy, however it does reduce the utility of
devices that were previously processing transport layer headers and
application payloads to benefit the users-- for providing QoS as well
as firewalls.
Host to network signaling is a means to maintain the value these
devices without creating dependencies on transport layer protocols
and still maintaining strong security. The application of host to
network signaling is discussed below.
5. Proposals for host to network signaling
This section surveys some proposals to address the need for
applications to signal the network.
5.1. Embedded information in UDP encapsulation
There have been various proposals to embed host to network signals in
the payload of UDP encapsulation, sometimes this technique
colloquially refers to UDP as "the new network layer". [PLUS] (Path
Layer UDP Substrate) proposed a UDP based protocol to allow
applications to signal a rich set of characteristics and service
requirements to the network. The advantages of PLUS is that it's run
over UDP so it doesn't affect or modify network layer protocols, and
Herbert Expires 6 April 2024 [Page 12]
Internet-Draft host2netsig October 2023
it implements its own transport layer state machine as a ubiquitous
means to expose transport layer connection semantics to network nodes
thereby leveraging existing mechanisms in stateful devices such as
stateful firewalls.
The drawbacks of this approach are:
* This technique only works with UDP. To work with other protocol
requires encapsulation and applications need to change. In
particular, this is incompatible with TCP which is a predominant
transport protocol on the Internet.
* Unless a UDP protocol is natively designed to include the embedded
information, a shim header is required between the IP header and
real transport layer header. As demonstrated by QUIC [RFC9000],
the trend in transport protocols is to encrypt as much of the
packet as possible including the transport layer headers; it seems
likely that few new UDP protocols would embed plain text
information, so packets would inevitably need an extra UDP header
which increases the complexity and diminishes feasibility of the
solution.
* Embedding network signals inside UDP payload requires that
intermediate nodes parse and process UDP payloads. Since UDP port
numbers do not have global meaning [RFC7605], there is the
possibility of misinterpretation and of silent data corruption if
intermediate nodes modify UDP payloads. [PLUS] attempts to
mitigate this issue with the use of magic numbers, however that
can only ever be probabilistically correct.
* Making session semantics visible to the network in plaintext is a
security liability for those transport protocols that
intentionally hide transport layer protocols and state. For
example, QUIC [RFC9000] espouses the design principle to encrypt
as much of the packet as possible including the transport layer.
An external protocol that exposes information about QUIC transport
state would be inconsistent with that design principle and likely
considered a security risk.
Herbert Expires 6 April 2024 [Page 13]
Internet-Draft host2netsig October 2023
5.2. UDP Options
UDP Options [I-D.ietf-tsvwg-udp-options] is a new protocol that
defines a transport options for UDP in the "surplus area" of UDP
packets. There are proposals to place host to network signals in UDP
Options ([I-D.kaippallimalil-tsvwg-media-hdr-wireless] and
[I-D.reddy-tsvwg-explcit-signal]). This approach has the advantage
that UDP packets can be annotated with additional information without
affecting the payload or requiring changes to the application
protocol or the application.
The drawbacks of this approach are:
* This approach only works with UDP. To work with other protocols
requires encapsulation and applications need to change. In
particular, this is incompatible with TCP which is a predominant
transport protocol on the Internet.
* UDP Options are in protocol trailers of packets which makes it
difficult to implement processing efficiently. This is especially
true for hardware implementations that are common in high
performance routers for which it may be infeasible to even support
processing of protocol trailers.
* UDP Options are specified as transport layer options, whereas
network signals are more aptly described as network layer options.
Mixing the two together creates problems. For instance, an
intermediate node would only be interested in processing network
options and would ignore transport options. Searching in a list
of TLVs containing both transport and network options may be
expensive especially in a hardware datapath (skipping over TLVs
being ignored is not zero cost processing).
5.3. Overloading the IPv6 Flow Label
There have been a number of proposals to overload the IPv6 flow label
with host to network signaling information
([I-D.cc-v6ops-wlcg-flow-label-marking]). The advantage of this
approach is no change to the application or on-the-wire protocol.
The drawbacks of this approach are:
* The flow label is only twenty bits, and if some bits are reserved
to retain flow entropy then the effective number of bits available
Herbert Expires 6 April 2024 [Page 14]
Internet-Draft host2netsig October 2023
for signaling may be less; for example,
[I-D.cc-v6ops-wlcg-flow-label-marking] uses sixteen bits of the
flow label for signaling). In any case, the amount of information
the flow label could carry is quite limited.
* IPv4 does not have a flow label.
* There is no codepoint to indicate that a flow label is formatted
in a certain way. This could lead to misinterpretation of the
flow label as intermediate nodes.
* The use may reduce flow entropy in the flow label thereby
adversely affecting ECMP routing.
* The flow label is expected to be unchanged for the duration of a
flow so there is no means to change service parameters mid-flow or
per packet.
5.4. Overloading bits in IPv6 addresses
There have been suggestions that host to network signaling could be
embedded in IPv6 addresses. The basic idea is that some number of
low order bits in the 128 bit IPv6 address could be used to convey
the signal, intermediate devices would then interpret these bits as
host to network signals. The higher order bits would be a prefix
that contains the host identifier. This could be done in either the
source or destination address, and nodes could differentiate
addresses containing signaling by their address prefix. The
advantage of this approach is no change to the application or on-the-
wire protocol, and this is independent of the flow label so there is
no reduction of entropy for ECMP routing.
The drawbacks of this approach are:
* The number of bits in an address use for network signaling would
be limited.
* This only works with IPv6. The IPv4 does address space is not
large enough, thirty-two bits, to support embedded information in
addresses.
Herbert Expires 6 April 2024 [Page 15]
Internet-Draft host2netsig October 2023
* Addresses for a flow are fixed for the lifetime of the flow.
There is no means to change service parameters mid-flow or per
packet.
* This changes IPv6 addressing policies including re-numbering
policies, and will likely require changes to IPv6 host stacks.
5.5. Stateful mechanisms
There are proposals to leverage stateful protocols that are
interpreted by network nodes including proposals to use a TLS
extension or a STUN attribute for per flow host for host to network
signaling (([I-D.yiakoumis-network-tokens]). The advantage of these
techniques is that they don't require changes to datapath packets and
are confined to the control plane.
The drawbacks of this approach are:
* The approach require stateful devices in the network and thus the
known issues of stateful devices entail-- problems with
multihoming, state eviction, scaling, etc.
* The mechanisms are transport protocol specific and require
stateful or session based transport protocol semantics (for
instance TLS only works with TCP).
* The signals for a flow are set at flow creation time, so there is
no means to change service parameters mid-flow, or on a per packet
basis.
5.6. Destination Options
There have been suggestions to place network signaling inside IPv6
Destination Options in lieu of using Hop-by-Hop Options. The
rationale is that packets with Destination Options are less likely to
be dropped than Hop-by-Hop Options. The use of Destination Options
for this purpose would entail that intermediate nodes parse
Destination Options.
The drawbacks of this approach are:
Herbert Expires 6 April 2024 [Page 16]
Internet-Draft host2netsig October 2023
* Destination Options were never intended to processed by
intermediate nodes per [RFC8200]. This would be a major change to
IPv6 that is not necessarily backwards compatible.
* The Destination Options header may follow a variable length Hop-
by-Hop Options thereby requiring deeper parsing of packets. The
Hop-by-Hop Options header MUST immediately follow the IPv6 header
if present and is always at a fixed offset in the packet (at a
forty byte offset relative to the start of the IPv6 header),
however the Destination Options header may follow other extension
headers and is at a variable offset in packets.
5.7. Hop-by-Hop Options
IPv6 Hop-by-Hop Options are designed to be an extensible means for
host to signaling and network to host signaling on a per packet
basis. Hop-by-hop Options address most of the issues that affect the
alternate proposals described above: Hop-by-Hop Options work with any
transport protocol, they are variable length to allow rich
expression, they are stateless, they can change between packets of
the same flow, they are outside of transport layer protocol, they are
defined as part of an Internet standard [RFC8200], they are
explicitly intended to be processed by intermediate nodes, they are
located in headers of a packet as opposed to trailers, and they
immediately follow the IPv6 header at a fixed offset in the packet.
The drawbacks of Hop-by-Hop Options are:
* The original processing requirements of IPv6 [RFC2460] impeded
deployment of Hop-by-Hop Options in that all routers in the path
were required to process Hop-by-Hop options.
* Packets containing Hop-by-Hop Options headers may be summarily
discarded by some network providers as a matter of policy
[RFC7872],[RFC9098].
* They are IPv6 specific, there is no equivalent support in IPv4.
The sections below present some mitigations and solutions for these
drawbacks.
Herbert Expires 6 April 2024 [Page 17]
Internet-Draft host2netsig October 2023
5.7.1. Processing requirements of Hop-by-Hop Options
[RFC2460] required that all intermediate nodes in a path process Hop-
by-Hop Options. Some routers deferred processing of Hop-by-Hop
Options to the software slow path, others ignored them, and still
others elected to summarily drop all packets containing Hop-by-Hop
Options. A related issue was that the number of Hop-by-Hop Options
in a packet was only limited by the MTU for the packet. The lack of
a limit, combined with the requirement that nodes must skip over
unknown options (when high order bit in the option type isn't set),
creates the opportunity for DOS attacks by sending long lists of
unknown Hop-by-Hop options. The net effect of these issues was that
deployment of Hop-by-Hop Options on the Internet was impeded.
There is ongoing work to fix, or at least mitigate, the deployability
problems of Hop-by-Hop options:
* [RFC8200] specifies that intermediate nodes MAY ignore Hop-by-Hop
options. There is no concept of a Hop-by-Hop option that must be
processed by all nodes, the current assumption in defining any
option is that it may be processed by only by some nodes in the
path, or even none at all. Allowing nodes to ignore options
they're not interested in, instead of just dropping the packets,
preserves the usability of Hop-by-Hop across the whole path.
* [I-D.ietf-6man-hbh-processing] modifies the processing of Hop-by-
Hop options described in [RFC8200] to make processing of the IPv6
Hop-by-Hop Options header practical. In particular, this
clarifies the expectation that Hop-by-Hop Options should not be
processed in the slow path and that new Hop-by-Hop options are
designed to always be processed in the fast path.
* [I-D.ietf-6man-eh-limits] specifies that intermediate nodes that
process Hop-by-Hop Options may set and apply configurable limits
on Hop-by-Hop processing. For instance, one limit is for the
number of options that are processed; if the limit is exceeded
then options processing is terminated and the packet is forwarded
without any ill-effects. The use of limits is optional and while
specific default limits are recommended, there are no specific
"hard" limits that must be enforced.
* [I-D.herbert-eh-inflight-removal] describes a protocol to remove
Herbert Expires 6 April 2024 [Page 18]
Internet-Draft host2netsig October 2023
Hop-by-Hop Options headers from packets in flight. This could be
applied in host to network signaling by arranging that the last
router that processes a signal in a Hop-by-Hop option removes the
Hop-by-Hop Options header from the packet. By removing the Hop-
by-Hop Options header downstream nodes would allow the packet, and
no functionality is lost since the signal isn't relevant to the
downstream routers.
5.7.2. Support in IPv4
A new IPv4 option could be defined for host to network signaling.
IPv4 options are designed to be inspected by intermediate nodes,
however support is not widespread to the extent that they may be less
deployable than even IPv6 Hop-by-Hop Options. A major reason for
this is that, unlike IPv6, the IPv4 header is variable length. Many
hardware devices have long assumed that the IPv4 header is twenty
bytes, processing a larger header will likely be problematic causing
drops or packets being relegated to slow path processing.
An alternative to IPv4 Options is to enable Extension Headers in IPv4
[I-D.herbert-ipv4-eh]. This solution doesn't affect the IP header,
but does introduce a new IP protocol to IPv4 devices. Some network
nodes might need to be configured to forward the extension header
types and this would affect ECMP routing since the transport layer
headers, continuing the port numbers used in ECMP, would not be
parsed. [I-D.herbert-ipv4-eh] describes repurposing the
Identification field of the IPv4 header to be a flow label to
compensate for the effects on routers if they can't access transport
layer headers.
6. Requirements
The requirements for host to network signaling are:
* A common and standard carrier of host to network signals MUST be
defined. A carrier is a protocol that encapsulates signal data
sent by host or applications and that is processed by network
nodes. The carrier should be extensible, generic, and formatted
to be efficiently processed by network nodes.
* The content of host to network signals MUST have an extensible
format to allow arbitrary services to be requested. The format of
the data SHOULD be concise to minimize the on-the-wire overhead of
a signal.
Herbert Expires 6 April 2024 [Page 19]
Internet-Draft host2netsig October 2023
* Host to network signals MUST be transport protocol agnostic and
usable with any transport protocol including TCP, UDP, IPsec, and
various forms of network tunneling. Host to network signals MUST
be conveyed in network layer headers.
* Host to network signaling MUST be stateless within the network.
In particular intermediate nodes MUST NOT be required to create
and maintain state for transport layer connections.
* Host to network signaling MUST work in a multi-homed and multi-
path environments. For instance, if two packets are sent for a
flow that are annotated with the same host to network signal, the
signal MUST be properly processed even if there are no common on-
path nodes for the two packets.
* A host to network signal MUST be appropriately encrypted or
obfuscated such that to a node not participating in network
signaling the signal is opaque data.
* Host to network signals MUST NOT be mutable.
* If host to network signals are encrypted then there SHOULD be
protocol defined for performing key distribution among those nodes
that perform decryption in the network.
* Host to network signal SHOULD provide a clear API for applications
to minimize the changes to an application. Their use should be an
"add-on" to the existing communications of an application.
* Host to network signaling MUST deter spoofing and other misuse
that might result in unauthorized use of network services or
denial of service attack.
* Host to network signaling SHOULD allow services to be applied in
the return path of a communication. In a client/server
application it is often the packets in the reverse path that
require the most service (for instance, if a video is being
streamed to a client).
Herbert Expires 6 April 2024 [Page 20]
Internet-Draft host2netsig October 2023
* Host to network signals SHOULD employ a IANA managed namespace to
allow different parties to create their own signals without risk
of conflicting with others.
* Host to network signaling SHOULD provide mechanisms or protocols
by which a host or application can request host to network signals
from an agent in its local network. A request can specify the
parameters of services being requested, and the response to a
request is the signal data encapsulating the granted services.
The provided signal data is carried in a host to network signal
that is attached to packets sent by the host or application to be
processed with the requested services. The request protocol MAY
employ protocols such as XML and REST.
* Host to network signals MAY be removed from packets. In some use
case scenarios the host to network signal in packets would only be
processed by one node in the network. For instance, a mobile
device might attach a signal in packets that is only processed by
the first hop router in the RAN. The first hop router maps the
signal to mechanisms in the network fabric to provide the
services, and any downstream routers for the packet don't need to
process the signal. To limit visibility and maximize
compatibility with the downstream routers, the last router that
processes a host to network signal MAY remove the signal from the
packet. If the signal is in a Hop-by-Hop Option then removal of
the data could be accomplished by removing the Hop-by-Hop Header
[I-D.herbert-eh-inflight-removal].
7. Security Considerations
There are three main security considerations:
* Leakage of content specific information to untrusted third parties
must be avoided.
* Host to network signals cannot be forged, illegitimately used, or
otherwise abused.
* The presence or processing of host to network signals cannot lead
to Denial of Service attacks.
Herbert Expires 6 April 2024 [Page 21]
Internet-Draft host2netsig October 2023
Network to host may be exposed to third parties on the Internet
including untrusted and unknown networks in the path of packets.
Therefore, signals should be encrypted or obfuscated by the origin
network.
Host to network signals can have an expiration time, must be
resistant to forgery, and must be non transferable. A host to
network signal should be valid for the specific source and
destination addresses that it was issued for. Signals could
revocable by implementing a banned-list of revoked host to network
signals.
If a network supports host to network signaling, it should manage
resources to avoid Denial of Service for processing signals. Various
techniques to minimize the processing cost and properly provision the
network to handle worst case load should be considered.
8. IANA Considerations
9. References
9.1. Normative References
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017,
<https://www.rfc-editor.org/info/rfc8200>.
9.2. Informative References
[I-D.cc-v6ops-wlcg-flow-label-marking]
Carder, D. W., Chown, T., McKee, S., and M. Babik, "Use of
the IPv6 Flow Label for WLCG Packet Marking", Work in
Progress, Internet-Draft, draft-cc-v6ops-wlcg-flow-label-
marking-02, 10 July 2023,
<https://datatracker.ietf.org/doc/html/draft-cc-v6ops-
wlcg-flow-label-marking-02>.
[I-D.herbert-eh-inflight-removal]
Herbert, T., "Infight Removal of IPv6 Hop-by-Hop and
Routing Headers", Work in Progress, Internet-Draft, draft-
herbert-eh-inflight-removal-01, 2 October 2023,
<https://datatracker.ietf.org/doc/html/draft-herbert-eh-
inflight-removal-01>.
Herbert Expires 6 April 2024 [Page 22]
Internet-Draft host2netsig October 2023
[I-D.herbert-ipv4-eh]
Herbert, T., "IPv4 Extension Headers and Flow Label", Work
in Progress, Internet-Draft, draft-herbert-ipv4-eh-01, 2
May 2019, <https://datatracker.ietf.org/doc/html/draft-
herbert-ipv4-eh-01>.
[I-D.ietf-6man-eh-limits]
Herbert, T., "Limits on Sending and Processing IPv6
Extension Headers", Work in Progress, Internet-Draft,
draft-ietf-6man-eh-limits-07, 27 September 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-6man-eh-
limits-07>.
[I-D.ietf-6man-hbh-processing]
Hinden, R. M. and G. Fairhurst, "IPv6 Hop-by-Hop Options
Processing Procedures", Work in Progress, Internet-Draft,
draft-ietf-6man-hbh-processing-10, 26 September 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-6man-
hbh-processing-10>.
[I-D.ietf-tsvwg-udp-options]
Touch, J. D., "Transport Options for UDP", Work in
Progress, Internet-Draft, draft-ietf-tsvwg-udp-options-23,
15 September 2023, <https://datatracker.ietf.org/doc/html/
draft-ietf-tsvwg-udp-options-23>.
[I-D.kaippallimalil-tsvwg-media-hdr-wireless]
Kaippallimalil, J., Gundavelli, S., and S. Dawkins, "Media
Header Extensions for Wireless Networks", Work in
Progress, Internet-Draft, draft-kaippallimalil-tsvwg-
media-hdr-wireless-02, 5 July 2023,
<https://datatracker.ietf.org/doc/html/draft-
kaippallimalil-tsvwg-media-hdr-wireless-02>.
[I-D.reddy-tsvwg-explcit-signal]
Reddy.K, T., Wing, D., and M. Boucadair, "An Approach for
Encrypted Transport Protocol Path Explicit Signals", Work
in Progress, Internet-Draft, draft-reddy-tsvwg-explcit-
signal-01, 7 July 2023,
<https://datatracker.ietf.org/doc/html/draft-reddy-tsvwg-
explcit-signal-01>.
[I-D.yiakoumis-network-tokens]
Yiakoumis, Y., McKeown, N., and F. Sorensen, "Network
Tokens", Work in Progress, Internet-Draft, draft-
yiakoumis-network-tokens-02, 22 December 2020,
<https://datatracker.ietf.org/doc/html/draft-yiakoumis-
network-tokens-02>.
Herbert Expires 6 April 2024 [Page 23]
Internet-Draft host2netsig October 2023
[PLUS] Tramell, B. and M. Kuehlewind, "Path Layer UDP Substrate
Specification", December 2016,
<https://datatracker.ietf.org/doc/draft-trammell-plus-
spec/00/>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460,
December 1998, <https://www.rfc-editor.org/info/rfc2460>.
[RFC7605] Touch, J., "Recommendations on Using Assigned Transport
Port Numbers", BCP 165, RFC 7605, DOI 10.17487/RFC7605,
August 2015, <https://www.rfc-editor.org/info/rfc7605>.
[RFC7872] Gont, F., Linkova, J., Chown, T., and W. Liu,
"Observations on the Dropping of Packets with IPv6
Extension Headers in the Real World", RFC 7872,
DOI 10.17487/RFC7872, June 2016,
<https://www.rfc-editor.org/info/rfc7872>.
[RFC8558] Hardie, T., Ed., "Transport Protocol Path Signals",
RFC 8558, DOI 10.17487/RFC8558, April 2019,
<https://www.rfc-editor.org/info/rfc8558>.
[RFC8799] Carpenter, B. and B. Liu, "Limited Domains and Internet
Protocols", RFC 8799, DOI 10.17487/RFC8799, July 2020,
<https://www.rfc-editor.org/info/rfc8799>.
[RFC8837] Jones, P., Dhesikan, S., Jennings, C., and D. Druta,
"Differentiated Services Code Point (DSCP) Packet Markings
for WebRTC QoS", RFC 8837, DOI 10.17487/RFC8837, January
2021, <https://www.rfc-editor.org/info/rfc8837>.
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", RFC 9000,
DOI 10.17487/RFC9000, May 2021,
<https://www.rfc-editor.org/info/rfc9000>.
[RFC9098] Gont, F., Hilliard, N., Doering, G., Kumari, W., Huston,
G., and W. Liu, "Operational Implications of IPv6 Packets
with Extension Headers", RFC 9098, DOI 10.17487/RFC9098,
September 2021, <https://www.rfc-editor.org/info/rfc9098>.
Herbert Expires 6 April 2024 [Page 24]
Internet-Draft host2netsig October 2023
[RFC9419] Arkko, J., Hardie, T., Pauly, T., and M. Kühlewind,
"Considerations on Application - Network Collaboration
Using Path Signals", RFC 9419, DOI 10.17487/RFC9419, July
2023, <https://www.rfc-editor.org/info/rfc9419>.
[TLSCERT] "Alert (TA17-075A), HTTPS Interception Weakens TLS
Security", March 2017, <https://www.cisa.gov/news-
events/alerts/2017/03/16/https-interception-weakens-tls-
security>.
[_3GPP-5G] "5G; System Architecture for the 5G System", September
2018, <https://www.etsi.org/deliver/
etsi_ts/123500_123599/123501/15.03.00_60/
ts_123501v150300p.pdf>.
Author's Address
Tom Herbert
SiPanda
Santa Clara, CA,
United States of America
Email: tom@herbertland.com
Herbert Expires 6 April 2024 [Page 25]