-
Notifications
You must be signed in to change notification settings - Fork 367
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multicast Support in Antrea #2251
Comments
There was a few topics during the design sharing session in community meeting, added here for further discussion, please correct me if I missed anything or misunderstood it. @antoninbas @jianjuns @salv-orlando @tnqn
|
I meant technically it should be possible to call a socket API (setsockopt() with IP_ADD_MEMBERSHIP) to join a multicast group from a host NIC, then Linux TCP/IP stack can handle IGMP for you; then you can achieve similar effects as IGMP Proxy without depending on another solution. I feel it makes sense if: 1) we found some disadvantage of IGMP Proxy (in complexity, functionalities, overhead, stability, etc.); 2) if we go control plane approach for encap mode, and Agent anyway needs to manage the local groups. |
@luolanzone @jianjuns |
Hi @srikartati , I don't think it will work to let nodes join the multicast group for the purpose you want to achieve, per my understanding, each node is actually the local multicast router for pods. between nodes (router to router), we have to involve PIM/DVMRP etc to do the job. you may check this article about OVS multicast. https://software.intel.com/content/www/us/en/develop/articles/ip-multicast-support-in-open-vswitch.html |
I tried a static multicast route tool smcroute, looks like we can configure static multicast route to allow traffic between nodes in noEncap mode without DVMRP/PIM dependency, which means we may use the way @jianjuns suggested to do our own codes similar as smcroute to manipulate mroute table to do multicast works across nodes. |
I tried IGMP proxy, it doesn't satisfy our requirement: IGMP Proxy gives two roles for the networking interfaces (antrea-gw0, and ens192, e,g.): upstream and downstream. It assumes Multicast client is outside the host, so it only forwards the Multicast traffic to the downstream interface from upstream interface, but not do it on the reverse path. That would cause Multicast traffic sent out from a local Pod is not possible to forward to external or different Node. From my test, I got the same conclusion. The cross Node Multicast traffic does not work in noEncap mode. |
For statically configuring multicast routing entry, it works if we leverage cgo to configure the Linux mroute table, and it is what we plan to do in the Multicast implementation |
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment, or this will be closed in 90 days |
@wenyingd Since this is supported now, could you check if we still need to keep this issue? If it can be closed, could you list the PRs that implement it here. |
We can't close it yet, there are some other multicast relevant features required in next release, like NetworkPolicy and metrics. I have linked the merged PRs in the subtasks. |
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment, or this will be closed in 90 days |
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment, or this will be closed in 90 days |
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment, or this will be closed in 90 days |
Describe what you are trying to solve
Currently Antrea doesn’t support multicast traffic, all multicast traffic will be dropped by data path in OVS. Considering there will be some multicast applications like financial services require multicast support from CNI, it would be ideal to have multicast supported in Antrea.
Describe the solution you have in mind
User can enable or disable multicast support in Antrea via a feature gate eg:
Multicast: true
, when multicast is enabled, multicast traffic can be forwarded correctly inside a node and across nodes.Describe how your solution impacts user flows
User can use multicast application via Antrea.
Describe the main design/architecture of your solution
The details of Antrea multicast support design is here
https://docs.google.com/document/d/1SriZ3Tjy9Su-cH0foegKjx2esTuPdWg0UvjgHH95PaE/edit?usp=sharing
The design for ANP on multicast traffic is here
#3323
The design for multicast statistics is here
#3294
Test plan
TBD
Work Breakdown
The text was updated successfully, but these errors were encountered: