Co-operative secure packet management
First Claim
1. A computer-implemented method for processing data packets in an electronic environment, comprising:
- under control of one or more computer systems configured with executable instructions,receiving a packet to a physical network interface on a host machine executing a guest operating system, the guest operating system having native access to a first physical processing unit of the host machine, the host machine including a second physical processing unit inaccessible by the guest operating system, the host machine further including an input/output (I/O) hub configured to;
restrict the first physical processing unit from modifying header information of the packet in the physical network interface and enabling the first physical processing unit to access a payload portion of the packet in the physical network interface; and
enable the second physical processing unit to modify the header information of the packet in the physical network interface,the physical network interface capable of transmitting packets of data between a secure environment and a user environment;
extracting the header information for the packet using the physical network interface and causing the header information to be forwarded to the second physical processing unit;
if the packet is received from the user environment,determining a mapping of a first address of the packet in the user environment to a second address of the packet in the secure environment using the second physical processing unit;
updating header information to the packet to specify the second address; and
forwarding the packet to the second address using the physical network interface; and
if the packet is received from the secure environment,determining a mapping of the second address of the packet in the secure environment to the first address of the packet in the user environment using the second physical processing unit;
updating header information to the packet to specify the first address; and
forwarding the packet to the first address using the physical network interface,wherein the physical network interface is able to offload at least a portion of processing for the packet to the second physical processing unit.
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.
115 Citations
26 Claims
-
1. A computer-implemented method for processing data packets in an electronic environment, comprising:
under control of one or more computer systems configured with executable instructions, receiving a packet to a physical network interface on a host machine executing a guest operating system, the guest operating system having native access to a first physical processing unit of the host machine, the host machine including a second physical processing unit inaccessible by the guest operating system, the host machine further including an input/output (I/O) hub configured to; restrict the first physical processing unit from modifying header information of the packet in the physical network interface and enabling the first physical processing unit to access a payload portion of the packet in the physical network interface; and enable the second physical processing unit to modify the header information of the packet in the physical network interface, the physical network interface capable of transmitting packets of data between a secure environment and a user environment; extracting the header information for the packet using the physical network interface and causing the header information to be forwarded to the second physical processing unit; if the packet is received from the user environment, determining a mapping of a first address of the packet in the user environment to a second address of the packet in the secure environment using the second physical processing unit; updating header information to the packet to specify the second address; and forwarding the packet to the second address using the physical network interface; and if the packet is received from the secure environment, determining a mapping of the second address of the packet in the secure environment to the first address of the packet in the user environment using the second physical processing unit; updating header information to the packet to specify the first address; and forwarding the packet to the first address using the physical network interface, wherein the physical network interface is able to offload at least a portion of processing for the packet to the second physical processing unit. - View Dependent Claims (2, 3)
-
4. A computer-implemented method for processing data packets in an electronic environment, comprising:
under control of one or more computer systems configured with executable instructions, providing a guest operating system on a host machine with native access to at least a first physical processing unit of the host machine, the host machine including a second physical processing unit inaccessible by the guest operating system, the first physical processing unit restricted from modifying header information of a packet received by a hardware device of the host machine, the first physical processing unit enabled to access a payload portion of the packet received by the hardware device, the second physical processing unit enabled to modify the header information of the packet received by the hardware device, 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, causing the packet to be received to the hardware device; causing the hardware device to pass header information for the packet to the second physical processing unit of the host machine; determining mapping information for the packet using the second physical processing unit; updating the header information using the mapping information; and transmitting the packet from the hardware device using the updated header in formation, wherein the hardware device is able to offload at least a portion of processing for the packet to the second physical processing unit. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
15. A computer-implemented method for processing data packets in an electronic environment, comprising:
under control of one or more computer systems configured with executable instructions, providing a guest operating system on a host machine with native access to at least a first physical processing unit of the host machine, the host machine including a second physical processing unit inaccessible by the guest operating system, the first physical processing unit restricted from modifying header information of a packet received by a physical network interface of the host machine, the first physical processing unit enabled to access to a payload portion of the packet received by the hardware device, the second physical processing unit enabled to modify the header information of the packet received by the physical network interface, 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 the physical network interface of the host machine; causing the physical network interface to determine header information for any underlying packet of the received Ethernet frame and pass the header information for the packet to the second physical processing unit of the host machine; determining mapping information for the packet using the second physical processing unit; updating the header information using the mapping information; and processing the packet using the updated header information, wherein the hardware device is able to offload at least a portion of processing for the packet to the second physical processing unit.
-
16. 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; provide a guest operating system with native access to at least a first physical processing unit of a host machine, the host machine including a second physical processing unit inaccessible by the guest operating system, the first physical processing unit restricted from modifying header information of a packet received by a hardware device of the host machine, the first physical processing unit enabled to access a payload portion of the packet received by the hardware device, the second physical processing unit enabled to modify the header information of the packet received by the hardware device, 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 the packet to be received to the hardware device that is at least partially secured from access by the guest operating system; cause the hardware device to pass header information for the packet to the second physical processing unit of the host machine; cause mapping information for the packet to be determined using the second physical processing unit; cause the header information to be updated using the mapping information; and cause the packet to be transmitted from the hardware device using the updated header information, wherein the hardware device is able to offload at least a portion of processing for the packet to the second physical processing unit. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. 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:
-
provide a guest operating system with native access to at least a first physical processing unit of a host machine, the host machine including a second physical processing unit inaccessible by the guest operating system, the first physical processing unit restricted from modifying header information of a packet received by a hardware device of the host machine, the first physical processing unit enabled to access a payload portion of the packet received by the hardware device, the second physical processing unit enabled to modify the header information of the packet received by the hardware device, 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 the packet to be received to the hardware device that is at least partially secured from access by the guest operating system; cause the hardware device to pass header information for the packet to a second physical processing unit of the host machine; cause mapping information for the packet to be determined using the second physical processing unit; cause the header information to be updated using the mapping information; and cause the packet to be transmitted from the hardware device using the updated header information, wherein the hardware device is able to offload at least a portion of processing for the packet to the second physical processing unit. - View Dependent Claims (23, 24, 25, 26)
-
Specification