IP Library Granted Patent US 11,677,719
Granted Patent B2
US 11,677,719 · App. 17/180,606 · Granted Jun 13, 2023

Firewall in a virtualized computing environment using physical network interface controller (PNIC) level firewall rules

Inventor: Donghai Han (Beijing, CN)
Assignee: NICIRA, INC.
H04L63/0263H04L63/0227H04L63/0236H04L63/0254
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 11,677,719
App. No.
17/180,606
Granted
Jun 13, 2023
Kind
B2
Abstract

Example methods are provided for a destination host to implement a firewall in a virtualized computing environment that includes the destination host and a source host. The method may comprise receiving, via a physical network interface controller (PNIC) of the destination host, an ingress packet sent by the source host. The ingress packet may be destined for a destination virtualized computing instance that is supported by the destination host and associated with a destination virtual network interface controller (VNIC). The method may further comprise retrieving a PNIC-level firewall rule associated with the destination virtualized computing instance, the PNIC-level firewall rule being applicable at the PNIC and generated by based on a VNIC-level firewall rule applicable at the destination VNIC. In response to determination that the PNIC-level firewall rule blocks the ingress packet from passing through, the ingress packet may be dropped such that the ingress packet is not sent to the destination VNIC.

Claims (49)

1. A method for a first host computer to implement a firewall in a network that includes first and second host computers, the method comprising:

at the first host computer:

identifying, for a physical network interface controller (PNIC) of the first host computer, a plurality of firewall rules associated with a plurality of virtual network interface controllers (VNICs) for a plurality of machines executing on the first host computer and storing the identified plurality of firewall rules as PNIC-level firewall rules;

receiving a packet sent from the second host computer that is destined to a first machine executing on the first host computer and associated with a first VNIC;

examining, for the received packet, the stored plurality of PNIC-level firewall rules to identify a PNIC-level firewall rule that matches the received packet and that requires dropping any packet that matches the identified rule; and

dropping the packet before the packet is sent to the first VNIC.

2. The method of claim 1 , wherein the received packet is received at the PNIC.

3. The method of claim 1 , wherein the received packet matches the identified PNIC-level firewall rule because the first machine is the destination of the received packet.

4. The method of claim 3 , wherein the received packet matches the identified PNIC-level firewall rule further because the second machine is the source of the received packet.

5. A method for a first host computer to implement a firewall in a network that includes first and second host computers, the method comprising:

at the first host computer:

aggregating a plurality of firewall rules associated with a plurality of virtual network interface controllers (VNICs) for a plurality of machines executing on the first host computer, in order to generate a set of firewall rules for a physical network interface controller (PNIC) of the first host computer, wherein aggregating the PNIC-level firewall rule comprises: (i) analyzing a first VNIC-level firewall rule applicable at a first VNIC associated with a first machine executing on the first host computer and a second VNIC-level firewall rule applicable at a second VNIC associated with a second machine executing on the first host computer, in order to identify one or more combinable packet fields, and (ii) based on the one or more combinable packet fields, combining the first and second VNIC-level firewall rules to generate a PNIC-level firewall rule;

receiving a packet sent from the second host computer that is destined to the first machine;

identifying a PNIC-level firewall rule that matches the received packet and that requires dropping any packet that matches the identified rule; and

dropping the packet before the packet is sent to the first VNIC.

6. The method of claim 5 , wherein the combinable packet fields include one or more of: source Internet Protocol (IP) address, source port number, destination IP address, destination protocol number, protocol and action.

7. The method of claim 1 , wherein the first host computer implements a distributed firewall engine that is configurable by a firewall controller and the method further comprises:

in response to receiving a control message from the firewall controller, configuring the firewall engine to apply the PNIC-level firewall rules at the PNIC instead of applying the VNIC-level firewall rules at the VNICs.

8. The method of claim 7 , wherein the firewall controller aggregates the plurality VNIC-level firewall rules to produce the PNIC-level firewall rules.

9. The method of claim 1 further comprising:

at the first host computer:

identifying a first firewall rule that is applicable to an ingress packet to the first machine from a second machine executing on a second host computer;

based on the first firewall rule, generating a second firewall rule that is applicable at the second host computer to egress packets destined to the first machine from the second machine; and

instructing the second host computer to apply the second firewall rule to egress packets from the second machine to the first machine.

10. The method of claim 9 , wherein the first host computer implements a firewall engine configurable by a firewall controller, and prior to the identifying the first firewall rule, the method further comprises:

receiving, from the firewall engine of the first host, a report message reporting the first host computer applies the first firewall rule to block ingress packets from a source network address associated with the second machine; and

based on the source network address, identifying the second host computer to receive the second firewall rule.

11. A non-transitory machine readable medium storing a program for execution by at least one processing unit of a first host computer to implement a firewall in a network that includes first and second host computers, the program comprising sets of instructions for:

identifying, for a physical network interface controller (PNIC) of the first host computer, a plurality of firewall rules associated with a plurality of virtual network interface controllers (VNICs) for a plurality of machines executing on the first host computer and storing the identified plurality of firewall rules as PNIC-level firewall rules;

receiving a packet sent from the second host computer that is destined to a first machine executing on the first host computer and associated with first VNIC;

examining, for the received packet, the stored plurality of PNIC-level firewall rules to identify a PNIC-level firewall rule that matches the received packet and that requires dropping any packet that matches the identified rule; and

dropping the packet before the packet is sent to the first VNIC.

12. The non-transitory machine readable medium of claim 11 , wherein the received packet is received at the PNIC.

13. The non-transitory machine readable medium of claim 11 , wherein the received packet matches the identified PNIC-level firewall rule because the first machine is the destination of the received packet.

14. The non-transitory machine readable medium of claim 13 , wherein the received packet matches the identified PNIC-level firewall rule further because the second machine is the source of the received packet.

15. The non-transitory machine readable medium of claim 13 , wherein the set of instructions for generating the PNIC-level firewall rule comprises sets of instructions for:

analyzing a first VNIC-level firewall rule applicable at the first VNIC and a second VNIC-level firewall rule applicable at a second VNIC associated with a second machine executing on the first host computer, in order to identify one or more combinable packet fields; and

based on the one or more combinable packet fields, combining the first and second VNIC-level firewall rules to generate a PNIC-level firewall rule.

16. The non-transitory machine readable medium of claim 15 , wherein the packet fields include one or more of: source Internet Protocol (IP) address, source port number, destination IP address, destination protocol number, protocol and action.

17. The non-transitory machine readable medium of claim 11 , wherein the first host computer implements a distributed firewall engine that is configurable by a firewall controller and the program further comprises a set of instructions for:

in response to receiving a control message from the firewall controller, configuring the firewall engine to apply the PNIC-level firewall rules at the PNIC instead of applying the VNIC-level firewall rules at the VNICs.

18. The non-transitory machine readable medium of claim 17 , wherein the firewall controller aggregates the plurality VNIC-level firewall rules to produce the PNIC-level firewall rules.

19. The non-transitory machine readable medium of claim 11 , wherein the program further comprises sets of instructions for:

identifying a first firewall rule that is applicable to an ingress packet to the first machine from a second machine executing on a second host computer;

based on the first firewall rule, generating a second firewall rule that is applicable at the second host computer to egress packets destined to the first machine from the second machine; and

instructing the second host computer to apply the second firewall rule to egress packets from the second machine to the first machine.

20. The non-transitory machine readable medium of claim 19 , wherein the first host computer implements a firewall engine configurable by a firewall controller, and prior to the identifying the first firewall rule, the program further comprises sets of instructions for:

receiving, from the firewall engine of the first host computer, a report message reporting the first host computer applies the first firewall rule to block ingress packets from a source network address associated with the second machine; and

based on the source network address, identifying the second host computer to receive the second firewall rule.

Assignments (1)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
Continuity (2)
Continuation 15050477 · Feb 23, 2016
Related Publication 20210176212A1 · Jun 10, 2021
Cited By (8)
US 12,192,116 US 12,229,578 US 12,314,611 US 12,355,728 US 12,373,237 US 12,405,895 US 12,481,444 US 12,699,671