L2 Cache

Behold the power of |!

User Tools

Site Tools



mDNS Announcer

Packages are no longer provided, source remains available here:

mDNS Announcer (Multicast DNS Announcer) is a service (for Solaris) written in python that uses pybonjour and ctypes to make calls to libdns-sd.

It wrote this because OmniOS is missing the Avahi package, I didn't want to spend time compiling Avahi on solaris so I write a simple replacement.

How it works

A zone or solaris host will run the mDNS Announcer Service (network/dns/multicast-announcer).
This service uses network/dns/multicast to register services on the network.

It will read /etc/mdns.conf for services that need to be announced. It will try to guess defaults like the hostname. If they are wrong you can also specify them in the service definition and those will be used instead. This file should be fairly self explenatory. note: the parser is rather rough so it is possible to that bad configuration could prevent the service from starting!


The installation is quite simple if you run OmniOS.

Simple add the omnios.blackdot.be repository and install the goto package.
You then edit mdns.conf to define services to publish. Then enable both network/dns/multicast and network/dns/multicast-announcer.

# pfexec pkg set-publisher -g http://omnios.blackdot.be -g omnios.blackdot.be # pfexec pkg refresh –full # pfexec pkg install obd/server/dns/multicast-announcer # pfexec vi /opt/obd/etc/mdns.conf # pfexec svcadm enable dns/multicast # pfexec svcadm enable dns/multicast-announcer # pfexec svcs -x (to check for errors)

Currently there are no manual installation instructions, if there is interest in this I will write them up when I have more time. For any questions you can contact me through my website.

mdns.conf format

// Multicast DNS Announcer
// -----------------------------------
// [
// {
// "name": "flux",                    --- name - defaults to hostname (optional)
// "domain": "local.",                --- domain - defaults to local. (optional)
// "host": "flux.example.com",        --- set alternative fqdn - MUST be resolvable (optional)
// "type": "_ssh._tcp",               --- set service type (required)
// "port": 22,                        --- set port (required)
// "txtRecord": {"model": "RackMac"}, --- set text record (optional)
// "interface": "e1000g0"             --- set binding interface (optional)
// }
// ]
                "type": "_device-info._tcp",
                "port": 548,
                "txtRecord": {"model": "RackMac"}
                "type": "_ssh._tcp",
                "port": 22
                "type": "_smb._tcp",
                "port": 445
projects/solaris/mdns.txt · Last modified: 2015/05/23 16:33 by sjorge