museumsvictoria / nodel

A digital media control system for museums and galleries
nodel.io
60 stars 17 forks source link

Discovery information sharing via hard links #41

Open justparking opened 8 years ago

justparking commented 8 years ago

Sometimes Nodel hosts find themselves in multi-subnet environments that restrict multicast traffic between them. This is often due to incomplete network configuration but it's a common reality. This can make it difficult for Nodel hosts to discover each other. The new hard-links feature (see #37) assists with that however, it could go even further.

Right now a "hard link" from one host to an other would only reveal nodes hosted specifically on the other host. It would be handy if the rest of its discovery information (all the other hosts' information) could be passed on too meaning there's effectively a bridge between the networks the two "hard linked" nodes reside on i.e. they share their discovery information.

Originally and for good reason, this feature was left out of the discovery design to keep things simple, reliable and accurate on a given network (zero config; no second hand information to be relied upon, etc.). Because of that, it should remain an opt-in feature through the use of "hard links".

mcartmel commented 8 years ago

It might also be worth considering having a subnet broadcast mode?

justparking commented 8 years ago

In theory it should already support that if the broadcast address is supplied i.e. host bits all 1, e.g. 192.168.1.255 (mask 255.255.255.0).

scienceworld commented 8 years ago

fyi, mutlicast address 224.0.0.252 which nodel uses to discover nodes is a link-local multicast address meaning that it will not pass between layer 3 boundries essentially making nodel local subnet/lan only without the use of helpers. in your opening comments you mention restricted multicast between subnets. multicast routing does not forward link local multicasts. Organisation level multicasts will be forwarded, such as 239.255.255.250 - site local ipv4 addresses using protocols such as SSDP.