Bonjour is a networking technology that allows devices to automatically discover each other without any configuration. In the first release, Bonjour operated on the local network to provide ad-hoc discovery for applications and devices. Starting in Mac OS X v10.4 Tiger and Bonjour for Windows, a network administrator can set up a Bonjour name server to enable wide-area capable devices and applications to discover services anywhere in the world. This document will explain how to set up a machine running Mac OS X to act as a Bonjour name server to facilitate wide-area discovery on your network. You can also use Linux, Solaris, or any other Unix-style operating system that can run the BIND name server. If you want clients to be able to browse to discover specific services of your choosing, but you don't want to allow individual machines to dynamically register their services, you can also manually add Bonjour service discovery records to your existing name server.
Introduction
In this sense, you would better to know what Bonjour is and whether you really need it on Mac and Windows systems. What is Bonjour? Developed by Apple, Bonjour, also named mDNSResponder.exe process, is the zero-configuration networking which is a group of technologies including address assessment, service discovery, and hostname resolution. Apple's Bonjour service in OS X is a convenient zero-configuration autodiscovery technology that allows the operating system to locate and present various network services available to you.
Discovery (formerly Bonjour Browser) Mac App Store. Discovery is a utility that displays all the Bonjour services on your local network or on Wide-Area Bonjour domains. Previously called Bonjour Browser, it's now distributed on the Mac App Store. Discovery requires macOS 10.12 or higher. Nov 28, 2016 To setup your network printer with Bonjour on a Mac computer: Connect the printer to your NETGEAR router USB port. Click the System Preferences icon in the dock on your Mac desktop. Click Printers & Scanners. To view Bonjour discoverable devices through Safari, go to: Safari Preferences Advanced “Include Bonjour in The Bookmarks Menu.” I’ve never set up a WD MyBook “NAS”, but here’s an example of how Bonjour works through Safari. The printer on my local network (S-2) is discoverable: I’m able to manipulate its settings via my.
Wide-Area Bonjour uses DNS Service Discovery [DNS-SD] along with DNS Update [RFC 2136] and TSIG security [RFC 2845]. Like most Linux distributions, Mac OS X includes the standard BIND DNS Server (named), which supports DNS Update. It's also recommended that you run the dnsextd daemon (also included in Mac OS X). The dnsextd daemon implements two DNS extensions that enhance service discovery:
- DNS Long-Lived Queries [DNS-LLQ] allow clients to be immediately notified when new services are added or removed from the server. Without Long-Lived Queries, clients would have to poll periodically (e.g., once an hour) to find out when services become available.
- DNS Update Leases [DNS-UL] impose a time limit on record updates, so that service registrations are automatically deleted if the client crashes or goes away unexpectedly. Using standard DNS Update without Update Leases, records remain on the server forever, until deleted manually by the server operator.
You can use wide-area Bonjour without running dnsextd, and it will still work, but with the two limitations above.
The instructions below should be enough for someone experienced with DNS to set up a DNS server configured for Wide Area Bonjour, but if you've never set up a DNS server at all before and you find it a little confusing, DNS and BIND, Fourth Edition is a great guide that tells you everything you need to know about setting up and configuring named, the Berkeley Internet Name Daemon (BIND).
Service Registration Zone for Wide-Area Bonjour
First, you need to pick a name for your wide-area Bonjour zone, the domain in which clients will browse and register. This should be a subdomain of your organization's domain. For example, if your organization's domain is 'apple.com', your service registration zone could be 'bonjour.apple.com'.Shared Secrets
Without a shared secret, anyone who has access to your Bonjour name server can make registrations. This may be acceptable in some situations, like behind a firewall when you trust all the people who have access to your server. You may also want to run this way if you're just experimenting with the technology to get a feel for how it works, but normally when running an operational Wide-Area Bonjour service you'll want to set up your name server to accept updates only from authorized clients. The way a client proves it's authorized is by using a DNS TSIG record to sign its update packets using the proper shared secret for that domain [RFC 2845].You can use the dnssec-keygen command-line tool to generate a random shared secret. This command creates two files. We'll pull the shared secret from the .key file. After we copy and paste this key into our BIND configuration file, delete the files generated by the tool so that you don't accidentally leave them lying around for someone to find. Execute the command with the following arguments, substituting your own zone name: The following shows how to generate a shared secret for the 'bonjour.example.com' domain.
For the domain 'bonjour.example.com', our shared secret is 'CnMMp/xdDomQZ4TelKIHeQ'. For more information about the dnssec-keygen command, please see the manual page.
Configuring BIND
To set up a Bonjour name server in Mac OS X, you'll need to edit the BIND configuration file (/etc/named.conf). If you're not already running a name server on your machine, start with a blank file and add the contents below. Otherwise, add the following to your existing configuration file (typically/etc/named.conf
): Bonjour Service For Mac Windows 10
Writing the Zone File
Next you'll need to create a zone file named db.<your zone>, for example, 'db.bonjour.example.com' and copy it into /var/named. The only change that you need to make is to replace the two instances of 'wab.example.com.' with the hostname of your server (don't forget the dot on the end).Discovering Your Server
If you have access to the parent zone's DNS server, you can delegate the new zone to the new server by adding an entry in the example.com. zone file: Your network administrator may be able to do this for you. If you do not have access to the parent zone's DNS server, a temporary alternative while testing is to simply add the IP address of the new server to the 'DNS Servers' field of the Networking Preference Pane in each client computer. However, manually entering the IP address on the clients is a short-term solution, not really suitable for long-term use. The whole point of DNS is that clients learn the DNS server for a given domain, not by manual configuration, but by following the chain of delegation (NS records) from the root. Likewise, for reliable operation, your subdomain should be properly delegated from its parent.Discovering Domains
Computers running Mac OS X Tiger or later and computers running Bonjour for Windows will issue domain enumeration queries to automatically discover browse and registration domains on the network. The easiest way for clients to discover your domain is by creating PTR records pointing from the DHCP domain name to your new zone. This requires administrative control of that domain. For example, if the DHCP 'Domain Name' option (option code 15 [RFC 2132]) that the DHCP server sends to its clients is 'example.com', then you need to create the following entries in the 'example.com' zone file to tell those DHCP clients about your new 'bonjour.example.com' domain: If you don't have administrative control of that domain, as a last resort, you can manually force a client to 'discover' your new 'bonjour.example.com' domain by adding it to the 'Search Domains' field in the Network Preference Pane on each client. This will only work if you have the domain enumeration PTR records in the bonjour.example.com zone as shown in the 'db.bonjour.example.com' zone file above.Starting named
You should create a backup of the zone file before running named for the first time. Once you run your server with DNS Update turned on, you cannot edit the zone files by hand. If you need to reset your zone for any reason, simply revert to the saved copy, delete any .jnl files, and restart named and dnsextd.
named normally runs with no arguments:
Check the syslog (/var/log/system.log) for errors. You can ignore any errors that say '/private/etc/rndc.key: file not found' or 'couldn't add command channel'. If any other errors occur, make sure that you put periods in exactly the right places in all files. See examples for correct usage of trailing dots. For debugging, you may wish to run it in the foreground, with enhanced logging:
Starting dnsextd
The dnsextd daemon configuration file is /etc/dnsextd.conf
. Typically the only thing you need to edit in this file is the name of the zone you want dnsextd to handle:
You can run dnsextd with no arguments:
To run in the foreground with verbose logging for debugging, add '-vf'.
Run with a single argument, '-h', for help and a full list of options.
Starting named and dnsextd automatically on boot
Once you have verified that your configuration files are correct, you can set named and dnsextd to start automatically on boot. Fist stop named and dnsextd if they are already running, and then execute the following commands:
The 'launchctl load' command tells the system to start that daemon; the '-w' option tells the system to make the change permanent so the daemon will be automatically started on boot too.
Configuration Clients
Now that your server is up and running, the next step is to configure each client on the network to use your new server.http://www.dns-sd.org
Bonjour, also known as zero-configuration networking, enables automatic discovery of devices and services on a local network using industry standard IP protocols. Bonjour makes it easy to discover, publish, and resolve network services with a sophisticated, easy-to-use programming interface that is accessible from Cocoa, Ruby, Python, and other languages.
Bonjour Printer Mac
Bonjour for macOS and iOS
Bonjour for Windows
Bonjour Services For Pc
Source Code and Specifications
Bonjour is not only based on open Internet standards, our implementation is also available as Open Source under the Apache 2.0 license. It is built into most modern printers and many other consumer products.
Licensing and Trademarks
If you plan to use the Bonjour logo with your Bonjour-enabled products, be sure to review the latest guidelines and agreements.
Related Resources