Zero-configuration networking: Difference between revisions

Content deleted Content added
No edit summary
Tags: Reverted Visual edit
m Reverted edit by 51.252.128.223 (talk) to last version by Ernstkm
Line 1:
{{short description|Technologies for automatic network connection configuration}}
 
'''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 servicesservice]]s, 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 address]]es for networked devices, automatic distribution and resolution of computer [[hostname]]s, and automatic [[Service discovery|___location of network services]], such as printing devices.
 
{{IPstack}}
Line 12:
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 a [[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 computerscomputer]]s 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 (Mac OS)|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==
Hosts on a network must be assigned [[IP addressesaddress]]es 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 addressingaddress]]ing, IPv4 uses the special block {{IPaddr|169.254.0.0|16}},{{Ref RFC|3927}} while IPv6 hosts use the prefix {{IPaddr|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.{{Ref RFC|4862}}
 
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 [[IEEE]] [[MAC 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''.{{Ref RFC|3927}} However, [[Microsoft]] refers to this as ''[[Automatic Private IP Addressing]]'' (APIPA)<ref>{{Citation | url = http://msdn.microsoft.com/en-us/library/aa505918.aspx | publisher = Microsoft | title = MS Developer Network | contribution = Apipa | access-date = 2008-07-05 | archive-url = https://web.archive.org/web/20170318001826/https://msdn.microsoft.com/en-us/library/aa505918.aspx | archive-date = 2017-03-18 | url-status = dead }}</ref> or '''''Internet Protocol Automatic Configuration''''' ('''IPAC'''). The feature is supported in Windows since at least [[Windows 98]].<ref>{{Citation | url = http://support.microsoft.com/kb/220874 | title = Knowledge base | date = 6 January 2021 | contribution = How to use automatic TCP/IP addressing without a DHCP server | publisher = Microsoft}}</ref>
 
==Name service discovery==
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.<ref name="DNS">Marshall Brain and Stephanie Crawford, [http://computer.howstuffworks.com/dns.htm "How Domain Name Servers Work"], howstuffworks</ref>
 
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 modemsmodem]]s 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.<ref name=DNS/>
 
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.<ref name=DNS/>