Secure packet management for bare metal access
First Claim
1. A computer-implemented method for processing data packets in an electronic environment, comprising:
- provisioning, by at least one computer system, a guest operating system (OS) on a host machine and granting the guest OS native access to a central processing unit (CPU) of the host machine;
preventing the guest OS from having native access to a portion of a physical network interface of the host machine utilized for encapsulation;
receiving a packet to the physical network interface on the host machine, the physical network interface capable of transmitting packets of data between a secure environment and a user environment,wherein if the packet is received from the user environment, the physical network interface is configured to;
determine a mapping of a first address of the packet in the user environment to a second address of the packet in the secure environment, the mapping obtained from a mapping service residing outside of the host machine using a port in the physical network interface that is inaccessible by the CPU as it runs the guest OS;
encapsulate the packet to include header information that references the second address; and
forward the packet to the second address; and
wherein if the packet is received from the secure environment, the physical network interface is configured to;
determine a mapping of the second address of the packet in the secure environment to the first address of the packet in the user environment, the mapping obtained from the mapping service using the port inaccessible to the CPU as it runs the guest OS;
encapsulate the packet to include header information that references the first address; and
forward the packet to the first address.
1 Assignment
0 Petitions
Accused Products
Abstract
Secure networking processes, such as packet encapsulation and decapsulation, can be executed upstream of a user or guest operating system provisioned on a host machine, where the user has substantially full access to that machine. The processing can be performed on a device such as a network interface card (NIC), which can have a separate network port for communicating with mapping systems or other devices across a cloud or secure network. A virtual image of the NIC can be provided to the user such that the user can still utilize at least some of the NIC functionality. In some embodiments, the NIC can work with a standalone processor or control host in order to offload much of the processing to the control host. The NIC can further handle headers and payload separately where possible, in order to improve the efficiency of processing the various packets.
-
Citations
26 Claims
-
1. A computer-implemented method for processing data packets in an electronic environment, comprising:
-
provisioning, by at least one computer system, a guest operating system (OS) on a host machine and granting the guest OS native access to a central processing unit (CPU) of the host machine; preventing the guest OS from having native access to a portion of a physical network interface of the host machine utilized for encapsulation; receiving a packet to the physical network interface on the host machine, the physical network interface capable of transmitting packets of data between a secure environment and a user environment, wherein if the packet is received from the user environment, the physical network interface is configured to; determine a mapping of a first address of the packet in the user environment to a second address of the packet in the secure environment, the mapping obtained from a mapping service residing outside of the host machine using a port in the physical network interface that is inaccessible by the CPU as it runs the guest OS; encapsulate the packet to include header information that references the second address; and forward the packet to the second address; and wherein if the packet is received from the secure environment, the physical network interface is configured to; determine a mapping of the second address of the packet in the secure environment to the first address of the packet in the user environment, the mapping obtained from the mapping service using the port inaccessible to the CPU as it runs the guest OS; encapsulate the packet to include header information that references the first address; and forward the packet to the first address. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method for processing data packets in an electronic environment, comprising:
-
provisioning, by at least one computer system, a guest operating system (OS) on a host machine and granting the guest OS native access to a central processing unit (CPU) of the host machine, the host machine operating between a user environment having a user address space and a provider environment having a provider address space; for a packet to be transmitted via the host machine, encapsulating the packet to include header information using a hardware device that is partially secured from access by the CPU granted to the guest OS, the guest OS prevented from having native access to a portion of the hardware device utilized for encapsulation; and transmitting the packet using the encapsulated header information, wherein to encapsulate the packet to include the header information, the hardware device uses a mapping between a first address in the user address space and a second address in the provider address space obtained from a mapping service to encapsulate the packet to include the header information to enable the packet to be delivered to an intended destination in the user environment or the provider environment. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented method for processing data packets in an electronic environment, comprising:
-
provisioning, by at least one computer system, a guest operating system (OS) on a host machine and granting the guest OS native access to a central processing unit (CPU) of a host machine, the host machine operating between a user environment having a user address space and a provider environment having a provider address space; for an Ethernet frame received to a physical network interface of the host machine, removing framing of the Ethernet frame and encapsulating the underlying packet to include header information using a hardware device that is at least partially secured from access by the CPU granted to the guest OS, the guest OS prevented from having native access to a portion of the hardware device utilized for encapsulation; and transmitting the encapsulated packet using the updated header information, wherein to encapsulate the packet to include the header information, the hardware device uses a mapping between a first address in the user address space and a second address in the provider address space obtained from a mapping service to encapsulate the packet to include the header information to enable the packet to be delivered to an intended destination in the user environment or the provider environment.
-
-
14. A system for processing data packets in an electronic environment, comprising:
-
a processor; and a memory device including instructions that, when executed by the processor, cause the processor to; provision a guest operating system (OS) on a host machine and granting the guest OS native access to a central processing unit (CPU) of a host machine, the host machine operating between a user environment having a user address space and a provider environment having a provider address space; for a packet to be transmitted via the host machine, cause encapsulation of the packet to include header information to be updated using a hardware device that is at least partially secured from access by the CPU granted to the guest OS, the guest OS prevented from having native access to a portion of the hardware device utilized for encapsulation; and cause the encapsulated packet to be transmitted using the updated header information, wherein to encapsulate the packet to include the header information, the hardware device uses a mapping between a first address in the user address space and a second address in the provider address space obtained from a mapping service to encapsulate the packet to include the header information to enable the packet to be delivered to an intended destination in the user environment or the provider environment. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer readable storage medium storing instructions for processing data packets in an electronic environment, the instructions when executed by a processor causing the processor to:
-
provision, using at least one computer system, a guest operating system (OS) on a host machine and granting the guest OS access to a central processing unit (CPU) of a host machine, the host machine operating between a user environment having a user address space and a provider environment having a provider address space; for a packet to be transmitted via the host machine, cause encapsulation of the packet to include header information using a hardware device that is at least partially secured from access by the CPU granted to the user guest OS, the guest OS prevented from having native access to a portion of the hardware device utilized for encapsulation; and cause the packet to be transmitted using the encapsulated packet including the header information, wherein to encapsulate the packet to include the header information, the hardware device uses a mapping between a first address in the user address space and a second address in the provider address space obtained from a mapping service to update the packet to include the header information to enable the packet to be delivered to an intended destination in the user environment or the provider environment. - View Dependent Claims (22, 23, 24, 25, 26)
-
Specification