Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign Application Serial No. 201941052876 filed in India entitled “USER INTERFACE FOR DEFINING SECURITY GROUPS”, on Dec. 19, 2019, by VMWARE, Inc., which is herein incorporated in its entirety by reference for all purposes.
Typical visualizations of network flows do not currently scale for large amounts of data, leading to added user-end efforts to define security groups and firewall rules for the security groups and for micro-segmentation of the network environment. Presentation of these large amounts of data and data points in an intuitive format, however, is critical for ease of analysis before accepting recommendations or making changes to firewall configurations. Thus, improvements in the approach to visualizing flows in a network environment is required.
Some embodiments provide a network visualization application for visualizing and defining security groups and flows in a network. The network visualization application aggregates network flows (e.g., by data compute nodes (DCNs) and/or security groups) and provides a scalable and filterable user interface visualization of the network flows at a security group level. This user interface (UI) of some embodiments provides the capability to drill down into details of specific security groups, flows, and/or DCNs in the network. In some embodiments, the network visualization application also provides (e.g., in a visual manner in the UI) recommendations for new security groups and/or security rules alongside existing security groups.
In some embodiments, the network visualization application receives (e.g., from a network manager) data regarding the flows between DCNs (e.g., VMs, containers, IP addresses that cannot be resolved into specific VMs or other DCNs) in the network. The visualization application aggregates the flows between DCNs in pairs of security groups, and displays the aggregated network flows in the scalable UI visualization. In some embodiments, the scalable UI allows a user to view many DCNs (e.g., hundreds) in the same display while also providing the ability to zoom in on specific security groups, sets of security groups, and individual DCNs. In some embodiments, DCNs that have been organized into security groups are shown as individual entities (e.g., cubes, cylinders, etc.) within a plane that represents the boundaries of the security group. In some embodiments, a subset of items representing DCNs that have not been resolved into an existing or recommended security group (and therefore without specified firewall rules) may be displayed without any apparent boundaries in the scalable UI.
Some embodiments provide a filtering tool in the user interface to enable visualization of specific flows between the security groups and/or the individual DCNs. For instance, the filtering tool of some embodiments allows a user to filter the flows that are displayed in the UI to include or exclude allowed flows, blocked flows, and/or unsecured flows to which no firewall rules are applied. Each of these different flow types is represented in the UI with a different appearance (e.g., a different color) in some embodiments.
In some embodiments, a user can select a specific security group or DCN in the UI, thereby causing the UI to highlight and focus on the selected security group or DCN as well as any network flows associated with the selected security group or DCN. For instance, if a specific security group is selected, then the UI displays aggregated flows between any DCNs in that security group and DCNs in other security groups. Some embodiments collectively represent multiple flows between DCNs in a pair of security groups in the display using a single flow line between the pair of security groups, thus reducing clutter in the user interface. In some embodiments, a flow line between a pair of security groups includes a notation that indicates a number of flows represented by the flow line. If a specific DCN is selected, the UI displays flows between that DCN and any other DCNs in other security groups.
As mentioned, the network visualization application of some embodiments displays both existing security groups as well as a set of recommended security groups, which are based on monitored network flows in the network. In some embodiments, a network manager (e.g., a network virtualization manager) that monitors network flows between the plurality of security groups provides data regarding the network flows to the visualization application (which may be incorporated into the network manager or operate as a separate application). In some embodiments, the UI includes a tool that enables a user to define a subset of the plurality of security groups to be monitored by the network manager.
Within this UI, some embodiments provide a tool for further defining security groups. For example, in some embodiments, the user interface tool enables a user to accept recommended security groups to be part of the set of existing security groups and/or add DCNs from the recommended security groups to the existing security groups. In addition, some embodiments further allow the user to provide instructions to remove a particular existing security group or merge a recommended security group with an existing security group. Security rules (i.e., firewall rules), in some embodiments, are defined and implemented in the network for DCNs belonging to existing security groups. As mentioned, some embodiments display recommended security rules along with the recommended security groups.
The preceding Summary is intended to serve as a brief introduction to some embodiments of the invention. It is not meant to be an introduction or overview of all inventive subject matter disclosed in this document. The Detailed Description that follows and the Drawings that are referred to in the Detailed Description will further describe the embodiments described in the Summary as well as other embodiments. Accordingly, to understand all the embodiments described by this document, a full review of the Summary, Detailed Description and the Drawings is needed. Moreover, the claimed subject matters are not to be limited by the illustrative details in the Summary, Detailed Description and the Drawing, but rather are to be defined by the appended claims, because the claimed subject matters can be embodied in other specific forms without departing from the spirit of the subject matters.
In the following detailed description of the invention, numerous details, examples, and embodiments of the invention are set forth and described. However, it should be understood that the invention is not limited to the embodiments set forth and that the invention may be practiced without some of the specific details and examples discussed.
Some embodiments provide a network visualization application for visualizing and defining security groups and flows in a network. The network visualization application aggregates network flows (e.g., by data compute nodes (DCNs) and/or security groups) and provides a scalable and filterable user interface visualization of the network flows at a security group level. This user interface (UI) of some embodiments provides the capability to drill down into details of specific security groups, flows, and/or DCNs in the network. In some embodiments, the network visualization application also provides (e.g., in a visual manner in the UI) recommendations for new security groups and/or security rules alongside existing security groups.
In some embodiments, the scalable UI allows a user to view many DCNs (e.g., hundreds) in the same display, while also providing the ability to zoom in on specific security groups, sets of security groups, and individual DCNs. Such capabilities will be described in further detail below with reference to
Some embodiments provide a filtering tool in the user interface to enable visualization of specific flows between the security groups and/or the individual DCNs. For instance, the filtering tool of some embodiments allows a user to filter the flows that are displayed in the UI to include or exclude allowed flows, blocked flows, and/or unsecured flows to which no firewall rules are applied. Each of these different flow types is represented in the UI with a different appearance (e.g., a different color) in some embodiments.
In some embodiments, a user can select a specific security group or DCN in the UI, thereby causing the UI to highlight and focus on the selected security group or DCN as well as any network flows associated with the selected security group or DCN. For instance, if a specific security group is selected, then the UI displays aggregated flows between any DCNs in that security group and DCNs in other security groups. As mentioned above, some embodiments collectively represent multiple flows between DCNs in a pair of security groups in the display using a single flow line between the pair of security groups, thus reducing clutter in the user interface. In some embodiments, a flow line between a pair of security groups includes a notation that indicates a number of flows represented by the flow line. If a specific DCN is selected, the UI displays flows between that DCN and any other DCNs in other security groups.
The network visualization application is initially in state 210 in some embodiments, featuring a scalable UI display of security groups and aggregated flows between the security groups (e.g., UI display 100). This may be the initial state of the network visualization application upon a user opening the display, after flow monitoring has been performed (e.g., by a separate back-end controller or other application), or based on other actions. In this state, none of the specific security groups or DCNs belonging to the security groups are selected or highlighted, as is the case in
From state 210, a user can perform numerous operations to modify the UI display by selecting objects within the display and/or using, for example, a filtering tool provided by the network visualization application (e.g., within the display).
In some embodiments, allowed flows include any flows for which a user has defined one or more security rules (e.g., firewall rules) that allow the the flow. Similarly, blocked flows include any flows for which a user has defined one or more security rules that explicitly do not allow (i.e., block) the flow. In some embodiments, unsecured flows include any flows for which security rules have yet to be defined. For example, in some embodiments, unsecured flows may arise when changes are made to the security groups (e.g., addition or deletion of DCNs or whole security groups), new DCNs are created/added to the network, etc. In some such embodiments, a user may choose to either allow or block the flow by defining one or more security rules for the flow.
In some embodiments, the network visualization application may receive a selection, e.g., via filtering tool 370, to add or remove one or more flow types to/from the UI display 300. When the network visualization application receives a selection to add a particular flow type to the display, the application transitions to state 240 to add the selected flow type to the UI display 300, then returns to state 210 (with the flows of the selected flow type now included in the display). When the network visualization application receives a selection to remove (i.e., deselect) a particular flow type from the UI display 300, the application transitions to state 250 to remove the selected flow type to the UI display 300, then returns to state 210 (with the flows of the selected flow type no longer included in the display).
For example,
In addition to selecting specific types of flows, the network visualization application of some embodiments provides the ability for a user to select specific security groups and/or DCNs using the representation of those entities in the scalable UI. Returning to the state diagram of
In some embodiments, the network visualization application may receive additional input from a user at state 220. For example, network visualization application may receive a selection to add or remove from the UI display any one, or combination, of (i) allowed flows for the selected security group, (ii) blocked flows for the selected security group, and (iii) unsecured flows for the selected security group. When the network visualization application receives a selection to add a particular flow type to the UI display, the application transitions to 242 to add the selected flow types for the selected security group to the display. Alternatively, when the network visualization application receives a selection to remove a particular flow type from the UI display, the application transitions to 252 to remove the selected (i.e., deselected) flow type for the selected security group from the display.
In some embodiments, a user may select an individual DCN and its flows to be highlighted in the UI display. In some such embodiments, hovering a cursor over a DCN to be selected will cause the network visualization application to display a graphic over the DCN that includes information about the DCN (e.g., name of the DCN). For instance,
Returning to state diagram 200, in some embodiments, when the network visualization application receives a selection to highlight a DCN and its flows, the application transitions from state 210 to state 230 to highlight the selected DCN and its flows in the UI display. For example,
In some embodiments, the network visualization application may indicate the direction of the flows associated with the selected DCN in the UI display. As illustrated by
In some embodiments, while at state 230, the network visualization application may receive additional input from a user. Similar to what was described above with reference to state 220, for example, network visualization application may receive a selection to add or remove any one, or combination, of (i) allowed flows for the selected DCN, (ii) blocked flows for selected DCN, and (iii) unsecured flows for the selected DCN. When the network visualization application receives a selection to add a particular flow type to the UI display, the application transitions to state 244 to add the selected flow type for the selected DCN to the display. Alternatively, when the network visualization application receives a selection to remove a particular flow type from the UI display, the application transitions to 254 to remove the selected (i.e., deselected) flow type for the selected security group from the display. One of ordinary skill in the art will recognize that although only a subset of the selections have been illustrated and described herein, any number of combinations of selections and views may be selected by a user.
As mentioned, the network visualization application of some embodiments displays both existing security groups as well as a set of recommended security groups that are based on monitored network flows in the network. In some embodiments, a network manager (e.g., a network virtualization manager) that monitors network flows between the plurality of security groups provides data regarding the network flows to the visualization application (which may be incorporated into the network manager or operate as a separate application). In some embodiments, the UI includes a tool that enables a user to define a subset of the plurality of security groups, or a subset of DCNs, to be monitored by the network manager.
Within this UI, some embodiments provide a tool for further defining security groups. For example, in some embodiments, the user interface tool enables a user to accept recommended security groups to be part of the set of existing security groups and/or add DCNs from the recommended security groups to the existing security groups. In addition, some embodiments further allow the user to provide instructions to remove a particular existing security group or merge a recommended security group with an existing security group. Security rules (i.e., firewall rules), in some embodiments, are defined and implemented in the network for DCNs belonging to existing security groups. As mentioned, some embodiments display recommended security rules along with the recommended security groups.
In some embodiments, the network visualization application is initially in one of states 610, 612, or 614, featuring a scalable UI display of security groups. These security groups can include recommended and/or existing security groups. Existing security groups are those for which a user (e.g., a network administrator) has defined the security group, while recommended security groups are those that the application has recommended based on analysis of flows (e.g., to perform microsegmentation). Some embodiments automatically begin in state 610, showing both recommended and existing security groups (e.g., UI display 700). From state 610, a user can perform numerous operations to modify the UI display and perform various actions on the network entities represented therein (e.g., via various types of interactions with the representations of the entities in the UI).
In some embodiments, when the network visualization application receives input to remove existing security groups (E-SGs) from the display (e.g., deselect existing security groups in the filtering tool), the application transitions from state 610 to state 612 to remove the existing security groups from the display, leaving only the recommended security groups (R-SGs) in the UI display. At state 612, when the network visualization application receives input to add existing security groups to the display, the application transitions back to state 610. Alternatively, when the network visualization application receives input at state 612 to remove recommended security groups from the display and add existing security groups to the display, the application transitions to state 614 to display only existing security groups. At state 614, when the network visualization application receives input to add recommended security groups to the display, the application transitions again to state 610 to display both recommended security groups and existing security groups.
Similarly, when the network visualization application receives input to remove recommended security groups from the display, the application transitions from state 610 to state 614 to display only existing security groups. When the network visualization application receives input to remove existing security groups from the display and add recommended security groups to the display, the application transitions to state 612 to display only recommended security groups. At state 612, when the network visualization application receives input to add existing security groups to the display, the application again returns to state 610 to display both recommended and existing security groups. That is, the application can make any transition between states 610, 612, and 614 based on user input via the filter tool 770. While not shown, in some embodiments, a user may deselect both existing and recommended security groups from the display such that no security groups are displayed.
In some embodiments, the network visualization application may receive additional input from a user while at any of states 610, 612, and 614. For simplicity,
For example, when the network visualization application receives input to display security group recommendations as text, the application transitions to state 630. For instance,
The UI display 700 of
Returning to state diagram 600, in some embodiments, when the network visualization application receives a selection to highlight each occurrence of a DCN, the application transitions from state 610 to state 620 in order to highlight each occurrence of the selected DCN. As mentioned above, in some embodiments, when a DCN belongs to more than one security group, hovering a cursor over the DCN (or providing other input) causes the network visualization application to display a graphic over each occurrence of the DCN.
In some embodiments, such as when a DCN is found to belong to more than one security group, a user may select to pin the DCN to a particular security group, and subsequently remove the DCN from the other security groups. When the network visualization application receives such a selection at state 610, the application transitions to state 625 to pin the DCN to the selected security group, and remove the DCN from each other security group to which it belonged (and then transitions back to state 610 after performing this action). In some embodiments, a user may select to pin a DCN to a particular security group for flow visualization purposes, while allowing the DCN to still remain a member of any number of other security groups.
In some embodiments, a user may select to view particular flows between existing security groups and recommended security groups.
In some embodiments, when the network visualization application receives a selection to accept a recommended security group at state 610 (e.g., by dragging the representation of the recommended security group to the portion of the display with the existing security groups, by selecting an option in the display, etc.), the application transitions to state 640 to add the accepted recommended security group to the set of existing security groups (and then returns to state 610 when the action is completed). For instance,
When the network visualization application receives a selection to merge two or more security groups at state 610 (e.g., via selection of an option in the display, dragging the representation of one security group onto the representation of another security group, etc.), the application transitions to state 650 to merge the selected security groups in some embodiments (and then returns to state 610 when the action is completed). For instance,
In some embodiments, when the network visualization application receives a selection to remove a security group at 610 (e.g., based on selection of an option in the display), the application transitions to state 660 to delete the selected security group from the set of security groups (and then returns to state 610 when the action is completed).
When the network visualization application receives a selection to add a DCN to a selected existing security group at state 610 (e.g., based on dragging the representation of the DCN to the representation of the existing security group), the application transitions to state 670 to add the DCN to the selected existing security group (and then returns to state 610 when the action is completed).
In some embodiments, the network visualization application provides a user interface tool for enabling a user to designate a subset of DCNs as seed nodes, where each seed node acts as a source node for micro-segmentation. In some embodiments, receiving input designating a subset of DCNs as seed nodes causes the network visualization application to display the designated subset of DCNs with an appearance that is different from the rest of the DCNs in the network (e.g., illustrated with a different color). For example,
As mentioned above, the network visualization application in some embodiments receives data regarding network flows from a network manager and/or controller that performs flow monitoring and analysis in order to provide application visibility and identify policies in a micro-segmentation environment.
The network virtualization manager 810 in some embodiments is a virtualized server that is installed on one or more physical servers and is used to define and/or manage the networking resources of a datacenter. As shown, the network virtualization manager includes a flow monitoring engine 820, an analytics engine 825, a flow aggregator 842, a compute manager interface 845 to communicate with the compute manager 830, a scalable UI generator 805, and an interface to the user 815 for providing for display the scalable UI. The network virtualization manager also includes a storage 850 to store micro-segmentation security policies and a storage 855 for storing application templates that are built and used for generating micro-segmentation security policies.
In this example, the scalable UI display is part of the network virtualization manager 810, but it should be understood that in other embodiments the scalable UI is part of a separate network virtualization application that communicates with the network virtualization manager 810. The scalable UI generator 805 of some embodiments receives the flow information from the analytics engine 825 and flow aggregator 842, and generates the scalable UI display for the network virtualization application (i.e., the UIs shown in
The compute manager 830 in some embodiments is a virtualized server that is installed on one or more physical servers. The compute manager is used to manage compute infrastructure (e.g., the hosts and VMs) of a datacenter. As shown, the compute manager includes storage 835 to store the system deployment topology. For instance, the deployment topology indicates which VM is hosted on each host 840. The deployment topology in some embodiments also indicates the components of which applications are running by each VM 860-870. For instance, both VMs 860 and 870 may run components of the same application where VM 860 may run a web server and VM 870 may run an application server for the same 3-tiered enterprise application. Network virtualization manager 810 communicates with compute manager 830 through an interface 845 such as a plug-in and/or an application programming interface (API) in order to query the compute manager for the system deployment topology 835.
Each host 840 in some embodiments may include a virtualization layer 875 that includes virtualization software (e.g., a hypervisor) for virtualizing physical resources of the host machine. Each host may also include a host managed forwarding element (MFE) 880 for forwarding network traffic (e.g., data messages) to and from the virtual machines. In some embodiments, the host MFE 880 is configured to logically forward data messages according to logical forwarding elements (e.g., logical switches, logical routers) configured by an administrator of the network to implement a logical forwarding element (LFE) of a logical network. In some embodiments, the logical network is an abstract conception of a network generated by an administrator, and the logical network is implemented in a virtualized, distributed manner in a managed physical infrastructure (e.g., in a multi-tenant datacenter). That is, the VMs that connect to the LFEs may reside on various different host machines within the infrastructure, and MFEs (e.g., software virtual switches) operating on these host machines implement some or all of the logical forwarding elements (logical switches, logical routers, etc.).
In the virtualization field, some refer to software switches as virtual switches as these are software elements. However, in this specification, the software forwarding elements are referred to as MFEs, in order to distinguish them from LFEs, which are logical constructs that are not tied to the physical world. An MFE forwards packets in a physical network whether or not it is implemented in software while an LFE forwards packets in a logical network, which is logically decoupled or abstracted from the physical network. In other words, the software forwarding elements exist and operate in the physical world, whereas an LFE is a logical representation of a forwarding element that is presented to a user when designing a logical network.
In some embodiments, several MFEs distributed throughout the network implement tenant's LFEs, where each MFE is a local instantiation of an LFE that operate across different host machines and can perform Open Systems Interconnection (OSI) model Layer 2 (L2)/Layer 3 (L3) packet forwarding between VMs on the host machine or on different host machines. An LFE is sometimes referred to as a virtual distributed switch (VDS).
Each host also includes a traffic decoding engine 890, an analysis engine 895, and a flow collector 885. Traffic decoding engine, analysis engine, and flow collector in some embodiments are either a part of the MFE or are part of one or more entities such as a plugin or a filter that operates in conjunction with the MFE. Traffic decoding engine 890 decodes packet traffic, analysis engine 895 perform analysis such as deep packet inspection (DPI) on the packets, and flow collector 885 collects network packet flow information. Example of network packet flow information includes the following set of tuples: source Internet protocol (IP) address, destination IP address, source port identification, destination port identification, and protocol type. In some embodiment, such a set of tuples uniquely identifies each network packet flow.
The flow collector also collects additional information such as statistics (e.g., packet count) as well as the direction of each packet flow. In some embodiments, each VM 860-870 is connected to the MFE 880 through a virtual network interface card (VNIC) 896-898. The flow collector in some embodiments collects information for flows that enter or leave each VNIC. The direction of a flow (e.g., in or out) indicates whether the flow was entering or leaving the VNIC. The network virtualization manager 810 utilizes the collected flow information to analyze the flows and provide micro-segmentation policies (e.g., rules for a firewall that is distributed among the hosts and enforces firewall rules at several different enforcement points with the network (e.g., at the VNICs 896-898)).
The bus 905 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 900. For instance, the bus 905 communicatively connects the processing unit(s) 910 with the read-only memory 930, the system memory 925, and the permanent storage device 935.
From these various memory units, the processing unit(s) 910 retrieve instructions to execute and data to process in order to execute the processes of the invention. The processing unit(s) may be a single processor or a multi-core processor in different embodiments.
The read-only-memory (ROM) 930 stores static data and instructions that are needed by the processing unit(s) 910 and other modules of the electronic system. The permanent storage device 935, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 900 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 935.
Other embodiments use a removable storage device (such as a floppy disk, flash drive, etc.) as the permanent storage device. Like the permanent storage device 935, the system memory 925 is a read-and-write memory device. However, unlike storage device 935, the system memory is a volatile read-and-write memory, such a random-access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in the system memory 925, the permanent storage device 935, and/or the read-only memory 930. From these various memory units, the processing unit(s) 910 retrieve instructions to execute and data to process in order to execute the processes of some embodiments.
The bus 905 also connects to the input and output devices 940 and 945. The input devices enable the user to communicate information and select commands to the electronic system. The input devices 940 include alphanumeric keyboards and pointing devices (also called “cursor control devices”). The output devices 945 display images generated by the electronic system. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Some embodiments include devices such as a touchscreen that function as both input and output devices.
Finally, as shown in
Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra-density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself.
As used in this specification, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification, the terms “computer readable medium,” “computer readable media,” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
This specification refers throughout to computational and network environments that include virtual machines (VMs). However, virtual machines are merely one example of data compute nodes (DCNs) or data compute end nodes, also referred to as addressable nodes. DCNs may include non-virtualized physical hosts, virtual machines, containers that run on top of a host operating system without the need for a hypervisor or separate operating system, and hypervisor kernel network interface modules.
VMs, in some embodiments, operate with their own guest operating systems on a host using resources of the host virtualized by virtualization software (e.g., a hypervisor, virtual machine monitor, etc.). The tenant (i.e., the owner of the VM) can choose which applications to operate on top of the guest operating system. Some containers, on the other hand, are constructs that run on top of a host operating system without the need for a hypervisor or separate guest operating system. In some embodiments, the host operating system uses namespaces to isolate the containers from each other and therefore provides operating-system level segregation of the different groups of applications that operate within different containers. This segregation is akin to the VM segregation that is offered in hypervisor-virtualized environments that virtualize system hardware, and thus can be viewed as a form of virtualization that isolates different groups of applications that operate in different containers. Such containers are more lightweight than VMs.
Hypervisor kernel network interface modules, in some embodiments, is a non-VM DCN that includes a network stack with a hypervisor kernel network interface and receive/transmit threads. One example of a hypervisor kernel network interface module is the vmknic module that is part of the ESXi™ hypervisor of VMware, Inc.
It should be understood that while the specification refers to VMs, the examples given may be any type of DCNs, including physical hosts, VMs, non-VM containers, and hypervisor kernel network interface modules. In fact, the example networks might include combinations of different types of DCNs in some embodiments.
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. In addition, a number of the figures (including
Number | Date | Country | Kind |
---|---|---|---|
201941052876 | Dec 2019 | IN | national |
Number | Name | Date | Kind |
---|---|---|---|
7849502 | Bloch et al. | Dec 2010 | B1 |
8605655 | Sahai et al. | Dec 2013 | B1 |
9215213 | Bansal et al. | Dec 2015 | B2 |
9438560 | Mohanty et al. | Sep 2016 | B2 |
9438634 | Ross et al. | Sep 2016 | B1 |
9467476 | Shieh et al. | Oct 2016 | B1 |
9787641 | Bansal et al. | Oct 2017 | B2 |
10298619 | Nimmagadda et al. | May 2019 | B2 |
10419321 | Raman et al. | Sep 2019 | B2 |
10567440 | Bansal et al. | Feb 2020 | B2 |
10608993 | Bansal et al. | Mar 2020 | B2 |
10728121 | Chitalia | Jul 2020 | B1 |
10742673 | Tiagi et al. | Aug 2020 | B2 |
10846117 | Steinberg | Nov 2020 | B1 |
11018970 | Raman et al. | May 2021 | B2 |
20030120955 | Bartal et al. | Jun 2003 | A1 |
20050198247 | Perry | Sep 2005 | A1 |
20050262554 | Brooks et al. | Nov 2005 | A1 |
20070011734 | Balakrishnan et al. | Jan 2007 | A1 |
20080037423 | Singh et al. | Feb 2008 | A1 |
20080059596 | Ogawa | Mar 2008 | A1 |
20080196102 | Roesch | Aug 2008 | A1 |
20080267186 | Boukis et al. | Oct 2008 | A1 |
20080282335 | Abzarian et al. | Nov 2008 | A1 |
20090279547 | Mistry et al. | Nov 2009 | A1 |
20090300341 | Buehler et al. | Dec 2009 | A1 |
20100106764 | Chadwick et al. | Apr 2010 | A1 |
20100107085 | Chadwick et al. | Apr 2010 | A1 |
20100293544 | Wilson et al. | Nov 2010 | A1 |
20100325199 | Park et al. | Dec 2010 | A1 |
20100332262 | Horvitz et al. | Dec 2010 | A1 |
20110208824 | Lidstrom | Aug 2011 | A1 |
20120011284 | Filali-Adib et al. | Jan 2012 | A1 |
20120131591 | Moorthi et al. | May 2012 | A1 |
20120151408 | Groth | Jun 2012 | A1 |
20120226808 | Morgan | Sep 2012 | A1 |
20120317566 | Santos et al. | Dec 2012 | A1 |
20130031037 | Brandt et al. | Jan 2013 | A1 |
20130067090 | Batrouni et al. | Mar 2013 | A1 |
20130159865 | Smith | Jun 2013 | A1 |
20130185413 | Beaty et al. | Jul 2013 | A1 |
20140245423 | Lee | Aug 2014 | A1 |
20140373091 | Kimer et al. | Dec 2014 | A1 |
20150019569 | Parker | Jan 2015 | A1 |
20150135003 | Cota-Robles et al. | May 2015 | A1 |
20150199513 | Ismael et al. | Jul 2015 | A1 |
20150236935 | Bassett | Aug 2015 | A1 |
20150269383 | Lang et al. | Sep 2015 | A1 |
20150358288 | Jain et al. | Dec 2015 | A1 |
20150358391 | Moon et al. | Dec 2015 | A1 |
20160110211 | Kames | Apr 2016 | A1 |
20160112443 | Grossman et al. | Apr 2016 | A1 |
20160156591 | Zhou et al. | Jun 2016 | A1 |
20160191463 | Mohanty et al. | Jun 2016 | A1 |
20160205002 | Rieke et al. | Jul 2016 | A1 |
20160219068 | Lee et al. | Jul 2016 | A1 |
20160294987 | Tian et al. | Oct 2016 | A1 |
20160323318 | Terrill et al. | Nov 2016 | A1 |
20160350683 | Bester et al. | Dec 2016 | A1 |
20160380848 | Raney | Dec 2016 | A1 |
20170005986 | Bansal et al. | Jan 2017 | A1 |
20170019487 | Maheshwari et al. | Jan 2017 | A1 |
20170078168 | Harris et al. | Mar 2017 | A1 |
20170118102 | Majumder et al. | Apr 2017 | A1 |
20170126727 | Beam et al. | May 2017 | A1 |
20170171159 | Kumar et al. | Jun 2017 | A1 |
20170207968 | Eicken et al. | Jul 2017 | A1 |
20170222977 | Newell et al. | Aug 2017 | A1 |
20170293994 | Li et al. | Oct 2017 | A1 |
20170324632 | Arora | Nov 2017 | A1 |
20170324765 | McLaughlin et al. | Nov 2017 | A1 |
20170359217 | Ahuja et al. | Dec 2017 | A1 |
20170374102 | Woolward | Dec 2017 | A1 |
20170374106 | Hamou et al. | Dec 2017 | A1 |
20180007127 | Salapura et al. | Jan 2018 | A1 |
20180027080 | Yang et al. | Jan 2018 | A1 |
20180032399 | Johnson et al. | Feb 2018 | A1 |
20180034856 | Mallya | Feb 2018 | A1 |
20180041578 | Lee et al. | Feb 2018 | A1 |
20180048623 | Bansal et al. | Feb 2018 | A1 |
20180077119 | Fields et al. | Mar 2018 | A1 |
20180077189 | Doppke et al. | Mar 2018 | A1 |
20180084034 | Netto et al. | Mar 2018 | A1 |
20180088964 | Hussain et al. | Mar 2018 | A1 |
20180101371 | Flanakin et al. | Apr 2018 | A1 |
20180115586 | Chou et al. | Apr 2018 | A1 |
20180123907 | Raman et al. | May 2018 | A1 |
20180123939 | Raman et al. | May 2018 | A1 |
20180145999 | Ertugrul et al. | May 2018 | A1 |
20180167405 | Comay et al. | Jun 2018 | A1 |
20180176102 | Bansal | Jun 2018 | A1 |
20180176252 | Nimmagadda | Jun 2018 | A1 |
20180176261 | Bansal | Jun 2018 | A1 |
20180295148 | Mayorgo | Oct 2018 | A1 |
20180329958 | Choudhury | Nov 2018 | A1 |
20180332006 | Zhao | Nov 2018 | A1 |
20190180141 | Tiagi et al. | Jun 2019 | A1 |
20190182276 | Tiagi et al. | Jun 2019 | A1 |
20190230064 | Soman | Jul 2019 | A1 |
20190386891 | Chitalia et al. | Dec 2019 | A1 |
20200073694 | Wallach | Mar 2020 | A1 |
20210194849 | Parashar et al. | Jun 2021 | A1 |
Entry |
---|
Ghafir, Ibrahim, et al., “A Survey on Network Security Monitoring Systems,” 2016 IEEE 4th International Conference on Future Internet of Things and Cloud Workshops, Aug. 22-24, 2016, 6 pages, IEEE, Vienna, Austria. |
Lee, Hanseung, et al., “iVisClustering: An Interactive Visual Document Clustering via Topic Modeling,” EuroVis12: Eurographics Conference on Visualization, vol. 31, No. 3, Jun. 2012, 10 pages, The Eurographics Association and Blackwell Publishing Ltd., Oxford, UK, and MA, USA. |
Niu, Xiangyu, et al., “Network Steganography based on Traffic Behavior in Dynamically Changing Wireless Sensor Networks,” 2015 IEEE International Conference on Communications, Jun. 8-12, 2015, 6 pages, IEEE, London, UK. |
Anwar, Mahwish, “Virtual Firewalling for Migrating Virtual Machines in Cloud Computing,” 2013 5th International Conference on Information and Communication Technologies, Dec. 14-15, 2013, 11 pages, IEEE, Karachi, Pakistan. |
Blei, David M., “Probabilistic Topic Models,” Communications of the ACM, Apr. 2012, 8 pages, vol. 55, No. 4, ACM, New York, New York, USA. |
El-Atawy, Adel, et al., “Policy Segmentation for Intelligent Firewall Testing,” 1st IEEE ICNP Workshop on Secure Network Protocols, Nov. 6, 2005, 6 pages, IEEE, Boston, MA, USA. |
Maheshwari, Ritu, et al., “Private Virtual Cloud Infrastructure Modelling using ‘VCPHCF-RTT’ Security Agent,” 2018 4th International Conference on Computing Communication and Automation (ICCCA), Dec. 14-15, 2018, 5 pages, IEEE, Greater Noida, India. |
Mimno, David, et al., “Bayesian Checking for Topic Models,” Proceedings of the Conference on Empirical Methods in Natural Language Processing, Jul. 27-31, 2011, 11 pages, ACL, Edinburgh, Scotland, UK. |
Non-Published commonly owned related U.S. Appl. No. 16/799,868 with similar specification, filed Feb. 25, 2020, 45 pages, VMware, Inc. |
Steyvers, Mark, et al., “Probabilistic Topic Models,” Handbook of Latent Semantic Analysis, Month Unknown 2007, 15 pages, Laurence Erlbaum Associates. |
Münz, Gerhard, et al., “Traffic Anomaly Detection Using K-Means Clustering,” GI/ITG Workshop MMBnet, Month Unknown 2007, 8 pages, retrieved from https://www.net.in.turn.de/fileadmin/TUM/members/muenz/documents/muenz07k-means.pdf. |
Author Unknown, “Network Visualization nuVML Virtual Modeling Lab Quick Start Guide,” Jun. 12, 2017, 20 pages, Speak Network Solutions, USA, Retrieved from https://www.speaknetworks.com/nuvml-quick-start-guide/. |
Shan, Rongsheng, et al., “Network Security Policy for Large-Scale VPN,” International Conference on Communication Technology Proceedings 2003, Apr. 9-11, 2003, 4 pages, IEEE, Beijing, China. |
Number | Date | Country | |
---|---|---|---|
20210194931 A1 | Jun 2021 | US |