Telechat Review of draft-ietf-bmwg-ngfw-performance-13
review-ietf-bmwg-ngfw-performance-13-iotdir-telechat-eckert-2022-01-30-00
| Request | Review of | draft-ietf-bmwg-ngfw-performance |
|---|---|---|
| Requested revision | No specific revision (document currently at 13) | |
| Type | Telechat Review | |
| Team | Internet of Things Directorate (iotdir) | |
| Deadline | 2022-01-30 | |
| Requested | 2022-01-18 | |
| Requested by | Éric Vyncke | |
| Authors | Balamuhunthan Balarajah , Carsten Rossenhoevel , Brian Monkman | |
| Draft last updated | 2022-01-30 | |
| Completed reviews |
Secdir Early review of -00
by
Kathleen Moriarty
(diff)
Tsvart Last Call review of -12 by Tommy Pauly (diff) Tsvart Telechat review of -13 by Tommy Pauly Iotdir Telechat review of -13 by Toerless Eckert Genart Telechat review of -13 by Matt Joras |
|
| Assignment | Reviewer | Toerless Eckert |
| State | Completed | |
| Review |
review-ietf-bmwg-ngfw-performance-13-iotdir-telechat-eckert-2022-01-30
|
|
| Posted at | https://mailarchive.ietf.org/arch/msg/iot-directorate/p_nx-4R8RHAT1dt1W_laupy32WE | |
| Reviewed revision | 13 | |
| Result | On the Right Track | |
| Completed | 2022-01-30 |
review-ietf-bmwg-ngfw-performance-13-iotdir-telechat-eckert-2022-01-30-00
Reviewer: toerless eckert
Review result: On the right track
Summary:
Thanks a lot for this work. Its an immensibley complex and important problem to
tackle. I have in my time only measured router traffic performance and that
already was an infinite matrix. This looks to me like some order of infinite
bigger a problem.
Meaning: however questioning my reviews feedback may be wrt. nitpicking about
the document, i think that the document in its existing form is already a great
advancement to measure performance for these security devices, and in doubt
should be progressed rather faster than slower especially because in my
(limited) market understanding, many security device vendors will only provide
actual feedback once it is an RFC (community i think overall more conservative
in adopting IETF work, most not proactively engaging during draft stage).
But of course: feel free to improve the document with any of the
feedback/suggestions in my review that you feel are useful.
Maybe high level, i would suggest most importantly to add more explanations,
especially in an appropriate section about those aspects known NOT to be
considered (but potentially important) so that the applicability of the tests
that are described are better put into perspective by adopters of the draft to
their real-world situations.
Favorite pet topic: Add req. to measure the DUT through a power meter and
report consumption so we can start making sure products with lower power
consumptions will see sales benefits when reporting numbers from this document
(see details inline).
Formal:
I choose to keep the whole document inline to make it easier for readers to vet
my comments without having to open in parallel a copy of the whole document.
Rest inline - email ends with string EOF (i have seen some email truncation
happening).
Thanks!
Toerless
---
Please fix the following nits - from https://www.ietf.org/tools/idnits
idnits 2.17.00 (12 Aug 2021)
> /tmp/idnits29639/draft-ietf-bmwg-ngfw-performance-13.txt:
> ...
>
> Checking nits according to https://www.ietf.org/id-info/checklist :
> ----------------------------------------------------------------------------
>
> ** The abstract seems to contain references ([RFC3511]), which it
> shouldn't. Please replace those with straight textual mentions of the
> documents in question.
>
> == There are 1 instance of lines with non-RFC6890-compliant IPv4 addresses
> in the document. If these are example addresses, they should be changed.
>
> == There are 1 instance of lines with non-RFC3849-compliant IPv6 addresses
> in the document. If these are example addresses, they should be changed.
>
> -- The draft header indicates that this document obsoletes RFC3511, but the
> abstract doesn't seem to directly say this. It does mention RFC3511
> though, so this could be OK.
>
>
> Miscellaneous warnings:
> ----------------------------------------------------------------------------
>
> == The document seems to lack the recommended RFC 2119 boilerplate, even if
> it appears to use RFC 2119 keywords.
>
> (The document does seem to have the reference to RFC 2119 which the
> ID-Checklist requires).
>
>
The lines in the following commented copy of the document are from idnits too
When a comment/question is preceeded with "Nit:", then it indicates, that
it seems to me the best answer would be modified draft text.
When a comment/question is preceeded with "Q:", then i am actually not so
sure what the outcome could be, so an answer in mail would be a start.
2 Benchmarking Methodology Working Group B. Balarajah
3 Internet-Draft
4 Obsoletes: 3511 (if approved) C. Rossenhoevel
5 Intended status: Informational EANTC AG
6 Expires: 16 July 2022 B. Monkman
7 NetSecOPEN
8 January 2022
10 Benchmarking Methodology for Network Security Device Performance
11 draft-ietf-bmwg-ngfw-performance-13
13 Abstract
15 This document provides benchmarking terminology and methodology for
16 next-generation network security devices including next-generation
17 firewalls (NGFW), next-generation intrusion prevention systems
18 (NGIPS), and unified threat management (UTM) implementations. The
Nit: Why does it have to be next-generation for all example type
of devices except for UTMs, and what does next-generation mean.
Would suggest to rewrite text so reader does not ask herself these
questions.
18 (NGIPS), and unified threat management (UTM) implementations. The
19 main areas covered in this document are test terminology, test
20 configuration parameters, and benchmarking methodology for NGFW and
21 NGIPS. This document aims to improve the applicability,
I don't live and breathe the security device TLA space, but i start to
suspect a UTM is some platform on which FW and IPS could run as software
modules, and because its only software you assume the UTM does not have
to be next-gen ? I wonder how much of this guesswork/thought process you
want the reader to have or if you want to avoid that by being somehawt
clearer...
21 NGIPS. This document aims to improve the applicability,
22 reproducibility, and transparency of benchmarks and to align the test
23 methodology with today's increasingly complex layer 7 security
24 centric network application use cases. As a result, this document
25 makes [RFC3511] obsolete.
[minor] I kinda wonder if / how obsoleting RFC3511 could/should work.
I understand when we do a bis of a standard protocol and really don't
want anyone to implement the older version. But unless there is a
similar IETF mandate going along with this draft that says
non-NG FW and non-NG IPS are hereby obsoleted by the IETF, i can not
see how this draft can obsolete RFC3511 because it simply applies
to a different type of benchmarked entities. And RFC3511 would stay
on forever for whatever we call non-NG.
[minor] At least i think that is the case Unless this document actually does
apply also to non-NG FW/IPS and can therefore superceed RFC3511 and actually
obsolete it. But the text so far does say the opposite.
[mayor] I observe that RFC3511 asks to measure and report goodput (5.6.5.2),
and this document does not mention the term, and if at all, the loss in
performance of client/server TCP or QUIC connections through behavior of the
DUT (such as proxying) is at best covered indirectly by mentioning parameters
such as less than 5% reduction in throughput. If this document is superceeding
rfc3511 i think it should have a very explicit section discussing goodput - and
maybe expanding on it.
consider for example the impact of TCP connection throughput and goodput.
Very likely DUT proxying TCP connections will have quite a different
performance/goodput impact for a calssical web-page vs. video streaming.
Therefore i am also worried about sending only average bitrates per session as
opposed to some sessions going up to e.g. 500Mbps for a video streaming
connection (example best commercial available UHD video streaming today). Those
type of sessions might incur a lot of goodput loss with bad DUTs, but if i
understand the test profile, then the per-TCP connection througput of the test
profiles will be much less than 100Mbps. If such range in client session
bitrates is not meant to be tested, it might at least be useful to add a
section listing candidate gaps like this. Another one for example is the impact
of higher RTT especially between DUT and server in the Internet. This mostly
challenges TCP window size operation on DUT operating as TCP hosts and also
their ability to buffer for retransmissions. Test Equipment IMHO may/should be
able to emulate such long RTT. But this is not included in this document (RTT
not mentioned).
Beside goodput related issues, there are a couple other points in this review
that may be too difficult to fix this late in the development of the document,
but maybe for any of those considered to be useful input maybe add them to a
section "out-of-scope (for future versions) considerations" or the like to
capture them.
27 Status of This Memo
29 This Internet-Draft is submitted in full conformance with the
30 provisions of BCP 78 and BCP 79.
32 Internet-Drafts are working documents of the Internet Engineering
33 Task Force (IETF). Note that other groups may also distribute
34 working documents as Internet-Drafts. The list of current Internet-
35 Drafts is at https://datatracker.ietf.org/drafts/current/.
37 Internet-Drafts are draft documents valid for a maximum of six months
38 and may be updated, replaced, or obsoleted by other documents at any
39 time. It is inappropriate to use Internet-Drafts as reference
40 material or to cite them other than as "work in progress."
42 This Internet-Draft will expire on 5 July 2022.
44 Copyright Notice
46 Copyright (c) 2022 IETF Trust and the persons identified as the
47 document authors. All rights reserved.
49 This document is subject to BCP 78 and the IETF Trust's Legal
50 Provisions Relating to IETF Documents (https://trustee.ietf.org/
51 license-info) in effect on the date of publication of this document.
52 Please review these documents carefully, as they describe your rights
53 and restrictions with respect to this document. Code Components
54 extracted from this document must include Revised BSD License text as
55 described in Section 4.e of the Trust Legal Provisions and are
56 provided without warranty as described in the Revised BSD License.
58 Table of Contents
60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
61 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 4
62 3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
63 4. Test Setup . . . . . . . . . . . . . . . . . . . . . . . . . 4
64 4.1. Testbed Configuration . . . . . . . . . . . . . . . . . . 5
65 4.2. DUT/SUT Configuration . . . . . . . . . . . . . . . . . . 6
66 4.2.1. Security Effectiveness Configuration . . . . . . . . 12
67 4.3. Test Equipment Configuration . . . . . . . . . . . . . . 12
68 4.3.1. Client Configuration . . . . . . . . . . . . . . . . 12
69 4.3.2. Backend Server Configuration . . . . . . . . . . . . 15
70 4.3.3. Traffic Flow Definition . . . . . . . . . . . . . . . 17
71 4.3.4. Traffic Load Profile . . . . . . . . . . . . . . . . 17
72 5. Testbed Considerations . . . . . . . . . . . . . . . . . . . 18
73 6. Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . 19
74 6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 19
75 6.2. Detailed Test Results . . . . . . . . . . . . . . . . . . 21
76 6.3. Benchmarks and Key Performance Indicators . . . . . . . . 21
77 7. Benchmarking Tests . . . . . . . . . . . . . . . . . . . . . 23
78 7.1. Throughput Performance with Application Traffic Mix . . . 23
79 7.1.1. Objective . . . . . . . . . . . . . . . . . . . . . . 23
80 7.1.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 23
81 7.1.3. Test Parameters . . . . . . . . . . . . . . . . . . . 23
82 7.1.4. Test Procedures and Expected Results . . . . . . . . 25
83 7.2. TCP/HTTP Connections Per Second . . . . . . . . . . . . . 26
84 7.2.1. Objective . . . . . . . . . . . . . . . . . . . . . . 26
85 7.2.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 27
86 7.2.3. Test Parameters . . . . . . . . . . . . . . . . . . . 27
87 7.2.4. Test Procedures and Expected Results . . . . . . . . 28
88 7.3. HTTP Throughput . . . . . . . . . . . . . . . . . . . . . 30
89 7.3.1. Objective . . . . . . . . . . . . . . . . . . . . . . 30
90 7.3.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 30
91 7.3.3. Test Parameters . . . . . . . . . . . . . . . . . . . 30
92 7.3.4. Test Procedures and Expected Results . . . . . . . . 32
93 7.4. HTTP Transaction Latency . . . . . . . . . . . . . . . . 33
94 7.4.1. Objective . . . . . . . . . . . . . . . . . . . . . . 33
95 7.4.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 33
96 7.4.3. Test Parameters . . . . . . . . . . . . . . . . . . . 34
97 7.4.4. Test Procedures and Expected Results . . . . . . . . 35
98 7.5. Concurrent TCP/HTTP Connection Capacity . . . . . . . . . 36
99 7.5.1. Objective . . . . . . . . . . . . . . . . . . . . . . 36
100 7.5.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 36
101 7.5.3. Test Parameters . . . . . . . . . . . . . . . . . . . 37
102 7.5.4. Test Procedures and Expected Results . . . . . . . . 38
103 7.6. TCP/HTTPS Connections per Second . . . . . . . . . . . . 39
104 7.6.1. Objective . . . . . . . . . . . . . . . . . . . . . . 40
105 7.6.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 40
106 7.6.3. Test Parameters . . . . . . . . . . . . . . . . . . . 40
107 7.6.4. Test Procedures and Expected Results . . . . . . . . 42
108 7.7. HTTPS Throughput . . . . . . . . . . . . . . . . . . . . 43
109 7.7.1. Objective . . . . . . . . . . . . . . . . . . . . . . 43
110 7.7.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 43
111 7.7.3. Test Parameters . . . . . . . . . . . . . . . . . . . 43
112 7.7.4. Test Procedures and Expected Results . . . . . . . . 45
113 7.8. HTTPS Transaction Latency . . . . . . . . . . . . . . . . 46
114 7.8.1. Objective . . . . . . . . . . . . . . . . . . . . . . 46
115 7.8.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 46
116 7.8.3. Test Parameters . . . . . . . . . . . . . . . . . . . 46
117 7.8.4. Test Procedures and Expected Results . . . . . . . . 48
118 7.9. Concurrent TCP/HTTPS Connection Capacity . . . . . . . . 49
119 7.9.1. Objective . . . . . . . . . . . . . . . . . . . . . . 49
120 7.9.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 49
121 7.9.3. Test Parameters . . . . . . . . . . . . . . . . . . . 49
122 7.9.4. Test Procedures and Expected Results . . . . . . . . 51
123 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52
124 9. Security Considerations . . . . . . . . . . . . . . . . . . . 53
125 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 53
126 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 53
127 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 53
128 12.1. Normative References . . . . . . . . . . . . . . . . . . 53
129 12.2. Informative References . . . . . . . . . . . . . . . . . 53
130 Appendix A. Test Methodology - Security Effectiveness
131 Evaluation . . . . . . . . . . . . . . . . . . . . . . . 54
132 A.1. Test Objective . . . . . . . . . . . . . . . . . . . . . 55
133 A.2. Testbed Setup . . . . . . . . . . . . . . . . . . . . . . 55
134 A.3. Test Parameters . . . . . . . . . . . . . . . . . . . . . 55
135 A.3.1. DUT/SUT Configuration Parameters . . . . . . . . . . 55
136 A.3.2. Test Equipment Configuration Parameters . . . . . . . 55
137 A.4. Test Results Validation Criteria . . . . . . . . . . . . 56
138 A.5. Measurement . . . . . . . . . . . . . . . . . . . . . . . 56
139 A.6. Test Procedures and Expected Results . . . . . . . . . . 57
140 A.6.1. Step 1: Background Traffic . . . . . . . . . . . . . 57
141 A.6.2. Step 2: CVE Emulation . . . . . . . . . . . . . . . . 58
142 Appendix B. DUT/SUT Classification . . . . . . . . . . . . . . . 58
143 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 58
145 1. Introduction
147 18 years have passed since IETF recommended test methodology and
148 terminology for firewalls initially ([RFC3511]). The requirements
149 for network security element performance and effectiveness have
150 increased tremendously since then. In the eighteen years since
[nit] What is a network security element ? Please provide reference or define.
If we are talking about them in this doc why are they not mentioned in the
abstract ?
150 increased tremendously since then. In the eighteen years since
151 [RFC3511] was published, recommending test methodology and
152 terminology for firewalls, requirements and expectations for network
153 security elements has increased tremendously. Security function
[nit] This does not parse as correct english to me "recommending test
methodology ... has increased tremendously". It would, if you mean that more
and more test methodologies where recommended, but not if there is an
outstanding need to do so (which this document intends to fill).
[nit] Why does the recommending part apply only to firewalls and the
requirements and expectations only to security elements ?
153 security elements has increased tremendously. Security function
[nit] What is a security function ? (i know, but i don't know if the reader is
supposed to know). Aka: provide reference, add terminology section or define.
Maybe easiest to restructure this intro paragraph to start with the
explanation of the evolution from firewalls to network security elements
which support one or more securit functions including firewall, intrusion
detection etc. pp - and then conclude easily how this means that this
requires this document to define all the good BMWG stuff it hopefully does.
Although a terminology section is never a bad thing either ;-)
154 implementations have evolved to more advanced areas and have
155 diversified into intrusion detection and prevention, threat
156 management, analysis of encrypted traffic, etc. In an industry of
157 growing importance, well-defined, and reproducible key performance
158 indicators (KPIs) are increasingly needed to enable fair and
159 reasonable comparison of network security functions. All these
[nit] maybe add what to compare - performance, functionality, scale,
flexibility, adjustability - or if you knowingly only discuss subsets
of these aspects, then maybe still list all the aspects you are aware
of to be of interest to likely readers of this document and summarize
those that you will and those that you won't cover in this document, so
that the readers don't have to continue reading the document hoping to find
them described.
160 reasons have led to the creation of a new next-generation network
161 security device benchmarking document, which makes [RFC3511]
162 obsolete.
[nit] as mentioned above, whether or not the obsolete is true is
not clear to me yet.
164 2. Requirements
166 The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
167 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
168 "OPTIONAL" in this document are to be interpreted as described in BCP
169 14 [RFC2119], [RFC8174] when, and only when, they appear in all
170 capitals, as shown here.
172 3. Scope
174 This document provides testing terminology and testing methodology
175 for modern and next-generation network security devices that are
176 configured in Active ("Inline", see Figure 1 and Figure 2) mode. It
[nit] The word Active does not again happen in the document, instead, the
description on line 261 defines Inline mode as "active", which in my book
makes 176+261 a perfect circular definition. I would suggest to have a
terminology section that define "Inline", for example by also adding one
most likely possible alternative mode description.
177 covers the validation of security effectiveness configurations of
[nit] security configuration effectiveness ?
179 network security devices, followed by performance benchmark testing.
179 This document focuses on advanced, realistic, and reproducible
180 testing methods. Additionally, it describes testbed environments,
[nit] are you sure advanced and realistic are meant to characterize the
testing method or the scenario that is being tested ? "reroducible
testing methods for advanced real world scenarios" ?
181 test tool requirements, and test result formats.
183 4. Test Setup
185 Test setup defined in this document applies to all benchmarking tests
[nit] "/Test setup defined/The test setup defined/
186 described in Section 7. The test setup MUST be contained within an
187 Isolated Test Environment (see Section 3 of [RFC6815]).
189 4.1. Testbed Configuration
191 Testbed configuration MUST ensure that any performance implications
192 that are discovered during the benchmark testing aren't due to the
[nit] /aren't/are not/
193 inherent physical network limitations such as the number of physical
194 links and forwarding performance capabilities (throughput and
195 latency) of the network devices in the testbed. For this reason,
196 this document recommends avoiding external devices such as switches
197 and routers in the testbed wherever possible.
199 In some deployment scenarios, the network security devices (Device
200 Under Test/System Under Test) are connected to routers and switches,
201 which will reduce the number of entries in MAC or ARP tables of the
202 Device Under Test/System Under Test (DUT/SUT). If MAC or ARP tables
203 have many entries, this may impact the actual DUT/SUT performance due
204 to MAC and ARP/ND (Neighbor Discovery) table lookup processes. This
205 document also recommends using test equipment with the capability of
[nit] /also/therefore/
206 emulating layer 3 routing functionality instead of adding external
207 routers in the testbed.
209 The testbed setup Option 1 (Figure 1) is the RECOMMENDED testbed
210 setup for the benchmarking test.
212 +-----------------------+ +-----------------------+
213 | +-------------------+ | +-----------+ | +-------------------+ |
214 | | Emulated Router(s)| | | | | | Emulated Router(s)| |
215 | | (Optional) | +----- DUT/SUT +-----+ (Optional) | |
216 | +-------------------+ | | | | +-------------------+ |
217 | +-------------------+ | +-----------+ | +-------------------+ |
218 | | Clients | | | | Servers | |
219 | +-------------------+ | | +-------------------+ |
220 | | | |
221 | Test Equipment | | Test Equipment |
222 +-----------------------+ +-----------------------+
224 Figure 1: Testbed Setup - Option 1
226 If the test equipment used is not capable of emulating layer 3
227 routing functionality or if the number of used ports is mismatched
228 between test equipment and the DUT/SUT (need for test equipment port
229 aggregation), the test setup can be configured as shown in Figure 2.
231 +-------------------+ +-----------+ +--------------------+
232 |Aggregation Switch/| | | | Aggregation Switch/|
233 | Router +------+ DUT/SUT +------+ Router |
234 | | | | | |
235 +----------+--------+ +-----------+ +--------+-----------+
236 | |
237 | |
238 +-----------+-----------+ +-----------+-----------+
239 | | | |
240 | +-------------------+ | | +-------------------+ |
241 | | Emulated Router(s)| | | | Emulated Router(s)| |
242 | | (Optional) | | | | (Optional) | |
243 | +-------------------+ | | +-------------------+ |
244 | +-------------------+ | | +-------------------+ |
245 | | Clients | | | | Servers | |
246 | +-------------------+ | | +-------------------+ |
247 | | | |
248 | Test Equipment | | Test Equipment |
249 +-----------------------+ +-----------------------+
251 Figure 2: Testbed Setup - Option 2
[nit] Please elaborate on the "number of used ports", and if possible show in
Figure 2 by drawing multiple links. I guess that in a common case, the test
equipment might provide few, but fast ports, whereas the DUT/SU might provide
more slower ports, and one would there use external switches as port
multiplexer ? Or vice-versa ? Butif such adaptation is performed, i wonder how
different setup might impact the measurements. So for example let's say the
Test Equipment (TE) has a 100Gbps port, and the DUT has 4 * 10Gbps port, so you
need on each side a switch with 100Gbps and 2 * 10 Gbps. Would you try to use
VLANs into the TE, or would you just build a single LAN. Any recommendations
for the switch config, and why.
[mayor] The fact that the left side says only client and the right side says
only server is worth some more discussion. Especially because the Filtering in
Figure 3 also lets me wonder in which direction traffic is meant to be
filtered/inspected. Are you considering the case that clients are responders to
(TCP/QUIC/UDP) connections ? For example left side is "inside", DUT is a site
firewall to the Internet (right side), and there is some server on the left
side (e.g.: SMTP). How about that you do have on the right an Internet and a
separate site DMZ interface and then of course traffic not only between left
and right, but between those interfaces on the right ?
More broadly applicable, dynamic port discovery for ICE/STUN, where you want to
permit inside to outside connections (to the STUN server) to permit new
connections from other external nodes to go back inside). E.g.: would be good
to have some elaboration about the rype of connections covered by this
document. If its only initiators on the left and responders on the right, that
is fine, but it should be said so and maybe point to those above cases (DMZ,
inside servers, STUN/ICE) not covered by this document.
253 4.2. DUT/SUT Configuration
255 A unique DUT/SUT configuration MUST be used for all benchmarking
256 tests described in Section 7. Since each DUT/SUT will have its own
257 unique configuration, users SHOULD configure their device with the
258 same parameters and security features that would be used in the
259 actual deployment of the device or a typical deployment in order to
260 achieve maximum network security coverage. The DUT/SUT MUST be
[nit] What is a "unique configuration" ? It could be different configurations
across two different DUT but both achieving the same service/filtering, just
difference in syntax, or it could be difference in functional outcome. Would
be good to be more precise what is meant.
[nit] Why would a user choose an actual deployment vs. a typical deployment ?
I am imagining that a user would choose an actual deployment to measure
performance specifically for that deployment but a typical deployment when the
DUT would need to be deployed in different setups but not each of those can be
measured individually, or because the results are meant to be comparable with
other users who may have taken performance numbers. WOuld be good to elaborate
a bit more so readers have a clearer understanding what "actual deployment" and
"typical deployment" means and how/why to pick one over the other.
[nit] I do not understand how the text up to "in order to" justifies that it
will achieve the maximum network security coverage. I also do not know what
"maximum network security coverage" means. If there is a definition, please
provide it. Else introduce it.
260 achieve maximum network security coverage. The DUT/SUT MUST be
261 configured in "Inline" mode so that the traffic is actively inspected
262 by the DUT/SUT. Also "Fail-Open" behavior MUST be disabled on the
263 DUT/SUT.
265 Table 1 and Table 2 below describe the RECOMMENDED and OPTIONAL sets
266 of network security feature list for NGFW and NGIPS respectively.
267 The selected security features SHOULD be consistently enabled on the
268 DUT/SUT for all benchmarking tests described in Section 7.
270 To improve repeatability, a summary of the DUT/SUT configuration
271 including a description of all enabled DUT/SUT features MUST be
272 published with the benchmarking results.
274 +============================+=============+==========+
275 | DUT/SUT (NGFW) Features | RECOMMENDED | OPTIONAL |
276 +============================+=============+==========+
277 | SSL Inspection | x | |
278 +----------------------------+-------------+----------+
279 | IDS/IPS | x | |
280 +----------------------------+-------------+----------+
281 | Anti-Spyware | x | |
282 +----------------------------+-------------+----------+
283 | Anti-Virus | x | |
284 +----------------------------+-------------+----------+
285 | Anti-Botnet | x | |
286 +----------------------------+-------------+----------+
287 | Web Filtering | | x |
288 +----------------------------+-------------+----------+
289 | Data Loss Protection (DLP) | | x |
290 +----------------------------+-------------+----------+
291 | DDoS | | x |
292 +----------------------------+-------------+----------+
293 | Certificate Validation | | x |
294 +----------------------------+-------------+----------+
[mayor] This may be bogs because i don't know well enough how for the purpose
of this document security devices are expected to inspect HTTP connections
from client to server. Maybe this is a sane approach where the security device
operates as a client trusted HTTPs proxy, maybe its one of the more hacky
approaches (faked server certs). But however it works, i think that a security
device can not get away from validating the certificate of the server in a
connection. Else it shouldn't be called a security DUT.
But i am not sure if that validation is what you call "Certificate Validation".
294 +----------------------------+-------------+----------+
295 | Logging and Reporting | x | |
296 +----------------------------+-------------+----------+
297 | Application Identification | x | |
298 +----------------------------+-------------+----------+
300 Table 1: NGFW Security Features
[nit] Why are "Web Filtering"..."Certificate Validation" only MAY ?
Please point to a place in the document (or elsewhere) that rationales
the SHOULD/MAY recommendations. Same applies to Table 2.
[nit]
302 +============================+=============+==========+
303 | DUT/SUT (NGIPS) Features | RECOMMENDED | OPTIONAL |
304 +============================+=============+==========+
305 | SSL Inspection | x | |
306 +----------------------------+-------------+----------+
307 | Anti-Malware | x | |
308 +----------------------------+-------------+----------+
309 | Anti-Spyware | x | |
310 +----------------------------+-------------+----------+
311 | Anti-Botnet | x | |
312 +----------------------------+-------------+----------+
313 | Logging and Reporting | x | |
314 +----------------------------+-------------+----------+
315 | Application Identification | x | |
316 +----------------------------+-------------+----------+
317 | Deep Packet Inspection | x | |
318 +----------------------------+-------------+----------+
319 | Anti-Evasion | x | |
320 +----------------------------+-------------+----------+
322 Table 2: NGIPS Security Features
[nit] I ended up scrolling up and down to compare the tables.
It might be useful for other readers like me to merge the tables,
aka: put the columns for NGFW and NGIPS into one table.
[nit] Please start with Table 3 as it introduces the security features,
else the two above tables introduce a lot of features without defining them.
324 The following table provides a brief description of the security
325 features.
327 +================+================================================+
328 | DUT/SUT | Description |
329 | Features | |
330 +================+================================================+
331 | SSL Inspection | DUT/SUT intercepts and decrypts inbound HTTPS |
332 | | traffic between servers and clients. Once the |
333 | | content inspection has been completed, DUT/SUT |
334 | | encrypts the HTTPS traffic with ciphers and |
335 | | keys used by the clients and servers. |
336 +----------------+------------------------------------------------+
337 | IDS/IPS | DUT/SUT detects and blocks exploits targeting |
338 | | known and unknown vulnerabilities across the |
339 | | monitored network. |
340 +----------------+------------------------------------------------+
341 | Anti-Malware | DUT/SUT detects and prevents the transmission |
342 | | of malicious executable code and any |
343 | | associated communications across the monitored |
344 | | network. This includes data exfiltration as |
345 | | well as command and control channels. |
346 +----------------+------------------------------------------------+
347 | Anti-Spyware | Anti-Spyware is a subcategory of Anti Malware. |
348 | | Spyware transmits information without the |
349 | | user's knowledge or permission. DUT/SUT |
350 | | detects and block initial infection or |
351 | | transmission of data. |
352 +----------------+------------------------------------------------+
353 | Anti-Botnet | DUT/SUT detects traffic to or from botnets. |
354 +----------------+------------------------------------------------+
355 | Anti-Evasion | DUT/SUT detects and mitigates attacks that |
356 | | have been obfuscated in some manner. |
357 +----------------+------------------------------------------------+
358 | Web Filtering | DUT/SUT detects and blocks malicious website |
359 | | including defined classifications of website |
360 | | across the monitored network. |
361 +----------------+------------------------------------------------+
362 | DLP | DUT/SUT detects and prevents data breaches and |
363 | | data exfiltration, or it detects and blocks |
364 | | the transmission of sensitive data across the |
365 | | monitored network. |
366 +----------------+------------------------------------------------+
367 | Certificate | DUT/SUT validates certificates used in |
368 | Validation | encrypted communications across the monitored |
369 | | network. |
370 +----------------+------------------------------------------------+
371 | Logging and | DUT/SUT logs and reports all traffic at the |
372 | Reporting | flow level across the monitored network. |
373 +----------------+------------------------------------------------+
374 | Application | DUT/SUT detects known applications as defined |
375 | Identification | within the traffic mix selected across the |
376 | | monitored network. |
377 +----------------+------------------------------------------------+
379 Table 3: Security Feature Description
[nit] Why is DDoS and DPI not listed in this table ? I just randomnly stumbled
across that one, but maybe there are more mismatches between Table 1 and 2.
Pls. make sure all Table 1/2 Features are mentioned.
[nit] I have a bout 1000 questions and concerns about this stuff: Are there
actually IETF specifications for how any of these features on the DUT do work or
should work, or is this all vendor proprietary functionality ? For anything that
is vendor / market proprietary specification, how would the TE (Test Equipment)
know what the DUT does, so that it can effectively test it ? I imagine that
if there is a difference in how a particular feature functions across different
vendor DUTs, that the same is true for TE, so some TE would have more functional
overlap with DUT than others. ?
[nit (continued] E.g.: lets say some DUT1 feature , e.g.: DLP is really simple
and therefore ot very secure. But that makes it a lot faster than a DUT2 DLP
feature which is a lot more secure. Maybe there is a metric for this security,
like if i rememver correctly from the past, the number of signatures in virus
detection or the like... How would such differences be taken into account in
measurement?
381 Below is a summary of the DUT/SUT configuration:
383 * DUT/SUT MUST be configured in "inline" mode.
385 * "Fail-Open" behavior MUST be disabled.
387 * All RECOMMENDED security features are enabled.
389 * Logging SHOULD be enabled. DUT/SUT SHOULD log all traffic at the
390 flow level - Logging to an external device is permissible.
[nit] Does that mean logging of ALL flows or only of flows that trigger some
security issue ? Logging of ALL flows seems like a big performance hog and
may be something infeasible in fast deployments and may need to be tested as
a separate case by itself. (but my concern may be outdated).
[nit] If logging is to an external device, it may be useful to indicate in
Figure 1/2 such a logging receiver, and ideally have it operate via a link from
the DUT that does not pass test traffic so that it does not interfere.
392 * Geographical location filtering, and Application Identification
393 and Control SHOULD be configured to trigger based on a site or
394 application from the defined traffic mix.
[nit] Geographic location filtering does not sound like a generically necessary
or applicable security feature. If you are for example a high-tech manufacturer
that sells all over the world, you may appreciate customers visiting your
webserver from countries that happen to also host a lot of botnets. Or is this
document focussed on a more narrower set of use-cases ? E.g.: DUT only to filter
anything that could can not put into the cloud (such as web services) ? E.g.:
would be good to write up some justification for the GeoLoc SHOULD that would
then help readers to better understand when/how to conffigure and and when/how
not.
396 In addition, a realistic number of access control rules (ACL) SHOULD
397 be configured on the DUT/SUT where ACLs are configurable and
398 reasonable based on the deployment scenario. This document
399 determines the number of access policy rules for four different
400 classes of DUT/SUT: Extra Small (XS), Small (S), Medium (M), and
401 Large (L). A sample DUT/SUT classification is described in
402 Appendix B.
[mayor] IMHO, you can not put numbers such as those in Figure 3 into the main
text of the document, but the speed definitions of the four classes into an
Appendix B. It seems clear to me that the numbers in Figure 3 (and probably
elsewhere) where derived from the assumptions that the four speed classes are
defined as in Appendix B. Suggestion: inline the text of Appendix B here and
mention that numbers such as in Figure 3 are derived from the assumption of
those XS/S/M/L numbers, Add (if necessary, else not) that it may be appropriate
to choose other numbers for XS/S/M/L, but if one does that, then the dependent
numbers (such as those from Figure 3) may also need to be re-evaluated.
404 The Access Control Rules (ACL) defined in Figure 3 MUST be configured
405 from top to bottom in the correct order as shown in the table. This
406 is due to ACL types listed in specificity decreasing order, with
407 "block" first, followed by "allow", representing a typical ACL based
408 security policy. The ACL entries SHOULD be configured with routable
409 IP subnets by the DUT/SUT. (Note: There will be differences between
410 how security vendors implement ACL decision making.) The configured
[nit] /security vendors/DUT/
[nit] I don't understand what i am supposed to learn from the (Note: ...)
sentence. Rephrase ? or remove.
410 how security vendors implement ACL decision making.) The configured
411 ACL MUST NOT block the security and measurement traffic used for the
412 benchmarking tests.
[nit] what is "security traffic" ? what is "measurement traffic" ? Don't see
these terms defined before. Those two terms do not immediately click to me. I
guess measured user/client-server traffic vs. test-setup management traffic
(including logging) ?? In any case introduce the terms, define them and use
them consistently. Whatever they are.
414 +---------------+
415 | DUT/SUT |
416 | Classification|
417 | # Rules |
418 +-----------+-----------+--------------------+------+---+---+---+---+
419 | | Match | | | | | | |
420 | Rules Type| Criteria | Description |Action| XS| S | M | L |
421 +-------------------------------------------------------------------+
422 |Application|Application| Any application | block| 5 | 10| 20| 50|
423 |layer | | not included in | | | | | |
424 | | | the measurement | | | | | |
425 | | | traffic | | | | | |
426 +-------------------------------------------------------------------+
427 |Transport |SRC IP and | Any SRC IP subnet | block| 25| 50|100|250|
428 |layer |TCP/UDP | used and any DST | | | | | |
429 | |DST ports | ports not used in | | | | | |
430 | | | the measurement | | | | | |
431 | | | traffic | | | | | |
432 +-------------------------------------------------------------------+
433 |IP layer |SRC/DST IP | Any SRC/DST IP | block| 25| 50|100|250|
434 | | | subnet not used | | | | | |
435 | | | in the measurement | | | | | |
436 | | | traffic | | | | | |
437 +-------------------------------------------------------------------+
[nit] WOuld suggest to remove the word "Any" to minimize misinterpretation.
[nit] These three blocks seem to never get exercised by the actual measurement
traffic, right ? So the purpose would then be to simply load up the DUT with
them in case the DUT implementation is stupid enough to have these cause
relevant performance impacts even when not exercised by traffic. Would be good
to write this down as a rationale after the table. Especially because the
"Any" had me confused first that in a real-world deployment you would of course
not include 250 individual application/port/prefixes, but you just have some
simple block-all.
[nit] Even 27 years ago i've seen routers acting as firewalls for universities
that had thousands of such ACL entries. Aka: i think these numbers are way too
low.
438 |Application|Application| Half of the | allow| 10| 10| 10| 10|
439 |layer | | applications | | | | | |
440 | | | included in the | | | | | |
441 | | | measurement traffic| | | | | |
442 | | |(see the note below)| | | | | |
443 +-------------------------------------------------------------------+
444 |Transport |SRC IP and | Half of the SRC | allow| >1| >1| >1| >1|
445 |layer |TCP/UDP | IPs used and any | | | | | |
446 | |DST ports | DST ports used in | | | | | |
447 | | | the measurement | | | | | |
448 | | | traffic | | | | | |
449 | | | (one rule per | | | | | |
450 | | | subnet) | | | | | |
451 +-------------------------------------------------------------------+
452 |IP layer |SRC IP | The rest of the | allow| >1| >1| >1| >1|
453 | | | SRC IP subnet | | | | | |
454 | | | range used in the | | | | | |
455 | | | measurement | | | | | |
456 | | | traffic | | | | | |
457 | | | (one rule per | | | | | |
458 | | | subnet) | | | | | |
459 +-----------+-----------+--------------------+------+---+---+---+---+
[mayor] There should be an explanation of how this is supposed to work, and
it seems there are rules missing:
rule on row 438 explicitly permits half the traffic sent by the test
equiment. So supposedly only the other half has to be checked by rule on
row 444. So when 444 says "Half of the SRC...", is that half of the total
? Would that have to be set up so that after 444 we now have 75% of the
measurement traffic going through ? Likewise then rule 452 does it bring
the total amount of permitted traffic to 87.5% ?.
[nit] Ultimately, we only have "allows" here.
Is there an assumption that after row 459 there is an implicit
deny-anything-else ? I guess so, but it should be written out explicitly
in the table.
461 Figure 3: DUT/SUT Access List
463 Note: If half of the applications included in the measurement traffic
464 is less than 10, the missing number of ACL entries (dummy rules) can
465 be configured for any application traffic not included in the
466 measurement traffic.
468 4.2.1. Security Effectiveness Configuration
470 The Security features (defined in Table 1 and Table 2) of the DUT/SUT
471 MUST be configured effectively to detect, prevent, and report the
472 defined security vulnerability sets. This section defines the
473 selection of the security vulnerability sets from Common
[nit] "from the CVE" ?!
474 vulnerabilities and Exposures (CVE) list for the testing. The
[nit] Add reference for CVE. (Not sure whats best spec, or wikipedia or
cve.org,...)
475 vulnerability set SHOULD reflect a minimum of 500 CVEs from no older
476 than 10 calendar years to the current year. These CVEs SHOULD be
477 selected with a focus on in-use software commonly found in business
478 applications, with a Common vulnerability Scoring System (CVSS)
479 Severity of High (7-10).
481 This document is primarily focused on performance benchmarking.
482 However, it is RECOMMENDED to validate the security features
483 configuration of the DUT/SUT by evaluating the security effectiveness
484 as a prerequisite for performance benchmarking tests defined in the
[nit] /in the/in/
485 section 7. In case the benchmarking tests are performed without
486 evaluating security effectiveness, the test report MUST explain the
487 implications of this. The methodology for evaluating security
488 effectiveness is defined in Appendix A.
490 4.3. Test Equipment Configuration
492 In general, test equipment allows configuring parameters in different
493 protocol layers. These parameters thereby influence the traffic
494 flows which will be offered and impact performance measurements.
496 This section specifies common test equipment configuration parameters
497 applicable for all benchmarking tests defined in Section 7. Any
498 benchmarking test specific parameters are described under the test
499 setup section of each benchmarking test individually.
501 4.3.1. Client Configuration
503 This section specifies which parameters SHOULD be considered while
504 configuring clients using test equipment. Also, this section
505 specifies the RECOMMENDED values for certain parameters. The values
506 are the defaults used in most of the client operating systems
507 currently.
509 4.3.1.1. TCP Stack Attributes
511 The TCP stack SHOULD use a congestion control algorithm at client and
512 server endpoints. The IPv4 and IPv6 Maximum Segment Size (MSS)
513 SHOULD be set to 1460 bytes and 1440 bytes respectively and a TX and
514 RX initial receive windows of 64 KByte. Client initial congestion
515 window SHOULD NOT exceed 10 times the MSS. Delayed ACKs are
516 permitted and the maximum client delayed ACK SHOULD NOT exceed 10
517 times the MSS before a forced ACK. Up to three retries SHOULD be
518 allowed before a timeout event is declared. All traffic MUST set the
519 TCP PSH flag to high. The source port range SHOULD be in the range
520 of 1024 - 65535. Internal timeout SHOULD be dynamically scalable per
521 RFC 793. The client SHOULD initiate and close TCP connections. The
522 TCP connection MUST be initiated via a TCP three-way handshake (SYN,
523 SYN/ACK, ACK), and it MUST be closed via either a TCP three-way close
524 (FIN, FIN/ACK, ACK), or a TCP four-way close (FIN, ACK, FIN, ACK).
[nit] Would be nice to have reference to where/how these parameters are
determined. Would be nice to mention why these parameters are choosen. Probably
to reflect the most common current TCP behavior that achieves best performance ?
[minor] The document mentions QUIC in three places, but has no equivalent
section for QUIC here as it has for TCP. I would suggest to add a section here,
even if it can just say "Due to the absence of suficient experience, QUIC
parameters are unspecified. Similarily to TCP, parameters should be choosen
that best reflect state-of-the art performance results for QUIC client/server
traffic".
526 4.3.1.2. Client IP Address Space
528 The sum of the client IP space SHOULD contain the following
529 attributes.
531 * The IP blocks SHOULD consist of multiple unique, discontinuous
532 static address blocks.
534 * A default gateway is permitted.
[comment] How is this relevant, what do you expect it to do ? What would happen
if you just removed it ?
536 * The DSCP (differentiated services code point) marking is set to DF
537 (Default Forwarding) '000000' on IPv4 Type of Service (ToS) field
538 and IPv6 traffic class field.
540 The following equation can be used to define the total number of
541 client IP addresses that will be configured on the test equipment.
543 Desired total number of client IP = Target throughput [Mbit/s] /
544 Average throughput per IP address [Mbit/s]
546 As shown in the example list below, the value for "Average throughput
547 per IP address" can be varied depending on the deployment and use
548 case scenario.
550 (Option 1) DUT/SUT deployment scenario 1 : 6-7 Mbit/s per IP (e.g.
551 1,400-1,700 IPs per 10Gbit/s throughput)
553 (Option 2) DUT/SUT deployment scenario 2 : 0.1-0.2 Mbit/s per IP
554 (e.g. 50,000-100,000 IPs per 10Gbit/s throughput)
556 Based on deployment and use case scenario, client IP addresses SHOULD
557 be distributed between IPv4 and IPv6. The following options MAY be
558 considered for a selection of traffic mix ratio.
560 (Option 1) 100 % IPv4, no IPv6
562 (Option 2) 80 % IPv4, 20% IPv6
564 (Option 3) 50 % IPv4, 50% IPv6
566 (Option 4) 20 % IPv4, 80% IPv6
568 (Option 5) no IPv4, 100% IPv6
[minor] This guidance is IMHO not very helpfull. It seems to me the first
guidance seems to be that the percentage of IPv4 vs. IPv6 addresses should be
based on the relevant ratio of IPv4 vs. IPv6 traffic in the target deployment
because the way the test setup is done, some N% IPv4 addresses will also
roughly result in N% IPv4 traffic in the test.
That type of explanation might be very helpfull, because the risk is that
readers may think they can derive the percentage of test IPv4/IPv6 addresses
from the ratio of IPv4/IPv6 addresses in the target deployment, but that very
often will not work:
For example in the common dual-stack deployment, every client has an IPv4 and
an IPv6 address, so its 50% IPv4, but the actual percentage of IPv4 traffic
will very much depend on the application scenario. Some enterprises may go up
to 90% or more IPv6 traffic if the main traffic is all newer cloud services
traffic. An vice versa, it could be as little as 10% IPv6 if all the cloud
services are legacy apps in the cloud not supporting IPv6.
570 Note: The IANA has assigned IP address range for the testing purpose
571 as described in Section 8. If the test scenario requires more IP
572 addresses or subnets than the IANA assigned, this document recommends
573 using non routable Private IPv4 address ranges or Unique Local
574 Address (ULA) IPv6 address ranges for the testing.
[minor] See comments in Section 8. It might be useful to merge the text of this
paragraph with the one in Section 8, else the addressing recommendations are
somewhat split in the middle.
[minor] It would be prudent to add a disclaimer that this document does not
consider to determine whether DUT may emobdy optimizations in performance
behavior for known testing address ranges. Such a disclaimer may be more
general and go on the end of the document, e.g.: before IANA section - no
considerations against DUT optimizations of known test scenarios including
addressing ranges or other test profile specific parameters.
576 4.3.1.3. Emulated Web Browser Attributes
578 The client emulated web browser (emulated browser) contains
579 attributes that will materially affect how traffic is loaded. The
[nit] what does "how traffic is loaded" mean ? Rephrase.
580 objective is to emulate modern, typical browser attributes to improve
581 realism of the result set.
[nit] /result set/resulting traffic/ ?
583 For HTTP traffic emulation, the emulated browser MUST negotiate HTTP
584 version 1.1 or higher. Depending on test scenarios and chosen HTTP
585 version, the emulated browser MAY open multiple TCP connections per
586 Server endpoint IP at any time depending on how many sequential
587 transactions need to be processed. For HTTP/2 or HTTP/3, the
588 emulated browser MAY open multiple concurrent streams per connection
589 (multiplexing). HTTP/3 emulated browser uses QUIC ([RFC9000]) as
590 transport protocol. HTTP settings such as number of connection per
591 server IP, number of requests per connection, and number of streams
592 per connection MUST be documented. This document refers to [RFC8446]
593 for HTTP/2. The emulated browser SHOULD advertise a User-Agent
594 header. The emulated browser SHOULD enforce content length
595 validation. Depending on test scenarios and selected HTTP version,
596 HTTP header compression MAY be set to enable or disable. This
597 setting (compression enabled or disabled) MUST be documented in the
598 report.
600 For encrypted traffic, the following attributes SHALL define the
601 negotiated encryption parameters. The test clients MUST use TLS
602 version 1.2 or higher. TLS record size MAY be optimized for the
[minor] I would bet SEC review will challenge you to comment on TLS 1.3.
Would make sense to add a sentence stating that the ratio of TLS 1.2 vs TLS 1.3
traffic should be choosen based on expected target deployment and may range
from 100% TLS 1.2 to 100% TLS 1.3. In the absence of known ratios, a 50/50%
ratio is RECOMMENDED.
602 version 1.2 or higher. TLS record size MAY be optimized for the
603 HTTPS response object size up to a record size of 16 KByte. If
604 Server Name Indication (SNI) is required in the traffic mix profile,
605 the client endpoint MUST send TLS extension Server Name Indication
606 (SNI) information when opening a security tunnel. Each client
[minor] SNI is pretty standard today. I would remove the "if" and make the
whole sentence a MUST.
606 (SNI) information when opening a security tunnel. Each client
607 connection MUST perform a full handshake with server certificate and
608 MUST NOT use session reuse or resumption.
610 The following TLS 1.2 supported ciphers and keys are RECOMMENDED to
611 use for HTTPS based benchmarking tests defined in Section 7.
613 1. ECDHE-ECDSA-AES128-GCM-SHA256 with Prime256v1 (Signature Hash
614 Algorithm: ecdsa_secp256r1_sha256 and Supported group: secp256r1)
616 2. ECDHE-RSA-AES128-GCM-SHA256 with RSA 2048 (Signature Hash
617 Algorithm: rsa_pkcs1_sha256 and Supported group: secp256r1)
619 3. ECDHE-ECDSA-AES256-GCM-SHA384 with Secp521 (Signature Hash
620 Algorithm: ecdsa_secp384r1_sha384 and Supported group: secp521r1)
622 4. ECDHE-RSA-AES256-GCM-SHA384 with RSA 4096 (Signature Hash
623 Algorithm: rsa_pkcs1_sha384 and Supported group: secp256r1)
625 Note: The above ciphers and keys were those commonly used enterprise
626 grade encryption cipher suites for TLS 1.2. It is recognized that
627 these will evolve over time. Individual certification bodies SHOULD
628 use ciphers and keys that reflect evolving use cases. These choices
629 MUST be documented in the resulting test reports with detailed
630 information on the ciphers and keys used along with reasons for the
631 choices.
633 [RFC8446] defines the following cipher suites for use with TLS 1.3.
635 1. TLS_AES_128_GCM_SHA256
637 2. TLS_AES_256_GCM_SHA384
639 3. TLS_CHACHA20_POLY1305_SHA256
641 4. TLS_AES_128_CCM_SHA256
643 5. TLS_AES_128_CCM_8_SHA256
645 4.3.2. Backend Server Configuration
647 This section specifies which parameters should be considered while
648 configuring emulated backend servers using test equipment.
650 4.3.2.1. TCP Stack Attributes
652 The TCP stack on the server side SHOULD be configured similar to the
653 client side configuration described in Section 4.3.1.1. In addition,
654 server initial congestion window MUST NOT exceed 10 times the MSS.
655 Delayed ACKs are permitted and the maximum server delayed ACK MUST
656 NOT exceed 10 times the MSS before a forced ACK.
658 4.3.2.2. Server Endpoint IP Addressing
660 The sum of the server IP space SHOULD contain the following
661 attributes.
663 * The server IP blocks SHOULD consist of unique, discontinuous
664 static address blocks with one IP per server Fully Qualified
665 Domain Name (FQDN) endpoint per test port.
[minor] The "per FQDN per test port" is likely underspecified/confusing.
How would you recommend to configure the testbed if the same FQDN may be
reachable across more than one DUT server port and the DUT is doing load
balancing ? If that is not supposed to be considered, then it seems as if every
FQDN is supposed to be reachable across only one DUT port, but then the
sentence ikely should just say "per FQDN" (without the "per test port
qualification"). Not 100% sure...
[minor] Especially for IPv4, there is obviously a big trend in DC to save
IPv4 address space by using SNI. Therefore a realistic scanerio would be
to have more than one FQDN per IPv4 address. Maybe as high as 10:1 (guesswork).
In any case i think it is prudent to include testing of such SNI overload
of IP addresses because it likely can impact performance (demux of processing
state not solely based on 5-tuple).
667 * A default gateway is permitted. The DSCP (differentiated services
[minor] Again wondering why default gateway adds value to the doc.
667 * A default gateway is permitted. The DSCP (differentiated services
668 code point) marking is set to DF (Default Forwarding) '000000' on
669 IPv4 Type of Service (ToS) field and IPv6 traffic class field.
671 * The server IP addresses SHOULD be distributed between IPv4 and
672 IPv6 with a ratio identical to the clients distribution ratio.
674 Note: The IANA has assigned IP address range for the testing purpose
675 as described in Section 8. If the test scenario requires more IP
676 addresses or subnets than the IANA assigned, this document recommends
677 using non routable Private IPv4 address ranges or Unique Local
678 Address (ULA) IPv6 address ranges for the testing.
[minor] same note about moving these addressing recommendations out as in the
client section.
680 4.3.2.3. HTTP / HTTPS Server Pool Endpoint Attributes
682 The server pool for HTTP SHOULD listen on TCP port 80 and emulate the
683 same HTTP version (HTTP 1.1 or HTTP/2 or HTTP/3) and settings chosen
684 by the client (emulated web browser). The Server MUST advertise
685 server type in the Server response header [RFC7230]. For HTTPS
686 server, TLS 1.2 or higher MUST be used with a maximum record size of
687 16 KByte and MUST NOT use ticket resumption or session ID reuse. The
688 server SHOULD listen on TCP port 443 for HTTP version 1.1 and 2. For
689 HTTP/3 (HTTP over QUIC) the server SHOULD listen on UDP 443. The
690 server SHALL serve a certificate to the client. The HTTPS server
691 MUST check host SNI information with the FQDN if SNI is in use.
692 Cipher suite and key size on the server side MUST be configured
693 similar to the client side configuration described in
694 Section 4.3.1.3.
696 4.3.3. Traffic Flow Definition
698 This section describes the traffic pattern between client and server
699 endpoints. At the beginning of the test, the server endpoint
700 initializes and will be ready to accept connection states including
701 initialization of the TCP stack as well as bound HTTP and HTTPS
702 servers. When a client endpoint is needed, it will initialize and be
703 given attributes such as a MAC and IP address. The behavior of the
704 client is to sweep through the given server IP space, generating a
705 recognizable service by the DUT. Sequential and pseudorandom sweep
706 methods are acceptable. The method used MUST be stated in the final
707 report. Thus, a balanced mesh between client endpoints and server
708 endpoints will be generated in a client IP and port to server IP and
709 port combination. Each client endpoint performs the same actions as
710 other endpoints, with the difference being the source IP of the
711 client endpoint and the target server IP pool. The client MUST use
712 the server IP address or FQDN in the host header [RFC7230].
[minor] given the prevalence of SNI centric server selection, i would suggest
to change server IP to server FQDN and note that server IP is simply derived
from server FQDN. Likewise server port is dervice from server protocol, which
seems to be just HTTP or HTTPs, so its unclear to me where we would get ports
different from 80 and 443 (maybe thats mentioned later). Aka: server Port may
not be relevant to mention.
714 4.3.3.1. Description of Intra-Client Behavior
716 Client endpoints are independent of other clients that are
717 concurrently executing. When a client endpoint initiates traffic,
718 this section describes how the client steps through different
719 services. Once the test is initialized, the client endpoints
720 randomly hold (perform no operation) for a few milliseconds for
721 better randomization of the start of client traffic. Each client
722 will either open a new TCP connection or connect to a TCP persistence
723 stack still open to that specific server. At any point that the
724 traffic profile may require encryption, a TLS encryption tunnel will
725 form presenting the URL or IP address request to the server. If
726 using SNI, the server MUST then perform an SNI name check with the
727 proposed FQDN compared to the domain embedded in the certificate.
728 Only when correct, will the server process the HTTPS response object.
729 The initial response object to the server is based on benchmarking
730 tests described in Section 7. Multiple additional sub-URLs (response
731 objects on the service page) MAY be requested simultaneously. This
732 MAY be to the same server IP as the initial URL. Each sub-object
733 will also use a canonical FQDN and URL path, as observed in the
734 traffic mix used.
[minor] This may be necessary to keep the configuration complexity at bay,
but in practice each particular IP client will likely exhibit quite different
traffic profiles. One may continuously request HTTP video segments when
streaming video. Another one may continuously do WebRTC (zoom), and the like.
BY having every client randomnly do all the services (this is what i figure from
above description), you forego the important performance aspect of "worst hit
client" if the DUT exhibits specific issues with specific services (false
filtering, performance degradation etc..). IMHO it would be great if test
equipment could create different client traffic profiles by segmentation of
the possible application space into groups and then assign new clients
randomnly to groups. Beside being able to easier find performance issues,
it is also resulting in more real-world performance, which might be higher.
For example in a multi-core CPU based DUT, there may be heuristics of
assigning different clients traffic to different CPU cores, so that L1..L3
cache of the CPU core can be better kept focussed on the codespace for
a particular type of client inspection. (just guessing).
736 4.3.4. Traffic Load Profile
738 The loading of traffic is described in this section. The loading of
739 a traffic load profile has five phases: Init, ramp up, sustain, ramp
740 down, and collection.
742 1. Init phase: Testbed devices including the client and server
743 endpoints should negotiate layer 2-3 connectivity such as MAC
744 learning and ARP. Only after successful MAC learning or ARP/ND
745 resolution SHALL the test iteration move to the next phase. No
746 measurements are made in this phase. The minimum RECOMMENDED
747 time for Init phase is 5 seconds. During this phase, the
748 emulated clients SHOULD NOT initiate any sessions with the DUT/
749 SUT, in contrast, the emulated servers should be ready to accept
750 requests from DUT/SUT or from emulated clients.
752 2. Ramp up phase: The test equipment SHOULD start to generate the
753 test traffic. It SHOULD use a set of the approximate number of
754 unique client IP addresses to generate traffic. The traffic
755 SHOULD ramp up from zero to desired target objective. The target
756 objective is defined for each benchmarking test. The duration
757 for the ramp up phase MUST be configured long enough that the
758 test equipment does not overwhelm the DUT/SUTs stated performance
759 metrics defined in Section 6.3 namely, TCP Connections Per
760 Second, Inspected Throughput, Concurrent TCP Connections, and
761 Application Transactions Per Second. No measurements are made in
762 this phase.
764 3. Sustain phase: Starts when all required clients are active and
765 operating at their desired load condition. In the sustain phase,
766 the test equipment SHOULD continue generating traffic to constant
767 target value for a constant number of active clients. The
768 minimum RECOMMENDED time duration for sustain phase is 300
769 seconds. This is the phase where measurements occur. The test
770 equipment SHOULD measure and record statistics continuously. The
771 sampling interval for collecting the raw results and calculating
772 the statistics SHOULD be less than 2 seconds.
774 4. Ramp down phase: No new connections are established, and no
775 measurements are made. The time duration for ramp up and ramp
776 down phase SHOULD be the same.
778 5. Collection phase: The last phase is administrative and will occur
779 when the test equipment merges and collates the report data.
781 5. Testbed Considerations
783 This section describes steps for a reference test (pre-test) that
784 control the test environment including test equipment, focusing on
785 physical and virtualized environments and as well as test equipments.
786 Below are the RECOMMENDED steps for the reference test.
788 1. Perform the reference test either by configuring the DUT/SUT in
789 the most trivial setup (fast forwarding) or without presence of
[nit] Define/explain or provide reference for "fast forwarding".
790 the DUT/SUT.
[minor] Is the DUT/SUT assumed to operate as a router or transparent L2 switch ?
Asking because "or without presence" should be amended (IMHO) with mentioning
that instead of the DUT one would put a router or switch in its place that
is pre-loaded with a config equivalent to that of the DUT but without any
seurity functions, just passing traffic at rates to bring the TE to its limits.
792 2. Generate traffic from traffic generator. Choose a traffic
793 profile used for HTTP or HTTPS throughput performance test with
794 smallest object size.
796 3. Ensure that any ancillary switching or routing functions added in
797 the test equipment does not limit the performance by introducing
798 network metrics such as packet loss and latency. This is
799 specifically important for virtualized components (e.g.,
800 vSwitches, vRouters).
802 4. Verify that the generated traffic (performance) of the test
803 equipment matches and reasonably exceeds the expected maximum
804 performance of the DUT/SUT.
806 5. Record the network performance metrics packet loss latency
807 introduced by the test environment (without DUT/SUT).
809 6. Assert that the testbed characteristics are stable during the
810 entire test session. Several factors might influence stability
811 specifically, for virtualized testbeds. For example, additional
812 workloads in a virtualized system, load balancing, and movement
813 of virtual machines during the test, or simple issues such as
814 additional heat created by high workloads leading to an emergency
815 CPU performance reduction.
[minor] Add something to test the performance of the logging system. Without
DUT actually generating logging, this will so far not have been validated.
Maybe TE can generate logging records ? Especially burst logging from DUT
without loss is important to verify (no packet loss of logged events).
817 The reference test SHOULD be performed before the benchmarking tests
818 (described in section 7) start.
820 6. Reporting
[minor] I would swap section 6 and 7, because it is problematic to read what's
to be reported without knowing whats to be measured first. For example, when i
read 6. first it was not clear to me if/how you would test the performance
limits, so the report data had a lot of questions for me.
Of course when you do run the testbed you first should have read both sections
first.
822 This section describes how the benchmarking test report should be
823 formatted and presented. It is RECOMMENDED to include two main
824 sections in the report, namely the introduction and the detailed test
825 results sections.
827 6.1. Introduction
829 The following attributes SHOULD be present in the introduction
830 section of the test report.
[minor] I'd suggest to say here that the test report needs to include all
information sufficient for independent third-party reproduction of the test
setup to permit third party falsification of the test results. This includes
but may not be limited to the following...
832 1. The time and date of the execution of the tests
834 2. Summary of testbed software and hardware details
835 a. DUT/SUT hardware/virtual configuration
837 * This section SHOULD clearly identify the make and model of
838 the DUT/SUT
840 * The port interfaces, including speed and link information
842 * If the DUT/SUT is a Virtual Network Function (VNF), host
843 (server) hardware and software details, interface
844 acceleration type such as DPDK and SR-IOV, used CPU cores,
845 used RAM, resource sharing (e.g. Pinning details and NUMA
846 Node) configuration details, hypervisor version, virtual
847 switch version
849 * details of any additional hardware relevant to the DUT/SUT
850 such as controllers
852 b. DUT/SUT software
854 * Operating system name
856 * Version
858 * Specific configuration details (if any)
[minor] Any software details necessary and sufficient to preproduce the
software setup of DUT/SUT.
860 c. DUT/SUT enabled features
862 * Configured DUT/SUT features (see Table 1 and Table 2)
864 * Attributes of the above-mentioned features
866 * Any additional relevant information about the features
868 d. Test equipment hardware and software
870 * Test equipment vendor name
872 * Hardware details including model number, interface type
874 * Test equipment firmware and test application software
875 version
877 e. Key test parameters
879 * Used cipher suites and keys
881 * IPv4 and IPv6 traffic distribution
882 * Number of configured ACL
884 f. Details of application traffic mix used in the benchmarking
885 test "Throughput Performance with Application Traffic Mix"
886 (Section 7.1)
888 * Name of applications and layer 7 protocols
890 * Percentage of emulated traffic for each application and
891 layer 7 protocols
893 * Percentage of encrypted traffic and used cipher suites and
894 keys (The RECOMMENDED ciphers and keys are defined in
895 Section 4.3.1.3)
897 * Used object sizes for each application and layer 7
898 protocols
900 3. Results Summary / Executive Summary
902 a. Results SHOULD resemble a pyramid in how it is reported, with
903 the introduction section documenting the summary of results
904 in a prominent, easy to read block.
906 6.2. Detailed Test Results
908 In the result section of the test report, the following attributes
909 SHOULD be present for each benchmarking test.
911 a. KPIs MUST be documented separately for each benchmarking test.
912 The format of the KPI metrics SHOULD be presented as described in
913 Section 6.3.
915 b. The next level of details SHOULD be graphs showing each of these
916 metrics over the duration (sustain phase) of the test. This
917 allows the user to see the measured performance stability changes
918 over time.
920 6.3. Benchmarks and Key Performance Indicators
922 This section lists key performance indicators (KPIs) for overall
923 benchmarking tests. All KPIs MUST be measured during the sustain
924 phase of the traffic load profile described in Section 4.3.4. All
925 KPIs MUST be measured from the result output of test equipment.
[minor] At some other place of the document i think to remember observing of
DUT self-reporting. Shouldn't then the self-reporting of the DUT be vetted as
well, e.g.: compared against the TE report data ?
927 * Concurrent TCP Connections
928 The aggregate number of simultaneous connections between hosts
929 across the DUT/SUT, or between hosts and the DUT/SUT (defined in
930 [RFC2647]).
[minor] Add reference to section in rfc2647 where this is defined. Also: If you
refer but not reproduce
932 * TCP Connections Per Second
934 The average number of successfully established TCP connections per
935 second between hosts across the DUT/SUT, or between hosts and the
936 DUT/SUT. The TCP connection MUST be initiated via a TCP three-way
937 handshake (SYN, SYN/ACK, ACK). Then the TCP session data is sent.
938 The TCP session MUST be closed via either a TCP three-way close
939 (FIN, FIN/ACK, ACK), or a TCP four-way close (FIN, ACK, FIN, ACK),
940 and MUST NOT by RST.
942 * Application Transactions Per Second
944 The average number of successfully completed transactions per
945 second. For a particular transaction to be considered successful,
946 all data MUST have been transferred in its entirety. In case of
947 HTTP(S) transactions, it MUST have a valid status code (200 OK),
948 and the appropriate FIN, FIN/ACK sequence MUST have been
949 completed.
951 * TLS Handshake Rate
953 The average number of successfully established TLS connections per
954 second between hosts across the DUT/SUT, or between hosts and the
955 DUT/SUT.
957 * Inspected Throughput
959 The number of bits per second of examined and allowed traffic a
960 network security device is able to transmit to the correct
961 destination interface(s) in response to a specified offered load.
962 The throughput benchmarking tests defined in Section 7 SHOULD
963 measure the average Layer 2 throughput value when the DUT/SUT is
964 "inspecting" traffic. This document recommends presenting the
965 inspected throughput value in Gbit/s rounded to two places of
966 precision with a more specific Kbit/s in parenthesis.
968 * Time to First Byte (TTFB)
970 TTFB is the elapsed time between the start of sending the TCP SYN
971 packet from the client and the client receiving the first packet
972 of application data from the server or DUT/SUT. The benchmarking
973 tests HTTP Transaction Latency (Section 7.4) and HTTPS Transaction
974 Latency (Section 7.8) measure the minimum, average and maximum
975 TTFB. The value SHOULD be expressed in milliseconds.
977 * URL Response time / Time to Last Byte (TTLB)
979 URL Response time / TTLB is the elapsed time between the start of
980 sending the TCP SYN packet from the client and the client
981 receiving the last packet of application data from the server or
982 DUT/SUT. The benchmarking tests HTTP Transaction Latency
983 (Section 7.4) and HTTPS Transaction Latency (Section 7.8) measure
984 the minimum, average and maximum TTLB. The value SHOULD be
985 expressed in millisecond.
[minor] Up to this point i don't think the report would include comparison for
these KPI between no-DUT-present vs. DUT-present. Is that true ? How then is
the reaader of the report meant to be able to vet the relative impact of the
DUT for all these metrics vs. DUT not being present ?
987 7. Benchmarking Tests
[minor] I think it would be good to insert here some descriptive and
comparative overview of the tests from the different 7.x sections.
For example, i guess (but don't know from the test), that the 7.1 test should ?
perform throughput test for non-http/https applications, or else if all the
applications in 7.1 would be http/https, then it would duplicate the results of
7.3 and 7.7, right ? Not sure though if/where it is written out that you
therefore want a traffic mix of only non-HTTP/HTTPS application traffic for 7.1.
If instead the customer relevant application mix (7.1.1) does include some
percentage of HTTP/HTTP applications, then shouldn't all the tests, even those
focussing on the HTTP/HTTPs characteristic also always include the
non-HTTP/HTTPs application flows as kind of "background" traffic, even if not
measured in the tests of particular 7.x sub-section ?
[minor] Section 7. is a lot of work to get right. I observe that there is a lot
of procedural replication across the steps. It would be easier to read if all
that duplication was removed and described once - such as the
initial/max/iterative step description. But i can understand how much work this
might be, to then especially extraxct only the differences for each 7.x and
only describe those 7.x differences there.
989 7.1. Throughput Performance with Application Traffic Mix
991 7.1.1. Objective
993 Using a relevant application traffic mix, determine the sustainable
994 inspected throughput supported by the DUT/SUT.
996 Based on the test customer's specific use case, testers can choose
997 the relevant application traffic mix for this test. The details
998 about the traffic mix MUST be documented in the report. At least the
999 following traffic mix details MUST be documented and reported
1000 together with the test results:
1002 Name of applications and layer 7 protocols
1004 Percentage of emulated traffic for each application and layer 7
1005 protocol
1007 Percentage of encrypted traffic and used cipher suites and keys
1008 (The RECOMMENDED ciphers and keys are defined in Section 4.3.1.3.)
1010 Used object sizes for each application and layer 7 protocols
1012 7.1.2. Test Setup
1014 Testbed setup MUST be configured as defined in Section 4. Any
1015 benchmarking test specific testbed configuration changes MUST be
1016 documented.
1018 7.1.3. Test Parameters
1020 In this section, the benchmarking test specific parameters SHOULD be
1021 defined.
1023 7.1.3.1. DUT/SUT Configuration Parameters
1025 DUT/SUT parameters MUST conform to the requirements defined in
1026 Section 4.2. Any configuration changes for this specific
1027 benchmarking test MUST be documented. In case the DUT/SUT is
1028 configured without SSL inspection, the test report MUST explain the
1029 implications of this to the relevant application traffic mix
1030 encrypted traffic.
[nit] /SSL inspection/SSL Inspection/ - capitalized in all other places in the
doc.
[minor] I am not quite familiar with the details, so i hope a ready knows what
the "MUST explain the implication" means.
[minor] What is the equivalent for TLS (inspection), and why is it not equally
mentioned ?
1032 7.1.3.2. Test Equipment Configuration Parameters
1034 Test equipment configuration parameters MUST conform to the
1035 requirements defined in Section 4.3. The following parameters MUST
1036 be documented for this benchmarking test:
1038 Client IP address range defined in Section 4.3.1.2
1040 Server IP address range defined in Section 4.3.2.2
1042 Traffic distribution ratio between IPv4 and IPv6 defined in
1043 Section 4.3.1.2
1045 Target inspected throughput: Aggregated line rate of interface(s)
1046 used in the DUT/SUT or the value defined based on requirement for
1047 a specific deployment scenario
[minor] maybe add: or based on DUT specified performance limits (DUT may not
always provide "linerate" throughput, so the ultimate test would be to see
if/how much of the vendor promised performance is reachable.
1049 Initial throughput: 10% of the "Target inspected throughput" Note:
1050 Initial throughput is not a KPI to report. This value is
1051 configured on the traffic generator and used to perform Step 1:
1052 "Test Initialization and Qualification" described under the
1053 Section 7.1.4.
1055 One of the ciphers and keys defined in Section 4.3.1.3 are
1056 RECOMMENDED to use for this benchmarking test.
1058 7.1.3.3. Traffic Profile
1060 Traffic profile: This test MUST be run with a relevant application
1061 traffic mix profile.
1063 7.1.3.4. Test Results Validation Criteria
1065 The following criteria are the test results validation criteria. The
1066 test results validation criteria MUST be monitored during the whole
1067 sustain phase of the traffic load profile.
1069 a. Number of failed application transactions (receiving any HTTP
1070 response code other than 200 OK) MUST be less than 0.001% (1 out
1071 of 100,000 transactions) of total attempted transactions.
[minor] So this is the right number, as opposed to the 0.01% in A.4...
If you don't intend to fix A.4 (requested there), pls. explain the reason for
the difference.
1073 b. Number of Terminated TCP connections due to unexpected TCP RST
1074 sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000
1075 connections) of total initiated TCP connections.
1077 7.1.3.5. Measurement
1079 Following KPI metrics MUST be reported for this benchmarking test:
1081 Mandatory KPIs (benchmarks): Inspected Throughput, TTFB (minimum,
1082 average, and maximum), TTLB (minimum, average, and maximum) and
1083 Application Transactions Per Second
1085 Note: TTLB MUST be reported along with the object size used in the
1086 traffic profile.
1088 Optional KPIs: TCP Connections Per Second and TLS Handshake Rate
[minor] I would prefer for TCP connections to be mandatory too. Makes it easier
to communicate test data with lower layer folks. FOr example, network layer
equipment often has per 5-tuple flow state also with build/churn-rate limits,
so to match a security SUT with the other networking equipment this TCP
connection rate rate is quite important.
1090 7.1.4. Test Procedures and Expected Results
1092 The test procedures are designed to measure the inspected throughput
1093 performance of the DUT/SUT at the sustaining period of traffic load
1094 profile. The test procedure consists of three major steps: Step 1
1095 ensures the DUT/SUT is able to reach the performance value (initial
1096 throughput) and meets the test results validation criteria when it
1097 was very minimally utilized. Step 2 determines the DUT/SUT is able
1098 to reach the target performance value within the test results
1099 validation criteria. Step 3 determines the maximum achievable
1100 performance value within the test results validation criteria.
1102 This test procedure MAY be repeated multiple times with different IP
1103 types: IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic
1104 distribution.
1106 7.1.4.1. Step 1: Test Initialization and Qualification
1108 Verify the link status of all connected physical interfaces. All
1109 interfaces are expected to be in "UP" status.
1111 Configure traffic load profile of the test equipment to generate test
1112 traffic at the "Initial throughput" rate as described in
1113 Section 7.1.3.2. The test equipment SHOULD follow the traffic load
1114 profile definition as described in Section 4.3.4. The DUT/SUT SHOULD
1115 reach the "Initial throughput" during the sustain phase. Measure all
1116 KPI as defined in Section 7.1.3.5. The measured KPIs during the
1117 sustain phase MUST meet all the test results validation criteria
1118 defined in Section 7.1.3.4.
1120 If the KPI metrics do not meet the test results validation criteria,
1121 the test procedure MUST NOT be continued to step 2.
1123 7.1.4.2. Step 2: Test Run with Target Objective
1125 Configure test equipment to generate traffic at the "Target inspected
1126 throughput" rate defined in Section 7.1.3.2. The test equipment
1127 SHOULD follow the traffic load profile definition as described in
1128 Section 4.3.4. The test equipment SHOULD start to measure and record
1129 all specified KPIs. Continue the test until all traffic profile
1130 phases are completed.
1132 Within the test results validation criteria, the DUT/SUT is expected
1133 to reach the desired value of the target objective ("Target inspected
1134 throughput") in the sustain phase. Follow step 3, if the measured
1135 value does not meet the target value or does not fulfill the test
1136 results validation criteria.
1138 7.1.4.3. Step 3: Test Iteration
1140 Determine the achievable average inspected throughput within the test
1141 results validation criteria. Final test iteration MUST be performed
1142 for the test duration defined in Section 4.3.4.
1144 7.2. TCP/HTTP Connections Per Second
1146 7.2.1. Objective
1148 Using HTTP traffic, determine the sustainable TCP connection
1149 establishment rate supported by the DUT/SUT under different
1150 throughput load conditions.
1152 To measure connections per second, test iterations MUST use different
1153 fixed HTTP response object sizes (the different load conditions)
1154 defined in Section 7.2.3.2.
1156 7.2.2. Test Setup
1158 Testbed setup SHOULD be configured as defined in Section 4. Any
1159 specific testbed configuration changes (number of interfaces and
1160 interface type, etc.) MUST be documented.
1162 7.2.3. Test Parameters
1164 In this section, benchmarking test specific parameters SHOULD be
1165 defined.
1167 7.2.3.1. DUT/SUT Configuration Parameters
1169 DUT/SUT parameters MUST conform to the requirements defined in
1170 Section 4.2. Any configuration changes for this specific
1171 benchmarking test MUST be documented.
1173 7.2.3.2. Test Equipment Configuration Parameters
1175 Test equipment configuration parameters MUST conform to the
1176 requirements defined in Section 4.3. The following parameters MUST
1177 be documented for this benchmarking test:
1179 Client IP address range defined in Section 4.3.1.2
1181 Server IP address range defined in Section 4.3.2.2
1183 Traffic distribution ratio between IPv4 and IPv6 defined in
1184 Section 4.3.1.2
1186 Target connections per second: Initial value from product datasheet
1187 or the value defined based on requirement for a specific deployment
1188 scenario
1190 Initial connections per second: 10% of "Target connections per
1191 second" (Note: Initial connections per second is not a KPI to report.
1192 This value is configured on the traffic generator and used to perform
1193 the Step1: "Test Initialization and Qualification" described under
1194 the Section 7.2.4.
1196 The client SHOULD negotiate HTTP and close the connection with FIN
1197 immediately after completion of one transaction. In each test
1198 iteration, client MUST send GET request requesting a fixed HTTP
1199 response object size.
1201 The RECOMMENDED response object sizes are 1, 2, 4, 16, and 64 KByte.
1203 7.2.3.3. Test Results Validation Criteria
1205 The following criteria are the test results validation criteria. The
1206 Test results validation criteria MUST be monitored during the whole
1207 sustain phase of the traffic load profile.
1209 a. Number of failed application transactions (receiving any HTTP
1210 response code other than 200 OK) MUST be less than 0.001% (1 out
1211 of 100,000 transactions) of total attempted transactions.
1213 b. Number of terminated TCP connections due to unexpected TCP RST
1214 sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000
1215 connections) of total initiated TCP connections.
1217 c. During the sustain phase, traffic SHOULD be forwarded at a
1218 constant rate (considered as a constant rate if any deviation of
1219 traffic forwarding rate is less than 5%).
1221 d. Concurrent TCP connections MUST be constant during steady state
1222 and any deviation of concurrent TCP connections SHOULD be less
1223 than 10%. This confirms the DUT opens and closes TCP connections
1224 at approximately the same rate.
1226 7.2.3.4. Measurement
1228 TCP Connections Per Second MUST be reported for each test iteration
1229 (for each object size).
[minor] Add Variance or min/max rates to report in case above point d (line
1221) problem does exist ?
1231 7.2.4. Test Procedures and Expected Results
1233 The test procedure is designed to measure the TCP connections per
1234 second rate of the DUT/SUT at the sustaining period of the traffic
1235 load profile. The test procedure consists of three major steps: Step
1236 1 ensures the DUT/SUT is able to reach the performance value (Initial
1237 connections per second) and meets the test results validation
1238 criteria when it was very minimally utilized. Step 2 determines the
1239 DUT/SUT is able to reach the target performance value within the test
1240 results validation criteria. Step 3 determines the maximum
1241 achievable performance value within the test results validation
1242 criteria.
1244 This test procedure MAY be repeated multiple times with different IP
1245 types: IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic
1246 distribution.
1248 7.2.4.1. Step 1: Test Initialization and Qualification
1250 Verify the link status of all connected physical interfaces. All
1251 interfaces are expected to be in "UP" status.
1253 Configure the traffic load profile of the test equipment to establish
1254 "Initial connections per second" as defined in Section 7.2.3.2. The
1255 traffic load profile SHOULD be defined as described in Section 4.3.4.
1257 The DUT/SUT SHOULD reach the "Initial connections per second" before
1258 the sustain phase. The measured KPIs during the sustain phase MUST
1259 meet all the test results validation criteria defined in
1260 Section 7.2.3.3.
1262 If the KPI metrics do not meet the test results validation criteria,
1263 the test procedure MUST NOT continue to "Step 2".
1265 7.2.4.2. Step 2: Test Run with Target Objective
1267 Configure test equipment to establish the target objective ("Target
1268 connections per second") defined in Section 7.2.3.2. The test
1269 equipment SHOULD follow the traffic load profile definition as
1270 described in Section 4.3.4.
1272 During the ramp up and sustain phase of each test iteration, other
1273 KPIs such as inspected throughput, concurrent TCP connections and
1274 application transactions per second MUST NOT reach the maximum value
1275 the DUT/SUT can support. The test results for specific test
1276 iterations SHOULD NOT be reported, if the above-mentioned KPI
1277 (especially inspected throughput) reaches the maximum value.
1278 (Example: If the test iteration with 64 KByte of HTTP response object
1279 size reached the maximum inspected throughput limitation of the DUT/
1280 SUT, the test iteration MAY be interrupted and the result for 64
1281 KByte SHOULD NOT be reported.)
1283 The test equipment SHOULD start to measure and record all specified
1284 KPIs. Continue the test until all traffic profile phases are
1285 completed.
1287 Within the test results validation criteria, the DUT/SUT is expected
1288 to reach the desired value of the target objective ("Target
1289 connections per second") in the sustain phase. Follow step 3, if the
1290 measured value does not meet the target value or does not fulfill the
1291 test results validation criteria.
1293 7.2.4.3. Step 3: Test Iteration
1295 Determine the achievable TCP connections per second within the test
1296 results validation criteria.
1298 7.3. HTTP Throughput
1300 7.3.1. Objective
1302 Determine the sustainable inspected throughput of the DUT/SUT for
1303 HTTP transactions varying the HTTP response object size.
[nit] High level, what is the difference between 7.2 and 7.3 ? Some more
explanation would be useful. One interpretation i came up with is that 7.2
measures performane of e.g.: HTTP connections where each connection performs a
single GET, and 7.3 measures long-lived HTTP connections in which a high rate
of HTTP GET is performed (so as to differentiate transactions at TCP+HTTP level
(7.2) from those only happening at HTTP level (7.3). If that is a lucky guess
it might help other similarily guessing readers to write this out more
explicitly.
1305 7.3.2. Test Setup
1307 Testbed setup SHOULD be configured as defined in Section 4. Any
1308 specific testbed configuration changes (number of interfaces and
1309 interface type, etc.) MUST be documented.
1311 7.3.3. Test Parameters
1313 In this section, benchmarking test specific parameters SHOULD be
1314 defined.
1316 7.3.3.1. DUT/SUT Configuration Parameters
1318 DUT/SUT parameters MUST conform to the requirements defined in
1319 Section 4.2. Any configuration changes for this specific
1320 benchmarking test MUST be documented.
1322 7.3.3.2. Test Equipment Configuration Parameters
1324 Test equipment configuration parameters MUST conform to the
1325 requirements defined in Section 4.3. The following parameters MUST
1326 be documented for this benchmarking test:
1328 Client IP address range defined in Section 4.3.1.2
1330 Server IP address range defined in Section 4.3.2.2
1332 Traffic distribution ratio between IPv4 and IPv6 defined in
1333 Section 4.3.1.2
1335 Target inspected throughput: Aggregated line rate of interface(s)
1336 used in the DUT/SUT or the value defined based on requirement for a
1337 specific deployment scenario
1338 Initial throughput: 10% of "Target inspected throughput" Note:
1339 Initial throughput is not a KPI to report. This value is configured
1340 on the traffic generator and used to perform Step 1: "Test
1341 Initialization and Qualification" described under Section 7.3.4.
1343 Number of HTTP response object requests (transactions) per
1344 connection: 10
1346 RECOMMENDED HTTP response object size: 1, 16, 64, 256 KByte, and
1347 mixed objects defined in Table 4.
1349 +=====================+============================+
1350 | Object size (KByte) | Number of requests/ Weight |
1351 +=====================+============================+
1352 | 0.2 | 1 |
1353 +---------------------+----------------------------+
1354 | 6 | 1 |
1355 +---------------------+----------------------------+
1356 | 8 | 1 |
1357 +---------------------+----------------------------+
1358 | 9 | 1 |
1359 +---------------------+----------------------------+
1360 | 10 | 1 |
1361 +---------------------+----------------------------+
1362 | 25 | 1 |
1363 +---------------------+----------------------------+
1364 | 26 | 1 |
1365 +---------------------+----------------------------+
1366 | 35 | 1 |
1367 +---------------------+----------------------------+
1368 | 59 | 1 |
1369 +---------------------+----------------------------+
1370 | 347 | 1 |
1371 +---------------------+----------------------------+
1373 Table 4: Mixed Objects
[minor] Interesting/useful data. If there was any reference/explanation how
these numbere where derived, that would be great to add.
1375 7.3.3.3. Test Results Validation Criteria
1377 The following criteria are the test results validation criteria. The
1378 test results validation criteria MUST be monitored during the whole
1379 sustain phase of the traffic load profile.
1381 a. Number of failed application transactions (receiving any HTTP
1382 response code other than 200 OK) MUST be less than 0.001% (1 out
1383 of 100,000 transactions) of attempt transactions.
1385 b. Traffic SHOULD be forwarded at a constant rate (considered as a
1386 constant rate if any deviation of traffic forwarding rate is less
1387 than 5%).
1389 c. Concurrent TCP connections MUST be constant during steady state
1390 and any deviation of concurrent TCP connections SHOULD be less
1391 than 10%. This confirms the DUT opens and closes TCP connections
1392 at approximately the same rate.
1394 7.3.3.4. Measurement
1396 Inspected Throughput and HTTP Transactions per Second MUST be
1397 reported for each object size.
1399 7.3.4. Test Procedures and Expected Results
1401 The test procedure is designed to measure HTTP throughput of the DUT/
1402 SUT. The test procedure consists of three major steps: Step 1
1403 ensures the DUT/SUT is able to reach the performance value (Initial
1404 throughput) and meets the test results validation criteria when it
1405 was very minimal utilized. Step 2 determines the DUT/SUT is able to
1406 reach the target performance value within the test results validation
1407 criteria. Step 3 determines the maximum achievable performance value
1408 within the test results validation criteria.
1410 This test procedure MAY be repeated multiple times with different
1411 IPv4 and IPv6 traffic distribution and HTTP response object sizes.
1413 7.3.4.1. Step 1: Test Initialization and Qualification
1415 Verify the link status of all connected physical interfaces. All
1416 interfaces are expected to be in "UP" status.
1418 Configure traffic load profile of the test equipment to establish
1419 "Initial inspected throughput" as defined in Section 7.3.3.2.
1421 The traffic load profile SHOULD be defined as described in
1422 Section 4.3.4. The DUT/SUT SHOULD reach the "Initial inspected
1423 throughput" during the sustain phase. Measure all KPI as defined in
1424 Section 7.3.3.4.
1426 The measured KPIs during the sustain phase MUST meet the test results
1427 validation criteria "a" defined in Section 7.3.3.3. The test results
1428 validation criteria "b" and "c" are OPTIONAL for step 1.
1430 If the KPI metrics do not meet the test results validation criteria,
1431 the test procedure MUST NOT be continued to "Step 2".
1433 7.3.4.2. Step 2: Test Run with Target Objective
1435 Configure test equipment to establish the target objective ("Target
1436 inspected throughput") defined in Section 7.3.3.2. The test
1437 equipment SHOULD start to measure and record all specified KPIs.
1438 Continue the test until all traffic profile phases are completed.
1440 Within the test results validation criteria, the DUT/SUT is expected
1441 to reach the desired value of the target objective in the sustain
1442 phase. Follow step 3, if the measured value does not meet the target
1443 value or does not fulfill the test results validation criteria.
1445 7.3.4.3. Step 3: Test Iteration
1447 Determine the achievable inspected throughput within the test results
1448 validation criteria and measure the KPI metric Transactions per
1449 Second. Final test iteration MUST be performed for the test duration
1450 defined in Section 4.3.4.
1452 7.4. HTTP Transaction Latency
[nit] It would be nice to have explanatory text explaining why 7.4 requires
different test runs as opposed to just measuring the transaction latency as
part of 7.2 and 7.3. I have not tried to compare in detail the descriptions
here to figure out the differences in test runs, but even if there are
differences, why would transaction latency not also be measured in 7.2 and 7.3
as a metric ?
1454 7.4.1. Objective
1456 Using HTTP traffic, determine the HTTP transaction latency when DUT
1457 is running with sustainable HTTP transactions per second supported by
1458 the DUT/SUT under different HTTP response object sizes.
1460 Test iterations MUST be performed with different HTTP response object
1461 sizes in two different scenarios. One with a single transaction and
1462 the other with multiple transactions within a single TCP connection.
1463 For consistency both the single and multiple transaction test MUST be
1464 configured with the same HTTP version
1466 Scenario 1: The client MUST negotiate HTTP and close the connection
1467 with FIN immediately after completion of a single transaction (GET
1468 and RESPONSE).
1470 Scenario 2: The client MUST negotiate HTTP and close the connection
1471 FIN immediately after completion of 10 transactions (GET and
1472 RESPONSE) within a single TCP connection.
1474 7.4.2. Test Setup
1476 Testbed setup SHOULD be configured as defined in Section 4. Any
1477 specific testbed configuration changes (number of interfaces and
1478 interface type, etc.) MUST be documented.
1480 7.4.3. Test Parameters
1482 In this section, benchmarking test specific parameters SHOULD be
1483 defined.
1485 7.4.3.1. DUT/SUT Configuration Parameters
1487 DUT/SUT parameters MUST conform to the requirements defined in
1488 Section 4.2. Any configuration changes for this specific
1489 benchmarking test MUST be documented.
1491 7.4.3.2. Test Equipment Configuration Parameters
1493 Test equipment configuration parameters MUST conform to the
1494 requirements defined in Section 4.3. The following parameters MUST
1495 be documented for this benchmarking test:
1497 Client IP address range defined in Section 4.3.1.2
1499 Server IP address range defined in Section 4.3.2.2
1501 Traffic distribution ratio between IPv4 and IPv6 defined in
1502 Section 4.3.1.2
1504 Target objective for scenario 1: 50% of the connections per second
1505 measured in benchmarking test TCP/HTTP Connections Per Second
1506 (Section 7.2)
1508 Target objective for scenario 2: 50% of the inspected throughput
1509 measured in benchmarking test HTTP Throughput (Section 7.3)
1511 Initial objective for scenario 1: 10% of "Target objective for
1512 scenario 1"
1514 Initial objective for scenario 2: 10% of "Target objective for
1515 scenario 2"
1517 Note: The Initial objectives are not a KPI to report. These values
1518 are configured on the traffic generator and used to perform the
1519 Step1: "Test Initialization and Qualification" described under the
1520 Section 7.4.4.
1522 HTTP transaction per TCP connection: Test scenario 1 with single
1523 transaction and test scenario 2 with 10 transactions.
1525 HTTP with GET request requesting a single object. The RECOMMENDED
1526 object sizes are 1, 16, and 64 KByte. For each test iteration,
1527 client MUST request a single HTTP response object size.
1529 7.4.3.3. Test Results Validation Criteria
1531 The following criteria are the test results validation criteria. The
1532 Test results validation criteria MUST be monitored during the whole
1533 sustain phase of the traffic load profile.
1535 a. Number of failed application transactions (receiving any HTTP
1536 response code other than 200 OK) MUST be less than 0.001% (1 out
1537 of 100,000 transactions) of attempt transactions.
1539 b. Number of terminated TCP connections due to unexpected TCP RST
1540 sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000
1541 connections) of total initiated TCP connections.
1543 c. During the sustain phase, traffic SHOULD be forwarded at a
1544 constant rate (considered as a constant rate if any deviation of
1545 traffic forwarding rate is less than 5%).
1547 d. Concurrent TCP connections MUST be constant during steady state
1548 and any deviation of concurrent TCP connections SHOULD be less
1549 than 10%. This confirms the DUT opens and closes TCP connections
1550 at approximately the same rate.
1552 e. After ramp up the DUT MUST achieve the "Target objective" defined
1553 in Section 7.4.3.2 and remain in that state for the entire test
1554 duration (sustain phase).
1556 7.4.3.4. Measurement
1558 TTFB (minimum, average, and maximum) and TTLB (minimum, average and
1559 maximum) MUST be reported for each object size.
1561 7.4.4. Test Procedures and Expected Results
1563 The test procedure is designed to measure TTFB or TTLB when the DUT/
1564 SUT is operating close to 50% of its maximum achievable connections
1565 per second or inspected throughput. The test procedure consists of
1566 two major steps: Step 1 ensures the DUT/SUT is able to reach the
1567 initial performance values and meets the test results validation
1568 criteria when it was very minimally utilized. Step 2 measures the
1569 latency values within the test results validation criteria.
1571 This test procedure MAY be repeated multiple times with different IP
1572 types (IPv4 only, IPv6 only and IPv4 and IPv6 mixed traffic
1573 distribution), HTTP response object sizes and single and multiple
1574 transactions per connection scenarios.
1576 7.4.4.1. Step 1: Test Initialization and Qualification
1578 Verify the link status of all connected physical interfaces. All
1579 interfaces are expected to be in "UP" status.
1581 Configure traffic load profile of the test equipment to establish
1582 "Initial objective" as defined in Section 7.4.3.2. The traffic load
1583 profile SHOULD be defined as described in Section 4.3.4.
1585 The DUT/SUT SHOULD reach the "Initial objective" before the sustain
1586 phase. The measured KPIs during the sustain phase MUST meet all the
1587 test results validation criteria defined in Section 7.4.3.3.
1589 If the KPI metrics do not meet the test results validation criteria,
1590 the test procedure MUST NOT be continued to "Step 2".
1592 7.4.4.2. Step 2: Test Run with Target Objective
1594 Configure test equipment to establish "Target objective" defined in
1595 Section 7.4.3.2. The test equipment SHOULD follow the traffic load
1596 profile definition as described in Section 4.3.4.
1598 The test equipment SHOULD start to measure and record all specified
1599 KPIs. Continue the test until all traffic profile phases are
1600 completed.
1602 Within the test results validation criteria, the DUT/SUT MUST reach
1603 the desired value of the target objective in the sustain phase.
1605 Measure the minimum, average, and maximum values of TTFB and TTLB.
1607 7.5. Concurrent TCP/HTTP Connection Capacity
[nit] again a summary comparison of the traffic in 7.5 vs. the prior traffic
profiles would be helpful to understand the benefit of these test runs. Is this
about any real-world reqirement or more a synthetic performance number for
unrealistic HTTP connections (which would still be a useful number IMHO, just
want to know) ?
The traffic profile below is somewhat strange because
it defines the rate of GET within a TCP connection based not on real-world
application behavior, but just to create some rate of GET per TCP connection
over the steady state. I guess the goal is something like "measure the maximum
sustainable number of TCP/HTTP connctions, wehreas each connection carries as
little as possible traffic and a sufficiently low number of HTTP (GET)
transactions that the DUT is not too much performance loaded with the HTTP
level inspection, but mostly with HTTP/TCP flow maintainance ??
In general, describing for each of the 7.x section upfront the goal and design
criteria of the test runs in those high-level terms is IMHO very beneficial for
reviewers to vet if/how well the detailled description does meet the goals.
Otherwise one is somewhat left puzzling about that question. Aka: enhance the
7.x.1 objective sessions with that amount of details.
1609 7.5.1. Objective
1611 Determine the number of concurrent TCP connections that the DUT/ SUT
1612 sustains when using HTTP traffic.
1614 7.5.2. Test Setup
1616 Testbed setup SHOULD be configured as defined in Section 4. Any
1617 specific testbed configuration changes (number of interfaces and
1618 interface type, etc.) MUST be documented.
1620 7.5.3. Test Parameters
1622 In this section, benchmarking test specific parameters SHOULD be
1623 defined.
1625 7.5.3.1. DUT/SUT Configuration Parameters
1627 DUT/SUT parameters MUST conform to the requirements defined in
1628 Section 4.2. Any configuration changes for this specific
1629 benchmarking test MUST be documented.
1631 7.5.3.2. Test Equipment Configuration Parameters
1633 Test equipment configuration parameters MUST conform to the
1634 requirements defined in Section 4.3. The following parameters MUST
1635 be noted for this benchmarking test:
1637 Client IP address range defined in Section 4.3.1.2
1639 Server IP address range defined in Section 4.3.2.2
1641 Traffic distribution ratio between IPv4 and IPv6 defined in
1642 Section 4.3.1.2
1644 Target concurrent connection: Initial value from product datasheet
1645 or the value defined based on requirement for a specific
1646 deployment scenario.
1648 Initial concurrent connection: 10% of "Target concurrent
1649 connection" Note: Initial concurrent connection is not a KPI to
1650 report. This value is configured on the traffic generator and
1651 used to perform the Step1: "Test Initialization and Qualification"
1652 described under the Section 7.5.4.
1654 Maximum connections per second during ramp up phase: 50% of
1655 maximum connections per second measured in benchmarking test TCP/
1656 HTTP Connections per second (Section 7.2)
1658 Ramp up time (in traffic load profile for "Target concurrent
1659 connection"): "Target concurrent connection" / "Maximum
1660 connections per second during ramp up phase"
1662 Ramp up time (in traffic load profile for "Initial concurrent
1663 connection"): "Initial concurrent connection" / "Maximum
1664 connections per second during ramp up phase"
1666 The client MUST negotiate HTTP and each client MAY open multiple
1667 concurrent TCP connections per server endpoint IP.
1669 Each client sends 10 GET requests requesting 1 KByte HTTP response
1670 object in the same TCP connection (10 transactions/TCP connection)
1671 and the delay (think time) between each transaction MUST be X
1672 seconds.
1674 X = ("Ramp up time" + "steady state time") /10
1676 The established connections SHOULD remain open until the ramp down
1677 phase of the test. During the ramp down phase, all connections
1678 SHOULD be successfully closed with FIN.
1680 7.5.3.3. Test Results Validation Criteria
1682 The following criteria are the test results validation criteria. The
1683 Test results validation criteria MUST be monitored during the whole
1684 sustain phase of the traffic load profile.
1686 a. Number of failed application transactions (receiving any HTTP
1687 response code other than 200 OK) MUST be less than 0.001% (1 out
1688 of 100,000 transaction) of total attempted transactions.
1690 b. Number of terminated TCP connections due to unexpected TCP RST
1691 sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000
1692 connections) of total initiated TCP connections.
1694 c. During the sustain phase, traffic SHOULD be forwarded at a
1695 constant rate (considered as a constant rate if any deviation of
1696 traffic forwarding rate is less than 5%).
1698 7.5.3.4. Measurement
1700 Average Concurrent TCP Connections MUST be reported for this
1701 benchmarking test.
1703 7.5.4. Test Procedures and Expected Results
1705 The test procedure is designed to measure the concurrent TCP
1706 connection capacity of the DUT/SUT at the sustaining period of
1707 traffic load profile. The test procedure consists of three major
1708 steps: Step 1 ensures the DUT/SUT is able to reach the performance
1709 value (Initial concurrent connection) and meets the test results
1710 validation criteria when it was very minimally utilized. Step 2
1711 determines the DUT/SUT is able to reach the target performance value
1712 within the test results validation criteria. Step 3 determines the
1713 maximum achievable performance value within the test results
1714 validation criteria.
1716 This test procedure MAY be repeated multiple times with different
1717 IPv4 and IPv6 traffic distribution.
1719 7.5.4.1. Step 1: Test Initialization and Qualification
1721 Verify the link status of all connected physical interfaces. All
1722 interfaces are expected to be in "UP" status.
1724 Configure test equipment to establish "Initial concurrent TCP
1725 connections" defined in Section 7.5.3.2. Except ramp up time, the
1726 traffic load profile SHOULD be defined as described in Section 4.3.4.
1728 During the sustain phase, the DUT/SUT SHOULD reach the "Initial
1729 concurrent TCP connections". The measured KPIs during the sustain
1730 phase MUST meet all the test results validation criteria defined in
1731 Section 7.5.3.3.
1733 If the KPI metrics do not meet the test results validation criteria,
1734 the test procedure MUST NOT be continued to "Step 2".
1736 7.5.4.2. Step 2: Test Run with Target Objective
1738 Configure test equipment to establish the target objective ("Target
1739 concurrent TCP connections"). The test equipment SHOULD follow the
1740 traffic load profile definition (except ramp up time) as described in
1741 Section 4.3.4.
1743 During the ramp up and sustain phase, the other KPIs such as
1744 inspected throughput, TCP connections per second, and application
1745 transactions per second MUST NOT reach the maximum value the DUT/SUT
1746 can support.
1748 The test equipment SHOULD start to measure and record KPIs defined in
1749 Section 7.5.3.4. Continue the test until all traffic profile phases
1750 are completed.
1752 Within the test results validation criteria, the DUT/SUT is expected
1753 to reach the desired value of the target objective in the sustain
1754 phase. Follow step 3, if the measured value does not meet the target
1755 value or does not fulfill the test results validation criteria.
1757 7.5.4.3. Step 3: Test Iteration
1759 Determine the achievable concurrent TCP connections capacity within
1760 the test results validation criteria.
1762 7.6. TCP/HTTPS Connections per Second
[minor] The one big performance factor that i think is not documented or
suggested to be compared is the cost of certificate (chain) validation for
different key-length certificates used for the TCP/HTTPs connections. The
parameters for TLS 1.2 and TLS 1.3 mentioned in before in the document do not
cover that. I think it would be prudent to figure out an Internet common
minimum (fastest to process) certificate and a common maximum complexity
certificate. The latter one may simply be when revocation is enabled, e.g.:
checking the server certificate against a revocation list.
Just saying because server certificate verification may monopolise connection
setup performance - unless you want to make the argument that it is irrelevant
because due to the limited number of servers in the test, the DUT is
assumed/known to be able to cache server certificate validation results during
ramput phase so it does become irrelevant during steady state phase. But it
would be at least good to describe this in text.
1763 7.6.1. Objective
1765 Using HTTPS traffic, determine the sustainable SSL/TLS session
1766 establishment rate supported by the DUT/SUT under different
1767 throughput load conditions.
1769 Test iterations MUST include common cipher suites and key strengths
1770 as well as forward looking stronger keys. Specific test iterations
1771 MUST include ciphers and keys defined in Section 7.6.3.2.
1773 For each cipher suite and key strengths, test iterations MUST use a
1774 single HTTPS response object size defined in Section 7.6.3.2 to
1775 measure connections per second performance under a variety of DUT/SUT
1776 security inspection load conditions.
1778 7.6.2. Test Setup
1780 Testbed setup SHOULD be configured as defined in Section 4. Any
1781 specific testbed configuration changes (number of interfaces and
1782 interface type, etc.) MUST be documented.
1784 7.6.3. Test Parameters
1786 In this section, benchmarking test specific parameters SHOULD be
1787 defined.
1789 7.6.3.1. DUT/SUT Configuration Parameters
1791 DUT/SUT parameters MUST conform to the requirements defined in
1792 Section 4.2. Any configuration changes for this specific
1793 benchmarking test MUST be documented.
1795 7.6.3.2. Test Equipment Configuration Parameters
1797 Test equipment configuration parameters MUST conform to the
1798 requirements defined in Section 4.3. The following parameters MUST
1799 be documented for this benchmarking test:
1801 Client IP address range defined in Section 4.3.1.2
1803 Server IP address range defined in Section 4.3.2.2
1805 Traffic distribution ratio between IPv4 and IPv6 defined in
1806 Section 4.3.1.2
1808 Target connections per second: Initial value from product datasheet
1809 or the value defined based on requirement for a specific deployment
1810 scenario.
1812 Initial connections per second: 10% of "Target connections per
1813 second" Note: Initial connections per second is not a KPI to report.
1814 This value is configured on the traffic generator and used to perform
1815 the Step1: "Test Initialization and Qualification" described under
1816 the Section 7.6.4.
1818 RECOMMENDED ciphers and keys defined in Section 4.3.1.3
1820 The client MUST negotiate HTTPS and close the connection with FIN
1821 immediately after completion of one transaction. In each test
1822 iteration, client MUST send GET request requesting a fixed HTTPS
1823 response object size. The RECOMMENDED object sizes are 1, 2, 4, 16,
1824 and 64 KByte.
1826 7.6.3.3. Test Results Validation Criteria
1828 The following criteria are the test results validation criteria. The
1829 test results validation criteria MUST be monitored during the whole
1830 test duration.
1832 a. Number of failed application transactions (receiving any HTTP
1833 response code other than 200 OK) MUST be less than 0.001% (1 out
1834 of 100,000 transactions) of attempt transactions.
1836 b. Number of terminated TCP connections due to unexpected TCP RST
1837 sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000
1838 connections) of total initiated TCP connections.
1840 c. During the sustain phase, traffic SHOULD be forwarded at a
1841 constant rate (considered as a constant rate if any deviation of
1842 traffic forwarding rate is less than 5%).
1844 d. Concurrent TCP connections MUST be constant during steady state
1845 and any deviation of concurrent TCP connections SHOULD be less
1846 than 10%. This confirms the DUT opens and closes TCP connections
1847 at approximately the same rate.
1849 7.6.3.4. Measurement
1851 TCP connections per second MUST be reported for each test iteration
1852 (for each object size).
1854 The KPI metric TLS Handshake Rate can be measured in the test using 1
1855 KByte object size.
1857 7.6.4. Test Procedures and Expected Results
1859 The test procedure is designed to measure the TCP connections per
1860 second rate of the DUT/SUT at the sustaining period of traffic load
1861 profile. The test procedure consists of three major steps: Step 1
1862 ensures the DUT/SUT is able to reach the performance value (Initial
1863 connections per second) and meets the test results validation
1864 criteria when it was very minimally utilized. Step 2 determines the
1865 DUT/SUT is able to reach the target performance value within the test
1866 results validation criteria. Step 3 determines the maximum
1867 achievable performance value within the test results validation
1868 criteria.
1870 This test procedure MAY be repeated multiple times with different
1871 IPv4 and IPv6 traffic distribution.
1873 7.6.4.1. Step 1: Test Initialization and Qualification
1875 Verify the link status of all connected physical interfaces. All
1876 interfaces are expected to be in "UP" status.
1878 Configure traffic load profile of the test equipment to establish
1879 "Initial connections per second" as defined in Section 7.6.3.2. The
1880 traffic load profile SHOULD be defined as described in Section 4.3.4.
1882 The DUT/SUT SHOULD reach the "Initial connections per second" before
1883 the sustain phase. The measured KPIs during the sustain phase MUST
1884 meet all the test results validation criteria defined in
1885 Section 7.6.3.3.
1887 If the KPI metrics do not meet the test results validation criteria,
1888 the test procedure MUST NOT be continued to "Step 2".
1890 7.6.4.2. Step 2: Test Run with Target Objective
1892 Configure test equipment to establish "Target connections per second"
1893 defined in Section 7.6.3.2. The test equipment SHOULD follow the
1894 traffic load profile definition as described in Section 4.3.4.
1896 During the ramp up and sustain phase, other KPIs such as inspected
1897 throughput, concurrent TCP connections, and application transactions
1898 per second MUST NOT reach the maximum value the DUT/SUT can support.
1899 The test results for specific test iteration SHOULD NOT be reported,
1900 if the above mentioned KPI (especially inspected throughput) reaches
1901 the maximum value. (Example: If the test iteration with 64 KByte of
1902 HTTPS response object size reached the maximum inspected throughput
1903 limitation of the DUT, the test iteration MAY be interrupted and the
1904 result for 64 KByte SHOULD NOT be reported).
1906 The test equipment SHOULD start to measure and record all specified
1907 KPIs. Continue the test until all traffic profile phases are
1908 completed.
1910 Within the test results validation criteria, the DUT/SUT is expected
1911 to reach the desired value of the target objective ("Target
1912 connections per second") in the sustain phase. Follow step 3, if the
1913 measured value does not meet the target value or does not fulfill the
1914 test results validation criteria.
1916 7.6.4.3. Step 3: Test Iteration
1918 Determine the achievable connections per second within the test
1919 results validation criteria.
1921 7.7. HTTPS Throughput
1923 7.7.1. Objective
1925 Determine the sustainable inspected throughput of the DUT/SUT for
1926 HTTPS transactions varying the HTTPS response object size.
1928 Test iterations MUST include common cipher suites and key strengths
1929 as well as forward looking stronger keys. Specific test iterations
1930 MUST include the ciphers and keys defined in Section 7.7.3.2.
1932 7.7.2. Test Setup
1934 Testbed setup SHOULD be configured as defined in Section 4. Any
1935 specific testbed configuration changes (number of interfaces and
1936 interface type, etc.) MUST be documented.
1938 7.7.3. Test Parameters
1940 In this section, benchmarking test specific parameters SHOULD be
1941 defined.
1943 7.7.3.1. DUT/SUT Configuration Parameters
1945 DUT/SUT parameters MUST conform to the requirements defined in
1946 Section 4.2. Any configuration changes for this specific
1947 benchmarking test MUST be documented.
1949 7.7.3.2. Test Equipment Configuration Parameters
1951 Test equipment configuration parameters MUST conform to the
1952 requirements defined in Section 4.3. The following parameters MUST
1953 be documented for this benchmarking test:
1955 Client IP address range defined in Section 4.3.1.2
1957 Server IP address range defined in Section 4.3.2.2
1959 Traffic distribution ratio between IPv4 and IPv6 defined in
1960 Section 4.3.1.2
1962 Target inspected throughput: Aggregated line rate of interface(s)
1963 used in the DUT/SUT or the value defined based on requirement for a
1964 specific deployment scenario.
1966 Initial throughput: 10% of "Target inspected throughput" Note:
1967 Initial throughput is not a KPI to report. This value is configured
1968 on the traffic generator and used to perform the Step1: "Test
1969 Initialization and Qualification" described under the Section 7.7.4.
1971 Number of HTTPS response object requests (transactions) per
1972 connection: 10
1974 RECOMMENDED ciphers and keys defined in Section 4.3.1.3
1976 RECOMMENDED HTTPS response object size: 1, 16, 64, 256 KByte, and
1977 mixed objects defined in Table 4 under Section 7.3.3.2.
1979 7.7.3.3. Test Results Validation Criteria
1981 The following criteria are the test results validation criteria. The
1982 test results validation criteria MUST be monitored during the whole
1983 sustain phase of the traffic load profile.
1985 a. Number of failed Application transactions (receiving any HTTP
1986 response code other than 200 OK) MUST be less than 0.001% (1 out
1987 of 100,000 transactions) of attempt transactions.
1989 b. Traffic SHOULD be forwarded at a constant rate (considered as a
1990 constant rate if any deviation of traffic forwarding rate is less
1991 than 5%).
1993 c. Concurrent TCP connections MUST be constant during steady state
1994 and any deviation of concurrent TCP connections SHOULD be less
1995 than 10%. This confirms the DUT opens and closes TCP connections
1996 at approximately the same rate.
1998 7.7.3.4. Measurement
2000 Inspected Throughput and HTTP Transactions per Second MUST be
2001 reported for each object size.
2003 7.7.4. Test Procedures and Expected Results
2005 The test procedure consists of three major steps: Step 1 ensures the
2006 DUT/SUT is able to reach the performance value (Initial throughput)
2007 and meets the test results validation criteria when it was very
2008 minimally utilized. Step 2 determines the DUT/SUT is able to reach
2009 the target performance value within the test results validation
2010 criteria. Step 3 determines the maximum achievable performance value
2011 within the test results validation criteria.
2013 This test procedure MAY be repeated multiple times with different
2014 IPv4 and IPv6 traffic distribution and HTTPS response object sizes.
2016 7.7.4.1. Step 1: Test Initialization and Qualification
2018 Verify the link status of all connected physical interfaces. All
2019 interfaces are expected to be in "UP" status.
2021 Configure traffic load profile of the test equipment to establish
2022 "Initial throughput" as defined in Section 7.7.3.2.
2024 The traffic load profile SHOULD be defined as described in
2025 Section 4.3.4. The DUT/SUT SHOULD reach the "Initial throughput"
2026 during the sustain phase. Measure all KPI as defined in
2027 Section 7.7.3.4.
2029 The measured KPIs during the sustain phase MUST meet the test results
2030 validation criteria "a" defined in Section 7.7.3.3. The test results
2031 validation criteria "b" and "c" are OPTIONAL for step 1.
2033 If the KPI metrics do not meet the test results validation criteria,
2034 the test procedure MUST NOT be continued to "Step 2".
2036 7.7.4.2. Step 2: Test Run with Target Objective
2038 Configure test equipment to establish the target objective ("Target
2039 inspected throughput") defined in Section 7.7.3.2. The test
2040 equipment SHOULD start to measure and record all specified KPIs.
2041 Continue the test until all traffic profile phases are completed.
2043 Within the test results validation criteria, the DUT/SUT is expected
2044 to reach the desired value of the target objective in the sustain
2045 phase. Follow step 3, if the measured value does not meet the target
2046 value or does not fulfill the test results validation criteria.
2048 7.7.4.3. Step 3: Test Iteration
2050 Determine the achievable average inspected throughput within the test
2051 results validation criteria. Final test iteration MUST be performed
2052 for the test duration defined in Section 4.3.4.
2054 7.8. HTTPS Transaction Latency
2056 7.8.1. Objective
2058 Using HTTPS traffic, determine the HTTPS transaction latency when
2059 DUT/SUT is running with sustainable HTTPS transactions per second
2060 supported by the DUT/SUT under different HTTPS response object size.
2062 Scenario 1: The client MUST negotiate HTTPS and close the connection
2063 with FIN immediately after completion of a single transaction (GET
2064 and RESPONSE).
2066 Scenario 2: The client MUST negotiate HTTPS and close the connection
2067 with FIN immediately after completion of 10 transactions (GET and
2068 RESPONSE) within a single TCP connection.
2070 7.8.2. Test Setup
2072 Testbed setup SHOULD be configured as defined in Section 4. Any
2073 specific testbed configuration changes (number of interfaces and
2074 interface type, etc.) MUST be documented.
2076 7.8.3. Test Parameters
2078 In this section, benchmarking test specific parameters SHOULD be
2079 defined.
2081 7.8.3.1. DUT/SUT Configuration Parameters
2083 DUT/SUT parameters MUST conform to the requirements defined in
2084 Section 4.2. Any configuration changes for this specific
2085 benchmarking test MUST be documented.
2087 7.8.3.2. Test Equipment Configuration Parameters
2089 Test equipment configuration parameters MUST conform to the
2090 requirements defined in Section 4.3. The following parameters MUST
2091 be documented for this benchmarking test:
2093 Client IP address range defined in Section 4.3.1.2
2095 Server IP address range defined in Section 4.3.2.2
2096 Traffic distribution ratio between IPv4 and IPv6 defined in
2097 Section 4.3.1.2
2099 RECOMMENDED cipher suites and key sizes defined in Section 4.3.1.3
2101 Target objective for scenario 1: 50% of the connections per second
2102 measured in benchmarking test TCP/HTTPS Connections per second
2103 (Section 7.6)
2105 Target objective for scenario 2: 50% of the inspected throughput
2106 measured in benchmarking test HTTPS Throughput (Section 7.7)
2108 Initial objective for scenario 1: 10% of "Target objective for
2109 scenario 1"
2111 Initial objective for scenario 2: 10% of "Target objective for
2112 scenario 2"
2114 Note: The Initial objectives are not a KPI to report. These values
2115 are configured on the traffic generator and used to perform the
2116 Step1: "Test Initialization and Qualification" described under the
2117 Section 7.8.4.
2119 HTTPS transaction per TCP connection: Test scenario 1 with single
2120 transaction and scenario 2 with 10 transactions
2122 HTTPS with GET request requesting a single object. The RECOMMENDED
2123 object sizes are 1, 16, and 64 KByte. For each test iteration,
2124 client MUST request a single HTTPS response object size.
2126 7.8.3.3. Test Results Validation Criteria
2128 The following criteria are the test results validation criteria. The
2129 Test results validation criteria MUST be monitored during the whole
2130 sustain phase of the traffic load profile.
2132 a. Number of failed application transactions (receiving any HTTP
2133 response code other than 200 OK) MUST be less than 0.001% (1 out
2134 of 100,000 transactions) of attempt transactions.
2136 b. Number of terminated TCP connections due to unexpected TCP RST
2137 sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000
2138 connections) of total initiated TCP connections.
2140 c. During the sustain phase, traffic SHOULD be forwarded at a
2141 constant rate (considered as a constant rate if any deviation of
2142 traffic forwarding rate is less than 5%).
2144 d. Concurrent TCP connections MUST be constant during steady state
2145 and any deviation of concurrent TCP connections SHOULD be less
2146 than 10%. This confirms the DUT opens and closes TCP connections
2147 at approximately the same rate.
2149 e. After ramp up the DUT/SUT MUST achieve the "Target objective"
2150 defined in the parameter Section 7.8.3.2 and remain in that state
2151 for the entire test duration (sustain phase).
2153 7.8.3.4. Measurement
2155 TTFB (minimum, average, and maximum) and TTLB (minimum, average and
2156 maximum) MUST be reported for each object size.
2158 7.8.4. Test Procedures and Expected Results
2160 The test procedure is designed to measure TTFB or TTLB when the DUT/
2161 SUT is operating close to 50% of its maximum achievable connections
2162 per second or inspected throughput. The test procedure consists of
2163 two major steps: Step 1 ensures the DUT/SUT is able to reach the
2164 initial performance values and meets the test results validation
2165 criteria when it was very minimally utilized. Step 2 measures the
2166 latency values within the test results validation criteria.
2168 This test procedure MAY be repeated multiple times with different IP
2169 types (IPv4 only, IPv6 only and IPv4 and IPv6 mixed traffic
2170 distribution), HTTPS response object sizes and single, and multiple
2171 transactions per connection scenarios.
2173 7.8.4.1. Step 1: Test Initialization and Qualification
2175 Verify the link status of all connected physical interfaces. All
2176 interfaces are expected to be in "UP" status.
2178 Configure traffic load profile of the test equipment to establish
2179 "Initial objective" as defined in the Section 7.8.3.2. The traffic
2180 load profile SHOULD be defined as described in Section 4.3.4.
2182 The DUT/SUT SHOULD reach the "Initial objective" before the sustain
2183 phase. The measured KPIs during the sustain phase MUST meet all the
2184 test results validation criteria defined in Section 7.8.3.3.
2186 If the KPI metrics do not meet the test results validation criteria,
2187 the test procedure MUST NOT be continued to "Step 2".
2189 7.8.4.2. Step 2: Test Run with Target Objective
2191 Configure test equipment to establish "Target objective" defined in
2192 Section 7.8.3.2. The test equipment SHOULD follow the traffic load
2193 profile definition as described in Section 4.3.4.
2195 The test equipment SHOULD start to measure and record all specified
2196 KPIs. Continue the test until all traffic profile phases are
2197 completed.
2199 Within the test results validation criteria, the DUT/SUT MUST reach
2200 the desired value of the target objective in the sustain phase.
2202 Measure the minimum, average, and maximum values of TTFB and TTLB.
2204 7.9. Concurrent TCP/HTTPS Connection Capacity
2206 7.9.1. Objective
2208 Determine the number of concurrent TCP connections the DUT/SUT
2209 sustains when using HTTPS traffic.
2211 7.9.2. Test Setup
2213 Testbed setup SHOULD be configured as defined in Section 4. Any
2214 specific testbed configuration changes (number of interfaces and
2215 interface type, etc.) MUST be documented.
2217 7.9.3. Test Parameters
2219 In this section, benchmarking test specific parameters SHOULD be
2220 defined.
2222 7.9.3.1. DUT/SUT Configuration Parameters
2224 DUT/SUT parameters MUST conform to the requirements defined in
2225 Section 4.2. Any configuration changes for this specific
2226 benchmarking test MUST be documented.
2228 7.9.3.2. Test Equipment Configuration Parameters
2230 Test equipment configuration parameters MUST conform to the
2231 requirements defined in Section 4.3. The following parameters MUST
2232 be documented for this benchmarking test:
2234 Client IP address range defined in Section 4.3.1.2
2236 Server IP address range defined in Section 4.3.2.2
2237 Traffic distribution ratio between IPv4 and IPv6 defined in
2238 Section 4.3.1.2
2240 RECOMMENDED cipher suites and key sizes defined in Section 4.3.1.3
2242 Target concurrent connections: Initial value from product
2243 datasheet or the value defined based on requirement for a specific
2244 deployment scenario.
2246 Initial concurrent connections: 10% of "Target concurrent
2247 connections" Note: Initial concurrent connection is not a KPI to
2248 report. This value is configured on the traffic generator and
2249 used to perform the Step1: "Test Initialization and Qualification"
2250 described under the Section 7.9.4.
2252 Connections per second during ramp up phase: 50% of maximum
2253 connections per second measured in benchmarking test TCP/HTTPS
2254 Connections per second (Section 7.6)
2256 Ramp up time (in traffic load profile for "Target concurrent
2257 connections"): "Target concurrent connections" / "Maximum
2258 connections per second during ramp up phase"
2260 Ramp up time (in traffic load profile for "Initial concurrent
2261 connections"): "Initial concurrent connections" / "Maximum
2262 connections per second during ramp up phase"
2264 The client MUST perform HTTPS transaction with persistence and each
2265 client can open multiple concurrent TCP connections per server
2266 endpoint IP.
2268 Each client sends 10 GET requests requesting 1 KByte HTTPS response
2269 objects in the same TCP connections (10 transactions/TCP connection)
2270 and the delay (think time) between each transaction MUST be X
2271 seconds.
2273 X = ("Ramp up time" + "steady state time") /10
2275 The established connections SHOULD remain open until the ramp down
2276 phase of the test. During the ramp down phase, all connections
2277 SHOULD be successfully closed with FIN.
2279 7.9.3.3. Test Results Validation Criteria
2281 The following criteria are the test results validation criteria. The
2282 Test results validation criteria MUST be monitored during the whole
2283 sustain phase of the traffic load profile.
2285 a. Number of failed application transactions (receiving any HTTP
2286 response code other than 200 OK) MUST be less than 0.001% (1 out
2287 of 100,000 transactions) of total attempted transactions.
2289 b. Number of terminated TCP connections due to unexpected TCP RST
2290 sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000
2291 connections) of total initiated TCP connections.
2293 c. During the sustain phase, traffic SHOULD be forwarded at a
2294 constant rate (considered as a constant rate if any deviation of
2295 traffic forwarding rate is less than 5%).
2297 7.9.3.4. Measurement
2299 Average Concurrent TCP Connections MUST be reported for this
2300 benchmarking test.
2302 7.9.4. Test Procedures and Expected Results
2304 The test procedure is designed to measure the concurrent TCP
2305 connection capacity of the DUT/SUT at the sustaining period of
2306 traffic load profile. The test procedure consists of three major
2307 steps: Step 1 ensures the DUT/SUT is able to reach the performance
2308 value (Initial concurrent connection) and meets the test results
2309 validation criteria when it was very minimally utilized. Step 2
2310 determines the DUT/SUT is able to reach the target performance value
2311 within the test results validation criteria. Step 3 determines the
2312 maximum achievable performance value within the test results
2313 validation criteria.
2315 This test procedure MAY be repeated multiple times with different
2316 IPv4 and IPv6 traffic distribution.
2318 7.9.4.1. Step 1: Test Initialization and Qualification
2320 Verify the link status of all connected physical interfaces. All
2321 interfaces are expected to be in "UP" status.
2323 Configure test equipment to establish "Initial concurrent TCP
2324 connections" defined in Section 7.9.3.2. Except ramp up time, the
2325 traffic load profile SHOULD be defined as described in Section 4.3.4.
2327 During the sustain phase, the DUT/SUT SHOULD reach the "Initial
2328 concurrent TCP connections". The measured KPIs during the sustain
2329 phase MUST meet the test results validation criteria "a" and "b"
2330 defined in Section 7.9.3.3.
2332 If the KPI metrics do not meet the test results validation criteria,
2333 the test procedure MUST NOT be continued to "Step 2".
2335 7.9.4.2. Step 2: Test Run with Target Objective
2337 Configure test equipment to establish the target objective ("Target
2338 concurrent TCP connections"). The test equipment SHOULD follow the
2339 traffic load profile definition (except ramp up time) as described in
2340 Section 4.3.4.
2342 During the ramp up and sustain phase, the other KPIs such as
2343 inspected throughput, TCP connections per second, and application
2344 transactions per second MUST NOT reach to the maximum value that the
2345 DUT/SUT can support.
2347 The test equipment SHOULD start to measure and record KPIs defined in
2348 Section 7.9.3.4. Continue the test until all traffic profile phases
2349 are completed.
2351 Within the test results validation criteria, the DUT/SUT is expected
2352 to reach the desired value of the target objective in the sustain
2353 phase. Follow step 3, if the measured value does not meet the target
2354 value or does not fulfill the test results validation criteria.
2356 7.9.4.3. Step 3: Test Iteration
2358 Determine the achievable concurrent TCP connections within the test
2359 results validation criteria.
[mayor] I would really love to see DUT power consumption numbers captured and
reported for the 10% and the maximum achieved rates for the 7.x tests (during
steady state).
Energy consumption is becoming a more and more important factor in networking,
and all the high-touch operations of security devices are amongst the most
power/compute hungry operations of any network device, but with a wide variety
depending on how its implemented. Its also extremely simple to just plug a
power-meter into the supply line of the DUT.
This would encourage DUT vendors to reduce power consumption, something that
often can be achieved by just selecting appropriate components (lowest power
CPU options, going FPGA etc.. routes).
Personally, i am of course also interested in easily derived performance
factors such as comparing 100% power consumption for the HTTP vs. HTTPS case -
cost of end-to-end security that is. If a DUT just shows linerate for both HTTP
and HTTPS, but with double the power consumption when using HTTPs, that may
even impact deployment - even in small cases with a small 19" rack, some
ventilation and some amount of power - 100..500W makes a difference whethre its
100 or 500W.
2361 8. IANA Considerations
2363 This document makes no specific request of IANA.
2365 The IANA has assigned IPv4 and IPv6 address blocks in [RFC6890] that
2366 have been registered for special purposes. The IPv6 address block
2367 2001:2::/48 has been allocated for the purpose of IPv6 Benchmarking
2368 [RFC5180] and the IPv4 address block 198.18.0.0/15 has been allocated
2369 for the purpose of IPv4 Benchmarking [RFC2544]. This assignment was
2370 made to minimize the chance of conflict in case a testing device were
2371 to be accidentally connected to part of the Internet.
[minor] I don't think the secnd paragraph belongs into an IANA considerations
section. This section is usually resesrved only for actions IANA is supposed to
take for this document. I would suggest to move this paragraph to an earlier
section, maybe even simply make one up "Addressing for tests".
2373 9. Security Considerations
2375 The primary goal of this document is to provide benchmarking
2376 terminology and methodology for next-generation network security
2377 devices for use in a laboratory isolated test environment. However,
2378 readers should be aware that there is some overlap between
2379 performance and security issues. Specifically, the optimal
2380 configuration for network security device performance may not be the
2381 most secure, and vice-versa. The cipher suites recommended in this
2382 document are for test purpose only. The cipher suite recommendation
2383 for a real deployment is outside the scope of this document.
2385 10. Contributors
2387 The following individuals contributed significantly to the creation
2388 of this document:
2390 Alex Samonte, Amritam Putatunda, Aria Eslambolchizadeh, Chao Guo,
2391 Chris Brown, Cory Ford, David DeSanto, Jurrie Van Den Breekel,
2392 Michelle Rhines, Mike Jack, Ryan Liles, Samaresh Nair, Stephen
2393 Goudreault, Tim Carlin, and Tim Otto.
2395 11. Acknowledgements
2397 The authors wish to acknowledge the members of NetSecOPEN for their
2398 participation in the creation of this document. Additionally, the
2399 following members need to be acknowledged:
2401 Anand Vijayan, Chris Marshall, Jay Lindenauer, Michael Shannon, Mike
2402 Deichman, Ryan Riese, and Toulnay Orkun.
2404 12. References
2406 12.1. Normative References
2408 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
2409 Requirement Levels", BCP 14, RFC 2119,
2410 DOI 10.17487/RFC2119, March 1997,
2411 <https://www.rfc-editor.org/info/rfc2119>.
2413 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2414 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
2415 May 2017, <https://www.rfc-editor.org/info/rfc8174>.
2417 12.2. Informative References
2419 [RFC2544] Bradner, S. and J. McQuaid, "Benchmarking Methodology for
2420 Network Interconnect Devices", RFC 2544,
2421 DOI 10.17487/RFC2544, March 1999,
2422 <https://www.rfc-editor.org/info/rfc2544>.
2424 [RFC2647] Newman, D., "Benchmarking Terminology for Firewall
2425 Performance", RFC 2647, DOI 10.17487/RFC2647, August 1999,
2426 <https://www.rfc-editor.org/info/rfc2647>.
2428 [RFC3511] Hickman, B., Newman, D., Tadjudin, S., and T. Martin,
2429 "Benchmarking Methodology for Firewall Performance",
2430 RFC 3511, DOI 10.17487/RFC3511, April 2003,
2431 <https://www.rfc-editor.org/info/rfc3511>.
2433 [RFC5180] Popoviciu, C., Hamza, A., Van de Velde, G., and D.
2434 Dugatkin, "IPv6 Benchmarking Methodology for Network
2435 Interconnect Devices", RFC 5180, DOI 10.17487/RFC5180, May
2436 2008, <https://www.rfc-editor.org/info/rfc5180>.
2438 [RFC6815] Bradner, S., Dubray, K., McQuaid, J., and A. Morton,
2439 "Applicability Statement for RFC 2544: Use on Production
2440 Networks Considered Harmful", RFC 6815,
2441 DOI 10.17487/RFC6815, November 2012,
2442 <https://www.rfc-editor.org/info/rfc6815>.
2444 [RFC6890] Cotton, M., Vegoda, L., Bonica, R., Ed., and B. Haberman,
2445 "Special-Purpose IP Address Registries", BCP 153,
2446 RFC 6890, DOI 10.17487/RFC6890, April 2013,
2447 <https://www.rfc-editor.org/info/rfc6890>.
2449 [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
2450 Protocol (HTTP/1.1): Message Syntax and Routing",
2451 RFC 7230, DOI 10.17487/RFC7230, June 2014,
2452 <https://www.rfc-editor.org/info/rfc7230>.
2454 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
2455 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
2456 <https://www.rfc-editor.org/info/rfc8446>.
2458 [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
2459 Multiplexed and Secure Transport", RFC 9000,
2460 DOI 10.17487/RFC9000, May 2021,
2461 <https://www.rfc-editor.org/info/rfc9000>.
2463 Appendix A. Test Methodology - Security Effectiveness Evaluation
[nit] /Evaluation/Test/ - called test in the rest of this doc.
2464 A.1. Test Objective
2466 This test methodology verifies the DUT/SUT is able to detect,
[nit] /verifies the/ verifies that the/
2467 prevent, and report the vulnerabilities.
2469 In this test, background test traffic will be generated to utilize
2470 the DUT/SUT. In parallel, the CVEs will be sent to the DUT/SUT as
2471 encrypted and as well as clear text payload formats using a traffic
2472 generator. The selection of the CVEs is described in Section 4.2.1.
2474 The following KPIs are measured in this test:
2476 * Number of blocked CVEs
2478 * Number of bypassed (nonblocked) CVEs
2480 * Background traffic performance (verify if the background traffic
2481 is impacted while sending CVE toward DUT/SUT)
2483 * Accuracy of DUT/SUT statistics in term of vulnerabilities
2484 reporting
2486 A.2. Testbed Setup
2488 The same testbed MUST be used for security effectiveness test and as
2489 well as for benchmarking test cases defined in Section 7.
2491 A.3. Test Parameters
2493 In this section, the benchmarking test specific parameters SHOULD be
2494 defined.
[nit] /SHOULD/are/ - a requirement against the authors of the document to write
desirable text in the document is not normative.
2496 A.3.1. DUT/SUT Configuration Parameters
2498 DUT/SUT configuration parameters MUST conform to the requirements
2499 defined in Section 4.2. The same DUT configuration MUST be used for
2500 Security effectiveness test and as well as for benchmarking test
2501 cases defined in Section 7. The DUT/SUT MUST be configured in inline
2502 mode and all detected attack traffic MUST be dropped and the session
[nit] /detected traffic/detected CVE traffic/ - there is also background
traffic, which i guess shouldnot be dropped, right ?
[nit] /the session/its session/ ?
2503 SHOULD be reset
2505 A.3.2. Test Equipment Configuration Parameters
2507 Test equipment configuration parameters MUST conform to the
2508 requirements defined in Section 4.3. The same client and server IP
2509 ranges MUST be configured as used in the benchmarking test cases. In
2510 addition, the following parameters MUST be documented for this
2511 benchmarking test:
2513 * Background Traffic: 45% of maximum HTTP throughput and 45% of
2514 Maximum HTTPS throughput supported by the DUT/SUT (measured with
2515 object size 64 KByte in the benchmarking tests "HTTP(S)
2516 Throughput" defined in Section 7.3 and Section 7.7).
[nit] RECOMMENDED Background Traffic ?
2518 * RECOMMENDED CVE traffic transmission Rate: 10 CVEs per second
2520 * It is RECOMMENDED to generate each CVE multiple times
2521 (sequentially) at 10 CVEs per second
2523 * Ciphers and keys for the encrypted CVE traffic MUST use the same
2524 cipher configured for HTTPS traffic related benchmarking tests
2525 (Section 7.6 - Section 7.9)
2527 A.4. Test Results Validation Criteria
2529 The following criteria are the test results validation criteria. The
2530 test results validation criteria MUST be monitored during the whole
2531 test duration.
[nit] /criteria are/lists/ - duplication of criteria in sentence.
2533 a. Number of failed application transaction in the background
2534 traffic MUST be less than 0.01% of attempted transactions.
2536 b. Number of terminated TCP connections of the background traffic
2537 (due to unexpected TCP RST sent by DUT/SUT) MUST be less than
2538 0.01% of total initiated TCP connections in the background
2539 traffic.
[comment] That is quite high. Shouldn't this at least be 5 nines of
success ? 99.999% -> 0.001% maximum rate of errors ? I thought thats the common
lore service provider product quality requirement minimum.
2541 c. During the sustain phase, traffic SHOULD be forwarded at a
2542 constant rate (considered as a constant rate if any deviation of
2543 traffic forwarding rate is less than 5%).
[minor] This seems underspecified. I guess in the ideally behaving DUT case
all background traffic is passed unmodified and all CVE connection traffic is
dropped. So the total amount of traffic with CVE events must be configured to
be less then 5% ?! What additional information would this 5% tell me that i do
not already get from a. and b. ? E.g.: if i fail some background connection,
then the impact depends on how big that connection would have been, but it
doesn't seem as if i get new information if a big NetFlix background flow got
killed and therefore 5 Gigabyte less background traffic where observed, or if
the same happened to a 200KByte amazon shopping connection. It would just cause
DUT to maybe do less inspection on big flows in fear of triggering false resets
on them ?? Is that what we want from DUTs ?
2545 d. False positive MUST NOT occur in the background traffic.
[comment] I do not understand d. When a background transaction from a. fails,
how is that different from false-positively being classified as a CVE - it would
be droppen then, right ? Or are you saying that a./b. is the case that the
background traffic receives errors from the DUT even though the DUT does NOT
recognize it as a CVE ? Any example reason why that would happen ?
2547 A.5. Measurement
2549 Following KPI metrics MUST be reported for this test scenario:
2551 Mandatory KPIs:
2553 * Blocked CVEs: It SHOULD be represented in the following ways:
2555 - Number of blocked CVEs out of total CVEs
2557 - Percentage of blocked CVEs
2559 * Unblocked CVEs: It SHOULD be represented in the following ways:
2561 - Number of unblocked CVEs out of total CVEs
2563 - Percentage of unblocked CVEs
2565 * Background traffic behavior: It SHOULD be represented one of the
2566 followings ways:
2568 - No impact: Considered as "no impact'" if any deviation of
2569 traffic forwarding rate is less than or equal to 5 % (constant
2570 rate)
2572 - Minor impact: Considered as "minor impact" if any deviation of
2573 traffic forwarding rate is greater than 5% and less than or
2574 equal to10% (i.e. small spikes)
2576 - Heavily impacted: Considered as "Heavily impacted" if any
2577 deviation of traffic forwarding rate is greater than 10% (i.e.
2578 large spikes) or reduced the background HTTP(S) throughput
2579 greater than 10%
[minor] I would prefer reporting the a./b. numbers, e.g.: percentage of
failed background connections. As mentioned before, i find the total background
traffic rate impact a rather problematic/less valuable metric.
2581 * DUT/SUT reporting accuracy: DUT/SUT MUST report all detected
2582 vulnerabilities.
2584 Optional KPIs:
2586 * List of unblocked CVEs
[minor] I think this KPI is a SHOULD or even MUST. Otherwise one can not trace
security impacts (when one does not know which CVE it is). This is still the
security effectiveness appendix, and reporting is not effective without this.
2588 A.6. Test Procedures and Expected Results
2590 The test procedure is designed to measure the security effectiveness
2591 of the DUT/SUT at the sustaining period of the traffic load profile.
2592 The test procedure consists of two major steps. This test procedure
2593 MAY be repeated multiple times with different IPv4 and IPv6 traffic
2594 distribution.
2596 A.6.1. Step 1: Background Traffic
2598 Generate background traffic at the transmission rate defined in
2599 Appendix A.3.2.
2601 The DUT/SUT MUST reach the target objective (HTTP(S) throughput) in
2602 sustain phase. The measured KPIs during the sustain phase MUST meet
2603 all the test results validation criteria defined in Appendix A.4.
2605 If the KPI metrics do not meet the acceptance criteria, the test
2606 procedure MUST NOT be continued to "Step 2".
2608 A.6.2. Step 2: CVE Emulation
2610 While generating background traffic (in sustain phase), send the CVE
2611 traffic as defined in the parameter section.
2613 The test equipment SHOULD start to measure and record all specified
2614 KPIs. Continue the test until all CVEs are sent.
2616 The measured KPIs MUST meet all the test results validation criteria
2617 defined in Appendix A.4.
2619 In addition, the DUT/SUT SHOULD report the vulnerabilities correctly.
2621 Appendix B. DUT/SUT Classification
2623 This document aims to classify the DUT/SUT in four different
2624 categories based on its maximum supported firewall throughput
2625 performance number defined in the vendor datasheet. This
2626 classification MAY help user to determine specific configuration
2627 scale (e.g., number of ACL entries), traffic profiles, and attack
2628 traffic profiles, scaling those proportionally to DUT/SUT sizing
2629 category.
2631 The four different categories are Extra Small (XS), Small (S), Medium
2632 (M), and Large (L). The RECOMMENDED throughput values for the
2633 following categories are:
2635 Extra Small (XS) - Supported throughput less than or equal to1Gbit/s
2637 Small (S) - Supported throughput greater than 1Gbit/s and less than
2638 or equal to 5Gbit/s
2640 Medium (M) - Supported throughput greater than 5Gbit/s and less than
2641 or equal to10Gbit/s
2643 Large (L) - Supported throughput greater than 10Gbit/s
2645 Authors' Addresses
2647 Balamuhunthan Balarajah
2648 Berlin
2649 Germany
2651 Email: bm.balarajah@gmail.com
2652 Carsten Rossenhoevel
2653 EANTC AG
2654 Salzufer 14
2655 10587 Berlin
2656 Germany
2658 Email: cross@eantc.de
2660 Brian Monkman
2661 NetSecOPEN
2662 417 Independence Court
2663 Mechanicsburg, PA 17050
2664 United States of America
2666 Email: bmonkman@netsecopen.org
EOF