IP Library Granted Patent US 10,379,981
Granted Patent B2
US 10,379,981 · App. 15/455,150 · Granted Aug 13, 2019

Diagnosing distributed virtual network malfunction

Inventors: Yusheng Wang (Beijing, CN); Guofeng Zhu (Beijing, CN); Hua Wang (Beijing, CN); Donghai Han (Beijing, CN)
Assignee: NICIRA, INC.
G06F11/2257G06F9/45558G06F11/0766G06F11/221H04L49/70G06F2009/45591G06F2009/45595
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 10,379,981
App. No.
15/455,150
Granted
Aug 13, 2019
Kind
B2
Abstract

A method is provided to diagnose one or more malfunctions in a virtual network having a network functionality implemented in a distributed manner by hypervisors, each performing part of the network functionality. The method includes receiving user input of observed facts about the virtual network, where the observed facts include identifiers of virtual components in the virtual network, and adding the observed facts to a knowledge base. The method further includes, in response to the identifiers of the virtual components, querying agents on the hypervisors for collected facts related to the virtual components, receiving and adding the collected facts to the knowledge base, and applying logic rules to the knowledge base to produce one or more diagnoses of the virtual network.

Claims (91)

1. A method to diagnose one or more malfunctions in a virtual network having a network functionality implemented by hypervisors in a distributed manner set by a virtual network controller, each hypervisor performing part of the network functionality, the method comprising:

receiving, by a diagnostic tool, user input of observed facts about the virtual network, the observed facts including identifiers of virtual components in the virtual network;

adding, by the diagnostic tool, the observed facts to a knowledge base;

in response to the identifiers of the virtual components, querying, by the diagnostic tool, agents on the hypervisors and the virtual network controller for collected facts related to the virtual components;

receiving and adding, by the diagnostic tool, the collected facts to the knowledge base; and

applying, by the diagnostic tool, logic rules to the knowledge base to produce one or more diagnoses of the virtual network.

2. The method of claim 1 , wherein said applying logic rules includes performing forward-chaining, which includes:

applying the logic rules to the knowledge base to produce new facts;

adding the new facts to the knowledge base; and

repeating said applying the logic rules to the knowledge base to produce new facts and said adding the new facts to the knowledge base until no new fact is produced.

3. The method of claim 2 , wherein said performing forward-chaining further comprises:

in response to a number of the new facts, querying the agents for additional collected facts based on the number of the new facts; and

receiving the additional collected facts from the agents and adding the additional collected facts to the knowledge base.

4. The method of claim 1 , wherein the observed facts comprises an identifier of a ping failure and the identifiers of virtual network interfaces experiencing the ping failure.

5. The method of claim 4 , wherein:

the collected facts include configuration data and system state related to the virtual network interfaces;

the configuration data include associations of a number of the virtual network interfaces that are bound to logical ports, the logical ports, and logical switches with the logical ports; and

the system state includes associations between another number of the virtual network interfaces that are active on host computers, the host computers, and MAC addresses assigned to the active virtual network interfaces.

6. The method of claim 5 , wherein the logic rules include a rule determining a configuration error when two of the virtual network interfaces experience the ping failure and one of the two virtual network interfaces is not bound to a logical port.

7. The method of claim 5 , wherein the logic rules include a rule determining a configuration error when two of the virtual network interfaces experience the ping failure and the two virtual network interfaces are connected to different logical switches.

8. The method of claim 5 , wherein:

the logic rules include a first rule determining expected forwarding information base (FIB) entries by generating a FIB entry for each of the virtual network interfaces that is active on a host computer, configured with a MAC address, and bound to a logical port of a logical switch; and

adding the expected FIB entries to the knowledge base.

9. The method of claim 8 , wherein:

the logic rules include a second rule determining expected FIB entries on each of the host computers by generating an expected FIB entry on that host computer for each of the virtual network interfaces that is active on another host computer and bound to a logical port of a logical switch that is present on the host computer; and

adding the expected FIB entries on the host computers to the knowledge base.

10. The method of claim 9 , further comprising:

querying the agents for actual FIB entries on the host computers; and

adding the actual FIB entries on the host computers to the knowledge base,

wherein the logic rules include a third rule determining a system defect when an expected FIB entry on a host computer does not match any of the actual FIB entries on that host computer.

11. The method of claim 9 , further comprising:

querying the agents for addresses of tunnel endpoints at the host computers; and

adding the addresses of the tunnel endpoints at the host computers to the knowledge base,

wherein the logic rules include a third rule determining expected host tunnels between pairs of the host computers.

12. The method of claim 11 , further comprising:

querying the agents for one or more functioning host tunnels between pairs of the tunnel endpoints; and

adding the one or more functioning tunnels to the knowledge base,

wherein the logic rules comprise a fourth rule determining a tunnel issue when an expected host tunnel does not match any of the one or more functioning tunnels.

13. A non-transitory, computer-readable storage medium encoded with instructions executable by a processor to diagnose one or more malfunctions in a virtual network having a network functionality implemented by hypervisors in a distributed manner set by a virtual network controller, each hypervisor performing part of the network functionality, the instructions comprising:

receiving user input of observed facts about the virtual network, the observed facts including identifiers of virtual components in the virtual network;

adding the observed facts to a knowledge base;

in response to the identifiers of the virtual components, querying agents on the hypervisors and the virtual network controller for collected facts related to the virtual components;

receiving and adding the collected facts to the knowledge base; and

applying logic rules to the knowledge base to produce one or more diagnoses of the virtual network.

14. The storage medium of claim 13 , wherein said applying logic rules to the knowledge base to produce one or more diagnoses of the virtual network includes performing forward-chaining, which includes:

applying the logic rules to the knowledge base to produce new facts;

adding the new facts to the knowledge base;

in response to a number of the new facts, querying the agents for additional collected facts based on the number of the new facts;

receiving the additional collected facts from the agents and adding the additional collected facts to the knowledge base; and

repeating said applying, said adding the new facts, said querying, said receiving and adding the additional collected facts until no new fact is produced.

15. The storage medium of claim 13 , wherein:

the observed facts comprise an identifier of a ping failure and the identifiers of virtual network interfaces experiencing the ping failure;

the collected facts include configuration data and system state related to the virtual network interfaces;

the configuration data include associations of a number of the virtual network interfaces that are bound to logical ports, the logical ports, and logical switches with the logical ports; and

the system state includes associations of another number of the virtual network interfaces that are active on host computers, the host computers, and MAC addresses assigned to the active virtual network interfaces.

16. The storage medium of claim 15 , wherein the logic rules include a rule determining a configuration error when two of the virtual network interfaces experience the ping failure and one of the two virtual network interfaces is not bound to a logical port.

17. The storage medium of claim 15 , wherein the logic rules include a rule determining a configuration error when two of the virtual network interfaces experience the ping failure and the two virtual network interfaces are connected to different logical switches.

18. The storage medium of claim 15 , wherein:

the logic rules include:

a first rule determining expected forwarding information base (FIB) entries by generating a FIB entry for each of the virtual network interfaces that is active on a host computer, configured with a MAC address, and bound to a logical port of a logical switch;

a second rule determining expected FIB entries on each of the host computers by generating an expected FIB entry on that host computer for each of the virtual network interfaces that is active on another host computer and bound to a logical port of a logical switch that is present on the host computer; and

a third rule determining a system defect when an expected FIB entry on a host computer does not match any of the actual FIB entries on that host computers; and

the method further includes:

adding the expected FIB entries to the knowledge base;

adding the expected FIB entries on the host computers to the knowledge base;

querying the agents for actual FIB entries on the host computers; and

adding the actual FIB entries on the host computers to the knowledge base.

19. The storage medium of claim 18 , wherein:

the logic rules include a fourth rule determining expected forwarding information base (FIB) entries by generating a FIB entry for each of the virtual network interfaces that is active on a host computer, configured with a MAC address, and bound to a logical port of a logical switch;

the method further includes adding the expected FIB entries to the knowledge base;

the logic rules include a fifth rule determining expected FIB entries on the host computers by generating, for each of the host computers, an expected FIB entry on that host computer for each of the virtual network interfaces that is active on another host computer and bound to a logical port of a logical switch that is present on the host computer;

the method further includes:

adding the expected FIB entries on the host computers to the knowledge base;

querying the agents for addresses of tunnel endpoints at the host computers; and

adding the addresses of the tunnel endpoints at the host computers to the knowledge base;

the logic rules include a sixth rule determining expected host tunnels between pairs of the host computers;

the method further includes:

querying the agents for one or more functioning host tunnels between pairs of the tunnel endpoints; and

adding the one or more functioning tunnels to the knowledge base; and

the logic rules include a seventh rule determining a tunnel issue when an expected host tunnel does not match any of the one or more functioning host tunnels.

20. A system, comprising:

physical host computers;

hypervisors on the physical host computers;

a virtual network controller setting a distributed manner by which the hypervisors implement a network functionality, each hypervisor performing part of the network functionality;

agents on the hypervisors and the virtual network controller;

a diagnostic tool comprising a logic engine configured to:

receive user input of observed facts about the virtual network, the observed facts including identifiers of virtual components in the virtual networking system;

add the observed facts to a knowledge base;

in response to the identifiers of the virtual components, query the agents for collected facts related to the virtual components;

receiving and adding the collected facts to the knowledge base; and

applying logic rules to the knowledge base to produce one or more diagnoses of the virtual network.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2017
From: WANG, YUSHENG; ZHU, GUOFENG; WANG, HUA; HAN, DONGHAI
To: NICIRA, INC.
Reel/Frame 041533/0903 →
Continuity (1)
Related Publication 20180260292A1 · Sep 13, 2018