Host-Based Network Address Translation for Virtual Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network address translation technologies face challenges in efficiently managing port mapping across multiple virtual machines, leading to complexity and reduced fault tolerance.

Innovation Solution

Implementing network address translation by individual host machines rather than gateways, allowing port mapping to be performed in the user process space to prevent kernel malfunctions and enable fault-tolerant operation across multiple virtual machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If network address translation is performed by gateways, then centralization of translation function is achieved, but complexity of gateway increases and fault tolerance decreases

Engineering Contradiction:
Improvefault toleranceVSAvoidgateway complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the network address translation function from the gateway and assigns it to individual host machines. Each host machine independently performs port mapping for virtual machines hosted on that machine, eliminating the need for complex gateway-based translation and improving fault tolerance since a single host failure does not affect other hosts' translation capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the port mapping function from the gateway and implements it at the host machine level. This extraction removes the translation complexity from the gateway, allowing it to focus on routing functions while host machines handle the port mapping locally, thereby reducing gateway complexity and improving system reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If port mapping is performed by gateways, then centralized translation management is achieved, but synchronization complexity increases across multiple gateways

Engineering Contradiction:
Improvetranslation table replicationVSAvoidsynchronization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the translation table management by storing port mapping information locally at each host machine rather than maintaining a centralized table at the gateway. Each host maintains its own translation table for virtual machines on that host, eliminating the need for complex synchronization across multiple gateways while enabling flexible adaptation to different host configurations.

Inventive Principle:
Principle #1Segmentation

3Reliability

If port mapping is performed in kernel space, then system performance is improved, but kernel stability is compromised and fault tolerance reduced

Engineering Contradiction:
Improvefault toleranceVSAvoidport mapping performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the port mapping process from the kernel space and implements it in user space. The host machine's user-space processes handle port mapping operations, which isolates translation failures from the kernel and improves fault tolerance. While user-space operations can be slightly slower than kernel operations, the trade-off is acceptable for the gained reliability and fault isolation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12267293B2Network address translation for virtual machines
Publication Date: 2025.04.01 GOOGLE LLC
  • US12267293B2 patent drawing
  • US12267293B2 patent drawing
  • US12267293B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving a packet from a client, the packet having header information including a destination Internet Protocol (IP) address, a destination port, a source IP address, and a source port, and wherein the source IP address and source port are associated with the client; selecting a destination virtual machine based on the destination port; modifying the packet by replacing the destination IP address in the header information with an IP address of the selected destination virtual machine; and sending the modified packet to the destination virtual machine.