Internet DRAFT - draft-elkins-v6ops-eh-deepdive-cdn
draft-elkins-v6ops-eh-deepdive-cdn
IPv6 Operations N. Elkins
Internet-Draft M. Ackermann
Intended status: Best Current Practice INT Council
Expires: 24 August 2023 D. Dhody
India Internet Engineering Society
20 February 2023
Deep Dive into IPv6 Extension Header Testing: Behind a CDN
draft-elkins-v6ops-eh-deepdive-cdn-01
Abstract
This document proposes a methodology for isolating the location and
reasons for IPv6 Extension Headers blockage in a network where the
operator has access to install products and run diagnostic tests on
both the client and server. The client will be outside the Content
Delivery Network (CDN) and the server inside the CDN. This document
will discuss the testing and topology which need to be considered
when testing using a CDN infrastructure. This document is a part of
the Deep Dive into EH Testing set of documents.
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 24 August 2023.
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
Elkins, et al. Expires 24 August 2023 [Page 1]
Internet-Draft Deep Dive IPv6 EH CDN February 2023
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Problem Description . . . . . . . . . . . . . . . . . . . 2
1.2. Initial Setup Requirements . . . . . . . . . . . . . . . 3
2. CDN Topology and Concepts . . . . . . . . . . . . . . . . . . 3
3. Connections . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Connection from Client to Edge of CDN . . . . . . . . . . 5
3.2. Connection from Edge of CDN to Origin Server . . . . . . 5
4. What can go wrong? . . . . . . . . . . . . . . . . . . . . . 6
5. Diagnostic Methodology . . . . . . . . . . . . . . . . . . . 6
5.1. Initial Test: CURL to IP Address of Server without EH . . 6
5.2. Second Test: CURL to IP Address of Server with EH . . . . 7
6. Recommendations and Further Work . . . . . . . . . . . . . . 8
7. Security Considerations . . . . . . . . . . . . . . . . . . . 8
8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 8
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
10.1. Normative References . . . . . . . . . . . . . . . . . . 8
10.2. Informative References . . . . . . . . . . . . . . . . . 8
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 9
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction
1.1. Problem Description
[I-D.elkins-v6ops-eh-deepdive-fw] proposes a framework to isolate the
problem of where the IPv6 [RFC8200] packet is being dropped when
Extension Headers (EHs) are used.
This document further proposes a framework to isolate the location
and reasons for IPv6 Extension Headers blockage in a network where
the operator has access to install products and run diagnostic tests
on both the client and server. The client will be outside the
Content Delivery Network (CDN) and the server inside the CDN.
The reason it is important to have control over both client and
server is so that diagnostic tests can be run at both ends at the
same time. This way, the operator can see if the packets are being
sent properly and received properly.
Elkins, et al. Expires 24 August 2023 [Page 2]
Internet-Draft Deep Dive IPv6 EH CDN February 2023
Our initial findings are that IPv6 Extension Headers will work to the
edge of the CDN. CDN providers need to be encouraged to:
* Support IPv6 to the Origin Server
* Support Extension Headers to the Origin Server
1.2. Initial Setup Requirements
The initial setup requires a:
* Client
* Server
* Content Delivery Network
You also need to decide whether to craft packets with EH or to enable
a client and server which have the ability to send EH along with each
packet. You may wish to refer to the discussion in the
[I-D.elkins-v6ops-eh-deepdive-fw] document for a detailed review of
the options as well as the pros and cons of the decision. To set up
the client and server, you may wish to refer to the discussion in the
[I-D.elkins-v6ops-eh-deepdive-cs] document.
This document will focus on the setup and topology of the CDN network
and the challenges this poses for testing.
2. CDN Topology and Concepts
You may wish to view Figure 1 for a simple topology. Clearly, within
a CDN network, there can be a great deal of complexity including
connections to other CDNs and so forth.
Elkins, et al. Expires 24 August 2023 [Page 3]
Internet-Draft Deep Dive IPv6 EH CDN February 2023
+-----------------+
+--------------------------+ +-----------------+ |
| | | CDN Network | |
+--------+ | | | +---------+ | |
| client |---------| Internet |----| | Edge | | |
+--------+ | | | | Server | | |
| | | +---------+ | |
+--------------------------+ | | |
| (LB, Firewall | |
| Cache etc) | |
| | |
| | |
| | |
| |-+
+-----------------+
|
| (*)
|
+---------+
| Origin |
| server |
+---------+
(*) - can be over the internet
Figure 1: Server behind CDN
The basic premise of a Content Delivery Network is to place servers
which hold the content of a web site nearer to the client so as to
speed the delivery of the desired data. Let us call these "Edge
Servers". You may see the term "Cache Server" also used in some
documentation on CDNs.
The web site which is the real end server, we will call the "origin
server". This origin server is what we control and is enabled to
send IPv6 Extension Headers.
3. Connections
In this document, we will confine ourselves to a discussion of the
connections between:
* the client and the edge of the CDN
* the edge of the CDN and the origin server
These are the connections which we can observe and trace.
Elkins, et al. Expires 24 August 2023 [Page 4]
Internet-Draft Deep Dive IPv6 EH CDN February 2023
3.1. Connection from Client to Edge of CDN
Before initiating the connection from the client (which we control)
to the CDN, we must discuss the role of DNS. When we initially place
our web server (origin server) behind the CDN, we must give the CDN
provider the ability to resolve our domain name, that is the CDN will
become the DNS server for us.
Some CDNs use an external DNS service or resolver. In any case, what
is important is that the authoritative DNS must resolve to an IP
address owned by a CDN Edge server (which may vary by client
location).
We must then configure the DNS to resolve the domain name into an
IPv6 address or an IPv4 address. We can also tell the DNS which type
of address to prefer. This will dictate the way how the connection
from the client to the edge of the CDN is done.
CDN providers may differ in their support of:
* whether resolution to an IPv6 address is provided
* whether resolution to an IPv6 address is preferred
One might think that even if resolution to an IPv6 address is not
preferred, we may be able to force resolution to IPv6 address by
creating an IPv6-only server. This would be an incorrect assumption.
We will discuss this further in the next section.
3.2. Connection from Edge of CDN to Origin Server
CDN providers may differ in their support of whether the connection
from the edge of the CDN network to the origin server will be in IPv6
or IPv4. For some CDNs, it may be possible to configure IPv6 to the
origin. In other cases, it is not possible to do so. That is, the
connection to the origin server will travel in IPv4 regardless of
whether the connection from the client to the edge of the CDN is
IPv6.
As discussed previously, one might think that even if DNS resolution
to an IPv6 address is not preferred, we may be able to force
resolution to IPv6 address by creating an IPv6-only server. We may
also apply that thinking to the connection between the edge of the
CDN to the origin server. In both cases, we would be wrong. In many
cases, the connection simply fails to work at all.
Elkins, et al. Expires 24 August 2023 [Page 5]
Internet-Draft Deep Dive IPv6 EH CDN February 2023
4. What can go wrong?
We have spent time in discussing the IPv6 support, in particular to
the origin servers by CDN providers because clearly, if IPv6 itself
is not supported to the origin server, then IPv6 Extension Headers to
the origin server will not work.
Even in the cases where IPv6 to the origin server is provided, we
know of no cases where IPv6 Extension Headers are passed from the
edge of the CDN provider to the origin server. This is a
WorkInProgress. We continue to work with some CDN providers to
discuss this type of support.
5. Diagnostic Methodology
Once you have set up the client, server and CDN definitions properly,
we may begin to test.
The following methodology assumes that the operator has:
* an Origin Server enabled to send EH with every packet
* the Origin Server is behind a CDN
* the Origin Server is running an IPv6 enabled web server (Apache /
NGINX / Tomcat, et al)
* a packet trace capture tool such as TCPDump, WireShark, etc.
With this setup, only the server needs to be enabled to send EH. The
client does not need to be able to send EHs, although, if that is a
possibility, it will definitely add richness to the testing. You may
wish to see the Deep-Dive Framework draft for more explanation on how
to send EHs.
We will do two sets of tests:
1. Without EH (to test initial connectivity)
2. With EH (to test EH transmission)
5.1. Initial Test: CURL to IP Address of Server without EH
The first step is to see if the client and server can communicate
properly without EH. If that is successful, we can then continue to
enable EH.
Elkins, et al. Expires 24 August 2023 [Page 6]
Internet-Draft Deep Dive IPv6 EH CDN February 2023
Step 1: Bring up the web server on the server. Configure it to NOT
send EHs Step 2: Start a TCPDump / Wireshark packet trace on the
server Step 3: Start a TCPDump / Wireshark packet trace on the client
Step 4: Do an HTTP CURL from the client to the Domain Name of the
server.
You may wish to use HTTP rather than HTTPS to avoid problems with TLS
or certificate issues.
You should see packets flowing from both ends in the packet trace.
If you do not see packets, then there may be an something on the path
which is stopping traffic or a configuration problem. This needs to
be resolved before proceeding.
Questions you should ask:
1. Are you sending IPv6 packets from the client to the CDN Edge or
Cache Server?
2. Are you sending IPv6 packets from the CDN Edge or Cache Server to
the Origin Server?
If the answer to the first question is "No", then you should look at
the DNS or other configuration.
If the answer to the second question is "No", then you should see if
it is possible with your CDN to send IPv6 packets to the Origin
Server. If this is possible, then you may have a configuration
problem of some kind. This needs to be fixed before proceeding.
5.2. Second Test: CURL to IP Address of Server with EH
If you are successful with the previous tests, then you may enable
EHs on the server end.
Step 1: Enable EH on the server hosting the web server Step 2: Start
a TCPDump / Wireshark packet trace on the server Step 3: Start a
TCPDump / Wireshark packet trace on the client Step 4: Do an HTTP
CURL from the client to the Domain Name of the EH enabled test
server. You may wish to use HTTP rather than HTTPS to avoid problems
with TLS or certificate issues.
You should see packets flowing from both ends in the packet trace.
The EHs will be from the server only. If you do not see packets,
then decide which of the following problems matches what you are
seeing best.
1. Packets are sent by the client but not received by the server
Elkins, et al. Expires 24 August 2023 [Page 7]
Internet-Draft Deep Dive IPv6 EH CDN February 2023
2. Packets are sent by the server but not received by the client
In these scenarios, you will most likely need to discuss with your
CDN provider if it is possible to send IPv6 packets with EH to the
Origin Server.
6. Recommendations and Further Work
Our initial findings are that IPv6 Extension Headers will work to the
edge of the CDN. CDN providers need to be encouraged to:
* Support IPv6 to the Origin Server
* Support Extension Headers to the Origin Server
7. Security Considerations
This document has no security considerations.
8. Privacy Considerations
This document has no privacy considerations.
9. IANA Considerations
This document has no IANA actions.
10. References
10.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/rfc/rfc8200>.
10.2. Informative References
[I-D.elkins-v6ops-eh-deepdive-cs]
Elkins, N., ackermann, M., and D. Dhody, "Deep Dive into
IPv6 Extension Header Testing: Standalone Client /
Server", Work in Progress, Internet-Draft, draft-elkins-
v6ops-eh-deepdive-cs-00, 5 October 2022,
<https://datatracker.ietf.org/doc/html/draft-elkins-v6ops-
eh-deepdive-cs-00>.
Elkins, et al. Expires 24 August 2023 [Page 8]
Internet-Draft Deep Dive IPv6 EH CDN February 2023
[I-D.elkins-v6ops-eh-deepdive-fw]
Elkins, N., ackermann, M., and D. Dhody, "Deep Dive into
IPv6 Extension Header Testing", Work in Progress,
Internet-Draft, draft-elkins-v6ops-eh-deepdive-fw-01, 21
October 2022, <https://datatracker.ietf.org/doc/html/
draft-elkins-v6ops-eh-deepdive-fw-01>.
Acknowledgments
TODO acknowledge.
Contributors
TODO contributors.
Authors' Addresses
Nalini Elkins
Industry Network Technology Council
United States of America
Phone: +1 831 234 4232
Email: nalini.elkins@insidethestack.com
Michael Ackermann
Industry Network Technology Council
United States of America
Phone: +1 248 703 3600
Email: mackermann@bcbsm.com
URI: https://www.bcbsm.com
Dhruv Dhody
India Internet Engineering Society
India
Email: dhruv.ietf@gmail.com
Elkins, et al. Expires 24 August 2023 [Page 9]