Multicast message forwarding method and device, medium and equipment
By deploying multicast proxy components in OpenStack environment and encapsulating multicast messages using tunnel protocols, and combining stream tables for directional forwarding, Neutron's limited support for multicast communication is solved, efficient and reliable multicast communication is achieved, flooding is avoided and network bandwidth utilization is optimized.
Patent Information
- Application Number
- CN202510183859.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-19
- Publication Date
- 2025-05-30
AI Technical Summary
In OpenStack environment, Neutron has limited support for multicast communication, especially in a multi-tenant environment, the forwarding efficiency and stability of multicast messages have become an urgent problem. Traditional multicast implementation methods often rely on flooding mechanisms, resulting in unnecessary bandwidth consumption and network congestion.
By deploying the multicast proxy component on the source compute node, the multicast message that needs to be forwarded is received and encapsulated through the tunnel protocol. According to the generated flow table, the encapsulated message is sent to the multicast proxy component of the destination computing node where each multicast group member in the multicast group member list is located, ensuring that only the multicast members in the multicast group member list will receive the corresponding message.
By forwarding messages based on the flow table, the flooding of multicast messages is avoided, the network bandwidth utilization is optimized, and the multicast messages can be accurately and promptly transmitted to all members, reducing management complexity.
Smart Images

Figure CN120075170A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of multicast communication technology, and in particular, to a method and apparatus for forwarding multicast packets, a medium, and a device. Background Art
[0002] Multicast communication technology plays an important role in modern computer networks, especially in applications such as video conferencing, real-time data broadcasting, content distribution, and distributed computing. Multicast allows data to be transmitted from a single sender to multiple receivers without having to replicate the data for each receiver individually, greatly improving bandwidth utilization and transmission efficiency. However, traditional multicast implementations mainly rely on the support of physical network devices such as multicast routers and switches, which face many challenges in virtualized environments.
[0003] With the popularization of cloud computing and the development of virtualization technology, OpenStack, as an open-source cloud computing management platform, is widely used in building private and public cloud environments. The network component Neutron of OpenStack is responsible for the management and operation of virtual networks, providing functions such as network connectivity, IP address management, and security groups. However, Neutron's support for multicast communication is relatively limited, especially in a multi-tenant environment, and the forwarding efficiency and stability of multicast packets become an urgent problem to be solved.
[0004] In traditional networks, multicast communication is usually implemented through multicast routing protocols such as Protocol Independent Multicast (PIM), which require the full support of physical network devices. In a virtualized environment, the network topology changes dynamically and frequently, and the creation, migration, and destruction of virtual machines will affect the network configuration and the effectiveness of multicast routing. How to achieve efficient and reliable multicast communication in an OpenStack environment has become a technical problem. Current solutions have a flooding problem, that is, traditional multicast implementation methods often rely on a flooding mechanism to send multicast packets to all nodes in the network, which causes unnecessary bandwidth consumption and network congestion in a virtualized environment and affects the performance of other network services. Summary of the Invention
[0005] In view of at least one of the above technical problems, embodiments of the present invention provide a method and apparatus for forwarding multicast packets, a medium, and a device.
[0006] According to a first aspect, the method for forwarding multicast packets provided by an embodiment of the present invention is executed by a multicast proxy component on a source computing node, and the method includes:
[0007] Receiving a multicast packet to be forwarded;
[0008] Encapsulating the multicast packet through a tunneling protocol to obtain an encapsulated packet;
[0009] According to the flow table, send the encapsulated packet to the multicast proxy components of the destination computing nodes where each multicast group member in the multicast group member list is located, so that the multicast proxy components of the destination computing nodes can de-encapsulate the encapsulated packet to obtain the multicast packet, and send the multicast packet to the multicast group members on the destination computing nodes; wherein, the flow table includes at least one packet transfer path.
[0010] In one embodiment, the flow table is generated by the multicast controller according to the network topology information, the multicast address in the multicast group creation request, and the multicast group member list in the multicast group creation request when receiving the multicast group creation request from the user.
[0011] In one embodiment, each packet transfer path includes a source address, the multicast address, the packet input port of the source address, and the packet output port of the source computing node where the source address is located; wherein, the packet output port is the output port used by the source computing node where the source address is located to forward packets to each multicast group member in the multicast group member list, and each packet output port corresponds to a multicast group member.
[0012] In one embodiment, each packet transfer path further includes a priority.
[0013] Correspondingly, the sending the encapsulated packet to the multicast proxy components of the destination computing nodes where each multicast group member in the multicast group member list is located includes:
[0014] If the number of the encapsulated packets is multiple, send the encapsulated packets to the multicast proxy components of the destination computing nodes where each multicast group member in the multicast group member list is located according to the priorities of the respective encapsulated packets in the corresponding packet transfer paths.
[0015] In one embodiment, the method further includes:
[0016] When the multicast listener detects a multicast group join request, update the multicast group member list;
[0017] According to the updated multicast group member list, update the flow table, and send the updated flow table to each computing node.
[0018] In one embodiment, the receiving the multicast packet that needs to be forwarded includes:
[0019] Receive the multicast packet sent by the virtual switch on the source computing node; wherein, the multicast packet is sent from the virtual machine on the source computing node to the virtual switch on the source computing node, and the virtual switch on the source computing node is used to send the multicast packet to the multicast proxy component on the source computing node.
[0020] In one embodiment, the multicast proxy component of the destination computing node is used to send the decapsulated multicast packet to the virtual switch on the destination computing node, so that the virtual switch sends the received multicast packet to the multicast group members on the destination computing node.
[0021] According to a second aspect, the multicast packet forwarding device provided by the embodiment of the present invention is deployed on the multicast proxy component on the source computing node, and the device includes:
[0022] A packet receiving module, configured to receive the multicast packet to be forwarded;
[0023] A packet encapsulation module, configured to encapsulate the multicast packet through a tunneling protocol to obtain an encapsulated packet;
[0024] A packet sending module, configured to send the encapsulated packet to the multicast proxy components of the destination computing nodes where each multicast group member in the multicast group member list is located according to the flow table, so that the multicast proxy components of the destination computing nodes decapsulate the encapsulated packet to obtain the multicast packet, and send the multicast packet to the multicast group members on the destination computing nodes; wherein, the flow table includes at least one packet transfer path.
[0025] In one embodiment, the flow table is generated by the multicast controller according to the network topology information, the multicast address in the multicast group creation request, and the multicast group member list in the multicast group creation request when receiving the multicast group creation request from the user.
[0026] In one embodiment, each packet transfer path includes a source address, the multicast address, the packet input port of the source address, and the packet output port of the source computing node where the source address is located; wherein, the packet output port is the output port used by the source computing node where the source address is located to forward packets to each multicast group member in the multicast group member list, and each packet output port corresponds to a multicast group member.
[0027] In one embodiment, each message transfer path further includes a priority; correspondingly, the message sending module is specifically configured to: if the number of encapsulated messages is multiple, send the encapsulated messages to the multicast proxy components of the destination computing nodes where each multicast group member in the multicast group member list is located according to the priorities of the respective encapsulated messages in their corresponding message transfer paths.
[0028] In one embodiment, the apparatus further includes:
[0029] an update module, configured to update the multicast group member list when a multicast listener listens to a multicast group join request; update the flow table according to the updated multicast group member list, and send the updated flow table to each computing node.
[0030] In one embodiment, the message receiving module is specifically configured to: receive a multicast message sent by a virtual switch on the source computing node; wherein, the multicast message is sent by a virtual machine on the source computing node to the virtual switch on the source computing node, and the virtual switch on the source computing node is configured to send the multicast message to the multicast proxy component on the source computing node.
[0031] In one embodiment, the multicast proxy component of the destination computing node is configured to send the decapsulated multicast message to the virtual switch on the destination computing node, so that the virtual switch sends the received multicast message to the multicast group members on the destination computing node.
[0032] According to a third aspect, an embodiment of the present invention provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed on a computer, the computer is made to execute the method provided in the first aspect.
[0033] According to a fourth aspect, a computing device provided by an embodiment of the present invention includes a memory and a processor. An executable code is stored in the memory. When the processor executes the executable code, the method provided in the first aspect is implemented.
[0034] The multicast packet forwarding method, device, medium, and equipment provided by the embodiments of the present invention. When the multicast proxy component receives a multicast packet to be forwarded, it encapsulates the multicast packet through a tunneling protocol to obtain an encapsulated packet, and then sends the encapsulated packet to the multicast proxy components of the destination computing nodes where each multicast group member in the multicast group member list is located according to the flow table. The multicast proxy component of the destination computing node decrypts the encapsulated packet to obtain the multicast packet, and sends the multicast packet to the multicast group members on the destination computing node. Since the packet forwarding is based on the flow table, it can ensure that only the multicast members in the multicast group member list will receive the corresponding packets, avoiding the flooding of multicast packets and optimizing the network bandwidth utilization. Moreover, when the multicast proxy component forwards the multicast packet across nodes, it uses the tunneling protocol for encapsulation to ensure that the multicast packet is only transmitted between the required nodes, avoiding flooding at the intermediate nodes. BRIEF DESCRIPTION OF THE DRAWINGS
[0035] Figure 1 is a schematic flowchart of the multicast packet forwarding method in an embodiment of the present invention;
[0036] Figure 2 is a structural block diagram of the multicast packet forwarding device in an embodiment of the present invention. DETAILED DESCRIPTION
[0037] In a first aspect, the embodiments of the present invention provide a multicast packet forwarding method, which is executed by the multicast proxy component on the source computing node. Refer to Figure 1 , and the method includes the following steps S110 to S130:
[0038] S110. Receive a multicast packet to be forwarded;
[0039] In an embodiment, the receiving of the multicast packet to be forwarded in S110 may include:
[0040] Receive the multicast packet sent by the virtual switch on the source computing node; wherein, the multicast packet is sent by the virtual machine on the source computing node to the virtual switch on the source computing node, and the virtual switch on the source computing node is used to send the multicast packet to the multicast proxy component on the source computing node.
[0041] It can be seen that the virtual machine on the source computing node sends the multicast packet to the virtual switch on the source computing node, and the virtual switch on the source computing node sends the multicast packet to the multicast proxy component on the source computing node.
[0042] It is understandable that the source computing node refers to the computing node where the virtual machine sending the multicast packet is located. The destination computing node refers to the node where the virtual machine receiving the multicast packet is located. The source computing node and the destination computing node can be the same computing node or different computing nodes.
[0043] In an actual scenario, virtual machines, virtual switches, and multicast proxy components are deployed on the computing node. The path for a virtual machine on a computing node to send a multicast packet is: virtual machine on this computing node - virtual switch on this computing node - multicast proxy component on this computing node. The path for a virtual machine on a computing node to receive a multicast packet is - multicast proxy component on this computing node - virtual switch on this computing node - virtual machine on this computing node. It can be seen that the path from the source computing node to the destination computing node is: virtual machine on the source computing node - virtual switch on the source computing node - multicast proxy component on the source computing node - multicast proxy component on the destination computing node - virtual switch on the destination computing node - virtual machine on the destination computing node.
[0044] In one embodiment, the flow table is generated by the multicast controller when receiving a multicast group creation request from a user based on network topology information, the multicast address in the multicast group creation request, and the multicast group member list in the multicast group creation request.
[0045] It can be seen that the user sends a multicast group creation request to the multicast controller through the API. The multicast group creation request carries the multicast address and the initial multicast group member list. After verifying the request, the multicast controller records the multicast address and the multicast group member list, and generates a flow table based on the network topology information, the multicast address, and the multicast group member list.
[0046] Furthermore, each packet transfer path may include the source address, the multicast address, the packet input port of the source address, and the packet output port of the source computing node where the source address is located; wherein, the packet output port is the output port used by the source computing node where the source address is located to forward packets to each multicast group member in the multicast group member list, and each packet output port corresponds to a multicast group member.
[0047] Among them, the multicast group members are virtual machines.
[0048] Table 1 Flow Table Example
[0049]
[0050]
[0051] There are 3 message transfer paths in Table 1 above. Each message transfer path includes a source address, a multicast address, a message input port, and a message output port. Among them, the source address refers to the IP address of the computing node where the virtual machine sending the multicast message is located. The multicast address refers to the IP address of the computing node where the virtual machine receiving the multicast message is located. The message input port refers to the port on the source computing node used to receive the message, and the message output port refers to the port on the source computing node used to output the message. The first message transfer path includes three message output ports, and each message output port corresponds to a multicast group member, that is, a virtual machine of the destination computing node.
[0052] After generating the flow table, the multicast controller distributes the flow table to the multicast proxy component and the virtual switch.
[0053] In one embodiment, the method further includes the following 2 steps:
[0054] 1. When the multicast listener detects a multicast group join request, update the multicast group member list;
[0055] 2. According to the updated multicast group member list, update the flow table and distribute the updated flow table to each computing node.
[0056] That is to say, use the multicast listener to monitor the multicast group join request. When a virtual machine wants to join the multicast group member list, the virtual machine will initiate a multicast group join request. After the multicast listener detects the multicast group join request, the multicast proxy component updates the multicast group member list, then updates the flow table, and distributes the updated flow table to each relevant computing node.
[0057] Among them, the multicast group join request can be an IGMP join request. The full English spelling of IGMP is Internet Group Management Protocol, and the Chinese is Internet Group Management Protocol.
[0058] S120. Encapsulate the multicast message through a tunneling protocol to obtain an encapsulated message;
[0059] That is, the multicast proxy component encapsulates the multicast message through a tunneling protocol. Only the encapsulated message, that is, the encapsulated message, can perform subsequent forwarding steps, thus ensuring the security of the message data.
[0060] Among them, the tunneling protocol, for example, VXLAN, GRE, etc.
[0061] S130. According to the flow table, send the encapsulated packet to the multicast proxy component of each destination computing node where the multicast group members in the multicast group member list are located, so that the multicast proxy component of the destination computing node can decrypt the encapsulated packet to obtain the multicast packet, and send the multicast packet to the multicast group members on the destination computing node; wherein, the flow table includes at least one packet transfer path.
[0062] It can be understood that in the flow table, a packet output port list corresponding to each source address and multicast address is recorded. The packet output port list includes at least one packet output port, and one packet output port corresponds to one multicast group member. Therefore, according to the flow table, the encapsulated packet can be sent to the multicast proxy component of the destination computing node through a packet output port, and then passed to the multicast group member corresponding to the packet output port, realizing the forwarding of the multicast packet.
[0063] In one embodiment, the multicast proxy component of the destination computing node can be used to send the decrypted multicast packet to the virtual switch on the destination computing node, so that the virtual switch sends the received multicast packet to the multicast group members on the destination computing node.
[0064] That is to say, after receiving the encapsulated packet, the multicast proxy component of the destination computing node decrypts the encapsulated packet to obtain the assembled packet, and then sends the multicast packet to the virtual switch of the destination computing node. The virtual switch of the destination computing node sends the multicast packet to the multicast group members of the destination computing node.
[0065] In one embodiment, each packet transfer path further includes a priority.
[0066] Correspondingly, the sending the encapsulated packet to the multicast proxy component of each destination computing node where the multicast group members in the multicast group member list are located includes:
[0067] If the number of the encapsulated packets is multiple, send the encapsulated packets to the multicast proxy component of each destination computing node where the multicast group members in the multicast group member list are located according to the priorities of the respective encapsulated packets in the corresponding packet transfer paths.
[0068] That is to say, different packet transfer paths in the flow table can have different priorities. Different destination computing nodes or different destination virtual machines have different latency requirements for the forwarding of multicast packets. The lower the required latency, the higher the priority. For the packet transfer path with a higher priority, the corresponding packet forwarding can be processed preferentially. It can be seen that different latency requirements can be met by setting priorities.
[0069] The following is an example to illustrate the embodiments of the present invention:
[0070] 1. Multicast group creation: User A sends a request to the multicast controller through the API to create a multicast group G with a multicast address of 239.1.1.1. The multicast controller creates the multicast group G and initializes the member list: virtual machines VM1 and VM2.
[0071] 2. The virtual machine VM3 sends a request to join the multicast group G. The multicast listener captures the request and notifies the multicast controller. The multicast controller updates the member list of the multicast group G, that is, adds VM3, and updates the flow table.
[0072] 3. The virtual machine VM1 sends a multicast packet to 239.1.1.1. The virtual switch on the computing node where the virtual machine VM1 is located sends the multicast packet to the multicast proxy component on the computing node where the virtual machine VM1 is located. The multicast proxy component encapsulates the multicast packet to obtain an encapsulated packet and sends the encapsulated packet to the multicast proxy components of the computing nodes where VM2 and VM3 are located according to the flow table, and then forwards it to the corresponding VM2 and VM3 through their respective virtual switches.
[0073] The embodiments of the present invention involve a multicast controller, a multicast proxy component, a virtual switch, and a multicast listener. The multicast controller is used for: centrally managing the member relationship of the multicast group, generating and distributing the flow table, and ensuring the efficient forwarding of multicast packets in the network. The multicast proxy: deployed on the computing node, is responsible for receiving and forwarding multicast packets, and processing the packets according to the flow table issued by the multicast controller. The virtual switch: for example, Open vSwitch, i.e., OVS, is used to perform the actual forwarding of multicast packets according to the flow table. The multicast listener: monitors the multicast join requests of virtual machines, so as to facilitate the timely update of multicast group member information.
[0074] In order to achieve efficient and reliable multicast communication in the OpenStack environment, the embodiments of the present invention propose a method for directed forwarding of multicast packets based on OpenStack. By forwarding multicast packets through the flow table, the flooding phenomenon can be suppressed, and the efficiency and stability of multicast communication can be improved. The multicast listener monitors the join requests of virtual machines in real time and updates the member information of the multicast group in real time. The multicast controller generates and distributes an accurate flow table according to the latest multicast group member information to avoid the flooding of multicast packets.
[0075] As can be seen, the embodiments of the present invention aim to provide a scalable, easy-to-manage, and high-performance multicast solution to meet the needs of multi-tenant and large-scale multicast communication in the cloud computing environment. It mainly involves: (1) Implementing multicast controllers, multicast listeners, multicast proxy components, etc. on the cloud platform. (2) Since the forwarding of packets is based on the flow table, it can be ensured that only the multicast members in the multicast member list will receive the corresponding packets. (3) Multicast member management based on IGMP: The multicast listener monitors the P join and leave requests of virtual machines and updates the multicast member information in real time. The multicast controller generates and distributes accurate flow tables according to the latest multicast member information to avoid the flooding of multicast packets. (4) Tunnel encapsulation and forwarding: When the multicast proxy component forwards multicast packets across nodes, it uses a tunnel protocol for encapsulation to ensure that multicast packets are only transmitted between the required nodes and avoid flooding at intermediate nodes.
[0076] In summary, the embodiments of the present invention achieve directional multicast packet forwarding through the flow table, avoid unnecessary flooding, and optimize the utilization of network bandwidth. It supports dynamic updating of multicast member information to ensure that multicast packets can be accurately and timely transmitted to all members, reducing management complexity. By mastering the global multicast member paths through the flow table, it ensures that multicast packets are transmitted through the optimal paths, reducing network latency and load. As can be seen, the present invention provides a scalable, easy-to-manage, and high-performance multicast solution to meet the needs of multi-tenant and large-scale multicast communication in the cloud computing environment.
[0077] In a second aspect, the embodiments of the present invention provide a multicast packet forwarding device, which is deployed on the multicast proxy component of the source computing node. Refer to Figure 2 , the device 100 includes:
[0078] A packet receiving module 110, configured to receive multicast packets to be forwarded;
[0079] A packet encapsulation module 120, configured to encapsulate the multicast packets through a tunnel protocol to obtain encapsulated packets;
[0080] A packet sending module 130, configured to send the encapsulated packets to the multicast proxy components of the destination computing nodes where each multicast member in the multicast member list is located according to the flow table, so that the multicast proxy components of the destination computing nodes de-encapsulate the encapsulated packets to obtain the multicast packets and send the multicast packets to the multicast members on the destination computing nodes; wherein, the flow table includes at least one packet transfer path.
[0081] In one embodiment, the flow table is generated by the multicast controller according to the network topology information, the multicast address in the multicast group creation request, and the multicast member list in the multicast group creation request when receiving the multicast group creation request from the user.
[0082] In one embodiment, each message transfer path includes a source address, the multicast address, a message input port of the source address, and a message output port of the source computing node where the source address is located; wherein, the message output port is the output port used by the source computing node where the source address is located to forward messages to each multicast group member in the multicast group member list, and each message output port corresponds to a multicast group member.
[0083] In one embodiment, each message transfer path further includes a priority; correspondingly, the message sending module is specifically configured to: if the number of encapsulated messages is multiple, send the encapsulated messages to the multicast proxy components of the destination computing nodes where each multicast group member in the multicast group member list is located according to the priorities of the respective encapsulated messages in their corresponding message transfer paths.
[0084] In one embodiment, the apparatus further includes:
[0085] an update module, configured to update the multicast group member list when a multicast listener listens to a multicast group join request; update the flow table according to the updated multicast group member list, and send the updated flow table to each computing node.
[0086] In one embodiment, the message receiving module is specifically configured to: receive a multicast message sent by a virtual switch on the source computing node; wherein, the multicast message is sent from a virtual machine on the source computing node to the virtual switch on the source computing node, and the virtual switch on the source computing node is configured to send the multicast message to the multicast proxy component on the source computing node.
[0087] In one embodiment, the multicast proxy component of the destination computing node is configured to send the decapsulated multicast message to the virtual switch on the destination computing node, so that the virtual switch sends the received multicast message to the multicast group members on the destination computing node.
[0088] It can be understood that the explanations, specific implementation manners, beneficial effects, examples, etc. of the relevant content in the apparatus provided in the embodiments of the present invention can refer to the corresponding parts in the method provided in the first aspect, and will not be elaborated here.
[0089] In a third aspect, an embodiment of the present invention provides a computer-readable medium, on which computer instructions are stored, and when the computer instructions are executed by a processor, the processor is caused to execute the method provided in the first aspect.
[0090] Specifically, a system or device equipped with a storage medium can be provided. On this storage medium, software program codes for implementing the functions of any one of the above embodiments are stored, and the computer (or CPU or MPU) of the system or device is made to read and execute the program codes stored in the storage medium.
[0091] In this case, the program codes read from the storage medium itself can implement the functions of any one of the above embodiments. Therefore, the program codes and the storage medium storing the program codes constitute a part of the present invention.
[0092] Examples of the storage medium for providing program codes include floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD+RW), magnetic tapes, non-volatile memory cards, and ROMs. Optionally, the program codes can be downloaded from a server computer via a communication network.
[0093] Furthermore, it should be clear that not only can the functions of any one of the above embodiments be realized by executing the program codes read by the computer, but also by causing an operating system or the like operating on the computer based on the instructions of the program codes to complete part or all of the actual operations.
[0094] In addition, it can be understood that the program codes read from the storage medium are written into the memory provided in the expansion board inserted into the computer or into the memory provided in the expansion module connected to the computer, and then based on the instructions of the program codes, the CPU or the like installed on the expansion board or the expansion module is made to execute part and all of the actual operations, thereby realizing the functions of any one of the above embodiments.
[0095] It can be understood that the explanations, specific implementation manners, beneficial effects, examples, etc. of the relevant content in the computer-readable medium provided by the embodiments of the present invention can be referred to the corresponding parts in the method provided in the first aspect, and will not be elaborated here.
[0096] In a fourth aspect, an embodiment of this specification provides a computing device, including a memory and a processor. An executable code is stored in the memory. When the processor executes the executable code, the method in any one of the embodiments in the specification is implemented.
[0097] It can be understood that the explanations, specific implementation manners, beneficial effects, examples, etc. of the relevant content in the computing device provided by the embodiments of the present invention can be referred to the corresponding parts in the method provided in the first aspect, and will not be elaborated here.
[0098] Each embodiment in this specification is described in a progressive manner. For the same or similar parts among the embodiments, reference can be made to each other, and the key point of each embodiment is to illustrate the differences from other embodiments. In particular, for the device embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and reference can be made to the corresponding parts of the method embodiments for relevant details.
[0099] Those skilled in the art should be able to realize that in one or more of the above examples, the functions described in the present invention can be implemented by hardware, software, add-ons, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium.
[0100] The specific embodiments described above further elaborate on the purpose, technical solutions, and beneficial effects of the present invention. It should be understood that the above are only specific embodiments of the present invention and are not used to limit the protection scope of the present invention. Any modifications, equivalent replacements, improvements, etc. made on the basis of the technical solutions of the present invention should be included within the protection scope of the present invention.
Claims
1. A multicast message forwarding method, characterized in that: The method is performed by a multicast proxy component on a source computing node, and the method includes: Receive multicast messages that need to be forwarded; Encapsulating the multicast message through a tunnel protocol to obtain an encapsulated message; According to the flow table, the encapsulated message is sent to the multicast agent component of the destination computing node where each multicast group member in the multicast group member list is located, so that the multicast agent component of the destination computing node decapsulates the encapsulated message, obtains the multicast message, and sends the multicast message to the multicast group members on the destination computing node; wherein the flow table includes at least one message flow path.
2. The method according to claim 1, characterized in that The flow table is generated by the multicast controller when receiving a multicast group creation request from a user according to network topology information, a multicast address in the multicast group creation request, and a multicast group member list in the multicast group creation request.
3. The method according to claim 2, characterized in that Each message flow path includes a source address, the multicast address, a message input port of the source address, and a message output port of a source computing node where the source address is located; wherein the message output port is an output port used by the source computing node where the source address is located to forward messages to each multicast group member in the multicast group member list, and each message output port corresponds to a multicast group member.
4. The method according to claim 3, characterized in that Each message flow path also includes a priority; Correspondingly, the multicast proxy component that sends the encapsulated message to the destination computing node where each multicast group member in the multicast group member list is located includes: If there are multiple encapsulated messages, the encapsulated messages are sent to the multicast proxy component of the destination computing node where each multicast group member in the multicast group member list is located according to the priority of each encapsulated message in the corresponding message flow path.
5. The method according to claim 2, characterized in that: Also includes: When the multicast listener listens to a multicast group joining request, updating the multicast group member list; The flow table is updated according to the updated multicast group member list, and the updated flow table is sent to each computing node.
6. The method according to claim 1, characterized in that The receiving of a multicast message to be forwarded includes: Receive a multicast message sent by the virtual switch on the source computing node; wherein the multicast message is sent by the virtual machine on the source computing node to the virtual switch on the source computing node, and the virtual switch on the source computing node is used to send the multicast message to the multicast proxy component on the source computing node.
7. The method according to claim 1, characterized in that The multicast proxy component of the destination computing node is used to send the decapsulated multicast message to the virtual switch on the destination computing node, so that the virtual switch sends the received multicast message to the multicast group members on the destination computing node.
8. A multicast message forwarding device, characterized in that: The device is deployed on a multicast proxy component on a source computing node, and the device includes: A message receiving module is used to receive multicast messages that need to be forwarded; A message encapsulation module, used for encapsulating the multicast message through a tunnel protocol to obtain an encapsulated message; A message sending module is used to send the encapsulated message to the multicast agent component of the destination computing node where each multicast group member in the multicast group member list is located according to the flow table, so that the multicast agent component of the destination computing node decapsulates the encapsulated message, obtains the multicast message, and sends the multicast message to the multicast group member on the destination computing node; wherein the flow table includes at least one message flow path.
9. A computer-readable storage medium, characterized in that: A computer program is stored thereon, and when the computer program is executed in a computer, the computer is caused to execute the method according to any one of claims 1 to 7.
10. A computing device, characterized in that: The method comprises a memory and a processor, wherein the memory stores executable codes, and when the processor executes the executable codes, the method according to any one of claims 1 to 7 is implemented.