Files
weave/site/ipam.md
T
Matthias Radestock 35211f65c9 pull IPAM docs onto separate page
and link to them from main docs page
2015-05-15 17:08:24 +01:00

2.3 KiB

title, layout
title layout
Automatic IP Address Management default

Automatic IP Address Management

Weave can automatically assign unique IP addresses to each container across the network. To make this work, weave must be told on startup what range of addresses to allocate from, for example:

host1# weave launch -iprange 10.2.3.0/24

The run, start, attach, expose and hide commands will then fetch an address automatically if none is specified, i.e.:

host1# C=$(weave run -ti ubuntu)

Weave will automatically learn when a container has exited and hence can release its IP address.

Weave shares the IP range across all peers, dynamically according to their needs. If a group of peers becomes isolated from the rest (a partition), they can continue to work with the IP ranges they had before isolation, and can be re-connected to the rest of the network and carry on. Note that you must specify the same range with -iprange on each host, and you cannot mix weaves started with and without -iprange.

Initialisation

Just once, when you start up the whole network, weave needs a majority of peers to agree in order to avoid isolated groups starting off inconsistently. Therefore, you must either supply the list of all peers in the network to weave launch or add the -initpeercount flag to specify how many peers there will be. It isn't a problem to over-estimate by a bit, but if you supply a number that is too small then multiple independent groups may form.

Stopping and removing peers

You may wish to weave stop and re-launch to change some config or to upgrade to a new version; provided the underlying protocol hasn't changed it will pick up where it left off and learn from peers in the network which address ranges it was previously using. If, however, you run weave reset this will remove the peer from the network so if Weave is run again on that node it will start from scratch.

For failed peers, the weave rmpeer command can be used to permanently remove the ranges allocated to said peer. This will allow other peers to allocate IPs in the ranges previously owner by the rm'd peer, and as such should be used with extreme caution - if the rm'd peer had transferred some range of IP addresses to another peer but this is not known to the whole network, or if it later rejoins the Weave network, the same IP address may be allocated twice.