libnetwork icon indicating copy to clipboard operation
libnetwork copied to clipboard

Multicast in Overlay driver

Open nicklaslof opened this issue 8 years ago • 59 comments

Multicast network packages doesn't seem to be transported to all containers in an Overlay network configuration.

I have investigated this a bit trying various manual config inside the network name space but haven't got anywhere.

nicklaslof avatar Sep 21 '15 12:09 nicklaslof

@nicklaslof Yes, this is the current behavior. overlay is implemented using vxlan unicast. So handling multicast need some form of packet replication. We are looking into possible options to support multicast on top of overlay.

sanimej avatar Sep 22 '15 05:09 sanimej

Just to make it clear (especially since I wrote host instead of container in my original text) is that I mean using multicast between containers whilst still having vxlan unicast between the docker hosts.

nicklaslof avatar Sep 22 '15 06:09 nicklaslof

@sanimej @mrjana @mavenugo hey guys, any update on whether there a solution in sight for this one? Per #740, this impacts use of the official elasticsearch image for creating a cluster.

If we can outline a possible solution here, perhaps someone from the community can attempt a fix if we don't have bandwidth for 1.10

dave-tucker avatar Nov 06 '15 17:11 dave-tucker

@dave-tucker Multiple vxlan fdb entries can be created for all zero mac, which is the default destination. This gives an option (with some drawbacks) to handle multicast without the complexities of snooping. I have to try this out manually to see if it works.

sanimej avatar Nov 06 '15 20:11 sanimej

@sanimej, @dave-tucker: any news on this one? We are looking for this so as to support containerization, with minimal refactoring, of a multicast-based service discovery integration in our stack. We can probably make unicast work but would prefer to not incur such a refactoring so as to avoid unintended consequences and/or further refactoring in our stack.

dweomer avatar Nov 15 '15 00:11 dweomer

@dweomer this is not planned for the upcoming release. But, have added the help-wanted label to request help from any interested dev. If someone is interested in contributing this feature, we can help with design review & get this moving forward for the upcoming release.

mavenugo avatar Nov 15 '15 05:11 mavenugo

+1 - some infrastructure components (like Aerospike) rely on Multicast for cluster discovery.

alvinr avatar Dec 02 '15 00:12 alvinr

+1 - This would be very useful. At the very least the documentation should note that this is not currently supported.

oobles avatar Dec 02 '15 00:12 oobles

Note there are other Docker Network plugins available which do support multicast. For instance the one I work on.

bboreham avatar Dec 10 '15 10:12 bboreham

Note there are other Docker Network plugins available which do support multicast. For instance the one I work on.

Same with Contiv plugin. More here.

jainvipin avatar Feb 12 '16 04:02 jainvipin

+1 in order to adapt Guidewire Application multihost clustering, multihost is must

tomqwu avatar Apr 14 '16 20:04 tomqwu

+1 Can't get Wildfly and mod_cluster to work on Swam Mode, because the overlay network doesn't support multicast.

One could fall back to Unicast, but since one would also need to provide a proxy list with the ip addresses of all httpd load balancers and it would be very difficult to figure them out beforehand, I would say that Wildfly and Modcluster don't currently work on Swarm Mode. Regards.

DSTOLF avatar Jul 13 '16 02:07 DSTOLF

+1 to support http://crate.io

medined avatar Jul 21 '16 14:07 medined

any update on getting the multicast implemented ?

DanyC97 avatar Oct 17 '16 18:10 DanyC97

@DanyC97 @medined @DSTOLF @tomqwu and others. this issue is currently labeled help-wanted. If someone is interested in contributing this feature, we will accept it.

mavenugo avatar Oct 17 '16 18:10 mavenugo

@DanyC97 used macvlan underlay instead for my needs as a quick solution and worked fine.

ghost avatar Oct 17 '16 19:10 ghost

@codergr : Were you able to use macvlan in a swarm with services ? Can you easily change the scope of a network ?

jocelynthode avatar Oct 19 '16 11:10 jocelynthode

@jocelynthode that is not supported yet unfortunately. PTAL https://github.com/docker/docker/pull/27266 and it is one of supporting such a need. But it needs some discussion to get it right.

mavenugo avatar Oct 19 '16 11:10 mavenugo

Another option is to use the Weave Net networking plugin for Docker, which has multicast support. Full disclosure: I work for Weaveworks.

mjlodge avatar Oct 19 '16 15:10 mjlodge

@mjlodge but there is no support for network plugins on swarm mode, no? So weave can't be used in swarm mode and docker services. It's pity that in such environment (docker swarm and services) much of the applications that support clustering can't be used due to the lack of multicast.

jonlatorre avatar Jan 10 '17 09:01 jonlatorre

@jonlatorre local scope plugins do work, so Weave Net can be used with ordinary containers when Docker is in swarm mode. But not services.

With Docker 1.12 it is not possible to use Docker services with plugins.

Docker 1.13 is intended to support network plugins, but as of today, using Docker 1.13-rc5, we have been unable to get a network plugin to do anything with Docker services.

(note I work for Weaveworks)

bboreham avatar Jan 10 '17 10:01 bboreham

@bboreham thanks for the update. I hope that in final release wave could work with docker swarm and services, i'm impatient to use it :)

jonlatorre avatar Jan 10 '17 10:01 jonlatorre

I filed https://github.com/docker/docker/issues/30024 to describe what I see.

bboreham avatar Jan 10 '17 11:01 bboreham

+1

ayen-tibco avatar Jan 26 '17 19:01 ayen-tibco

+1

kent-h avatar Apr 19 '17 14:04 kent-h

@jonlatorre the Weave Net plugin is now compatible with swarm mode, and can be downloaded via docker plugin install weaveworks/net-plugin

That is a "latest" build; there will be a frozen release version at some point in the near future.

bboreham avatar Apr 19 '17 16:04 bboreham

@bboreham looks like the latest built (last built 6 hours ago as of now) is stuck with a registry problem.

#/ docker network create --driver weaveworks/net-plugin:latest my-net Error response from daemon: rpc error: code = 3 desc = error during lookup of plugin weaveworks/net-plugin:latest

azaars avatar May 12 '17 18:05 azaars

@azaars I believe this is fixed in https://github.com/weaveworks/weave/pull/2950

Not sure how long that will take to propagate to the Store.

bboreham avatar May 13 '17 07:05 bboreham

OK, I don't think that was the same problem, but I just tried it myself and seems ok:

root@bryan-dev2:~# docker plugin install weaveworks/net-plugin:latest
Plugin "weaveworks/net-plugin:latest" is requesting the following privileges:
 - network: [host]
 - mount: [/proc/]
 - mount: [/var/run/docker.sock]
 - mount: [/var/lib/]
 - mount: [/etc/]
 - capabilities: [CAP_SYS_ADMIN CAP_NET_ADMIN]
Do you grant the above permissions? [y/N] y
latest: Pulling from weaveworks/net-plugin
2b84216b4cae: Download complete 
Digest: sha256:f71186a3a406f939bb21df0ce12656b671932e4360ee0e37438a87cc7a3b160e
Status: Downloaded newer image for weaveworks/net-plugin:latest
Installed plugin weaveworks/net-plugin:latest
root@bryan-dev2:~# docker network create --driver weaveworks/net-plugin:latest my-net
rh2jzxdo1bdcr38jufd5el2dx

Please open an issue at https://github.com/weaveworks/weave if you are still having trouble.

bboreham avatar May 13 '17 09:05 bboreham

@bboreham I just found out that one can't issue docker network create --driver weaveworks/net-plugin:latest from just any swarm manager node. The manager node has to be the leader.

azaars avatar May 14 '17 03:05 azaars