Tunnel Endpoint Selection via Hash Learning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data centers, managing multiple tunnel endpoint addresses for forwarding elements is complex, especially when implementing MAC over IP tunnels for communication between virtual machines and servers, as existing methods lack efficient schemes for load balancing and endpoint selection.
Innovation Solution
A method for encapsulating packets at a source managed forwarding element (MFE) that involves selecting source and destination tunnel endpoints using techniques like hashing of MAC and IP addresses, or assessing current load, and storing mappings to ensure efficient load balancing and packet routing through the same tunnel endpoints.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If forwarding elements use multiple tunnel endpoint addresses to leverage multiple physical interfaces, then network capacity and redundancy are improved, but endpoint selection complexity and load balancing difficulty increase
Solution Approach 1:
The patent applies parameter changes by using hash functions with different seed values to dynamically select tunnel endpoints. The hash function takes packet characteristics (source/destination MAC addresses, IP addresses, ports) as input and produces a tunnel endpoint index. By changing the hash seed parameter, the system can distribute traffic differently across multiple endpoints while maintaining consistency for the same flow, thus managing complexity through mathematical transformation rather than complex routing logic
Solution Approach 2:
The patent implements feedback mechanisms where the system monitors tunnel endpoint status, load conditions, and packet routing success. Based on this feedback, the load balancer adjusts hash seed values or selects different endpoints dynamically. The system learns from routing outcomes and adapts endpoint selection to maintain optimal network performance while handling the complexity of multiple endpoints
2Reliability
If load balancing is implemented across multiple tunnel endpoints, then network reliability and performance are improved, but packet routing consistency may deteriorate
Solution Approach 1:
The patent applies local quality by treating different packet flows differently in the load balancing process. Instead of uniform random distribution, the system uses hash functions that map specific packet characteristics (source MAC, destination MAC, IP addresses, ports) to specific tunnel endpoints. This ensures that all packets belonging to the same flow (with identical characteristics) are consistently routed through the same tunnel endpoint pair, maintaining routing consistency locally for each flow while achieving global load balancing across multiple endpoints
Solution Approach 2:
The system performs preliminary actions by pre-computing hash values and determining tunnel endpoint assignments before actual packet transmission. The load balancer calculates which tunnel endpoint pair should handle a given flow based on hash functions applied to packet headers, and this assignment is stored and reused for all subsequent packets in the same flow. This preliminary determination ensures consistent routing without requiring real-time decision-making for each packet
3Stability of the object's composition
If tunnel endpoint mappings are stored and learned, then routing stability is improved, but memory usage and mapping management complexity increase
Solution Approach 1:
The patent extracts only the essential mapping information needed for routing stability. Instead of storing complete tunnel endpoint configurations, status details, or comprehensive routing tables, the system stores minimal mapping entries that associate packet flow identifiers (derived from hash functions) with selected tunnel endpoint indices. This extraction of essential information reduces memory usage while maintaining sufficient routing stability for ongoing flows
Data Source
AI summary
Some embodiments provide a method for a managed forwarding element (MFE). At the MFE, the method receives a first packet from a particular tunnel endpoint. The first packet originates from a particular data compute node associated with multiple tunnel endpoints including the particular tunnel endpoint. Based on the first packet, the method stores an association of the particular tunnel endpoint with the particular data compute node. The method uses the stored association to encapsulate subsequent packets received at the MFE and having the particular data compute node as a destination address with the particular tunnel endpoint as a destination tunnel endpoint.


