US20150100670A1 - Transporting multi-destination networking traffic by sending repetitive unicast - Google Patents

Transporting multi-destination networking traffic by sending repetitive unicast Download PDF

Info

Publication number
US20150100670A1
US20150100670A1 US14/046,108 US201314046108A US2015100670A1 US 20150100670 A1 US20150100670 A1 US 20150100670A1 US 201314046108 A US201314046108 A US 201314046108A US 2015100670 A1 US2015100670 A1 US 2015100670A1
Authority
US
United States
Prior art keywords
network
virtual machine
network system
control information
systems
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/046,108
Inventor
Sushma Anantharam
Amitabha Biswas
Uday S. Nagaraj
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyndryl Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US14/046,108 priority Critical patent/US20150100670A1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ANANTHARAM, SUSHMA, BISWAS, AMITABHA, NAGARAJ, UDAY S.
Publication of US20150100670A1 publication Critical patent/US20150100670A1/en
Priority to US14/845,797 priority patent/US10103935B2/en
Priority to US16/127,327 priority patent/US10666509B2/en
Assigned to KYNDRYL, INC. reassignment KYNDRYL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTERNATIONAL BUSINESS MACHINES CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Definitions

  • the present invention relates generally to the field of computer networking, and more particularly to transporting multi-destinational network traffic.
  • Embodiments of the present invention disclose a method, computer program product, and system for transporting multi-destinational network traffic using repetitive unicast transmissions in the underlay.
  • a first virtual machine of the distributed network sends a first virtual machine control information to a first network system of the distributed network.
  • the first virtual machine is associated with a first tenant of the distributed network and is configured to communicate with the first network system.
  • the first virtual machine control information is associated with the first virtual machine and the first tenant.
  • the first network system sends a first control information to a first network control system of the distributed network in response to receiving the first virtual machine control information.
  • the first control information is based, at least in part, on the first virtual machine control information.
  • the first network control system sends at least a portion of the first control information to a number of network systems included in a plurality of network systems that are included in the distributed network.
  • the first network control system sends a second control information to the first network system.
  • the second control information is based, at least in part, on the first control information.
  • FIG. 1 is a functional block diagram illustrating a distributed network environment, in accordance with an embodiment of the present invention
  • FIG. 2 is a flowchart depicting operational steps of a new virtual machine integrating into the distributed network environment of FIG. 1 .
  • FIG. 3 illustrates operational steps of an exemplary multicast transmission of information from one virtual machine to two recipients within the distributed network environment of FIG. 1 .
  • FIG. 4 is a block diagram of components of networking systems and networking control systems executing a virtual machine configuration program and a data transfer program, in accordance with an embodiment of the present invention.
  • the present invention includes a system, method and computer program product for transporting overlay multi-destinational traffic in an overlay network using repetitive unicast transmissions sent through an underlay network.
  • Virtual machines are connected to a network via networking systems (also called network systems), each of which maintains a record of the virtual machines which are connected to it. Collected records are synchronized with a networking control system (also called network control system), which updates all networking systems in the event that a change is made to the network.
  • Multi-destinational traffic is sent to and from virtual machines by sending transmissions through networking systems which encapsulate multi-destinational transmissions within unicast transmissions so that they can be passed through the underlay network. Once a transmission is received by a second networking system, it is de-capsulated then forwarded to each virtual machine which is determined to be a recipient of the transmission.
  • aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer-readable program code/instructions embodied thereon.
  • Computer-readable media may be a computer-readable signal medium or a computer-readable storage medium.
  • a computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer-readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • a computer-readable signal medium may include a propagated data signal with computer-readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
  • a computer-readable signal medium may be any computer-readable medium that is not a computer-readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java®, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the program code may execute entirely on a user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
  • These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • FIG. 1 is a functional block diagram illustrating a distributed network environment, generally designated 100 , in accordance with one embodiment of the present invention.
  • Distributed network environment 100 contains networking system 110 , 120 and 130 , network 140 , networking control system 150 , and virtual machines 160 , 165 , 170 , 175 , 180 , and 185 , virtual machine configuration program 190 , and data transfer program 195 .
  • Network 140 can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and may include wired, wireless, fiber optic or any other connection known in the art.
  • network 140 can be any combination of connections and protocols that will support communications between networking system 110 , 120 and 130 , networking control system 150 , virtual machines 160 , 165 , 170 , 175 , 180 , and 185 , virtual machine configuration program 190 , and data transfer program 195 .
  • networking system 110 , 120 and 130 are computing devices which can be standalone devices, servers, laptop computers, tablet computers, netbook computers, personal computers (PCs), or desktop computers.
  • networking system 110 , 120 and 130 each represent a computing system utilizing clustered computers and components to act as a single pool of seamless resources.
  • networking system 110 , 120 and 130 can be any computing device or a combination of devices with access to network 140 and virtual machines 160 , 165 , 170 , 175 , 180 , and 185 , and are capable of executing virtual machine configuration program 190 , and data transfer program 195 .
  • networking system 110 , 120 and 130 act as VNIDs (Virtual Network Interface Devices).
  • VNIDs Virtual Network Interface Devices
  • Networking system 110 , 120 and 130 may include internal and external hardware components, as depicted and described in further detail with respect to FIG. 4 .
  • Virtual machines 160 , 165 , 170 , 175 , 180 , and 185 are software implemented abstractions of hardware included in networking system 110 , 120 and 130 .
  • virtual machines 160 , 165 , 170 , 175 , 180 , and 185 can be used to emulate functions of a physical computer (e.g., execute programs).
  • virtual machines 160 , 165 , 170 , 175 , 180 , and 185 are representations of virtual devices that are being implemented on networking system 110 , 120 and 130 .
  • the resources of networking system 110 , 120 and 130 can be partitioned for use by one or more virtual machines including virtual machines 160 , 165 , 170 , 175 , 180 , and 185 .
  • Networking control system 150 is a computing device which acts as a system controller for distributed network environment 100 .
  • networking control system 150 is a computing device that can be a standalone device, a server, a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), or a desktop computer.
  • networking control system 150 represents a computing system utilizing clustered computers and components to act as a single pool of seamless resources.
  • networking control system 150 can be any computing device or a combination of devices with access to networking systems 110 , 120 , and 130 , network 140 and virtual machines 160 , 165 , 170 , 175 , 180 , and 185 , and is capable of executing virtual machine configuration program 190 , and data transfer program 195 .
  • Networking control system 150 may include internal and external hardware components, as depicted and described in further detail with respect to FIG. 4 .
  • Virtual machine configuration program 190 is a software program that configures distributed network environment 100 to send and receive transmissions of information to and from a new virtual machine which is added to distributed network environment 100 .
  • Virtual machine configuration program 190 is installed onto networking system 110 , 120 and 130 , and networking control system 150 , with each device executing a segment of virtual machine configuration program 190 .
  • Data transfer program 195 is a software program that facilitates broadcast and multicast transmissions of information between two or more virtual machines within distributed network environment 100 .
  • Data transfer program 195 is installed onto networking system 110 , 120 and 130 , and networking control system 150 , with each device executing a segment of data transfer program 195 .
  • This exemplary embodiment of the present invention includes a first and a second tenant.
  • the first tenant includes virtual machines 160 , 170 , and 180 while the second tenant includes virtual machines 165 , 175 , and 185 .
  • a tenant is a collection of VNETs or virtual machines which must have its traffic isolated from other tenants within a network.
  • This exemplary embodiment of the present invention includes a first and a second VNET, each comprising an enclosed virtual network connected to network 140 .
  • a first VNET includes networking systems 110 and 120 as well as virtual machines 160 , 165 , 170 , and 175 .
  • a second VNET contains networking system 130 and virtual machines 180 and 185 .
  • a VNET is a group of virtual machines which are controlled by one or more common policies.
  • a policy includes a set of rules for transferring information between VNETs.
  • FIG. 2 is a flowchart, 200 , depicting operational steps utilized by virtual machine configuration program 190 to configure distributed network environment 100 to send and receive transmissions of information to and from a new virtual machine, which is added to distributed network environment 100 , in accordance with one embodiment of the present invention.
  • virtual machine 160 is added to distributed network environment 100 via networking system 110 in step 205 .
  • virtual machine 160 is a member of a tenant generally designated the first tenant, and a VNET generally designated the first VNET.
  • Virtual machine 160 registers with networking system 110 and sends virtual machine control information to networking system 110 , which receives the virtual machine control information, in step 210 .
  • virtual machine control information includes information associated with the new virtual machine, the first tenant, and the first VNET.
  • virtual machine control information includes information associated with the tenant and VNET of which the new virtual machine is a member.
  • networking system 110 Upon receiving virtual machine control information from a new virtual machine, networking system 110 sends control information to networking control system 150 in step 215 .
  • Control information is based, at least in part, on the virtual machine control information received in step 210 and ID information used to represent the networking system and a virtual machine that it connects to.
  • the received virtual machine control information is used by networking control system 150 to update an internal record of all present virtual machines and their respective tenants and VNETs within distributed network environment 100 .
  • networking system 150 receives information related to virtual machine 160 , the first tenant, and the first VNET which are added to internal records stored within networking system 150 .
  • networking control system 150 sends information to networking system 110 in step 220 .
  • This information describes all other networking systems containing virtual machines which are members of the same domain and/or VNET as the new virtual machine, e.g., VM 160 , using either database records to be stored by networking system 110 or a set of ID information referencing each networking system and its virtual machines, in step 220 .
  • the information received by networking system 110 in step 220 includes information about virtual machines 170 and 180 which are both within tenant one, as well as the networking systems that they are connected to. The received information is used by networking system 110 to route appropriate traffic to and from virtual machine 160 .
  • Networking control system 150 sends necessary control information to all other networking systems in step 225 .
  • the received information is used to inform networking systems that a new virtual machine has attached to the network through a networking system, and also to provide information such as the tenant and VNET of which the new virtual machine is a member.
  • Control information is based, at least in part, on the virtual machine control information received in step 210 and ID information used to represent the networking system and a virtual machine that it connects to.
  • networking systems 120 and 130 receive information from networking control system 150 which indicates that virtual machine 160 has joined distributed network system 100 via networking system 110 , as well as that virtual machine 160 is a member of a first tenant and a first VNET.
  • FIG. 3 is a flowchart, 300 , depicting operational steps of data transfer program 195 .
  • Data transfer program 195 is a software program that facilitates broadcast and multicast transmissions of information between two ore more virtual machines within distributed network environment 100 .
  • virtual machine 160 sends a multicast transmission to virtual machines 170 and 180 via networking system 110 .
  • the multicast transmission is initiated by virtual machine 160 in step 305 .
  • a multicast transmission can be any transmission of computer-readable information sent to two or more recipients.
  • Multicast transmissions can include IP multicast transmissions, Internet relay chat (IRC) transmissions, or any other digital multicast information transmission known in the art.
  • Other embodiments include a broadcast transmission being initiated by a virtual machine to all other virtual machines within the same tenant and/or VNET within distributed network environment 100 .
  • An exemplary embodiment of a broadcast transmission includes virtual machine 160 initiating a broadcast transmission to all virtual machines within the first VNET.
  • networking system 110 Upon receiving a multicast transmission from virtual machine 160 , networking system 110 utilizes the control information received from networking control system 150 to determine which networking systems access the recipient virtual machines. Networking system 110 also determines the tenants and VNETs associated with the recipient virtual machines in step 310 . In this exemplary embodiment, networking systems 120 and 130 are determined to be hosts of virtual machines 170 and 180 , which are intended recipients of the current multicast transmission. Virtual machine 170 is determined to be a member of a first tenant and a first VNET, while virtual machine 180 is determined to be a member of a first tenant and a second VNET.
  • Networking system 110 checks if any of the recipients are members of a different VNET from that of the sender of the transmission in decision step 315 .
  • the VNET of each of the recipient virtual machines is determined using the control information received from networking control system 150 . If all of the recipients of the transmission are members of the same VNET (decision step 315 , yes branch), then networking system 110 proceeds with sending encapsulated unicast packets to the recipient networking systems in step 330 .
  • networking system 110 determines the relevant VNET that the recipient belongs to. Networking system 110 then communicates with the recipient virtual machine belonging to the determined VNET to determine if the virtual machine is interested in receiving the transmission, in decision step 320 .
  • virtual machines 160 and 170 are members of a first VNET, while virtual machine 180 is a member of a second VNET.
  • networking system 110 communicates with networking system 130 to determine if virtual machine 180 is interested in receiving the transmission from virtual machine 160 .
  • networking system 110 determines that a virtual machine from an outside VNET is interested in receiving the transmission (decision step 320 , yes branch), then network system 110 proceeds with the transmission to all intended recipients, in step 330 .
  • networking system 110 determines that virtual machine 180 is interested in receiving the transmission from virtual machine 160 , then networking system 110 proceeds with the transmission to all intended recipients in step 330 .
  • networking system 110 determines that a virtual machine from an outside VNET is not interested in receiving the transmission (decision step 320 , no branch), then networking system 110 proceeds to step 325 . In an exemplary embodiment, if a given virtual machine indicates that it is not interested in receiving a transmission from virtual machine 160 , then networking system 110 would proceed to remove virtual machine 180 from the list of intended recipients in step 325 .
  • Virtual machines that are determined to not be interested in receiving a transmission from a virtual machine are removed from the list of recipients in step 325 .
  • virtual machine 180 were to indicate that it was not interested in receiving a transmission from virtual machine 160 , then virtual machine 180 would be removed from the list of recipients.
  • a networking system proceeds to send an encapsulated transmission in step 330 .
  • encapsulated unicast transmissions are sent to all network systems which are determined to have an interest in receiving the transmission.
  • the traffic is encapsulated by networking system 110 into unicast traffic so that the multicast transmission can be passed through network 140 successfully.
  • Each packet of unicast traffic prepared by the networking system contains at least a portion of the packet received from the virtual machine which initiated the transmission, at least a portion of the ID information received from networking control system 150 , and a header including the destination address of the networking system receiving the packet.
  • the networking system sending the transmission creates one packet of unicast traffic for each networking system which receives the transmission.
  • networking system 110 creates one packet of unicast traffic to be sent to networking system 120 and one packet of unicast traffic to be sent to networking system 130 .
  • networking system 110 creates one packet of unicast traffic to be sent to networking system 120 and one packet of unicast traffic to be sent to networking system 130 .
  • a single packet of unicast traffic is created by networking system 110 which is sent to the networking system hosting all of the recipient virtual machines.
  • a recipient networking system receives a transmission that no connected virtual machines are able to receive in accordance with local policy
  • the networking system notifies networking control system 150 and causes all other networking systems to update their internal records.
  • Internal records comprise a list of receiving networking systems and the virtual machines from each tenant that are registered with each networking system.
  • Internal records are updated by the networking control system 150 providing information about the change in records to each networking system within the network.
  • the information provided by networking control system 150 can include either information related to the specific change that needs to be updated in the records of each networking system, or a new complete set of records that can be used by each networking system to either update or replace its current records.
  • the packet sent by networking system 110 is received by networking system 120 and 130 respectively and de-capsulated.
  • destination information is received and the destination tenant and virtual machines are determined in step 335 .
  • the received packet is forwarded to an appropriate virtual machine, in step 340 .
  • an appropriate virtual machine is determined based on at least one of: a) a tenant intended to receive the transmission, b) a virtual machine intended to receive the transmission, or c) a security policy implemented by the networking system.
  • virtual machine configuration program 190 and data transfer program 195 are stored on networking system 110 , 120 and 130 , and networking control system 150 .
  • virtual machine configuration program 190 and data transfer program 195 may be stored externally and accessed through a communication network such as network 140 .
  • the communication network can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and may include wired, wireless, fiber optic or any other connection known in the art.
  • the communication network can be any combination of connections and protocols that will support communications between networking system 110 , 120 and 130 , and networking control system 150 , and virtual machine configuration program 190 and data transfer program 195 in accordance with a desired embodiment of the present invention.
  • FIG. 4 depicts a block diagram of respective components of networking system 110 , 120 and 130 , and networking control system 150 in accordance with an illustrative embodiment of the present invention. It should be appreciated that FIG. 4 provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.
  • Networking system 110 , 120 and 130 , and networking control system 150 include respective communications fabric 402 , which provides communications between computer processor(s) 404 , memory 406 , persistent storage 408 , communications unit 410 , and input/output (I/O) interface(s) 412 .
  • Communications fabric 402 can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system.
  • processors such as microprocessors, communications and network processors, etc.
  • Communications fabric 402 can be implemented with one or more buses.
  • Memory 406 and persistent storage 408 are computer-readable storage media.
  • memory 406 includes random access memory (RAM) 414 and cache memory 416 .
  • RAM random access memory
  • cache memory 416 In general, memory 406 can include any suitable volatile or non-volatile computer-readable storage media.
  • persistent storage 408 includes a magnetic hard disk drive.
  • persistent storage 408 can include a solid state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer-readable storage media that is capable of storing program instructions or digital information.
  • the media used by persistent storage 408 may also be removable.
  • a removable hard drive may be used for persistent storage 408 .
  • Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer-readable storage medium that is also part of persistent storage 408 .
  • Communications unit 410 in these examples, provides for communications with other data processing systems or devices, including resources of enterprise grid 112 and client devices 104 , 106 , and 108 .
  • communications unit 410 includes one or more network interface cards.
  • Communications unit 410 may provide communications through the use of either or both physical and wireless communications links.
  • VM 160 , 165 , 170 , 175 , 180 and 185 , Virtual machine configuration program 190 and data transfer program 195 may be downloaded to persistent storage 408 through communications unit 410 .
  • I/O interface(s) 412 allows for input and output of data with other devices that may be connected to network system 110 , 120 and 130 , or network control system 150 .
  • I/O interface(s) 412 may provide a connection to external device(s) 418 such as a keyboard, a keypad, a touch screen, and/or some other suitable input device.
  • External device(s) 418 can also include portable computer-readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards.
  • Software and data used to practice embodiments of the present invention, e.g. virtual machine configuration program 190 and data transfer program 195 can be stored on such portable computer-readable storage media and can be loaded onto persistent storage 408 via I/O interface(s) 412 .
  • I/O interface(s) 412 also connect to a display 420 .
  • Display 420 provides a mechanism to display data to a user and may be, for example, a computer monitor.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Abstract

In a distributed network environment, a first virtual machine sends a first virtual machine control information to a first network system. The first network system sends a first control information to a first network control system in response to receiving the first virtual machine control information. The first network control system sends a portion of the first control information to a number of network systems. The first network control system sends a second control information to the first network system. The first virtual machine sends a first packet to the first network system which generates a unicast packet using a portion of the first packet and a portion of the second control information. A second network system receives and processes the unicast packet. The second network system sends a copy of the processed unicast packet to a second virtual machine associated with a second tenant.

Description

    FIELD OF THE INVENTION
  • The present invention relates generally to the field of computer networking, and more particularly to transporting multi-destinational network traffic.
  • BACKGROUND OF THE INVENTION
  • Many current implementations of multicast data transmission require that every networking device connecting the sender and receiver be updated to support multicast technology efficiently. Most traditional underlay networks support only unicast transmissions of information, where a transmission of information is initialized by direct communication between the sender and receiver of a transmission. As more nodes are added into a network, and traffic is sent too many destinations simultaneously, communicating directly with every receiver becomes inefficient. However, there may be advantages to the use of a system for transporting multicast and broadcast traffic more easily using an underlay network which supports only unicast transmissions.
  • SUMMARY
  • Embodiments of the present invention disclose a method, computer program product, and system for transporting multi-destinational network traffic using repetitive unicast transmissions in the underlay. A first virtual machine of the distributed network sends a first virtual machine control information to a first network system of the distributed network. The first virtual machine is associated with a first tenant of the distributed network and is configured to communicate with the first network system. The first virtual machine control information is associated with the first virtual machine and the first tenant. The first network system sends a first control information to a first network control system of the distributed network in response to receiving the first virtual machine control information. The first control information is based, at least in part, on the first virtual machine control information. The first network control system sends at least a portion of the first control information to a number of network systems included in a plurality of network systems that are included in the distributed network. The first network control system sends a second control information to the first network system. The second control information is based, at least in part, on the first control information.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • FIG. 1 is a functional block diagram illustrating a distributed network environment, in accordance with an embodiment of the present invention
  • FIG. 2 is a flowchart depicting operational steps of a new virtual machine integrating into the distributed network environment of FIG. 1.
  • FIG. 3 illustrates operational steps of an exemplary multicast transmission of information from one virtual machine to two recipients within the distributed network environment of FIG. 1.
  • FIG. 4 is a block diagram of components of networking systems and networking control systems executing a virtual machine configuration program and a data transfer program, in accordance with an embodiment of the present invention.
  • DETAILED DESCRIPTION
  • Most traditional underlay networks support only unicast transmissions of information, where a transmission of information is initialized by direct communication between the sender and receiver of a transmission. As more nodes are added into a network, and traffic is sent to many destinations simultaneously, communicating directly with every receiver becomes inefficient. The present invention includes a system, method and computer program product for transporting overlay multi-destinational traffic in an overlay network using repetitive unicast transmissions sent through an underlay network. Virtual machines are connected to a network via networking systems (also called network systems), each of which maintains a record of the virtual machines which are connected to it. Collected records are synchronized with a networking control system (also called network control system), which updates all networking systems in the event that a change is made to the network. Multi-destinational traffic is sent to and from virtual machines by sending transmissions through networking systems which encapsulate multi-destinational transmissions within unicast transmissions so that they can be passed through the underlay network. Once a transmission is received by a second networking system, it is de-capsulated then forwarded to each virtual machine which is determined to be a recipient of the transmission.
  • As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer-readable program code/instructions embodied thereon.
  • Any combination of computer-readable media may be utilized. Computer-readable media may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of a computer-readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • A computer-readable signal medium may include a propagated data signal with computer-readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer-readable signal medium may be any computer-readable medium that is not a computer-readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java®, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • The present invention will now be described in detail with reference to the Figures. FIG. 1 is a functional block diagram illustrating a distributed network environment, generally designated 100, in accordance with one embodiment of the present invention. Distributed network environment 100 contains networking system 110, 120 and 130, network 140, networking control system 150, and virtual machines 160,165,170, 175, 180, and 185, virtual machine configuration program 190, and data transfer program 195.
  • Network 140 can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and may include wired, wireless, fiber optic or any other connection known in the art. In general, network 140 can be any combination of connections and protocols that will support communications between networking system 110, 120 and 130, networking control system 150, virtual machines 160, 165, 170, 175, 180, and 185, virtual machine configuration program 190, and data transfer program 195.
  • In various embodiments of the present invention, networking system 110, 120 and 130 are computing devices which can be standalone devices, servers, laptop computers, tablet computers, netbook computers, personal computers (PCs), or desktop computers. In another embodiment, networking system 110, 120 and 130 each represent a computing system utilizing clustered computers and components to act as a single pool of seamless resources. In general, networking system 110, 120 and 130 can be any computing device or a combination of devices with access to network 140 and virtual machines 160, 165, 170, 175, 180, and 185, and are capable of executing virtual machine configuration program 190, and data transfer program 195. Within the context of distributed network system 100, networking system 110, 120 and 130 act as VNIDs (Virtual Network Interface Devices). Networking system 110, 120 and 130 may include internal and external hardware components, as depicted and described in further detail with respect to FIG. 4.
  • Virtual machines (VMs) 160, 165, 170, 175, 180, and 185 are software implemented abstractions of hardware included in networking system 110, 120 and 130. In general, virtual machines 160, 165, 170, 175, 180, and 185 can be used to emulate functions of a physical computer (e.g., execute programs). In another embodiment, virtual machines 160, 165, 170, 175, 180, and 185 are representations of virtual devices that are being implemented on networking system 110, 120 and 130. In one embodiment, the resources of networking system 110, 120 and 130 (e.g., memory, central processing units(CPUs), storage devices, and I/O devices) can be partitioned for use by one or more virtual machines including virtual machines 160, 165, 170, 175, 180, and 185.
  • Networking control system 150 is a computing device which acts as a system controller for distributed network environment 100. In various embodiments of the present invention, networking control system 150 is a computing device that can be a standalone device, a server, a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), or a desktop computer. In another embodiment, networking control system 150 represents a computing system utilizing clustered computers and components to act as a single pool of seamless resources. In general, networking control system 150 can be any computing device or a combination of devices with access to networking systems 110, 120, and 130, network 140 and virtual machines 160, 165, 170, 175, 180, and 185, and is capable of executing virtual machine configuration program 190, and data transfer program 195. Networking control system 150 may include internal and external hardware components, as depicted and described in further detail with respect to FIG. 4.
  • Virtual machine configuration program 190 is a software program that configures distributed network environment 100 to send and receive transmissions of information to and from a new virtual machine which is added to distributed network environment 100. Virtual machine configuration program 190 is installed onto networking system 110, 120 and 130, and networking control system 150, with each device executing a segment of virtual machine configuration program 190.
  • Data transfer program 195 is a software program that facilitates broadcast and multicast transmissions of information between two or more virtual machines within distributed network environment 100. Data transfer program 195 is installed onto networking system 110, 120 and 130, and networking control system 150, with each device executing a segment of data transfer program 195.
  • This exemplary embodiment of the present invention includes a first and a second tenant. The first tenant includes virtual machines 160, 170, and 180 while the second tenant includes virtual machines 165, 175, and 185. In general, a tenant is a collection of VNETs or virtual machines which must have its traffic isolated from other tenants within a network.
  • This exemplary embodiment of the present invention includes a first and a second VNET, each comprising an enclosed virtual network connected to network 140. A first VNET includes networking systems 110 and 120 as well as virtual machines 160, 165, 170, and 175. A second VNET contains networking system 130 and virtual machines 180 and 185. In general, a VNET is a group of virtual machines which are controlled by one or more common policies. In an exemplary embodiment of the present invention, a policy includes a set of rules for transferring information between VNETs.
  • FIG. 2 is a flowchart, 200, depicting operational steps utilized by virtual machine configuration program 190 to configure distributed network environment 100 to send and receive transmissions of information to and from a new virtual machine, which is added to distributed network environment 100, in accordance with one embodiment of the present invention.
  • In an exemplary embodiment of the present invention, virtual machine 160 is added to distributed network environment 100 via networking system 110 in step 205. In this exemplary embodiment, virtual machine 160 is a member of a tenant generally designated the first tenant, and a VNET generally designated the first VNET.
  • Virtual machine 160 registers with networking system 110 and sends virtual machine control information to networking system 110, which receives the virtual machine control information, in step 210. In an exemplary embodiment, virtual machine control information includes information associated with the new virtual machine, the first tenant, and the first VNET. In general, virtual machine control information includes information associated with the tenant and VNET of which the new virtual machine is a member.
  • Upon receiving virtual machine control information from a new virtual machine, networking system 110 sends control information to networking control system 150 in step 215. Control information is based, at least in part, on the virtual machine control information received in step 210 and ID information used to represent the networking system and a virtual machine that it connects to. The received virtual machine control information is used by networking control system 150 to update an internal record of all present virtual machines and their respective tenants and VNETs within distributed network environment 100. In this exemplary embodiment, networking system 150 receives information related to virtual machine 160, the first tenant, and the first VNET which are added to internal records stored within networking system 150.
  • In this exemplary embodiment, networking control system 150 sends information to networking system 110 in step 220. This information describes all other networking systems containing virtual machines which are members of the same domain and/or VNET as the new virtual machine, e.g., VM 160, using either database records to be stored by networking system 110 or a set of ID information referencing each networking system and its virtual machines, in step 220. In this exemplary embodiment, the information received by networking system 110 in step 220 includes information about virtual machines 170 and 180 which are both within tenant one, as well as the networking systems that they are connected to. The received information is used by networking system 110 to route appropriate traffic to and from virtual machine 160.
  • Networking control system 150 sends necessary control information to all other networking systems in step 225. The received information is used to inform networking systems that a new virtual machine has attached to the network through a networking system, and also to provide information such as the tenant and VNET of which the new virtual machine is a member. Control information is based, at least in part, on the virtual machine control information received in step 210 and ID information used to represent the networking system and a virtual machine that it connects to. In this exemplary embodiment, networking systems 120 and 130 receive information from networking control system 150 which indicates that virtual machine 160 has joined distributed network system 100 via networking system 110, as well as that virtual machine 160 is a member of a first tenant and a first VNET.
  • FIG. 3 is a flowchart, 300, depicting operational steps of data transfer program 195. Data transfer program 195 is a software program that facilitates broadcast and multicast transmissions of information between two ore more virtual machines within distributed network environment 100. In an exemplary embodiment of the present invention, virtual machine 160 sends a multicast transmission to virtual machines 170 and 180 via networking system 110.
  • In the exemplary embodiment, the multicast transmission is initiated by virtual machine 160 in step 305. A multicast transmission can be any transmission of computer-readable information sent to two or more recipients. Multicast transmissions can include IP multicast transmissions, Internet relay chat (IRC) transmissions, or any other digital multicast information transmission known in the art. Other embodiments include a broadcast transmission being initiated by a virtual machine to all other virtual machines within the same tenant and/or VNET within distributed network environment 100. An exemplary embodiment of a broadcast transmission includes virtual machine 160 initiating a broadcast transmission to all virtual machines within the first VNET.
  • Upon receiving a multicast transmission from virtual machine 160, networking system 110 utilizes the control information received from networking control system 150 to determine which networking systems access the recipient virtual machines. Networking system 110 also determines the tenants and VNETs associated with the recipient virtual machines in step 310. In this exemplary embodiment, networking systems 120 and 130 are determined to be hosts of virtual machines 170 and 180, which are intended recipients of the current multicast transmission. Virtual machine 170 is determined to be a member of a first tenant and a first VNET, while virtual machine 180 is determined to be a member of a first tenant and a second VNET.
  • Networking system 110 checks if any of the recipients are members of a different VNET from that of the sender of the transmission in decision step 315. The VNET of each of the recipient virtual machines is determined using the control information received from networking control system 150. If all of the recipients of the transmission are members of the same VNET (decision step 315, yes branch), then networking system 110 proceeds with sending encapsulated unicast packets to the recipient networking systems in step 330.
  • In the event that there is at least one virtual machine which is a member of a different VNET from the sender of the transmission (decision step 315, no branch), networking system 110 determines the relevant VNET that the recipient belongs to. Networking system 110 then communicates with the recipient virtual machine belonging to the determined VNET to determine if the virtual machine is interested in receiving the transmission, in decision step 320. In this exemplary embodiment, virtual machines 160 and 170 are members of a first VNET, while virtual machine 180 is a member of a second VNET. In this exemplary embodiment networking system 110 communicates with networking system 130 to determine if virtual machine 180 is interested in receiving the transmission from virtual machine 160.
  • If networking system 110 determines that a virtual machine from an outside VNET is interested in receiving the transmission (decision step 320, yes branch), then network system 110 proceeds with the transmission to all intended recipients, in step 330. In an exemplary embodiment, networking system 110 determines that virtual machine 180 is interested in receiving the transmission from virtual machine 160, then networking system 110 proceeds with the transmission to all intended recipients in step 330.
  • If networking system 110 determines that a virtual machine from an outside VNET is not interested in receiving the transmission (decision step 320, no branch), then networking system 110 proceeds to step 325. In an exemplary embodiment, if a given virtual machine indicates that it is not interested in receiving a transmission from virtual machine 160, then networking system 110 would proceed to remove virtual machine 180 from the list of intended recipients in step 325.
  • Virtual machines that are determined to not be interested in receiving a transmission from a virtual machine are removed from the list of recipients in step 325. In an exemplary embodiment, if virtual machine 180 were to indicate that it was not interested in receiving a transmission from virtual machine 160, then virtual machine 180 would be removed from the list of recipients. After a virtual machine is removed form the list of recipients, a networking system proceeds to send an encapsulated transmission in step 330.
  • In step 330, encapsulated unicast transmissions are sent to all network systems which are determined to have an interest in receiving the transmission. The traffic is encapsulated by networking system 110 into unicast traffic so that the multicast transmission can be passed through network 140 successfully. Each packet of unicast traffic prepared by the networking system contains at least a portion of the packet received from the virtual machine which initiated the transmission, at least a portion of the ID information received from networking control system 150, and a header including the destination address of the networking system receiving the packet. The networking system sending the transmission creates one packet of unicast traffic for each networking system which receives the transmission. In this exemplary embodiment, networking system 110 creates one packet of unicast traffic to be sent to networking system 120 and one packet of unicast traffic to be sent to networking system 130. In other exemplary embodiments where two ore more virtual machines which are recipients of the traffic are connected to a single networking system, a single packet of unicast traffic is created by networking system 110 which is sent to the networking system hosting all of the recipient virtual machines.
  • In exemplary embodiments where a recipient networking system receives a transmission that no connected virtual machines are able to receive in accordance with local policy, the networking system notifies networking control system 150 and causes all other networking systems to update their internal records. Internal records comprise a list of receiving networking systems and the virtual machines from each tenant that are registered with each networking system. Internal records are updated by the networking control system 150 providing information about the change in records to each networking system within the network. The information provided by networking control system 150 can include either information related to the specific change that needs to be updated in the records of each networking system, or a new complete set of records that can be used by each networking system to either update or replace its current records.
  • In an exemplary embodiment, the packet sent by networking system 110 is received by networking system 120 and 130 respectively and de-capsulated. Within the encapsulated packet is the multicast packet created and sent by virtual machine 160 as well as a portion of the ID information received from networking control system 150. Once the packet is de-capsulated, destination information is received and the destination tenant and virtual machines are determined in step 335.
  • Once a recipient virtual machine is determined, the received packet is forwarded to an appropriate virtual machine, in step 340. In exemplary embodiments where multiple virtual machines connected to a networking system are determined to be recipients of the transmission, a copy of the received packet will be sent to each virtual machine. An appropriate virtual machine is determined based on at least one of: a) a tenant intended to receive the transmission, b) a virtual machine intended to receive the transmission, or c) a security policy implemented by the networking system.
  • In this exemplary embodiment, virtual machine configuration program 190 and data transfer program 195 are stored on networking system 110, 120 and 130, and networking control system 150. However, in other embodiments, virtual machine configuration program 190 and data transfer program 195 may be stored externally and accessed through a communication network such as network 140. The communication network can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and may include wired, wireless, fiber optic or any other connection known in the art. In general, the communication network can be any combination of connections and protocols that will support communications between networking system 110, 120 and 130, and networking control system 150, and virtual machine configuration program 190 and data transfer program 195 in accordance with a desired embodiment of the present invention.
  • FIG. 4 depicts a block diagram of respective components of networking system 110, 120 and 130, and networking control system 150 in accordance with an illustrative embodiment of the present invention. It should be appreciated that FIG. 4 provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.
  • Networking system 110, 120 and 130, and networking control system 150 include respective communications fabric 402, which provides communications between computer processor(s) 404, memory 406, persistent storage 408, communications unit 410, and input/output (I/O) interface(s) 412. Communications fabric 402 can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communications fabric 402 can be implemented with one or more buses.
  • Memory 406 and persistent storage 408 are computer-readable storage media. In this embodiment, memory 406 includes random access memory (RAM) 414 and cache memory 416. In general, memory 406 can include any suitable volatile or non-volatile computer-readable storage media.
  • VM 160, 165, 170, 175, 180 and 185, Virtual machine configuration program 190 and data transfer program 195 are stored in persistent storage 408 for execution and or access by one or more of the respective computer processors 404 via one or more memories of memory 406. In this embodiment, persistent storage 408 includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage 408 can include a solid state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer-readable storage media that is capable of storing program instructions or digital information.
  • The media used by persistent storage 408 may also be removable. For example, a removable hard drive may be used for persistent storage 408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer-readable storage medium that is also part of persistent storage 408.
  • Communications unit 410, in these examples, provides for communications with other data processing systems or devices, including resources of enterprise grid 112 and client devices 104, 106, and 108. In these examples, communications unit 410 includes one or more network interface cards. Communications unit 410 may provide communications through the use of either or both physical and wireless communications links. VM 160, 165, 170, 175, 180 and 185, Virtual machine configuration program 190 and data transfer program 195 may be downloaded to persistent storage 408 through communications unit 410.
  • I/O interface(s) 412 allows for input and output of data with other devices that may be connected to network system 110, 120 and 130, or network control system 150. For example, I/O interface(s) 412 may provide a connection to external device(s) 418 such as a keyboard, a keypad, a touch screen, and/or some other suitable input device. External device(s) 418 can also include portable computer-readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, e.g. virtual machine configuration program 190 and data transfer program 195, can be stored on such portable computer-readable storage media and can be loaded onto persistent storage 408 via I/O interface(s) 412. I/O interface(s) 412 also connect to a display 420.
  • Display 420 provides a mechanism to display data to a user and may be, for example, a computer monitor.
  • The programs described herein are identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature herein is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
  • The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

Claims (20)

What is claimed is:
1. A distributed network system comprising:
a first virtual machine, wherein the first virtual machine is (i) configured to communicate with a first network system of a plurality of network systems, (ii) associated with a first tenant, and (iii) registered with the first network system via a first virtual machine control information, wherein the first virtual machine control information includes information associated with the first tenant;
the first network system, wherein the first network system is configured to respond to the reception of the first virtual machine control information by sending a first network control information to at least one network control system included in a plurality of network control systems, the first network control information including information associated with the first virtual machine and information associated with the first tenant;
the plurality of network systems, wherein the plurality of network systems are configured to send one or both of a network traffic information and a control information to at least one network control system and at least one virtual machine; and
the at least one network control system, wherein the at least one network control system is configured to respond to the reception of the first control information by sending (i) at least a first portion of the first control information to a first number of network systems of the plurality of network systems, and (ii) a second control information to the first network system, wherein each network system of the first number of network systems is in communication with at least one virtual machine associated with the first tenant.
2. The distributed network system of claim 1, further comprising:
a first number of virtual machines, wherein the first number of virtual machines includes the first virtual machine, and wherein each virtual machine of the first number of virtual machines (i) includes a sender and a receiver, (ii) is registered with the first network system, and (iii) communicates network traffic and control information with the first network system.
3. The distributed network system of claim 1, wherein the first portion of the first control information includes at least one of a portion of the first virtual machine control information, the information associated with the first tenant, and a first identification information of the first network system.
4. The distributed network system of claim 1, wherein the second control information includes a first number of ID information, and each ID information of the first number of ID information respectively corresponds to a network system of the first number of network systems.
5. The distributed network system of claim 1, wherein the first network system is configured to respond to the reception of a first packet from the first virtual machine by generating at least one unicast packet using at least one of a portion of the first packet and a portion of the second control information.
6. The distributed network system of claim 5, wherein the first network system is configured to respond to the reception of a first packet from the first virtual machine by generating a first number of unicast packets that respectively include at least a portion of the first packet and one of the first number of ID information.
7. The distributed network system of claim 6, wherein the first number of unicast packets corresponds to the first number of network systems of the plurality of network systems.
8. The distributed network system of claim 6, wherein each unicast packet of the first number of unicast packets includes a destination address of a network system included in the first number of network systems.
9. The distributed network system of claim 1, further comprising:
a second network system configured to (i) receive a generated unicast packet, (ii) process the received unicast packet, (iii) identify a second tenant using a portion of the processed unicast packet, (iv) determine a number of virtual machines registered with the second network system, and (iv) send a copy of the processed unicast packet to a second virtual machine, wherein the second virtual machine is associated with the second tenant and is included in the number of virtual machines registered with the second network system.
10. The distributed network system of claim 9, wherein the second network system is configured to determine the number of virtual machines registered with the second network system by applying local policies for receiving unicast packets to each virtual machine associated with the second tenant.
11. The distributed network system of claim 1, wherein a third network system of the plurality of network systems includes (i) a record of all network systems of the plurality of network systems, (ii) a record of a second virtual machine that is associated with a second network system of the plurality of network systems, and (iii) a record of a third tenant associated with the second virtual machine.
12. The distributed network system of claim 11, wherein the third network system is configured to update its records in the event that a fourth network system of the plurality of network systems receives a transmission which cannot be received by any of its virtual machines.
13. The distributed network system of claim 12, wherein the third network system is configured to respond to a notification from the first network control system that a particular tenant has been removed from a particular network system of the plurality of network systems by removing a record of the particular tenant from the records associated with the particular network system.
14. A method for configuring a distributed network environment, the method comprising:
a first virtual machine of the distributed network sending a first virtual machine control information to a first network system of the distributed network, wherein the first virtual machine is associated with a first tenant of the distributed network and is configured to communicate with the first network system, and wherein the first virtual machine control information is associated with the first virtual machine and the first tenant;
the first network system sending a first control information to a first network control system of the distributed network in response to receiving the first virtual machine control information, wherein the first control information is based, at least in part, on the first virtual machine control information;
the first network control system sending at least a portion of the first control information to a number of network systems included in a plurality of network systems that are included in the distributed network; and
the first network control system sending a second control information to the first network system, wherein the second control information is based, at least in part, on the first control information.
15. The method of claim 14, the method further comprising:
the first virtual machine sending a first packet to the first network system; and
responsive to receiving the first packet, the first network system generating at least one unicast packet using at least one of a portion of the first packet and a portion of the second control information.
16. The method of claim 15, wherein each of the generated unicast packets respectively include at least a portion of the first packet and an ID information.
17. The method of claim 14, wherein a quantity of unicast packets generated corresponds to the number of network systems included in the plurality of network systems.
18. The method of claim 14, wherein each unicast packet of the generated unicast packets includes a destination address of a network system included in the number of network systems.
19. The method of claim 14, further comprising:
a second network system receiving a unicast packet;
the second network system processing the received unicast packet;
the second network system identifying a second tenant associated with the unicast packet using a portion of the unicast packet;
the second network system determining a number of second virtual machines registered with the second network system; and
the second network system sending a copy of the processed unicast packet to each second virtual machine of the number of second virtual machines, wherein each second virtual machine is associated with the second tenant.
20. A computer program product for configuring a distributed network environment, the computer program product comprising:
program instructions to send, by a first virtual machine of the distributed network, a first virtual machine control information to a first network system of the distributed network, wherein the first virtual machine is associated with a first tenant of the distributed network and is configured to communicate with the first network system, and wherein the first virtual machine control information is associated with the first virtual machine and the first tenant;
program instructions to send, by the first network system, a first control information to a first network control system of the distributed network in response to receiving the first virtual machine control information, wherein the first control information is based, at least in part, on the first virtual machine control information;
program instructions to send, by the first network control system, at least a portion of the first control information to a number of network systems included in a plurality of network systems that are included in the distributed network; and
program instructions to send, by the first network control system, a second control information to the first network system, wherein the second control information is based, at least in part, on the first control information.
US14/046,108 2013-10-04 2013-10-04 Transporting multi-destination networking traffic by sending repetitive unicast Abandoned US20150100670A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/046,108 US20150100670A1 (en) 2013-10-04 2013-10-04 Transporting multi-destination networking traffic by sending repetitive unicast
US14/845,797 US10103935B2 (en) 2013-10-04 2015-09-04 Transporting multi-destination networking traffic by sending repetitive unicast
US16/127,327 US10666509B2 (en) 2013-10-04 2018-09-11 Transporting multi-destination networking traffic by sending repetitive unicast

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/046,108 US20150100670A1 (en) 2013-10-04 2013-10-04 Transporting multi-destination networking traffic by sending repetitive unicast

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/845,797 Continuation US10103935B2 (en) 2013-10-04 2015-09-04 Transporting multi-destination networking traffic by sending repetitive unicast

Publications (1)

Publication Number Publication Date
US20150100670A1 true US20150100670A1 (en) 2015-04-09

Family

ID=52777875

Family Applications (3)

Application Number Title Priority Date Filing Date
US14/046,108 Abandoned US20150100670A1 (en) 2013-10-04 2013-10-04 Transporting multi-destination networking traffic by sending repetitive unicast
US14/845,797 Active 2034-05-05 US10103935B2 (en) 2013-10-04 2015-09-04 Transporting multi-destination networking traffic by sending repetitive unicast
US16/127,327 Active US10666509B2 (en) 2013-10-04 2018-09-11 Transporting multi-destination networking traffic by sending repetitive unicast

Family Applications After (2)

Application Number Title Priority Date Filing Date
US14/845,797 Active 2034-05-05 US10103935B2 (en) 2013-10-04 2015-09-04 Transporting multi-destination networking traffic by sending repetitive unicast
US16/127,327 Active US10666509B2 (en) 2013-10-04 2018-09-11 Transporting multi-destination networking traffic by sending repetitive unicast

Country Status (1)

Country Link
US (3) US20150100670A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160110211A1 (en) * 2014-10-15 2016-04-21 Anue Systems, Inc. Methods And Systems For Forwarding Network Packets Within Virtual Machine Host Systems
US9971620B2 (en) 2014-10-15 2018-05-15 Keysight Technologies Singapore (Holdings) Pte Ltd Methods and systems for network packet impairment within virtual machine host systems
US20180241707A1 (en) * 2017-02-17 2018-08-23 Whatsapp Inc. Methods and systems for processing an ephemeral content message
US10103935B2 (en) 2013-10-04 2018-10-16 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11075886B2 (en) 2016-12-15 2021-07-27 Keysight Technologies Singapore (Sales) Pte. Ltd. In-session splitting of network traffic sessions for server traffic monitoring
US10171425B2 (en) * 2016-12-15 2019-01-01 Keysight Technologies Singapore (Holdings) Pte Ltd Active firewall control for network traffic sessions within virtual processing platforms
CN110995603A (en) * 2019-12-09 2020-04-10 广州信天翁信息科技有限公司 Many-to-many transmission method of data and heterogeneous data transmission layer

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6891839B2 (en) * 1999-07-01 2005-05-10 Cisco Technology, Inc. Distributing packets among multiple tiers of network appliances
US20060294211A1 (en) * 2005-03-25 2006-12-28 Nicholas Amato Forwarding table synchronization for virtual environments
US20090300209A1 (en) * 2008-06-03 2009-12-03 Uri Elzur Method and system for path based network congestion management
US20100223397A1 (en) * 2009-02-27 2010-09-02 Uri Elzur Method and system for virtual machine networking
US7802000B1 (en) * 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US20110243138A1 (en) * 2008-11-28 2011-10-06 Electronics And Telecommunications Research Instit Ute System for controlling path maximum transmission unit by detecting repetitional ip packet fragmentation and method thereof
US20120036236A1 (en) * 2007-03-27 2012-02-09 Amazon Technologies, Inc. Configuring intercommunications between computing nodes
US20130136123A1 (en) * 2011-11-30 2013-05-30 International Business Machines Corporation Method and apparatus for implementing a flexible virtual local area network
US20130205296A1 (en) * 2012-02-02 2013-08-08 International Business Machines Corporation Multicast message filtering in virtual environments
US20140133354A1 (en) * 2011-07-08 2014-05-15 Alcatel-Lucent Method of transmitting ethernet packets
US8892706B1 (en) * 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007100B1 (en) * 2000-12-20 2006-02-28 Nortel Networks Limited Method for synchronization of multicast routing table changes with a plurality of multicast routing protocols
US7734778B2 (en) * 2002-04-05 2010-06-08 Sheng (Ted) Tai Tsao Distributed intelligent virtual server
US7180856B1 (en) * 2005-12-13 2007-02-20 At&T Corp. Method and system of monitoring the receipt of multicast traffic
US7656792B2 (en) * 2006-11-02 2010-02-02 Nortel Networks Limited Method and apparatus for computing alternate multicast/broadcast paths in a routed network
US7890549B2 (en) * 2007-04-30 2011-02-15 Quantum Leap Research, Inc. Collaboration portal (COPO) a scaleable method, system, and apparatus for providing computer-accessible benefits to communities of users
US8984504B2 (en) * 2007-06-22 2015-03-17 Red Hat, Inc. Method and system for determining a host machine by a virtual machine
US20100046516A1 (en) * 2007-06-26 2010-02-25 Media Patents, S.L. Methods and Devices for Managing Multicast Traffic
US10127059B2 (en) * 2008-05-02 2018-11-13 Skytap Multitenant hosted virtual machine infrastructure
US7885276B1 (en) * 2008-09-30 2011-02-08 Emc Corporation Isolating network traffic in multi-tenant virtualization environments
US9176786B2 (en) * 2008-11-04 2015-11-03 Novell, Inc. Dynamic and automatic colocation and combining of service providers and service clients in a grid of resources for performing a data backup function
US8537860B2 (en) * 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
US20110149960A1 (en) * 2009-12-17 2011-06-23 Media Patents, S.L. Method and apparatus for filtering multicast packets
US9274821B2 (en) * 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
JP5190084B2 (en) * 2010-03-30 2013-04-24 株式会社日立製作所 Virtual machine migration method and system
US8904382B2 (en) * 2010-06-17 2014-12-02 International Business Machines Corporation Creating instances of cloud computing environments
US8954962B2 (en) * 2010-09-22 2015-02-10 Juniper Networks, Inc. Automatically reconfiguring physical switches to be in synchronization with changes made to associated virtual system
JP5720324B2 (en) * 2011-03-11 2015-05-20 日本電気株式会社 Thin client environment providing system, server, thin client environment management method, and thin client environment management program
US8959569B2 (en) * 2011-03-18 2015-02-17 Juniper Networks, Inc. Security enforcement in virtualized systems
US8442955B2 (en) * 2011-03-30 2013-05-14 International Business Machines Corporation Virtual machine image co-migration
US8793377B2 (en) * 2011-05-03 2014-07-29 International Business Machines Corporation Identifying optimal virtual machine images in a networked computing environment
US8769531B2 (en) * 2011-05-25 2014-07-01 International Business Machines Corporation Optimizing the configuration of virtual machine instances in a networked computing environment
US8750120B2 (en) * 2011-10-26 2014-06-10 International Business Machines Corporation Confirmed delivery of bridged unicast frames
US8949415B2 (en) * 2012-01-04 2015-02-03 International Business Machines Corporation Activity-based virtual machine availability in a networked computing environment
JP5906896B2 (en) * 2012-03-29 2016-04-20 富士通株式会社 Network system and communication control method
AU2013249154B2 (en) * 2012-04-18 2015-12-10 Nicira, Inc. Exchange of network state information between forwarding elements
EP2853066B1 (en) * 2012-05-23 2017-02-22 Brocade Communications Systems, Inc. Layer-3 overlay gateways
US10031782B2 (en) * 2012-06-26 2018-07-24 Juniper Networks, Inc. Distributed processing of network device tasks
US8656482B1 (en) * 2012-08-20 2014-02-18 Bitdefender IPR Management Ltd. Secure communication using a trusted virtual machine
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
JP6040711B2 (en) * 2012-10-31 2016-12-07 富士通株式会社 Management server, virtual machine system, program, and connection method
US8910238B2 (en) * 2012-11-13 2014-12-09 Bitdefender IPR Management Ltd. Hypervisor-based enterprise endpoint protection
US9008097B2 (en) * 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US20150100670A1 (en) 2013-10-04 2015-04-09 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast
US10135687B2 (en) * 2014-01-06 2018-11-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual group policy based filtering within an overlay network

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6891839B2 (en) * 1999-07-01 2005-05-10 Cisco Technology, Inc. Distributing packets among multiple tiers of network appliances
US20060294211A1 (en) * 2005-03-25 2006-12-28 Nicholas Amato Forwarding table synchronization for virtual environments
US7802000B1 (en) * 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US20120036236A1 (en) * 2007-03-27 2012-02-09 Amazon Technologies, Inc. Configuring intercommunications between computing nodes
US20090300209A1 (en) * 2008-06-03 2009-12-03 Uri Elzur Method and system for path based network congestion management
US20110243138A1 (en) * 2008-11-28 2011-10-06 Electronics And Telecommunications Research Instit Ute System for controlling path maximum transmission unit by detecting repetitional ip packet fragmentation and method thereof
US20100223397A1 (en) * 2009-02-27 2010-09-02 Uri Elzur Method and system for virtual machine networking
US8386642B2 (en) * 2009-02-27 2013-02-26 Broadcom Corporation Method and system for virtual machine networking
US8892706B1 (en) * 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment
US20140133354A1 (en) * 2011-07-08 2014-05-15 Alcatel-Lucent Method of transmitting ethernet packets
US20130136123A1 (en) * 2011-11-30 2013-05-30 International Business Machines Corporation Method and apparatus for implementing a flexible virtual local area network
US20130205296A1 (en) * 2012-02-02 2013-08-08 International Business Machines Corporation Multicast message filtering in virtual environments

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Elaoud, M., McAuley, A., Kim, G., Chennikara, J.; "Cross-Layer Optimized Unicast and Multicast Routing on Overlay Networks"; 2006; IEEE; MILCOM 2005. 2006 IEEE Military Communications Conference, p1122-1126, 5 vol. (xxii+3341) *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10666509B2 (en) 2013-10-04 2020-05-26 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast
US10103935B2 (en) 2013-10-04 2018-10-16 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast
US20160110211A1 (en) * 2014-10-15 2016-04-21 Anue Systems, Inc. Methods And Systems For Forwarding Network Packets Within Virtual Machine Host Systems
US9971620B2 (en) 2014-10-15 2018-05-15 Keysight Technologies Singapore (Holdings) Pte Ltd Methods and systems for network packet impairment within virtual machine host systems
US9971619B2 (en) * 2014-10-15 2018-05-15 Keysight Technologies Singapore (Holdings) Pte Ltd Methods and systems for forwarding network packets within virtual machine host systems
US10582036B2 (en) 2017-02-17 2020-03-03 Whatsapp Inc. Methods and systems for generating an ephemeral content message
KR20190109768A (en) * 2017-02-17 2019-09-26 왓츠앱 인크. Methods and Systems for Processing Temporary Content Message
US20180241707A1 (en) * 2017-02-17 2018-08-23 Whatsapp Inc. Methods and systems for processing an ephemeral content message
US10681202B2 (en) * 2017-02-17 2020-06-09 Whatsapp Inc. Methods and systems for processing an ephemeral content message
US10778831B2 (en) 2017-02-17 2020-09-15 Whatsapp Inc. Methods and systems for displaying an ephemeral content message
KR102396947B1 (en) * 2017-02-17 2022-05-13 왓츠앱, 엘엘씨. Methods and systems for processing temporary content messages
KR20220066181A (en) * 2017-02-17 2022-05-23 왓츠앱, 엘엘씨. Methods and systems for processing an ephemeral content message
KR102480096B1 (en) 2017-02-17 2022-12-23 왓츠앱, 엘엘씨. Methods and systems for processing an ephemeral content message
US11882231B1 (en) 2017-02-17 2024-01-23 Whatsapp Llc Methods and systems for processing an ephemeral content message

Also Published As

Publication number Publication date
US20190028333A1 (en) 2019-01-24
US20150381412A1 (en) 2015-12-31
US10103935B2 (en) 2018-10-16
US10666509B2 (en) 2020-05-26

Similar Documents

Publication Publication Date Title
US10666509B2 (en) Transporting multi-destination networking traffic by sending repetitive unicast
US10887361B2 (en) Port mirroring in overlay networks
US10841256B2 (en) Upgrading components of a messaging system used by a microservice-based application
US11516126B2 (en) Techniques for high performant virtual routing capabilities
US11206188B2 (en) Accessible application cluster topology
US10044645B2 (en) Transmitting multi-destination packets in overlay networks
US11457096B2 (en) Application based egress interface selection
US10153918B2 (en) Joining an application cluster
US20220210005A1 (en) Synchronizing communication channel state information for high flow availability
US10050874B2 (en) Media access control address learning for packets
US20220052944A1 (en) Scalable network function virtualization service
US11496599B1 (en) Efficient flow management utilizing control packets
US20220210086A1 (en) Managing network state for high flow availability within distributed network platform
US20230161642A1 (en) Cloud based cross domain system - cds with disaggregated parts
US9742881B2 (en) Network virtualization using just-in-time distributed capability for classification encoding
US10122626B2 (en) Self-managed overlay networks
US20230164082A1 (en) CLOUD BASED CROSS DOMAIN SYSTEM - CDSaaS
US20230032441A1 (en) Efficient flow management utilizing unified logging
US20230013110A1 (en) Techniques for processing network flows
WO2022146787A1 (en) Synchronizing communication channel state information for high flow availability
CN116746136A (en) Synchronizing communication channel state information to achieve high traffic availability
US10680998B2 (en) Method, system, and computer program product for a network device in switchless networks

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ANANTHARAM, SUSHMA;BISWAS, AMITABHA;NAGARAJ, UDAY S.;SIGNING DATES FROM 20130927 TO 20130930;REEL/FRAME:031347/0844

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: KYNDRYL, INC., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:058213/0912

Effective date: 20211118