Wie geht Service Discovery in einem Layer-3 Netz?
DNS-SD
DNS-SD ist ein Standart zu Service Discovery über DNS. Grob: Die Clients machen bestimmte DNS-Abfragen, basierend auf der DHCP-Option Search-Domain und finden darüber besondere DNS-Einträge, die Services repräsentieren. Vorteile:
- bereits implementiert (iOS/macOS, Linux: avahi)
- kein Platzverbrauch auf Router
Nachteile:
- Zentral
- (halb-)Statisch
mDNS
mDNS, auch Zeroconf oder Bounjour, ist DNS-SD über Multicast. Vorteile:
- fast null Softwareaufwand, da Clientbasiert
Nachteile:
- Multicast ist im Mesh schlecht abbildbar, wird zu Broadcast
Hybridansatz:
Lokal in der Broadcastdomäne (Lokales Netz des nodes): Discovery per mDNS. Caching auf dem Node durch Hybridproxy. Netzweites verfügbarmachen per DNS-Delegation zum Hybridproxy auf dem einzelnen Node. Implementation ohybridproxy. Standartisierungsstand. Alternativ könnte man auch analog zum DDHCPD den Standart auf Basis von Babel messages/einer dezentralen DB implementieren.
Todo
- Ohybridproxypackage Dependency auf mdnsd (mDNSResponder) duch umdns ersetzen
- umDNS erweitern
- ohybridproxy an umDNS anpassen
- Roaming
- DNS ist hierachisch, wenn der Client roamt, verändert sich sein Hostname und die Services zeigen ins leere.