IP Library Granted Patent US 10,191,758
Granted Patent B2
US 10,191,758 · App. 14/964,318 · Granted Jan 29, 2019

Directing data traffic between intra-server virtual machines

Inventors: Colin Ross (Arlington, TX); Choung-Yaw Shieh (Palo Alto, CA)
Assignee: vArmour Networks, Inc.
G06F9/45558H04L45/021H04L45/586H04L45/74H04L61/6022G06F2009/4557G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,191,758
App. No.
14/964,318
Granted
Jan 29, 2019
Kind
B2
Abstract

Systems and methods for improving data communications between intra-server virtual machines are described herein. An example method may commence with receiving, from a first virtual machine, a data packet directed to a second virtual machine, routing the data packet via an external routing environment, and receiving the data packet allowed for delivery to the second virtual machine. Based on the receipt, it may be determined that a data flow associated with the data packet is allowed, and a unique identifier of the first virtual machine may be replaced with a first unique identifier and a unique identifier of the second virtual machine may be replaced with a second unique identifier. The first and second unique identifiers may be associated with corresponding interfaces of the intra-server routing module and used to direct the data flow internally within the server between the first virtual machine and the second virtual machine.

Claims (33)

1. A system for improving data communications between intra-server virtual machines, the system comprising:

network interfaces;

at least one hardware processor communicatively coupled to the network interfaces;

an intra-server routing module implemented by the at least one hardware processor; and

a memory communicatively coupled to the at least one hardware processor, the memory storing instructions which are executable by the at least one hardware processor to perform a method comprising:

receiving, by the intra-server routing module, a first data packet from a first virtual machine directed to a second virtual machine, the first virtual machine and the second virtual machine being associated with the same server;

without inspection from the intra-server routing module, providing to an inline device the first data packet, the inline device forwarding the first data packet to an external routing environment;

receiving, by the intra-server routing module, the first data packet from the external routing environment being allowed for delivery to the second virtual machine based on a predetermined policy;

determining, by a tap sensor, that a data flow associated with the first data packet is allowed between the first virtual machine and the second virtual machine using the receipt of the first data packet, the data flow including data packets from the first virtual machine directed to the second virtual machine and data packets from the second virtual machine directed to the first virtual machine;

using the determination, replacing, by the intra-server routing module, in second data packets of the allowed data flow, a unique identifier of the first virtual machine with a first unique identifier, and replacing a unique identifier of the second virtual machine with a second unique identifier, the first unique identifier and the second unique identifier being associated with the network interfaces of the intra-server routing module; and

directing, by the intra-server routing module, the allowed data flow between the first virtual machine and the second virtual machine using the first unique identifier and the second unique identifier associated with the intra-server routing module, the allowed data flow being directed internally within the server.

2. The system of claim 1 , wherein the unique identifier associated with the first virtual machine includes a Media Access Control (MAC) address of the first virtual machine, the unique identifier associated with the second virtual machine includes a MAC address of the second virtual machine, and the first unique identifier and the second unique identifier include MAC addresses of the intra-server routing module.

3. The system of claim 1 , wherein the external routing environment includes at least one of: a virtual routing environment and a physical routing environment.

4. The system of claim 1 , wherein the method further comprises: receiving instructions, from a tap sensor built into the inline device, to replace the unique identifier of the first virtual machine with the first unique identifier and replace the unique identifier of the second virtual machine with the second unique identifier, the tap sensor inspecting data communications within the server and determining the second data packets are associated with the first data packet being allowed using the inspection.

5. The system of claim 1 , wherein the unique identifier of the first virtual machine and the unique identifier of the second virtual machine are replaced in one or more routing tables associated with the intra-server routing module.

6. The system of claim 1 , wherein the external routing environment includes one or more of the following:

a Firewall, an intrusion prevention system, and an intrusion detection system.

7. The system of claim 1 , wherein the first virtual machine is associated with a first network and the second virtual machine is associated with a second network.

8. A method by an intra-server routing module for data communications between intra-server virtual machines comprising:

receiving, by the intra-server routing module, a first data packet from a first virtual machine directed to a second virtual machine, the first virtual machine and the second virtual machine being associated with the same server;

without inspection from the intra-server routing module, providing to an inline device the first data packet, the inline device forwarding the first data packet to an external routing environment;

receiving, by the intra-server routing module, the first data packet from the external routing environment being allowed for delivery to the second virtual machine based on a predetermined policy;

determining, by a tap sensor, that a data flow associated with the first data packet is allowed between the first virtual machine and the second virtual machine using the receipt of the first data packet, the data flow including data packets from the first virtual machine directed to the second virtual machine and data packets from the second virtual machine directed to the first virtual machine;

using the determination, replacing, by the intra-server routing module, in second data packets of the allowed data flow, a unique identifier of the first virtual machine with a first unique identifier, and replacing a unique identifier of the second virtual machine with a second unique identifier, the first unique identifier and the second unique identifier being associated with network interfaces of the intra-server routing module; and

directing, by the intra-server routing module, the allowed data flow between the first virtual machine and the second virtual machine using the first unique identifier and the second unique identifier associated with the intra-server routing module, the allowed data flow being directed internally within the server.

9. The method of claim 8 , wherein the unique identifier associated with the first virtual machine includes a MAC address of the first virtual machine, the unique identifier associated with the second virtual machine includes a MAC address of the second virtual machine, and the first unique identifier and the second unique identifier include MAC addresses of the intra-server routing module.

10. The method of claim 8 , wherein the external routing environment includes at least one of: a virtual routing environment and a physical routing environment.

11. The method of claim 8 , further comprising:

receiving instructions, from a tap sensor built into the inline device, to replace the unique identifier of the first virtual machine with the first unique identifier and replace the unique identifier of the second virtual machine with the second unique identifier, the tap sensor inspecting data communications within the server and determining the second data packets are associated with the first data packet being allowed using the inspection.

12. The method of claim 11 , wherein the first virtual machine and the second virtual machine are associated with at least one virtual host or at least one container, the at least one virtual host and the at least one container being associated with the server.

13. The method of claim 8 , wherein the unique identifier of the first virtual machine and the unique identifier of the second virtual machine are replaced in one or more routing tables associated with the intra-server routing module.

14. The method of claim 8 , wherein the external routing environment includes one or more of the following: a Firewall, an intrusion prevention system, and an intrusion detection system.

15. The method of claim 8 , wherein the first virtual machine is associated with a first network and the second virtual machine is associated with a second network.

Assignments (4)
PATENT SECURITY AGREEMENT Recorded Jul 18, 2025
From: GRYPHO5, LLC
To: EVP CREDIT SPV I LP
Reel/Frame 072053/0141 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: VARMOUR NETWORKS, INC.
To: GRYPHO5, LLC
Reel/Frame 070287/0007 →
SECURITY INTEREST Recorded Feb 22, 2024
From: VARMOUR NETWORKS, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 066530/0399 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2016
From: ROSS, COLIN; SHIEH, CHOUNG-YAW
To: VARMOUR NETWORKS, INC.
Reel/Frame 039590/0383 →
Continuity (1)
Related Publication 20170168864A1 · Jun 15, 2017