Weave: IGMP Support in a Network with Full Multicast Support

Created on 9 Feb 2018  路  5Comments  路  Source: weaveworks/weave

What you expected to happen?

Having Kubernetes hosts attached to a physical network infrastructure with full support for IGMP and multicast, IGMP join messages from a container should be propagated to network switches and container should start receiving multicast traffic.

What happened?

IGMP messages are broadcasted to other Weave Net nodes via datapath virtual network interface.

How to reproduce it?

Send IGMP join request from inside a container.

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.IPPROTO_IP,
             socket.IP_ADD_MEMBERSHIP,
             socket.inet_aton(multicast_ip) +
             socket.inet_aton(local_ip))
s.bind((multicast_ip, multicast_port))

while True:
    message, sender = s.recvfrom(2048)
    print("from={0} length={1}".format(sender[0], len(message)))
feature

Most helpful comment

Is there a plan to implement this?

All 5 comments

I wonder if, in the scenario where all hosts have multicast support, we can just forward all Ethernet multicast addressss out to the host. Because we don鈥檛 want to carry multicast packets on the Weave network at all.

The inward path might take more thought, though simply replicating all multicast packets from the host onto the Weave bridge should work.

The case where a container sends a multicast packet containing its unicast address won鈥檛 work in this scenario.

I also thought that Weave Net would work in this scenario ie. support IGMP and forward multicast into the container. It should be mentioned somewhere in the docs.

BTW isn't it a duplicate of #1863 ?

I agree that a solution to this question might also solve #1863; happy for them to stand separately since they present different pre-conditions.

Is there a plan to implement this?

@hkrasnod Sorry, but no plans.

Was this page helpful?
0 / 5 - 0 ratings