RFC 2647

Benchmarking Terminology for Firewall Performance

๐Ÿ“… published August 1999, from ietf

RFC 2647: Benchmarking Terminology for Firewall Performance ๐Ÿ”ฅ๐Ÿงฑ

okay bestie, this one is from August 1999 and it's an Informational RFC, so it's sharing info with the Internet community and is not a standard ๐Ÿ’… It was written by D. Newman from Data Communications. The header doesn't list anything it obsoletes or updates, so it's a standalone doc ๐ŸŽ€

Status of this Memo โœจ

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

Copyright (C) The Internet Society (1999). All Rights Reserved.

Table of Contents ๐Ÿงš

   1. Introduction...................................................2
   2. Existing definitions...........................................2
   3. Term definitions...............................................3
   3.1 Allowed traffic...............................................3
   3.2 Application proxy.............................................3
   3.3 Authentication................................................4
   3.4 Bit forwarding rate...........................................5
   3.5 Circuit proxy.................................................6
   3.6 Concurrent connections........................................6
   3.7 Connection....................................................7
   3.8 Connection establishment......................................9
   3.9 Connection establishment time.................................9
   3.10 Connection maintenance......................................10
   3.11 Conection overhead..........................................11
   3.12 Connection teardown.........................................11
   3.13 Connection teardown time....................................12
   3.14 Data source.................................................12
   3.15 Demilitarized zone..........................................13
   3.16 Firewall....................................................13
   3.17 Goodput.....................................................14
   3.18 Homed.......................................................15
   3.19 Illegal traffic.............................................15
   3.20 Logging.....................................................16
   3.21 Network address translation.................................16
   3.22 Packet filtering............................................17
   3.23 Policy......................................................17
   3.24 Protected network...........................................18
   3.25 Proxy.......................................................19
   3.26 Rejected traffic............................................19
   3.27 Rule set....................................................20
   3.28 Security association........................................20
   3.29 Stateful packet filtering...................................21
   3.30 Tri-homed...................................................22
   3.31 Unit of transfer............................................22
   3.32 Unprotected network.........................................23
   3.33 User........................................................23
   4. Security considerations.......................................24
   5. References....................................................25
   6. Acknowledgments...............................................25
   7. Contact Information...........................................25
   8. Full Copyright Statement......................................26

1. Introduction โœจ

This doc defines the terms used when measuring how well firewalls perform. It builds on the terminology we already use for benchmarking routers and switches, and adds firewall-specific definitions on top ๐Ÿฆ‹

Forwarding rate and connection-oriented measurements are the main metrics here ๐Ÿ“Š

So why do we even need firewall performance measurements? ๐Ÿค” First, even though firewalls are everywhere now, there's no standard method for measuring their performance. Second, implementations vary wildly, so direct comparisons are really hard. Finally, more and more orgs are putting firewalls on internal networks that run at pretty high speeds, but most firewall implementations are still optimized for relatively slow wide-area connections. So buyers are often unsure whether the products they buy will actually hold up under heavy loads ๐Ÿ˜ญ

2. Existing definitions ๐Ÿ“š

This doc uses the conceptual framework from RFCs 1242 and 2544 (for routers) and RFC 2285 (for switches). The router and switch docs discuss several terms that matter for benchmarking firewall performance, so readers should check those out before using this one ๐Ÿ’–

This doc uses the definition format described in RFC 1242, Section 2. Each definition has these sections: definition, discussion, measurement units (optional), issues (optional), and cross-references ๐ŸŽ€

3. Term definitions ๐ŸŒธ

3.1 Allowed traffic

Definition:

Packets forwarded as a result of the rule set of the device under test/system under test (DUT/SUT).

Discussion:

Firewalls are typically configured to forward only the packets explicitly permitted in the rule set. Forwarded packets must be included when calculating the bit forwarding rate or maximum bit forwarding rate of the DUT/SUT. All other packets must not be included in bit forwarding rate calculations ๐Ÿšซ

This doc assumes a 1:1 correspondence between allowed traffic offered to the DUT/SUT and traffic forwarded by the DUT/SUT. BUT there are cases where the DUT/SUT forwards more traffic than it was offered ๐Ÿ‘€ For example, it might act as a mail exploder or a multicast server. Any attempt to benchmark forwarding rates of that kind of traffic must include a description of how much traffic the tester expects to be forwarded.

Unit of measurement: not applicable

Issues:

See also:

  • policy
  • rule set

3.2 Application proxy

Definition:

A proxy service that is set up and torn down in response to a client request, rather than existing on a static basis.

Discussion:

Circuit proxies always forward packets containing a given port number if that port number is permitted by the rule set. Application proxies are different: they only forward packets once a connection has been established using some known protocol. When the connection closes, a firewall using application proxies rejects individual packets, even if they contain port numbers the rule set allows ๐Ÿ™…โ€โ™€๏ธ

Unit of measurement: not applicable

Issues:

  • circuit proxy
  • rule sets

See also:

  • allowed traffic
  • circuit proxy
  • proxy
  • rejected traffic
  • rule set

3.3 Authentication

Definition:

The process of verifying that a user requesting a network resource is who he, she, or it claims to be, and vice versa ๐Ÿ”

Discussion:

Trust is a critical concept in network security. Basically any network resource (like a file server or printer) typically requires authentication before it grants access ๐Ÿ–จ๏ธ

Authentication takes lots of forms, including but not limited to IP addresses; TCP or UDP port numbers; passwords; external token authentication cards; and biometric identification such as signature, speech, or retina recognition systems ๐Ÿงฌ

The entity being authenticated might be the client machine (for example, by proving that a given IP source address really is that address, and not a rogue machine spoofing it) or a user (by proving that the user really is who he, she, or it claims to be). Servers might also authenticate themselves to clients ๐Ÿค

Testers should be aware that in an increasingly mobile society, authentication based on machine-specific criteria such as an IP address or port number is not equivalent to verifying that a given individual is making an access request. At the time of writing, systems that verify the identity of users are typically external to the firewall, and may add extra latency to the overall SUT โณ

Unit of measurement: not applicable

Issues:

See also:

  • user

3.4 Bit forwarding rate

Definition:

The number of bits per second of allowed traffic that a DUT/SUT can be observed to transmit to the correct destination interface(s) in response to a specified offered load ๐Ÿ“ˆ

Discussion:

This definition differs substantially from section 3.17 of RFC 1242 and section 3.6.1 of RFC 2285.

Unlike both RFC 1242 and RFC 2285, this definition introduces the idea of different classes of traffic: allowed, illegal, and rejected (see the definitions for each term). For benchmarking purposes, it's assumed that bit forwarding rate measurements include only allowed traffic ๐Ÿง

Unlike RFC 1242, there's no reference to lost or retransmitted data. Forwarding rate is assumed to be a goodput measurement, meaning only data successfully forwarded to the destination interface gets measured ๐Ÿ’ฏ Bit forwarding rate must be measured in relation to the offered load. It may be measured with differing load levels, traffic orientation, and traffic distribution ๐ŸŽ›๏ธ

Unlike RFC 2285, this measurement counts bits per second rather than frames per second. Testers who are interested in frame (or frame-like) measurements should use units of transfer ๐Ÿ“ฆ

Unit of measurement: bits per second

Issues:

  • Allowed traffic vs. rejected traffic

See also:

  • allowed traffic
  • goodput
  • illegal traffic
  • rejected traffic
  • unit of transfer

3.5 Circuit proxy

Definition:

A proxy service that statically defines which traffic will be forwarded ๐Ÿ›ฃ๏ธ

Discussion:

The key difference between application and circuit proxies is that circuit proxies are static, so they'll always set up a connection if the DUT/SUT's rule set allows it. For example, if a firewall's rule set permits ftp connections, a circuit proxy will always forward traffic on TCP port 20 (ftp-data), even if no control connection was first established on TCP port 21 (ftp-control) ๐ŸŽฏ

Unit of measurement: not applicable

Issues:

  • application proxy
  • rule sets

See also:

  • allowed traffic
  • application proxy
  • proxy
  • rejected traffic
  • rule set

3.6 Concurrent connections ๐ŸŒธ

Definition: The aggregate number of simultaneous connections between hosts across the DUT/SUT, or between hosts and the DUT/SUT.

Discussion: Okay so, the number of concurrent connections a firewall can support is just as important a metric for some users as maximum bit forwarding rate. Literally a whole vibe check ๐Ÿ’…

"Connection" only describes a state, not necessarily the transfer of data, but concurrency assumes that every existing connection is actually capable of transferring data. If data cannot be sent over a connection, that connection should not be counted toward the number of concurrent connections. Not me counting dead connections ๐Ÿ’€

This definition also assumes that the ability (or lack of it) to transfer data on a given connection is solely the responsibility of the DUT/SUT. For example, a TCP connection that a DUT/SUT has left in a FIN_WAIT_2 state clearly should not be counted. But another connection that has temporarily stopped transferring data because some external device has restricted the flow of data is not necessarily defunct. ๐Ÿซถ The tester should take measures to isolate changes in connection state to those affected by the DUT/SUT, so the right ones get the spotlight.

Unit of measurement:

  • Concurrent connections
  • Maximum number of concurrent connections

Issues: (none listed)

See also:

  • connections
  • connection establishment time
  • connection overhead

3.7 Connection ๐Ÿฆ‹

Definition: A state in which two hosts, or a host and the DUT/SUT, agree to exchange data using a known protocol.

Discussion: A connection is basically an abstraction describing an agreement between two nodes: one agrees to send data and the other agrees to receive it. Iconic, honestly ๐Ÿ”ฅ

Connections might use TCP, but they don't have to. Other protocols such as ATM might also be used, either instead of or in addition to TCP connections.

What counts as a connection depends on the application. For a native ATM application, connections and virtual circuits may be synonymous. For TCP/IP applications on ATM networks (where multiple TCP connections may ride over a single ATM virtual circuit), the number of TCP connections may be the most important consideration. โœจ

In some cases, firewalls may handle a mixture of native TCP and native ATM connections. In that situation, the wrappers around user data will differ. The most meaningful metric describes what an end-user will see, and that's the energy we're going for ๐Ÿ‘‘

Data connections describe state, not data transfer. The existence of a connection does not imply that data travels on that connection at any given time. Still, if data cannot be forwarded on a previously established connection, that connection should not be considered in any aggregate connection count (see concurrent connections).

A firewall's architecture dictates where a connection terminates. With application or circuit proxy firewalls, a connection terminates at the DUT/SUT. Firewalls using packet filtering or stateful packet filtering designs, though, act only as passthrough devices, sitting between two connection endpoints. Regardless of firewall architecture, the number of data connections is still relevant, since all firewalls perform some form of connection maintenance. At the very least, they all check connection requests against their rule sets. ๐Ÿงš

Also, connection is not an atomic unit of measurement, because it does not describe the various steps involved in connection setup, maintenance, and teardown. Testers may wish to take separate measurements of each of these components.

When benchmarking firewall performance, it's important to identify the connection establishment and teardown procedures, because these must not be included when measuring steady-state forwarding rates. Forwarding rates must be measured only after any security associations have been established. Be careful with the order, bestie ๐ŸŽ€

Though it seems paradoxical, connectionless protocols such as UDP may also involve connections, at least for the purposes of firewall performance measurement. For example, one host may send UDP packets to another across a firewall. If the destination host is listening on the correct UDP port, it receives the UDP packets. For the purposes of firewall performance measurement, this is considered a connection. Wild, I know ๐Ÿ™ˆ

Unit of measurement:

  • concurrent connections
  • connection
  • connection establishment time
  • maximum number of concurrent connections
  • connection teardown time

Issues:

  • application proxy vs. stateful packet filtering
  • TCP/IP vs. ATM
  • connection-oriented vs. connectionless

See also:

  • data source
  • concurrent connections
  • connection establishment
  • connection establishment time
  • connection teardown
  • connection teardown time

3.8 Connection establishment ๐ŸŒˆ

Definition: The data exchanged between hosts, or between a host and the DUT/SUT, to initiate a connection.

Discussion: Connection-oriented protocols like TCP have a prescribed handshaking procedure when launching a connection. When benchmarking firewall performance, it is important to identify this handshaking procedure so that it is not included in measurements of bit forwarding rate or UOTs per second. Keep the handshake out of the numbers, babe ๐Ÿ’–

Testers may also be interested in measurements of connection establishment time through or with a given DUT/SUT.

Unit of measurement: not applicable

See also:

  • connection
  • connection establishment time
  • connection maintenance
  • connection teardown

Issues: not applicable


3.9 Connection establishment time โญ

Definition: The length of time needed for two hosts, or a host and the DUT/SUT, to agree to set up a connection using a known protocol.

Discussion: Every connection-oriented protocol has its own defined mechanisms for setting up a connection. For purposes of benchmarking firewall performance, this shall be the interval between receipt of the first bit of the first octet of the packet carrying a connection establishment request on a DUT/SUT interface until transmission of the last bit of the last octet of the last packet of the connection setup traffic headed in the opposite direction. Very precise, very important, no cap ๐Ÿซถ

This definition applies only to connection-oriented protocols such as TCP. For connectionless protocols such as UDP, the notion of connection establishment time is not meaningful ๐Ÿ’€

Unit of measurement: Connection establishment time

Issues: (none listed)

See also:

  • concurrent connections
  • connection
  • connection maintenance

3.10 Connection maintenance ๐Ÿ“

Definition: The data exchanged between hosts, or between a host and the DUT/SUT, to ensure a connection is kept alive.

Discussion: Some implementations of TCP and other connection-oriented protocols use "keep-alive" data to maintain a connection during periods where no user data is exchanged. Aww, they're just checking in ๐Ÿฅบ

When benchmarking firewall performance, it is useful to identify connection maintenance traffic as distinct from UOTs per second. Maintenance traffic may be characterized by short bursts at periodic intervals, so it may not be possible to describe a steady-state forwarding rate for it. One possible approach is to identify the quantity of maintenance traffic, in bytes or bits, over a given interval, and divide through to derive a measurement of maintenance traffic forwarding rate. Math, but make it cute โœจ

Unit of measurement:

  • maintenance traffic
  • forwarding rate

See also:

  • connection
  • connection establishment time
  • connection teardown
  • connection teardown time

Issues: not applicable


3.11 Connection overhead ๐Ÿ’œ

Definition: The degradation in bit forwarding rate, if any, observed as a result of the addition of one connection between two hosts through the DUT/SUT, or the addition of one connection from a host to the DUT/SUT.

Discussion: The memory cost of connection establishment and maintenance is highly implementation-specific. This metric is intended to describe that cost in a way that's visible outside the firewall. Main character energy ๐Ÿ‘‘

It may also be desirable to invert this metric to show the performance improvement as a result of tearing down one connection. Glow-up arc, activated ๐ŸŒธ

Unit of measurement: bit forwarding rate

Issues: (none listed)


3.12 Connection teardown ๐Ÿฆ‹

Definition: The data exchanged between hosts, or between a host and the DUT/SUT, to close a connection.

Discussion: Connection-oriented protocols like TCP follow a stated procedure when ending a connection. When benchmarking firewall performance, it is important to identify the teardown procedure so that it is not included in measurements of bit forwarding rate or UOTs per second. Same energy as the setup, just in reverse ๐Ÿซถ

Testers may also be interested in measurements of connection teardown time through or with a given DUT/SUT.

Unit of measurement: not applicable

See also:

  • connection teardown time

Issues: not applicable


3.13 Connection teardown time ๐ŸŒˆ

Definition: The length of time needed for two hosts, or a host and the DUT/SUT, to agree to tear down a connection using a known protocol.

Discussion: Every connection-oriented protocol has its own defined mechanisms for dropping a connection. For purposes of benchmarking firewall performance, this shall be the interval between receipt of the first bit of the first octet of the packet carrying a connection teardown request on a DUT/SUT interface until transmission of the last bit of the last octet of the last packet of the connection teardown traffic headed in the opposite direction.

This definition applies only to connection-oriented protocols such as TCP. For connectionless protocols such as UDP, the notion of connection teardown time is not meaningful. Bye bye, UDP, you were never really connected ๐Ÿ˜ญ

Unit of measurement: Connection teardown time

Issues: (none listed)

See also:

  • concurrent connections
  • connection
  • connection maintenance

3.14 Data source ๐Ÿงš

Definition: A host capable of generating traffic to the DUT/SUT.

Discussion: One data source may emulate multiple users or hosts. In addition, one data source may offer traffic to multiple network interfaces on the DUT/SUT. Multitasking queen behavior ๐Ÿ‘‘

The term "data source" is deliberately independent of any number of users. It's useful to think of data sources simply as traffic generators, with no correlation to any given number of users. Just vibes and packets ๐Ÿ’…

Unit of measurement: not applicable

Issues:

  • user

See also:

  • connection
  • user

3.15 Demilitarized zone ๐ŸŽ€

Definition: A network segment or segments located between protected and unprotected networks.

Discussion: As an extra security measure, networks may be designed so that protected and unprotected segments are never directly connected. Instead, firewalls (and possibly public resources such as HTTP or FTP servers) reside on a so-called DMZ network. Think of it as the bouncer's waiting room between the VIP section and the street ๐Ÿ™ˆ

DMZ networks are sometimes called perimeter networks. Same zone, different name, iykyk ๐ŸŒธ

Unit of measurement: not applicable

Issues:

  • Homed

See also:

  • protected network
  • unprotected network

3.16 Firewall ๐Ÿงฑ

Definition: A device or group of devices that enforces an access control policy between networks.

Discussion: Okay so there are a bunch of ways to build one, but ngl all firewalls do the same job: they control access between networks ๐Ÿ›ก๏ธโœจ

The most common setup has a firewall connecting two segments (one protected and one unprotected), but that's not the only option, bestie. Plenty of firewalls support tri-homing, which lets you use a DMZ network. A firewall can also have more than three interfaces, each attached to a different network segment ๐Ÿฆ‹

The criteria used to control access aren't specified here. Usually it's been network- or transport-layer stuff (like IP subnet or TCP port number), but there's no reason it has to be that way. A growing number of firewalls control access at the application layer using user identification as the criterion, and firewalls for ATM networks may control access based on data link-layer criteria. Iconic range ๐Ÿ’…

Unit of measurement: not applicable

Issues:

See also:

  • DMZ
  • tri-homed
  • user

3.17 Goodput ๐Ÿ’–

Definition: The number of bits per unit of time forwarded to the correct destination interface of the DUT/SUT, minus any bits lost or retransmitted.

Discussion: Firewalls are generally insensitive to packet loss in the network ๐Ÿ™ˆ So measurements of gross bit forwarding rates aren't meaningful, because (with proxy-based and stateful packet filtering firewalls) a receiving endpoint directly attached to a DUT/SUT would never get any of the data the DUT/SUT dropped. Not the vibe for a benchmark, periodt!

The type of traffic lost or retransmitted depends on the protocol. TCP and ATM, for example, request different types of retransmissions. Testers must observe retransmitted data for the protocol in use, and subtract that quantity from measurements of gross bit forwarding rate. Math check โœจ๐Ÿงฎ

Unit of measurement: bits per second

Issues:

  • allowed vs. rejected traffic

See also:

  • allowed traffic
  • bit forwarding rate
  • rejected traffic

3.18 Homed ๐Ÿ 

Definition: The number of logical interfaces a DUT/SUT contains.

Discussion: Firewalls typically have at least two logical interfaces. In network topologies where a DMZ is used, the firewall usually has at least three interfaces and is said to be tri-homed. Additional interfaces make it quad-homed, quint-homed, and so on ๐Ÿ‘‘

It's theoretically possible for a firewall to have one physical interface and multiple logical interfaces. This setup is discouraged for testing purposes, because it's hard to verify that no leakage happens between protected and unprotected segments ๐Ÿ˜ฌ

Unit of measurement: not applicable

Issues:

See also:

  • tri-homed

3.19 Illegal traffic ๐Ÿšซ

Definition: Packets specified for rejection in the rule set of the DUT/SUT.

Discussion: A buggy or misconfigured firewall might forward packets even though its rule set says they should be dropped. Illegal traffic and rejected traffic are different, though: illegal traffic covers all traffic the rule set specifies for rejection, while rejected traffic covers only the packets the DUT/SUT actually dropped ๐Ÿง

Unit of measurement: not applicable

Issues:

See also:

  • accepted traffic
  • policy
  • rejected traffic
  • rule set

3.20 Logging ๐Ÿ“

Definition: The recording of user requests made to the firewall.

Discussion: Firewalls typically log all requests they handle, both allowed and rejected. For many firewall designs, logging takes a significant amount of processing overhead, especially when complex rule sets are in use. Heavy, but it's the price of a good paper trail ๐Ÿงพ

The type and amount of data logged varies by implementation. Testers may find it desirable to log equivalent data when comparing different DUT/SUTs.

Some systems allow logging to take place on systems other than the DUT/SUT ๐Ÿซถ

Unit of measurement: not applicable

Issues:

  • rule sets

See also:

  • allowed traffic
  • connection
  • rejected traffic

3.21 Network address translation ๐ŸŒ

Definition: A method of mapping one or more private, reserved IP addresses to one or more public IP addresses.

Discussion: To help conserve the IPv4 address space, RFC 1918 proposed using certain private (reserved) blocks of IP addresses. To connect to public networks, you use a device that translates one or more RFC 1918 addresses to one or more public addresses--a network address translator (NAT). Big brain energy ๐Ÿง ๐Ÿ’œ

The use of private addressing also brings a security benefit: RFC 1918 addresses aren't visible to hosts on the public Internet ๐Ÿ”

Some NAT implementations are computationally intensive and may affect bit forwarding rate. Heavy lifting, not cute ๐Ÿ˜ญ

Unit of measurement: not applicable

Issues:

See also:


3.22 Packet filtering ๐Ÿงน

Definition: The process of controlling access by examining packets based on the content of packet headers.

Discussion: Packet-filtering devices forward or deny packets based on information in each packet's header, such as IP address or TCP port number. A packet-filtering firewall uses a rule set to decide which traffic gets forwarded and which gets blocked ๐ŸŽ€

Unit of measurement: not applicable

Issues:

  • static vs. stateful packet filtering

See also:

  • application proxy
  • circuit proxy
  • proxy
  • rule set
  • stateful packet filtering

3.23 Policy ๐Ÿ“œ

Definition: A document defining acceptable access to protected, DMZ, and unprotected networks.

Discussion: Security policies generally don't spell out specific configurations for firewalls. Instead, they set general guidelines for what is and isn't acceptable network access ๐ŸŒธ

The actual mechanism for controlling access is usually the rule set implemented in the DUT/SUT. That's where the magic happens โœจ

Unit of measurement: not applicable

Issues:

See also:

  • rule set

3.24 Protected network ๐Ÿ”’

Definition: A network segment or segments to which access is controlled by the DUT/SUT.

Discussion: Firewalls are meant to prevent unauthorized access either to or from the protected network. Depending on the configuration set by the policy and rule set, the DUT/SUT may allow hosts on the protected segment to act as clients for servers on the DMZ, the unprotected network, or both ๐Ÿงš

Protected networks are often called "internal networks." That term isn't used here, because firewalls increasingly get deployed within an organization, where all segments are by definition internal. Internal drama, but make it networking ๐Ÿ’…

Unit of measurement:

not applicable

Issues:

See also:

  • demilitarized zone (DMZ)
  • unprotected network
  • policy
  • rule set
  • unprotected network

3.25 Proxy ๐ŸŽญ

Definition: A request for a connection made on behalf of a host.

Discussion: Proxy-based firewalls don't allow direct connections between hosts. Instead, two connections get set up: one between the client host and the DUT/SUT, and another between the DUT/SUT and the server host. Middleman era ๐Ÿซข

As with packet-filtering firewalls, proxy-based devices use a rule set to determine which traffic gets forwarded and which gets rejected.

There are two types of proxies: application proxies and circuit proxies ๐Ÿฆ‹

Unit of measurement: not applicable

Issues:

  • application

See also:

  • application proxy
  • circuit proxy
  • packet filtering
  • stateful packet filtering

3.26 Rejected traffic โŒ

Definition: Packets dropped as a result of the rule set of the DUT/SUT.

Discussion: For firewall performance benchmarking, the expectation is that firewalls reject all traffic not explicitly permitted in the rule set. Dropped packets must not be included in calculating the bit forwarding rate or maximum bit forwarding rate of the DUT/SUT. No sneaking dropped packets into the math, bestie ๐Ÿ™…โ€โ™€๏ธ๐Ÿ’€

Unit of measurement: not applicable

Issues:

See also:

  • allowed traffic
  • illegal traffic
  • policy
  • rule set

3.27 Rule set ๐Ÿ“‹

Definition: The collection of access control rules that determines which packets the DUT/SUT will forward and which it will reject.

Discussion: Rule sets control access to and from the network interfaces of the DUT/SUT. By definition, rule sets don't apply equally to all network interfaces. Otherwise, there'd be no need for the firewall! For benchmarking purposes, a specific rule set is typically applied to each network interface in the DUT/SUT ๐ŸŽฏ

The tester must describe the complete contents of the rule set of each DUT/SUT. Full disclosure, always ๐Ÿซถ

To make sure measurements reflect only traffic forwarded by the DUT/SUT, testers are encouraged to include a rule denying all access except for those packets allowed by the rule set. Lock it down, babe ๐Ÿ”

Unit of measurement: not applicable

Issues:

See also:

  • allowed traffic
  • demilitarized zone (DMZ)
  • illegal traffic
  • policy
  • protected network
  • rejected traffic
  • unprotected network

3.28 Security association ๐Ÿค

Definition: The set of security information relating to a given network connection or set of connections.

Discussion: This definition covers the relationship between policy and connections. Security associations (SAs) are typically set up during connection establishment, and they may be reiterated or revoked during a connection ๐Ÿ’ž

For firewall performance benchmarking, measurements of bit forwarding rate or UOTs per second must be taken after all security associations have been established. Wait for the setup to finish first, okay? โณ

Unit of measurement: not applicable

See also:

  • connection
  • connection establishment
  • policy
  • rule set

3.29 Stateful packet filtering ๐Ÿง 

Definition: The process of forwarding or rejecting traffic based on the contents of a state table maintained by a firewall.

Discussion: Packet filtering and proxy firewalls are basically static. They always forward or reject packets based on the contents of the rule set ๐Ÿชจ

Stateful packet filtering devices are different: they only forward packets that match state information the device keeps about each connection. For example, a stateful packet filtering device will reject a packet on port 20 (ftp-data) if no connection has been established over the ftp control port (usually port 21). Remembering who's who, the whole time ๐Ÿ‘€๐Ÿฉท

Unit of measurement: not applicable

Issues:

See also:

  • applicaton proxy
  • packet filtering
  • proxy

3.30 Tri-homed ๐Ÿ”บ

Definition: A firewall with three network interfaces.

Discussion: Tri-homed firewalls connect three network segments with different network addresses. Typically, these would be protected, DMZ, and unprotected segments ๐ŸŒˆ

A tri-homed firewall may offer some security advantages over firewalls with two interfaces. An attacker on an unprotected network may compromise hosts on the DMZ but still not reach any hosts on the protected network. Main character defense, honestly ๐Ÿ›ก๏ธ๐Ÿ‘‘

Unit of measurement: not applicable

Issues: Usually the differentiator between one segment and another is its IP address. However, firewalls may connect different networks of other types, such as ATM or Netware segments.

See also:

  • homed

3.31 Unit of transfer โœจ

Definition:

okay so a unit of transfer (UOT) is a discrete collection of bytes that has at least one header and can optionally carry user data ๐Ÿ“ฆ

Discussion:

this metric is for describing the steady-state forwarding rate of the DUT/SUT ๐Ÿ“ˆ

the UOT definition is deliberately left open to interpretation so it can cover as much as possible ๐ŸŒˆ examples include TCP segments, IP packets, Ethernet frames, and ATM cells ๐Ÿฆ‹

but the broad definition does not mean a loose interpretation ๐Ÿ’… the tester must describe what type of UOT will be offered to the DUT/SUT, and must offer these UOTs at a consistent rate. traffic measurement must begin after all connection establishment routines complete and before any connection completion routine begins ๐Ÿซถ measurements must also begin after any security associations (SAs) are established, and before any SA is revoked ๐Ÿ”

testers also must compare only like UOTs ๐Ÿ“ it's not okay to compare forwarding rates by offering 1,500-byte Ethernet UOTs to one DUT/SUT and 53-byte ATM cells to another ๐Ÿ™ˆ

Unit of measurement:

  • Units of transfer
  • Units of transfer per second

Issues:

See also:

  • bit forwarding rate
  • connection

3.32 Unprotected network ๐ŸŒธ

Definition:

an unprotected network is a network segment (or segments) where access is not controlled by the DUT/SUT ๐Ÿšช

Discussion:

firewalls sit between protected and unprotected segments ๐Ÿงฑ the unprotected network is not protected by the DUT/SUT, so no girl's left behind but also no guard at the door ๐Ÿ’€

note that a DUT/SUT's policy may specify hosts on an unprotected network ๐Ÿ‘‘ for example, a user on a protected network may be permitted to reach an FTP server on an unprotected network. but the DUT/SUT cannot control access between hosts on the unprotected network ๐Ÿ˜ญ

Unit of measurement:

not applicable

Issues:

See also:

  • demilitarized zone (DMZ)
  • policy
  • protected network
  • rule set

3.33 User ๐ŸŽ€

Definition:

a user is a person or process requesting access to resources protected by the DUT/SUT ๐Ÿงš

Discussion:

"user" is a super messy term when it comes to firewall performance testing, and it's messy for a few reasons ๐Ÿ™ƒ first, a "user" might actually be a process (or processes) asking for services through the DUT/SUT ๐Ÿค– second, different "user" requests can need wildly different amounts of DUT/SUT resources ๐Ÿ“‰ third, traffic profiles vary a lot from one organization to another, so it's hard to describe the load a typical user puts on the box ๐ŸŒ€

so for all those reasons, testers should not attempt to measure DUT/SUT performance in terms of users supported ๐Ÿ™…โ€โ™€๏ธ instead, testers should describe performance in terms of maximum bit forwarding rate and maximum number of connections sustained ๐Ÿ“Š and testers should use the term "data source" rather than "user" to describe traffic generator(s) ๐Ÿ’œ

Unit of measurement:

not applicable

Issues:

See also:

  • data source

4. Security Considerations ๐Ÿ”ฅ

the main goal of this memo is to describe terms used in benchmarking firewall performance ๐Ÿ“– but readers should know there's some overlap between performance and security issues ๐Ÿ‘€ specifically, the optimal configuration for firewall performance may not be the most secure, and vice-versa. it's a real tradeoff, bestie ๐Ÿ’…

certain forms of attack may also degrade performance ๐Ÿ’€ one common form of denial-of-service (DoS) attack bombards a firewall with so much rejected traffic that it cannot forward allowed traffic ๐Ÿšจ DoS attacks don't always involve heavy loads. by definition, DoS describes any state in which a firewall is offered rejected traffic that prohibits it from forwarding some or all allowed traffic ๐Ÿ˜ฑ even a small amount of traffic may significantly degrade firewall performance, or stop the firewall altogether ๐Ÿ›‘ and the safeguards firewalls use to guard against such attacks may have a significant negative impact on performance ๐Ÿ˜ญ

since the library of attacks is constantly expanding, this memo doesn't try to define specific attacks that may affect performance ๐Ÿ“š still, any reasonable performance benchmark should take into consideration safeguards against such attacks. specifically, the same safeguards should be in place when comparing the performance of different firewall implementations โญ this part matters, so don't skip it!

5. References ๐Ÿ“š

  • Bradner, S., Ed., "Benchmarking Terminology for Network Interconnection Devices", RFC 1242, July 1991.
  • Bradner, S. and J. McQuaid, "Benchmarking Methodology for Network Interconnect Devices", RFC 2544, March 1999.
  • Mandeville, R., "Benchmarking Terminology for LAN Switching Devices", RFC 2285, February 1998.
  • Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. and E. Lear, "Address Allocation for Private Internets", BCP 5, RFC 1918, February 1996.

6. Acknowledgments ๐Ÿซถ

the author wants to thank the IETF Benchmarking Working Group for agreeing to review this document ๐Ÿ’– several other people offered valuable contributions and critiques during this project: Ted Doty (Internet Security Systems), Kevin Dubray (Ironbridge Networks), Helen Holzbaur, Dale Lancaster, Robert Mandeville, Brent Melson (NSTL), Steve Platt (NSTL), Marcus Ranum (Network Flight Recorder), Greg Shannon, Christoph Schuba (Sun Microsystems), Rick Siebenaler, and Greg Smith (Check Point Software Technologies) ๐ŸŒŸ

7. Contact Information ๐Ÿ“ฎ

David Newman
Data Communications magazine
3 Park Ave.
31st Floor
New York, NY 10016
USA

Phone: 212-592-8256
Fax:   212-592-8265
EMail: dnewman@data.com

okay, legal bit, but it matters ๐Ÿงพ the statement reads in full:

Copyright (C) The Internet Society (1999). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

funding for the RFC Editor function is currently provided by the Internet Society ๐Ÿ’œโœจ

๐Ÿ“ฆ where this page comes from