IP Library Granted Patent US 12,130,878
Granted Patent B1
US 12,130,878 · App. 17/729,256 · Granted Oct 29, 2024

Deduplication of monitored communications data in a cloud environment

Inventors: Anil K. Nanduri (Fremont, CA); Prakash Jalan (Sunnyvale, CA); Matti A. Vanninen (Cary, NC); Ammar G. Ekbote (Renton, WA); Alex Ramachandran Nirmala (Cupertino, CA); Yijou Chen (Cupertino, CA)
Assignee: Fortinet, Inc.
G06F16/9537G06F9/455G06F9/545G06F16/9024G06F16/9038G06F16/9535G06F21/57H04L43/045H04L43/06H04L63/10H04L67/306H04L67/535G06F16/2456
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 12,130,878
App. No.
17/729,256
Filed
Apr 26, 2022
Granted
Oct 29, 2024
Kind
B1
Art Unit
2442
USPC
709/224
Abstract

Example systems and methods monitor a cloud compute environment. An example method includes: determining, by an agent deployed in a cloud environment and based on a plurality of data packets transmitted over a plurality of network interfaces of the cloud environment, a set of data packets that are associated with a communication between a first container and a second container; determining, by the agent and based on the set of data packets, communication data associated with the communication; and providing, by the agent, the communication data to a data platform, wherein providing the communication data to the data platform uses less network resources than providing the set of data packets to the data platform.

Claims (48)

1. A method comprising:

determining, by an agent deployed to a node in a cloud environment and based on a plurality of data packets transmitted over a plurality of network interfaces of the node in the cloud environment, a set of data packets that are associated with a communication between a first container and a second container, wherein the set of data packets associated with the communication are collected by the agent from the plurality of network interfaces of the node, the plurality of network interfaces comprising a container network interface that connects the first container or the second container to a container communication network on the node;

determining, by the agent and based on the set of data packets, communication data associated with the communication, wherein the determining the communication data associated with the communication comprises deduplicating duplicate data among the set of data packets and generating the communication data based on the deduplicated data, wherein the deduplicating comprises deduplicating data that is duplicated across a first data packet collected from the container network interface and a second data packet collected from an interface of the container communication network; and

providing, by the agent, the communication data to a data platform, wherein providing the communication data to the data platform uses less network resources than providing the set of data packets to the data platform.

2. The method of claim 1 , wherein the first container is implemented in a first pod, the second container is implemented in a second pod, and the container communication network comprises a pod network configured to facilitate communications between the first pod and the second pod.

3. The method of claim 1 , wherein the agent is implemented within a container of the cloud environment that is different from the first container and the second container.

4. The method of claim 1 , wherein the determining the communication data comprises:

determining, for each data packet among the set of data packets, a source address and a destination address, the first data packet comprising a first source address and a first destination address, the second data packet comprising a second source address and a second destination address; and

determining that the first source address and the second source address are indicative of the first container and that the first destination address and the second destination address are indicative of the second container.

5. The method of claim 1 , wherein the determining the communication data comprises:

determining, for each data packet among the set of data packets, a source address and a destination address;

wherein the source address comprises one or more of: a first non-endpoint source address, a first endpoint source address, a container IP (internet protocol) address for the first container, a pod IP address for a pod including the first container, an IP address for a first service, or an IP address for a first load balancer; and

wherein the destination address comprises one or more of: a second non-endpoint destination address, a second endpoint source address, a container IP address for the second container, a pod IP address for the second container, a pod IP address for a pod include the second container, an IP address for a second service, or an IP address for a second load balancer.

6. The method of claim 1 , wherein the determining the communication data comprises:

determining, for a data packet among the set of data packets, a source address and a destination address, wherein the source address or the destination address comprises a service IP address associated with a service network in the cloud environment.

7. The method of claim 1 , wherein the determining the communication data comprises:

determining, for a data packet among the set of data packets, a source address and a destination address, wherein the source address or the destination address comprises a host IP address associated with a host network in the cloud environment.

8. The method of claim 1 , further comprising:

receiving, at the data platform, the communication data associated with the communication between the first container and the second container; and

generating, based at least in part on the communication data, a graph comprising a plurality of nodes connected by a plurality of edges.

9. A computer program product embodied in a non-transitory computer-readable medium and comprising computer instructions to:

determine, by an agent deployed to a node in a cloud environment and based on a plurality of data packets transmitted over a plurality of network interfaces of the node in the cloud environment, a set of data packets that are associated with a communication between a first container and a second container, wherein the set of data packets associated with the communication are collected by the agent from the plurality of network interfaces of the node, the plurality of network interfaces comprising a container network interface that connects the first container or the second container to a container communication network on the node;

determine, by the agent and based on the set of data packets, communication data associated with the communication, wherein the determining the communication data associated with the communication comprises deduplicating duplicate data among the set of data packets and generating the communication data based on the deduplicated data, wherein the deduplicating comprises deduplicating data that is duplicated across a first data packet collected from the container network interface and a second data packet collected from an interface of the container communication network; and

provide, by the agent, the communication data to a data platform, wherein providing the communication data to the data platform uses less network resources than providing the set of data packets to the data platform.

10. The computer program product of claim 9 , wherein the container network interface comprises a container network interface plugin inserted into a container network namespace.

11. The computer program product of claim 9 , wherein the agent is implemented within a container of the cloud environment that is different from the first container and the second container.

12. The computer program product of claim 9 , wherein to determine the communication data, the computer instructions:

determine, for each data packet among the set of data packets, a source address and a destination address, the first data packet comprising a first source address and a first destination address, the second data packet comprising a second source address and a second destination address; and

determine that the first source address and the second source address are indicative of the first container and that the first destination address and the second destination address are indicative of the second container.

13. The computer program product of claim 9 , wherein to determine the communication data, the computer instructions:

determine, for each data packet among the set of data packets, a source address and a destination address;

wherein the source address comprises one or more of: a first non-endpoint source address, a first endpoint source address, a container IP (internet protocol) address for the first container, a pod IP address for a pod including the first container, an IP address for a first service, or an IP address for a first load balancer; and

wherein the destination address comprises one or more of: a second non-endpoint destination address, a second endpoint source address, a container IP address for the second container, a pod IP address for the second container, a pod IP address for a pod include the second container, an IP address for a second service, or an IP address for a second load balancer.

14. The computer program product of claim 9 , wherein to determine the communication data, the computer instructions:

determine, for a data packet among the set of data packets, a source address and a destination address, wherein the source address or the destination address comprises a service IP address associated with a service network in the cloud environment.

15. The computer program product of claim 9 , wherein to determine the communication data, the computer instructions:

determine, for a data packet among the set of data packets, a source address and a destination address, wherein the source address or the destination address comprises a host IP address associated with a host network in the cloud environment.

16. The computer program product of claim 9 , wherein the computer instructions further:

receive, at the data platform, the communication data associated with the communication between the first container to the second container; and

generate, based at least in part on the communication data, a graph comprising a plurality of nodes connected by a plurality of edges.

17. A method comprising:

determining, by a data platform, communication data associated with a communication between a first container and a second container operating within a cloud environment, wherein the communication data is derived from a plurality of data packets transmitted over a plurality of network interfaces of the cloud environment, wherein the derivation of the communication data from the plurality of data packets is performed at least in part by an agent deployed to a host in the cloud environment and comprises 1) a determination of a set of data packets that are associated with the communication between the first container and the second container and that are collected from at least some of the plurality of network interfaces that are on the host, the at least some of the plurality of network interfaces comprising a container network interface that connects the first container or the second container to a container communication network on the host 2) a deduplication of duplicate data among the set of data packets, wherein the deduplication comprises deduplicating data that is duplicated across a first data packet collected from the container network interface and a second data packet collected from an interface of the container communication network, and 3) a generation of the communication data based on the deduplicated data;

determining, by the data platform and based on the communication data, one or more behavioral relationships between one or more entities of the cloud environment, wherein the one or more entities comprise the first container and the second container; and

generating, by the data platform and based on the one or more behavioral relationships between the one or more entities of the cloud environment, a graph comprising a plurality of nodes connected by a plurality of edges.

18. The method of claim 17 , wherein the container communication network comprises a service network on the node.

19. The method of claim 17 , wherein the container network interface is associated with one or more of: a pod or a container network interface plugin.

20. The method of claim 17 , wherein the determining the communication data associated with the communication between the first container and the second container comprises:

receiving the communication data from the agent deployed to the host in the cloud environment, wherein the communication data is determined by the agent based on the plurality of data packets.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2024
From: LACEWORK, INC.
To: FORTINET, INC.
Reel/Frame 069301/0123 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2022
From: NANDURI, ANIL K.; JALAN, PRAKASH; VANNINEN, MATTI A.; EKBOTE, AMMAR G.; RAMACHANDRAN NIRMALA, ALEX; CHEN, YIJOU
To: LACEWORK, INC.
Reel/Frame 059736/0117 →
Continuity (7)
Continuation In Part 17589361 · Jan 31, 2022
Continuation In Part 17504311 · Oct 18, 2021
Continuation 16665961 · Oct 28, 2019
Continuation 16134794 · Sep 18, 2018
Provisional Application 63231661 · Aug 10, 2021
Provisional Application 62650971 · Mar 30, 2018
Provisional Application 62590986 · Nov 27, 2017
Cited By (6)
US 12,346,244 US 12,432,218 US 12,470,565 US 12,513,172 US 12,580,943 US 12,699,658