Multiple interfaces per node / Multiple IP networks per cluster
- Dominant language
- Go
- Stars
- 6.1k
- Forks
- 609
- Avg merge
- 15h 1m
- Merged PRs (30d)
- 3
Description
TLDR: I want to assemble a Serf cluster from machines on multiple disjoint networks, where some nodes can reach both networks.
Assume 2 networks, Net1: 10.10.1.0/24, Net2: 10.10.2.0/24, and 3 machines:
A (10.10.1.1), B (10.10.1.2, 10.10.2.1), C (10.10.2.2)
Currently, when the Serf node from machine B reports its IP as 10.10.1.2, node from machine C from Net2 is unable to connect to it.
Even if I run 2 Serf nodes on machine B bound to different interfaces - they're unable to see each other.
Expected Behavior: Serf node accepts a set of IPs/ifaces, binds to all of them, announces all of them. Nodes try to connect to each IP, optionally starting from the IP that is on the same subnet, then default to the last one succeeded, until the node fails.
It is okay to require a node per network on the multihomed machine, if the broadcasts and queries will continue to flow to all networks.
It is also okay to require manual configuration of networks the node belongs to. (to prevent nodes from Net1 declaring all nodes from Net2 as failed)
Contributor guide
Assessment
This issue has not been assessed yet.