Stateful Processing for Stateless Forwarding Elements

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flow-based software switches are stateless and struggle to implement firewall rules that require knowledge of connection state, leading to performance issues when creating new flow entries for each connection or relying solely on TCP flags, which are not applicable to all packet types.

Innovation Solution

A connection tracking module is introduced within the virtualization software to determine the connection status of packets by using an n-tuple in the packet header, allowing stateless flows to match over stateful information, and caching metadata and register information to restore it efficiently when packets are recirculated.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If new flow entries are created for each established connection to implement stateful firewall rules, then firewall security is improved, but system performance deteriorates due to severe performance problems

Engineering Contradiction:
Improvefirewall securityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent uses connection tracking to create a simplified copy of connection state information (5-tuple: source IP, source port, destination IP, destination port, protocol) and stores it in a connection table. This allows the firewall to reference pre-established connection states without creating complex flow entries for each connection, maintaining security while improving performance.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system performs preliminary connection tracking and state recording when connections are first established. By pre-processing and storing connection information in the connection table before firewall rule evaluation, the system avoids the overhead of creating and managing individual flow entries for each connection during subsequent packet processing.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If TCP flags are used to enforce firewall rules quickly, then processing speed is improved, but applicability deteriorates because the technique is only applicable to TCP packets

Engineering Contradiction:
Improveprocessing speedVSAvoidpacket type applicability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The connection tracking mechanism is designed to be protocol-agnostic, tracking connections based on the 5-tuple regardless of the specific transport protocol. This universal approach allows the same connection tracking infrastructure to handle TCP, UDP, and other protocols uniformly, maintaining both speed and versatility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If packets are sent to connection tracker outside the forwarding element to determine connection status, then stateful firewall capability is improved, but processing efficiency deteriorates due to loss of metadata and register information

Engineering Contradiction:
Improvestateful firewall capabilityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system implements a feedback mechanism where the connection tracker returns connection status information to the forwarding element. The forwarding element uses this feedback to make firewall decisions without needing to re-process packets through the entire pipeline, maintaining efficiency while enabling stateful inspection.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The connection tracking function is extracted as a separate module from the main forwarding element, allowing it to operate independently and return only the necessary connection status information. This extraction reduces the processing overhead on the main forwarding path while still providing stateful firewall capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9794222B2Stateful processing for stateless forwarding element
Publication Date: 2017.10.17 VMWARE INC
  • US9794222B2 patent drawing
  • US9794222B2 patent drawing
  • US9794222B2 patent drawing

AI summary

Some embodiments provide a method for performing stateful processing of a packet at a flow-based managed forwarding element (MFE). The method receives a packet at the MFE without stateful connection status information. The method sends the packet to a module separate from the MFE that stores stateful connection information for a plurality of connections. The method receives the packet from the module with stateful connection status information appended to the packet. The method performs an action on the packet based on the appended stateful connection status information.