hashicorp / hashicorp/serf

Multiple interfaces per node / Multiple IP networks per cluster

Open
#256 3 comments 0 reactions 0 assignees View on GitHub
enhancement thinking
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.