I want to make a ubuntu server image to run in a public cloud that discovers when other servers from the same image come online. I came up with this list of solutions, but I'm not sure what is best?
Possible solutions:
- Layer-2 multicasts with Link Layer Discovery Protocol (LLDP) much like CDP
- Assign a link-local address to self then send a broadcast
- Avahi (a zeroconf implementation on linux, much like Bonjour by Apple)
- Use a DHCP server track servers
More possible solutions: (servers must have an IP address already)
- SNMP broadcast/multicast
- SSDP multicast messages (Simple Service Discovery Protocol) (used in UPnP)
- I'm not sure but maybe m(ulticast)DNS or DNS-SD (Service Discovery)
Are there any more ways to discover nodes? What is commonly done in large cloud clusters?