Apr 17, 2018 To turn on the wireless zero configuration service in Windows XP, follow these steps: Click Start, click Run, type Services.msc, and then click OK. In the right pane, locate and double-click Intel® PROSet/Wireless SSO Service. If the service is not installed, go to step 5. In the Startup type box, click Disabled, and then click Apply.
Bonjour is Apple's implementation of zero-configuration networking (zeroconf), a group of technologies that includes service discovery, address assignment, and hostname resolution. Bonjour locates devices such as printers, other computers, and the services that those devices offer on a local network using multicast Domain Name System (mDNS) service records.
The software comes built-in with Apple's macOS and iOS operating systems. Bonjour can also be installed onto computers running Microsoft Windows. Bonjour components may also be included within other software such as iTunes and Safari.
After its introduction in 2002 with Mac OS X 10.2 as Rendezvous, the software was renamed in 2005 to Bonjour following an out-of-court trademark dispute settlement.[1][2]
Overview[edit]
Bonjour provides a general method to discover services on a local area network. The software is widely used throughout macOS, and allows users to set up a network without any configuration. As of 2010 it is used to find printers and file-sharing servers. Examples of applications using Bonjour:
Software such as Bonjour Browser or iStumbler, both for macOS, or Zeroconf Neighborhood Explorer for Windows, can be used to view all services declared by these applications. Apple's 'Remote' application for iPhone and iPod Touch also uses Bonjour to establish connection to iTunes libraries via Wi-Fi.[3]
Bonjour only works within a single broadcast domain, which is usually a small area, without special DNS configuration. macOS, Bonjour for Windows and AirPort Base Stations may be configured to use Wide Area Bonjour which allows for wide area service discovery via an appropriately configured DNS server.
Applications generally implement Bonjour services using standard TCP/IP calls, rather than in the operating system. Although macOS provides various Bonjour services, Bonjour also works on other operating systems. Apple has made the source code of the Bonjour multicast DNS responder, the core component of service discovery, available as a Darwinopen source project. The project provides source code to build the responder daemon for a wide range of platforms, including Mac OS 9, macOS, Linux, *BSD, Solaris, VxWorks, and Windows. Apple also provides a user-installable set of services called Bonjour for Windows and Java libraries. A number of Windows programs use zeroconf, including Adtec Digital, Adobe SystemsCreative Suite 3, iTunes, Cerulean Studios' Trillian Pro 3, Ruckus Music Player from Ruckus Network, and the text editor e.
Licensing[edit]
Bonjour is released under a terms-of-limited-use license by Apple. It is freeware for clients, though developers and software companies who wish to redistribute it as part of a software package or use the Bonjour logo may need a licensing agreement. The source code for mDNSResponder is available under the Apache License.[4]
Naming[edit]
Apple originally introduced the Bonjour software in August 2002 as part of Mac OS X 10.2 under the name 'Rendezvous'. On August 27, 2003 Tibco Software Inc announced that it had filed a lawsuit for trademark infringement.[5]Tibco had an enterprise application integration product called TIBCO Rendezvous on the market since 1994 and stated that it had tried to come to an agreement with Apple Computer. In July 2004 Apple Computer and Tibco reached an out-of-court settlement;[6] specifics of the settlement were not released to the public. On April 12, 2005, Apple announced the renaming of Rendezvous to 'Bonjour'.[1]
The current name Bonjour is French for the morning or afternoon greeting, 'good day'. The previous name Rendezvous is French for 'meeting', 'appointment' or 'date'.[7]
Other implementations[edit]
Bonjour version 2.0, released on February 24, 2010, works with Microsoft Windows 2000, 2003, XP, Vista, 7, 8, and 10.[8] Systems use it primarily to facilitate the installation, configuration, and use of network printers, and thus it runs from startup. When Bonjour is fully implemented on Windows, some features—such as iChat—allow for communication between Windows and Mac OS. Bonjour for Windows also adds zeroconf capabilities to Internet Explorer, and provides a zeroconf implementation to Java VMs.[8][9]
Some third-party applications, such as Adobe's Photoshop CS3 suite,[10]also come bundled with Bonjour to take advantage of zeroconf technology.
Installers on Windows systems normally place Bonjour files in a folder called 'Bonjour' within the 'Program Files' folder. It modifies Windows system-registry entries related to internal network configuration and operation. Bonjour runs as mDNSResponder.exe. Communications across the network take place over UDP port 5353, which may require reconfiguring some personal or corporate firewalls that block Bonjour packets. A full installation of Bonjour for Windows will include a plug-in for Internet Explorer, a printer wizard, and the network communication services. Not all components are included when installed as part of a third-party application or as a component of other Apple software such as iTunes.
Some VPN clients are configured so that local network services are unavailable to a computer when VPN software is active and connected.[8] In such a case no local zeroconf services are available to Bonjour or any other zeroconf implementation.
In September 2008, two security vulnerabilities were found in Bonjour for Windows.[11]Certain installations of Bonjour for Windows lack an uninstaller and do not display a human-readable entry in the Windows services listing.[12]
In 32- and 64-bit releases of Windows 7, some older but still available versions of Bonjour services can disable all network connectivity by adding an entry of 0.0.0.0 as the default gateway. This was a bug reported in 2013.[13]
The open-source IM clients Pidgin, Kopete and Adium support the Bonjour IM protocol, as does the non-GPL Trillian client.
Browsers[edit]
A number of browsers allow an end-user to graphically explore the devices found using Bonjour.
Bonjour Browser[edit]
Bonjour Browser is a Creative Commons licensed macOS application that displays all services declared using Bonjour. The program was originally called 'Rendezvous Browser', but changed its name in version 1.5.4 after Apple changed the protocol's name to Bonjour. For certain protocols, double clicking a list item will launch the associated helper. 1.5.6 is the first universal binary version.
Future versions will allow users to completely define a service, instead of relying on the author to do so.
Bonjour Browser was recommended for service discovery in MacAddict #123.
JBonjourBrowser[edit]
A student research project at Columbia University produced a Java-based system to match the functionality of Bonjour Browser, called JBonjourBrowser. JBonjourBrowser is open-source and available under the GPL.
JBonjourBrowser was built to emulate the functionality of Bonjour Browser, and at the same time work on multiple platforms. It requires Apple's Bonjour Java library to run.
Bonjour Browser for Windows[edit]
A native Windows application offers similar functions to Bonjour Browser for Mac OS. Bonjour Browser for Windows is offered for free by Hobbyist Software and HandyDev Software.
mDNSBrowser[edit]
A commercial implementation called mDNSBrowser is offered by Netputing Systems Inc.
See also[edit]
References[edit]
External links[edit]
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Bonjour_(software)&oldid=915698861'
(Redirected from Zero configuration networking)
Zero-configuration networking (zeroconf) is a set of technologies that automatically creates a usable computer network based on the Internet Protocol Suite (TCP/IP) when computers or network peripherals are interconnected. It does not require manual operator intervention or special configuration servers. Without zeroconf, a network administrator must set up network services, such as Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS), or configure each computer's network settings manually.
Zeroconf is built on three core technologies: automatic assignment of numeric network addresses for networked devices, automatic distribution and resolution of computer hostnames, and automatic location of network services, such as printing devices.
Background[edit]
Computer networks use numerical network addresses to identify communications endpoints in a network of participating devices. This is similar to the telephone network which assigns a string of digits to identify each telephone. In modern networking protocols, information to be transmitted is divided into a series of network packets. Every packet contains the source and destination addresses for the transmission. Network routers examine these addresses to determine the best network path in forwarding the data packet at each step toward its destination.
Similarly to telephones being labeled with their telephone number, it was a common practice in early networks to attach an address label to networked devices. The dynamic nature of modern networks, especially residential networks in which devices are powered up only when needed, desire dynamic address assignment mechanisms that do not require user involvement for initialization and management. These systems automatically give themselves common names chosen either by the equipment manufacturer, such as a brand and model number, or chosen by users for identifying their equipment. The names and addresses are then automatically entered into a directory service.
Early computer networking was built upon technologies of the telecommunications networks and thus protocols tended to fall into two groups: those intended to connect local devices into a local area network (LAN), and those intended primarily for long-distance communications. The latter wide area network (WAN) systems tended to have centralized setup, where network administrator would manually assign addresses and names. LAN systems tended to provide more automation of these tasks, so that new equipment could be added to a LAN with a minimum of operator and administrator intervention.
An early example of a zero-configuration LAN system is AppleTalk, a protocol introduced by Apple Inc. for the early Macintosh computers in the 1980s. Macs, as well as other devices supporting the protocol, could be added to the network by simply plugging them in; all further configuration was automated. Network addresses were automatically selected by each device using a protocol known as AppleTalk Address Resolution Protocol (AARP), while each machine built its own local directory service using a protocol known as Name Binding Protocol (NBP). NBP included not only a name, but the type of device and any additional user-provided information such as its physical location or availability. Users could look up any device on the network with the application Chooser, which filtered names based on the device type.
On Internet Protocol (IP) networks, the Domain Name System database for a network was initially maintained manually by a network administrator. Efforts to automate maintenance of this database, led to the introduction of a number of new protocols providing automated services, such as the Dynamic Host Configuration Protocol (DHCP).
Address selection[edit]
Hosts on a network must be assigned IP addresses that uniquely identify them to other devices on the same network. On some networks there is a central authority that assigns these addresses as new devices are added. Mechanisms were introduced to handle this task automatically, and both IPv4 and IPv6 now include systems for address autoconfiguration, which allows a device to determine a safe address to use through simple mechanisms. For link-local addressing, IPv4 uses the special block 169.254.0.0/16 as described in RFC3927 while IPv6 hosts use the prefix fe80::/10. More commonly addresses are assigned by a DHCP server, often built into common networking hardware like computer hosts or routers.
Most IPv4 hosts use link-local addressing only as a last resort when a DHCP server is unavailable. An IPv4 host otherwise uses its DHCP-assigned address for all communications, global or link-local. One reason is that IPv4 hosts are not required to support multiple addresses per interface, although many do. Another is that not every IPv4 host implements distributed name resolution (e.g., multicast DNS), so discovering the autoconfigured link-local address of another host on the network can be difficult. Discovering the DHCP-assigned address of another host requires either distributed name resolution or a unicast DNS server with this information; Some networks feature DNS servers that are automatically updated with DHCP-assigned host and address information.
IPv6 hosts are required to support multiple addresses per interface; moreover, every IPv6 host is required to configure a link-local address even when global addresses are available. IPv6 hosts may additionally self-configure additional addresses on receipt of router advertisement messages, thus eliminating the need for a DHCP server.[1]
Both IPv4 and IPv6 hosts may randomly generate the host-specific part of an autoconfigured address. IPv6 hosts generally combine a prefix of up to 64 bits with a 64-bit EUI-64 derived from the factory-assigned 48-bit IEEEMAC address. The MAC address has the advantage of being globally unique, a basic property of the EUI-64. The IPv6 protocol stack also includes duplicate address detection to avoid conflicts with other hosts. In IPv4, the method is called link-local address autoconfiguration.[2] However, Microsoft refers to this as Automatic Private IP Addressing (APIPA)[3] or Internet Protocol Automatic Configuration (IPAC). The feature is supported in Windows since at least Windows 98.[4]
Name service discovery[edit]
Internet protocols use IP addresses for communications, but these are not easy for humans to use; IPv6 in particular uses very long strings of digits that are not easily entered manually. To address this issue, the internet has long used DNS, which allows human-readable names to be associated with IP addresses, and includes code for looking up these names from a hierarchical database system. Users type in domain names, such as example.org, which the computer's DNS software looks up in the DNS databases to retrieve an IP address, and then hands off that address to the protocol stack for further communications.[5]
Looking up an address using DNS requires the IP address of the DNS server to be known. This has normally been accomplished by typing in the address of a known server into a field in one of the devices on the network. In early systems this was normally required on every device, but this has been pushed up one layer in the hierarchy to the DHCP servers or broadband devices like cable modems that receive this information from their internet service provider. This has reduced the user-side administration requirements and provides a key element of zero-configuration access.[5]
DNS was intended to provide uniform names to groups of devices within the same administration realm, such as example.org, provided by a name service. Assigning an address to a local device, e.g., thirdfloorprinter.example.org, normally requires administrator access to the DNS server and is often accomplished manually. Additionally, traditional DNS servers are not expected to automatically correct for changes in configuration. For instance, if a printer is moved from one floor to another it might be assigned a new IP address by the local DHCP server.[5]
To address the need for automatic configuration, Microsoft implemented NetBIOS Name Service, part of which is the Computer Browser Service already in Microsoft Windows for Workgroups 3.11[6] as early as 1992. NetBIOS Name Service is zero-configuration on networks with a single subnet and may be used in conjunction with a WINS server or a Microsoft DNS server that supports secure automatic registration of addresses. This system has small, but not zero, management overhead even on very large enterprise networks. The protocols NetBIOS can use are part of the Server Message Block (SMB) suite of open protocols[6] which are also available on Linux and iOS, although Windows typically supports a wider range of so-called dialects which can be negotiated between Windows clients that support it. For example, Computer Browser Services running on server operating systems or later versions of Windows are elected as so-called master browser over those that are not running a server operating system or running older versions of Windows.[6]
In 2000, Bill Manning and Bill Woodcock described the Multicast Domain Name Service[7] which spawned the implementations by Apple and Microsoft. Both implementations are very similar. Apple's Multicast DNS (mDNS) is published as a standards track proposal RFC6762, while Microsoft's Link-local Multicast Name Resolution (LLMNR) is published as informational RFC4795. LLMNR is included in every Windows version from Windows Vista onwards[8] and acts as a side-by-side alternative for Microsoft's NetBIOS Name Service over IPv4 and as a replacement over IPv6, since NetBIOS is not available over IPv6. Apple's implementation is available as the Bonjour service since 2002 in Mac OS X v10.2. The Bonjour implementation (mDNSResponder) is available under the Apache 2 Open Source License[9] and is included in Android Jelly Bean and later[10] under the same license.
Use of either NetBIOS or LLMNR services on Windows is essentially automatic, since using standard DNS client API's will result in the use of either NetBIOS or LLMNR depending on what name is being resolved (whether the name is a local name or not), the network configuration in effect (e.g. DNS suffixes in effect) and (in corporate networks) the policies in effect (whether LLMNR or NetBIOS are disabled), although developers may opt into bypassing these services for individual address lookups.
The mDNS and LLMNR protocols have minor differences in their approach to name resolution. mDNS allows a network device to choose a domain name in the local DNS namespace and announce it using a special multicast IP address. This introduces special semantics for the domain local,[11] which is considered a problem by some members of the IETF.[12] The current LLMNR draft allows a network device to choose any domain name, which is considered a security risk by some members of the IETF.[13] mDNS is compatible with DNS-SD as described in the next section, while LLMNR is not.[14]
Service discovery[edit]
Name services such as mDNS, LLMNR and others do not provide information about the type of device or its status. A user looking for a nearby printer, for instance, might be hindered if the printer was given the name 'Bob'. Service discovery provides additional information about devices. Service discovery is sometimes combined with a name service, as in Apple's Name Binding Protocol and Microsoft's NetBIOS.
NetBIOS Service Discovery[edit]
NetBIOS on Windows supports individual hosts on the network to advertise services, such as file shares and printers. It also supports, for example, a network printer to advertise itself as a host sharing a printer device and any related services it supports. Depending on how a device is attached (to the network directly, or to the host which shares it) and which protocols are supported. However, Windows clients connecting to it may prefer to use SSDP or WSD over using NetBIOS. NetBIOS is one of the providers on Windows implementing the more general discovery process dubbed function discovery which includes built-in providers for PnP, Registry, NetBIOS, SSDP and WSD[15] of which the former two are local-only and the latter three support discovery of networked devices. None of these need any configuration for use on the local subnet. NetBIOS has traditionally been supported only in expensive printers for corporate use though some entry-level printers with Wi-Fi or Ethernet support support it natively, allowing the printer to be used without configuration even on very old operating systems.
WS-Discovery[edit]
Web Services Dynamic Discovery (WS-Discovery) is a technical specification that defines a multicast discovery protocol to locate services on a local network. It operates over TCP and UDP port 3702 and uses IP multicast address 239.255.255.250. As the name suggests, the actual communication between nodes is done using web services standards, notably SOAP over UDP. Windows supports it in the form of WSD and WPDS and many device and appliance manufacturers support it, such as HP and Brother printers.
DNS-based service discovery[edit]
DNS-SD allows clients to discover a named list of service instances, given a service type, and to resolve those services to hostnames using standard DNS queries. The specification is compatible with existing unicast DNS server and client software, but works equally well with mDNS in a zero-configuration environment. Each service instance is described using a DNS SRV (RFC2782) and DNS TXT (RFC1035) record. A client discovers the list of available instances for a given service type by querying the DNS PTR (RFC1035) record of that service type's name; the server returns zero or more names of the form '<Service>.<Domain>', each corresponding to a SRV/TXT record pair. The SRV record resolves to the domain name providing the instance, while the TXT can contain service-specific configuration parameter. A client can then resolve the A/AAAA record for the domain name and connect to the service.
History[edit]
In 1997 Stuart Cheshire proposed adapting Apple's mature Name Binding Protocol to IP networks to address the lack of service discovery capability.[16][self-published source?] Cheshire subsequently joined Apple and authored IETF draft proposals for mDNS and DNS-based Service Discovery, supporting the transition from AppleTalk to IP networking. In 2002,[17] Apple announced an implementation of both protocols under the name Rendezvous (later renamed Bonjour), included in Mac OS X 10.2 and replacing the Service Location Protocol used in 10.1.[citation needed] In 2013, the proposals were ratified as RFC6762[18] and RFC6763.[19]
DNS-SD with multicast[edit]
mDNS is a protocol that uses packets similar to unicast DNS except sent over a multicast link to resolve hostnames. Each host listens on the mDNS port, 5353, and resolves requests for the DNS record of its .local hostname (e.g. the A, AAAA, CNAME) to its IP address. When an mDNS client needs to resolve a local hostname to an IP address, it sends a DNS request for that name to a well-known multicast address; the computer with the corresponding A/AAAA record replies with its IP address. The mDNS multicast address is 224.0.0.251 for IPv4 and ff02::fb for IPv6 link-local addressing.
Theclient and server work in tandem toprovide a TCP (and UDP!) tunnelthrough the standard DNS protocol.This is similiar to the defunct NSTXdns tunelling software. Dns tunneling windows 8. The purpose ofthis software to is succeed where NSTXfailed. There is a Java implementation that works on Windows on analogbit.com:.tcp-over-dns contains a special dnsserver and a special dns client.
DNS service discovery (DNS-SD) requests can also be sent over a multicast link,[20] and it can be combined with mDNS to yield zero-configuration DNS-SD. It still uses DNS PTR, SRV, TXT records to advertise instances of service types, domain names for those instances, and optional configuration parameters for connecting to those instances. But SRV records can now resolve to multicastable .local domain names, which mDNS can resolve to local IP addresses.
Support[edit]
DNS-SD is used by Apple products, most network printers, many Linux distributions including Debian and Ubuntu,[21] and a number of third party products for various operating systems. For example, many OS X network applications written by Apple, including Safari, iChat, and Messages, can use DNS-SD to locate nearby servers and peer-to-peer clients. On Windows, the operating system includes support for DNS-SD at least on Windows 10 for applications written using JavaScript[22] and other languages may be supported shortly. Individual applications may include their own support in older versions of the operating system, such that most instant messaging and VoIP clients on Windows support DNS-SD. Some Unix, BSD, and Linux distributions also include DNS-SD. For example, Ubuntu ships Avahi, an mDNS/DNS-SD implementation, in its base distribution.
Service types are given on a first-serve basis. A service type registry was originally maintained by DNS-SD.org,[23] but has since been merged into IANA's registry for DNS SRV records.[24]
UPnP[edit]
UPnP has some protocol variants with the purpose of service discovery.
SSDP[edit]
Simple Service Discovery Protocol (SSDP) is a UPnP protocol, used in Windows XP and later. SSDP uses HTTP notification announcements that give a service-type URI and a Unique Service Name (USN). Service types are regulated by the Universal Plug and Play Steering Committee. SSDP is supported by many printer, NAS and appliance manufacturers such as Brother, certain brands of network equipment, and in many SOHO firewall appliances, where host computers behind it may pierce holes for applications. It is also used in home theater PC systems, where media exchange between host computers and the media center is facilitated using SSDP.
DLNA[edit]
DLNA is another suite of standards that uses UPnP for its discovery of networked devices, which has a long list of manufacturers producing devices that support it, such as TVs from most if not all large brands, NAS devices and so forth. As such, it is also supported by all major operating systems.
Efforts toward an IETF standard protocol[edit]
Service Location Protocol (SLP) is supported by Hewlett-Packard's networkprinters, Novell, and Sun Microsystems. SLP is described in RFC2608 and RFC3224 and implementations are available for both Solaris and Linux.
AllJoyn[edit]
AllJoyn is an open source software stack for a myriad of devices, ranging from the tiniest IoT devices to the largest computers, for discovery and control of devices on networks (Wifi, Ethernet) and other links (Bluetooth, ZigBee, etc.). It uses (amongst others) mDNS and HTTP over UDP.
Standardization[edit]
RFC3927, a standard for choosing addresses for networked items, was published in March 2005 by the Zeroconf IETF working group, which included individuals from Apple, Sun, and Microsoft.[25]
LLMNR was submitted for official adoption in the DNSEXT IETF working group, however failed to gain consensus and thus has been published as informational RFC only: RFC4795.[26]
Following the failure of LLMNR to become an Internet standard, Apple was asked by the IETF to submit the mDNS/DNS-SD specs for publication as informational RFC as well, given that mDNS/DNS-SD is used much more widely than LLMNR.[citation needed]. In February 2013 mDNS and DNS-SD were published as Standards Track Proposals RFC6762 and RFC6763.
RFC2608, the SLP standard for figuring out where to get services, was published by the SVRLOC IETF working group.[27]
Security issues[edit]
Because mDNS operates under a different trust model than unicast DNS—trusting the entire network rather than a designated DNS server, it is vulnerable to spoofing attacks by any system within the multicast IP range. Like SNMP and many other network management protocols, it can also be used by attackers to quickly gain detailed knowledge of the network and its machines.[28] Because of this, applications should still authenticate and encrypt traffic to remote hosts (e.g. via RSA, SSH, etc.) after discovering and resolving them through DNS-SD/mDNS. LLMNR suffers from similar vulnerability.[29]
Major implementations[edit]Apple Bonjour[edit]
Bonjour (formerly known as Rendezvous) from Apple, uses mDNS and DNS Service Discovery. Apple changed its preferred zeroconf technology from SLP to mDNS and DNS-SD between Mac OS X 10.1 and 10.2, though SLP continues to be supported by Mac OS X.
Apple's mDNSResponder has interfaces for C and Java[30] and is available on BSD, Apple Mac OS X, Linux, other POSIX based operating systems and MS Windows. The Windows downloads are available from Apple's website.[31]
Avahi[edit]
Avahi is a Zeroconf implementation for Linux and BSDs. It implements IPv4LL, mDNS and DNS-SD. It is part of most Linux distributions, and is installed by default on some. If run in conjunction with nss-mdns it also offers host name resolution.[32]
Avahi also implements binary compatibility libraries that emulate Bonjour and the historical mDNS implementation Howl, so software made to use those implementations can also utilize Avahi through the emulation interfaces.
MS Windows CE 5.0[edit]
Microsoft Windows CE 5.0 includes Microsoft's own implementation of LLMNR.
Systemd[edit]
Systemd implements both mDNS and LLMNR in
systemd-resolved .
Link-local IPv4 addresses[edit]
There are some link-local IPv4 address implementations available:
The above implementations are all stand-alone daemons or plugins for DHCP clients that only deal with link-local IP addresses. Another approach is to include support in new or existing DHCP clients:
Neither of these implementations addresses kernel issues like broadcasting ARP replies[39] or closing existing network connections.
See also[edit]Windows 10 Zero Configuration Networking Problems
References[edit]Zero Configuration Networking Windows 10
Notes
Sources
External links[edit]
Computer Configuration In Windows 10
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Zero-configuration_networking&oldid=918492677'
Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |