ACC SHELL
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 24. DHCP</title><link rel="stylesheet" href="susebooks.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="Documentation"><link rel="up" href="part.reference.services.html" title="Part V. Services"><link rel="prev" href="cha.dns.html" title="Chapter 23. The Domain Name System"><link rel="next" href="cha.netz.xntp.html" title="Chapter 25. Time Synchronization with NTP"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header" border="0" class="bctable"><tr><td width="80%"><div class="breadcrumbs"><p><a href="index.html"> Documentation</a><span class="breadcrumbs-sep"> > </span><a href="book.opensuse.reference.html">Reference</a><span class="breadcrumbs-sep"> > </span><a href="part.reference.services.html">Services</a><span class="breadcrumbs-sep"> > </span><strong><a accesskey="p" title="Chapter 23. The Domain Name System" href="cha.dns.html"><span>◀</span></a> <a accesskey="n" title="Chapter 25. Time Synchronization with NTP" href="cha.netz.xntp.html"><span>▶</span></a></strong></p></div></td></tr></table></div><div class="chapter" title="Chapter 24. DHCP"><div class="titlepage"><div><div><h2 class="title"><a name="cha.dhcp"></a>Chapter 24. DHCP<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#cha.dhcp">¶</a></span></h2></div></div></div><div class="toc"><p><b>Contents</b></p><dl><dt><span class="sect1"><a href="cha.dhcp.html#sec.dhcp.yast">24.1. Configuring a DHCP Server with YaST</a></span></dt><dt><span class="sect1"><a href="cha.dhcp.html#sec.dhcp.soft">24.2. DHCP Software Packages</a></span></dt><dt><span class="sect1"><a href="cha.dhcp.html#sec.dhcp.server">24.3. The DHCP Server dhcpd</a></span></dt><dt><span class="sect1"><a href="cha.dhcp.html#sec.dhcp.addinfo">24.4. For More Information</a></span></dt></dl></div><a class="indexterm" name="idx.DHCP"></a><a class="indexterm" name="id488210"></a><a class="indexterm" name="id488218"></a><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p>
The purpose of the <span class="emphasis"><em>Dynamic Host Configuration
Protocol</em></span> (DHCP) is to assign network settings centrally (from
a server) rather than configuring them locally on each and every
workstation. A host configured to use DHCP does not have control over its
own static address. It is enabled to configure itself completely and
automatically according to directions from the server. If you use the
NetworkManager on the client side, you do not need to configure the client at all.
This is useful if you have changing environments and only one interface
active at a time. Never use NetworkManager on a machine that runs a DHCP server.
</p></div><p>
One way to configure a DHCP server is to identify each client using the
hardware address of its network card (which should be fixed in most
cases), then supply that client with identical settings each time it
connects to the server. DHCP can also be configured to assign addresses to
each relevant client dynamically from an address pool set up for this
purpose. In the latter case, the DHCP server tries to assign the same
address to the client each time it receives a request, even over extended
periods. This works only if the network does not have more clients than
addresses.
</p><p>
DHCP makes life easier for system administrators. Any changes, even bigger
ones, related to addresses and the network configuration in general can be
implemented centrally by editing the server's configuration file. This is
much more convenient than reconfiguring numerous workstations. It is also
much easier to integrate machines, particularly new machines, into the
network, because they can be given an IP address from the pool. Retrieving
the appropriate network settings from a DHCP server is especially useful
in case of laptops regularly used in different networks.
</p><p>
In this chapter, the DHCP server will run in the same subnet as the
workstations, 192.168.2.0/24 with 192.168.2.1 as gateway. It has the
fixed IP address 192.168.2.254 and serves two address ranges, 192.168.2.10 to
192.168.2.20 and 192.168.2.100 192.168.2.200.
</p><p>
A DHCP server supplies not only the IP address and the netmask, but also
the hostname, domain name, gateway, and name server addresses for the
client to use. In addition to that, DHCP allows a number of other
parameters to be configured in a centralized way, for example, a time
server from which clients may poll the current time or even a print
server.
</p><div class="sect1" title="24.1. Configuring a DHCP Server with YaST"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.dhcp.yast"></a>24.1. Configuring a DHCP Server with YaST<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.dhcp.yast">¶</a></span></h2></div></div></div><a class="indexterm" name="id488282"></a><a class="indexterm" name="id488290"></a><p>
To install a DHCP server, start YaST and select
<span class="guimenu">Software</span>+<span class="guimenu">Software
Management</span>. Choose
<span class="guimenu">Filter</span>+<span class="guimenu">Patterns</span> and select <span class="guimenu">DHCP and DNS
Server</span>. Confirm the installation of the dependent packages to
finish the installation process.
</p><div class="important"><table border="0" cellpadding="3" cellspacing="0" width="100%" summary="Important: LDAP Support"><tr class="head"><td width="32"><img alt="[Important]" src="admon/important.png"></td><th align="left">LDAP Support</th></tr><tr><td colspan="2" align="left" valign="top"><p>
The YaST DHCP module can be set up to store the server configuration
locally (on the host that runs the DHCP server) or to have its
configuration data managed by an LDAP server. If you want to use LDAP,
set up your LDAP environment before configuring the DHCP server.
</p><p>
For more information about LDAP, see
Chapter <i>LDAP—A Directory Service</i> (↑Security Guide).
</p></td></tr></table></div><p>
The YaST DHCP module (<code class="systemitem">yast2-dhcp-server</code>)
allows you to set up your own DHCP server for the local network. The
module can run in wizard mode or expert configuration mode.
</p><div class="sect2" title="24.1.1. Initial Configuration (Wizard)"><div class="titlepage"><div><div><h3 class="title"><a name="sec.dhcp.yast.init"></a>24.1.1. Initial Configuration (Wizard)<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.dhcp.yast.init">¶</a></span></h3></div></div></div><p>
When the module is started for the first time, a wizard starts,
prompting you to make a few basic decisions concerning server
administration. Completing this initial setup produces a very basic
server configuration that should function in its essential aspects. The
expert mode can be used to deal with more advanced configuration tasks.
</p><div class="variablelist"><dl><dt><span class="term">Card Selection</span></dt><dd><p>
In the first step, YaST looks for the network interfaces available
on your system and displays them in a list. From the list, select the
interface to which the DHCP server should listen and click
<span class="guimenu">Select</span>. After this, select <span class="guimenu">Open Firewall
for Selected Interfaces</span> to open the firewall for this
interface, and click <span class="guimenu">Next</span>. See
<a class="xref" href="cha.dhcp.html#fig.yast2.dhcp.wiz1" title="Figure 24.1. DHCP Server: Card Selection">Figure 24.1, “DHCP Server: Card Selection”</a>.
</p><div class="figure"><a name="fig.yast2.dhcp.wiz1"></a><p class="title"><b>Figure 24.1. DHCP Server: Card Selection</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#fig.yast2.dhcp.wiz1">¶</a></span></p><div class="figure-contents"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="75%"><tr><td><img src="images/yast2_dhcp_wiz1.png" width="100%" alt="DHCP Server: Card Selection"></td></tr></table></div></div></div><br class="figure-break"></dd><dt><span class="term">Global Settings</span></dt><dd><p>
Use the check box to determine whether your DHCP settings should be
automatically stored by an LDAP server. In the entry fields, provide
the network specifics for all clients the DHCP server should manage.
These specifics are the domain name, address of a time server,
addresses of the primary and secondary name server, addresses of a
print and a WINS server (for a mixed network with both Windows and
Linux clients), gateway address, and lease time. See
<a class="xref" href="cha.dhcp.html#fig.yast2.dhcp.wiz2" title="Figure 24.2. DHCP Server: Global Settings">Figure 24.2, “DHCP Server: Global Settings”</a>.
</p><div class="figure"><a name="fig.yast2.dhcp.wiz2"></a><p class="title"><b>Figure 24.2. DHCP Server: Global Settings</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#fig.yast2.dhcp.wiz2">¶</a></span></p><div class="figure-contents"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="75%"><tr><td><img src="images/yast2_dhcp_wiz2.png" width="100%" alt="DHCP Server: Global Settings"></td></tr></table></div></div></div><br class="figure-break"></dd><dt><span class="term">Dynamic DHCP</span></dt><dd><p>
In this step, configure how dynamic IP addresses should be assigned
to clients. To do so, specify an IP range from which the server can
assign addresses to DHCP clients. All these addresses must be covered
by the same netmask. Also specify the lease time during which a
client may keep its IP address without needing to request an
extension of the lease. Optionally, specify the maximum lease
time—the period during which the server reserves an IP address
for a particular client. See <a class="xref" href="cha.dhcp.html#fig.yast2.dhcp.wiz3" title="Figure 24.3. DHCP Server: Dynamic DHCP">Figure 24.3, “DHCP Server: Dynamic DHCP”</a>.
</p><div class="figure"><a name="fig.yast2.dhcp.wiz3"></a><p class="title"><b>Figure 24.3. DHCP Server: Dynamic DHCP</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#fig.yast2.dhcp.wiz3">¶</a></span></p><div class="figure-contents"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="75%"><tr><td><img src="images/yast2_dhcp_wiz3.png" width="100%" alt="DHCP Server: Dynamic DHCP"></td></tr></table></div></div></div><br class="figure-break"></dd><dt><span class="term">Finishing the Configuration and Setting the Start Mode</span></dt><dd><p>
After the third part of the configuration wizard, a last dialog is
shown in which you can define how the DHCP server should be started.
Here, specify whether to start the DHCP server automatically when the
system is booted or manually when needed (for example, for testing
purposes). Click <span class="guimenu">Finish</span> to complete the
configuration of the server. See
<a class="xref" href="cha.dhcp.html#fig.yast2.dhcp.start" title="Figure 24.4. DHCP Server: Start-Up">Figure 24.4, “DHCP Server: Start-Up”</a>.
</p><div class="figure"><a name="fig.yast2.dhcp.start"></a><p class="title"><b>Figure 24.4. DHCP Server: Start-Up</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#fig.yast2.dhcp.start">¶</a></span></p><div class="figure-contents"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="75%"><tr><td><img src="images/yast2_dhcp_start.png" width="100%" alt="DHCP Server: Start-Up"></td></tr></table></div></div></div><br class="figure-break"></dd></dl></div></div></div><div class="sect1" title="24.2. DHCP Software Packages"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.dhcp.soft"></a>24.2. DHCP Software Packages<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.dhcp.soft">¶</a></span></h2></div></div></div><a class="indexterm" name="id488676"></a><p>
Both the DHCP server and the DHCP clients are available for
openSUSE. The DHCP server available is dhcpd (published by the
Internet Systems Consortium). On the client side, choose between two
different DHCP client programs: <code class="systemitem">dhcp-client</code>
(also from ISC) and the DHCP client daemon in the
<code class="systemitem">dhcpcd</code> package.
</p><p>
openSUSE installs dhcpcd by default. The program is very easy to
handle and is launched automatically on each system boot to watch for a
DHCP server. It does not need a configuration file to do its job and
works out of the box in most standard setups. For more complex
situations, use the ISC dhcp-client, which is controlled by means of the
configuration file <code class="filename">/etc/dhclient.conf</code>. <a class="indexterm" name="id488716"></a>
</p></div><div class="sect1" title="24.3. The DHCP Server dhcpd"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.dhcp.server"></a>24.3. The DHCP Server dhcpd<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.dhcp.server">¶</a></span></h2></div></div></div><a class="indexterm" name="id488738"></a><a class="indexterm" name="idx.dhcp_server"></a><a class="indexterm" name="idx.dhcp_dhcpd"></a><p>
The core of any DHCP system is the dynamic host configuration protocol
daemon. This server <span class="emphasis"><em>leases</em></span> addresses and watches how
they are used, according to the settings defined in the configuration
file <code class="filename">/etc/dhcpd.conf</code>. By changing the parameters and
values in this file, a system administrator can influence the program's
behavior in numerous ways. Look at the basic sample
<code class="filename">/etc/dhcpd.conf</code> file in
<a class="xref" href="cha.dhcp.html#dat.dhcp.conf" title="Example 24.1. The Configuration File /etc/dhcpd.conf">Example 24.1, “The Configuration File /etc/dhcpd.conf”</a>.
</p><div class="example"><a name="dat.dhcp.conf"></a><p class="title"><b>Example 24.1. The Configuration File /etc/dhcpd.conf</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#dat.dhcp.conf">¶</a></span></p><div class="example-contents"><pre class="screen">
default-lease-time 600; # 10 minutes
max-lease-time 7200; # 2 hours
option domain-name "example.com";
option domain-name-servers 192.168.1.116;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
subnet 192.168.2.0 netmask 255.255.255.0
{
range 192.168.2.10 192.168.2.20;
range 192.168.2.100 192.168.2.200;
}
</pre></div></div><br class="example-break"><p>
This simple configuration file should be sufficient to get the DHCP
server to assign IP addresses in the network. Make sure that a semicolon
is inserted at the end of each line, because otherwise dhcpd is not
started.
</p><p>
The sample file can be divided into three sections. The first one defines
how many seconds an IP address is leased to a requesting client by
default (<code class="literal">default-lease-time</code>) before it should apply
for renewal. This section also includes a statement of the maximum period
for which a machine may keep an IP address assigned by the DHCP server
without applying for renewal (<code class="literal">max-lease-time</code>).
</p><p>
In the second part, some basic network parameters are defined on a global
level:
</p><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
The line <code class="literal">option domain-name</code> defines the default
domain of your network.
</p></li><li class="listitem" style="list-style-type: disc"><p>
With the entry <code class="literal">option domain-name-servers</code>, specify
up to three values for the DNS servers used to resolve IP addresses
into hostnames and vice versa. Ideally, configure a name server on your
machine or somewhere else in your network before setting up DHCP. That
name server should also define a hostname for each dynamic address and
vice versa. To learn how to configure your own name server, read
<a class="xref" href="cha.dns.html" title="Chapter 23. The Domain Name System">Chapter 23, <i>The Domain Name System</i></a>.
</p></li><li class="listitem" style="list-style-type: disc"><p>
The line <code class="literal">option broadcast-address</code> defines the
broadcast address the requesting client should use.
</p></li><li class="listitem" style="list-style-type: disc"><p>
With <code class="literal">option routers</code>, set where the server should
send data packets that cannot be delivered to a host on the local
network (according to the source and target host address and the subnet
mask provided). In most cases, especially in smaller networks, this
router is identical to the Internet gateway.
</p></li><li class="listitem" style="list-style-type: disc"><p>
With <code class="literal">option subnet-mask</code>, specify the netmask
assigned to clients.
</p></li></ul></div><p>
The last section of the file defines a network, including a subnet mask.
To finish, specify the address range that the DHCP daemon should use to
assign IP addresses to interested clients. In
<a class="xref" href="cha.dhcp.html#dat.dhcp.conf" title="Example 24.1. The Configuration File /etc/dhcpd.conf">Example 24.1, “The Configuration File /etc/dhcpd.conf”</a>, clients may be given any address
between <code class="literal">192.168.2.10</code> and
<code class="literal">192.168.2.20</code> as well as
<code class="literal">192.168.2.100</code> and <code class="literal">192.168.2.200</code>.
</p><p>
After editing these few lines, you should be able to activate the DHCP
daemon with the command
<span class="command"><strong>rcdhcpd</strong></span> <code class="option">start</code>. It will be ready
for use immediately. Use the command
<span class="command"><strong>rcdhcpd</strong></span> <code class="option">check-syntax</code> to perform
a brief syntax check. If you encounter any unexpected problems with your
configuration (the server aborts with an error or does not return
<code class="literal">done</code> on start), you should be able to find out what
has gone wrong by looking for information either in the main system log
<code class="filename">/var/log/messages</code> or on console 10
(<span class="keycap">Ctrl</span>+<span class="keycap">Alt</span>+<span class="keycap">F10</span>).
</p><p>
On a default openSUSE system, the DHCP daemon is started in a chroot
environment for security reasons. The configuration files must be copied
to the chroot environment so the daemon can find them. Normally, there is
no need to worry about this because the command
<span class="command"><strong>rcdhcpd</strong></span> <code class="option">start</code> automatically
copies the files.
</p><a class="indexterm" name="id488996"></a><a class="indexterm" name="id489002"></a><div class="sect2" title="24.3.1. Clients with Fixed IP Addresses"><div class="titlepage"><div><div><h3 class="title"><a name="sec.dhcp.statip"></a>24.3.1. Clients with Fixed IP Addresses<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.dhcp.statip">¶</a></span></h3></div></div></div><a class="indexterm" name="id489017"></a><p>
DHCP can also be used to assign a predefined, static address to a
specific client. Addresses assigned explicitly always take priority over
dynamic addresses from the pool. A static address never expires in the
way a dynamic address would, for example, if there were not enough
addresses available and the server needed to redistribute them among
clients.
</p><p>
To identify a client configured with a static address, dhcpd uses the
hardware address (which is a globally unique, fixed numerical code
consisting of six octet pairs) for the identification of all network
devices (for example, <code class="literal">00:30:6E:08:EC:80</code>). If the respective
lines, like the ones in <a class="xref" href="cha.dhcp.html#dat.dhcp.conf.add" title="Example 24.2. Additions to the Configuration File">Example 24.2, “Additions to the Configuration File”</a>, are added
to the configuration file of <a class="xref" href="cha.dhcp.html#dat.dhcp.conf" title="Example 24.1. The Configuration File /etc/dhcpd.conf">Example 24.1, “The Configuration File /etc/dhcpd.conf”</a>, the DHCP
daemon always assigns the same set of data to the corresponding client.
</p><div class="example"><a name="dat.dhcp.conf.add"></a><p class="title"><b>Example 24.2. Additions to the Configuration File</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#dat.dhcp.conf.add">¶</a></span></p><div class="example-contents"><pre class="screen">host jupiter {
hardware ethernet 00:30:6E:08:EC:80;
fixed-address 192.168.2.100;
}</pre></div></div><br class="example-break"><p>
The name of the respective client (<code class="literal">host</code>
<em class="replaceable"><code>hostname</code></em>, here
<code class="systemitem">jupiter</code>) is entered in the first line and the MAC
address in the second line. On Linux hosts, find the MAC address with
the command <span class="command"><strong>ip <code class="option">link show</code></strong></span> followed by
the network device (for example, <code class="literal">eth0</code>). The output
should contain something like
</p><pre class="screen">link/ether 00:30:6E:08:EC:80</pre><p>
In the preceding example, a client with a network card having the MAC
address <code class="literal">00:30:6E:08:EC:80</code> is assigned the IP address
<code class="systemitem">192.168.2.100</code> and the hostname
<code class="literal">jupiter</code> automatically. The type of hardware to enter is
<code class="literal">ethernet</code> in nearly all cases, although
<code class="literal">token-ring</code>, which is often found on IBM systems, is
also supported.
</p></div><div class="sect2" title="24.3.2. The Version"><div class="titlepage"><div><div><h3 class="title"><a name="id489127"></a>24.3.2. The openSUSE Version<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#id489127">¶</a></span></h3></div></div></div><p>
To improve security, the openSUSE version of the ISC's DHCP server
comes with the non-root/chroot patch by Ari Edelkind applied. This
enables dhcpd to run with the user ID
<code class="systemitem">nobody</code> and run in a chroot
environment (<code class="filename">/var/lib/dhcp</code>). To make this possible,
the configuration file <code class="filename">dhcpd.conf</code> must be located
in <code class="filename">/var/lib/dhcp/etc</code>. The init script automatically
copies the file to this directory when starting.
</p><p>
Control the server's behavior regarding this feature by means of entries
in the file <code class="filename">/etc/sysconfig/dhcpd</code>. To run dhcpd
without the chroot environment, set the variable
<code class="systemitem">DHCPD_RUN_CHROOTED</code> in
<code class="filename">/etc/sysconfig/dhcpd</code> to <span class="quote">“<span class="quote">no</span>”</span>.
</p><p>
To enable dhcpd to resolve hostnames even from within the chroot
environment, some other configuration files must be copied as well:
</p><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
<code class="filename">/etc/localtime</code>
</p></li><li class="listitem" style="list-style-type: disc"><p>
<code class="filename">/etc/host.conf</code>
</p></li><li class="listitem" style="list-style-type: disc"><p>
<code class="filename">/etc/hosts</code>
</p></li><li class="listitem" style="list-style-type: disc"><p>
<code class="filename">/etc/resolv.conf</code>
</p></li></ul></div><p>
These files are copied to <code class="filename">/var/lib/dhcp/etc/</code> when
starting the init script. Take these copies into account for any changes
that they require if they are dynamically modified by scripts like
<code class="filename">/etc/ppp/ip-up</code>. However, there should be no need to
worry about this if the configuration file only specifies IP addresses
(instead of hostnames).
</p><p>
If your configuration includes additional files that should be copied
into the chroot environment, set these under the variable
<code class="systemitem">DHCPD_CONF_INCLUDE_FILES</code> in the file
<code class="filename">/etc/sysconfig/dhcpd</code>. To ensure that the DHCP
logging facility keeps working even after a restart of the syslog-ng
daemon, there is an additional entry
<code class="systemitem">SYSLOGD_ADDITIONAL_SOCKET_DHCP</code> in the file
<code class="filename">/etc/sysconfig/syslog</code>.
</p></div></div><div class="sect1" title="24.4. For More Information"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.dhcp.addinfo"></a>24.4. For More Information<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.dhcp.addinfo">¶</a></span></h2></div></div></div><p>
More information about DHCP is available at the Web site of the
<span class="emphasis"><em>Internet Systems Consortium</em></span>
(<a class="ulink" href="http://www.isc.org/products/DHCP/" target="_top">http://www.isc.org/products/DHCP/</a>). Information is
also available in the <code class="option">dhcpd</code>,
<code class="option">dhcpd.conf</code>, <code class="option">dhcpd.leases</code>, and
<code class="option">dhcp-options</code> man pages.
</p><a class="indexterm" name="id489316"></a></div></div><div class="navfooter"><table width="100%" summary="Navigation footer" border="0" class="bctable"><tr><td width="80%"><div class="breadcrumbs"><p><a href="index.html"> Documentation</a><span class="breadcrumbs-sep"> > </span><a href="book.opensuse.reference.html">Reference</a><span class="breadcrumbs-sep"> > </span><a href="part.reference.services.html">Services</a><span class="breadcrumbs-sep"> > </span><strong><a accesskey="p" title="Chapter 23. The Domain Name System" href="cha.dns.html"><span>◀</span></a> <a accesskey="n" title="Chapter 25. Time Synchronization with NTP" href="cha.netz.xntp.html"><span>▶</span></a></strong></p></div></td></tr></table></div></body></html>
ACC SHELL 2018