[BACK]Return to chap-inetd.html CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / htdocs / docs / guide / en

File: [cvs.NetBSD.org] / htdocs / docs / guide / en / chap-inetd.html (download) (as text)

Revision 1.25, Thu Dec 28 05:59:43 2017 UTC (6 years, 3 months ago) by snj
Branch: MAIN
Changes since 1.24: +35 -35 lines

regen

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Chapter5. Ôhe Internet Super Server inetd</title>
<link rel="stylesheet" type="text/css" href="/global.css">
<meta name="generator" content="DocBook XSL Stylesheets VX.X.X">
<link rel="home" href="index.html" title="The NetBSD Guide">
<link rel="up" href="part-net.html" title="Part ÉV. Îetworking and related issues">
<link rel="prev" href="chap-net-practice.html" title="Chapter4. Óetting up TCP/IP on NetBSD in practice">
<link rel="next" href="chap-dns.html" title="Chapter6. Ôhe Domain Name System">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Chapter5. Ôhe Internet Super Server inetd</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="chap-net-practice.html">Prev</a>/td>
<th width="60%" align="center">Part ÉV. Îetworking and related issues</th>
<td width="20%" align="right">a accesskey="n" href="chap-dns.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="chap-inetd"></a>Chapter5. Ôhe Internet Super Server inetd</h2></div></div></div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl class="toc">
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-overview">25.1. Overview</a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-whats-inetd">25.2. What is inetd?</a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-inetd">25.3. Configuring inetd - <code class="filename">/etc/inetd.conf</code></a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-services">25.4. Services - <code class="filename">/etc/services</code></a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-protocols">25.5. Protocols - <code class="filename">/etc/protocols</code></a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-rpc">25.6. Remote Procedure Calls (RPC) - <code class="filename">/etc/rpc</code></a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-tcpwrap">25.7. Allowing and denying hosts
      - <code class="filename">/etc/hosts.{allow,deny}</code></a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-adding-service">25.8. Adding a Service</a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-use-or-not-use">25.9. When to use or not to use inetd</a></span></dt>
<dt><span class="sect1"><a href="chap-inetd.html#chap-inetd-resources">25.10. Other Resources</a></span></dt>
</dl>
</div>
<p>The "internet super server", or <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>, is available on all
    Unix(like) systems, providing many of the basic network services
    available. This chapter describes the relationship between the
    daemon and several of the config files in the
    <code class="filename">/etc/</code> directory.</p>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-overview"></a>25.1. Ïverview</h2></div></div></div>
<p>In this document we will look at a simple definition of
      <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>,
      how several files that relate to <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> work (not that these
      files are not related to other software), how to add a service
      to <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> and some considerations both to use <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> for a
      particular service and times when a service might be better
      off running outside of <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>.</p>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-whats-inetd"></a>25.2. ×hat is inetd?</h2></div></div></div>
<p>In traditional Unix scenarios, one server (daemon) process
      watches for connections on a particular port, and handles
      incoming requests. Now if a machine offers many services, many
      daemon processes would be needed, mostly running idle but still
      wasting resources like memory. The internet super server,
      inetd, is an approach to this problem. It listens on a number of
      ports, and when it receives a request it then determines which
      program to run to handle the request and starts an instance of
      that program.</p>
<p>Following is a very simple diagram to illustrate
      <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>:</p>
<div class="literallayout"><p>  pop3  ------  |<br>
                |<br>
  ftpd------  | ÉNETD ü--- Énternet ÄMZ Ówitch ×hatever<br>
                |<br>
 ãvsupserver  |</p></div>
<p>In the above diagram you can see the general idea. The
      <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> process receives a request and then starts the
      appropriate server process. What <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> is doing is
      software multiplexing.  An important note here, regarding
      security: On many other UNIX-like systems, a package called
      tcpwrappers is used as a security enhancement for
      <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>. On NetBSD the tcpwrapper functionality is built
      into <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> using libwrap.</p>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-inetd"></a>25.3. Ãonfiguring inetd - <code class="filename">/etc/inetd.conf</code>
</h2></div></div></div>
<p>The operation of <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> is controlled by its own config
      file, surprisingly named <code class="filename">/etc/inetd.conf</code>,
      see <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd.conf+5.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd.conf</span>(5)</span></a>.
      The <code class="filename">inetd.conf</code> file basically provides
      enabling and mapping of services the systems administrator
      would like to have multiplexed through <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>, indicating
      which program should be started for incoming requests on which
      port. </p>
<p><a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd.conf+5.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd.conf</span>(5)</span></a> is an ascii file containing one service per
      line, and several fields per line. The basic field layout is:</p>
<pre class="programlisting">service-name socket-type protocol wait/nowait user:group server-program arguments</pre>
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">service-name:</span></dt>
<dd><p>The service name indicates the port <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> should
            listen on. It is either a decimal number, or a name
	    matching a service name given in
            <code class="filename">/etc/services</code>.</p></dd>
<dt><span class="term">socket-type:</span></dt>
<dd><p>The communications socket type, the different types are
            "stream" for a TCP stream, "dgram" for an UDP service,
            "raw" for a raw socket, "rdm" for reliably delivered
            message and "seqpacket" for a sequenced packet socket. The
            most common socket types are "stream" and "dgram".</p></dd>
<dt><span class="term">protocol</span></dt>
<dd><p>The protocol used, mostly "tcp", "tcp6", "udp" and "udp6"
            for stream-oriented services via the Transmission Control
            Protocol, or datagram-oriented services via the User
            Datagram Protocol.  It is worth noting that "tcp" and
            "udp" mean they use the default (currently IPv4), "tcp4"
            specifically means communication via IPv4 only, and "tcp6"
            and "udp6" are IPv6-only. In addition to those, protocols
            based on Remote Procedure Calls (<acronym class="acronym">RPC</acronym>)
            can be specified as either "rpc/tcp" or "rpc/udp".</p></dd>
<dt><span class="term">wait/nowait</span></dt>
<dd><p>This field tells <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> if it should wait for a server
            program to return or to continue processing new connections
            immediately. Many connections to server processes require
            answers after data transfers are complete, where other types
            can keep transmitting on a connection continuously, the
            latter is a "nowait" and the former "wait". In most cases,
            this entry corresponds to the socket-type, for example
            a streaming connection would (most of the time) have a
            "nowait" value in this field.</p></dd>
<dt><span class="term">user[:group]</span></dt>
<dd><p>This field gives the user name and optionally a group name
            that the server process which <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> starts up runs
            as.</p></dd>
<dt><span class="term">server-program</span></dt>
<dd><p>This field is the full path of the program that gets started.</p></dd>
<dt><span class="term">program-arguments</span></dt>
<dd><p>This field contains the argument vector argv[] of the
            program started, including the program name and additional
            arguments the systems administrator may need to specify
            for the server program that is started.</p></dd>
</dl></div>
<p>That is all a lot to digest and there are other things the
      systems administrator can do with some of the fields. Here is a
      sample line from an <code class="filename">inetd.conf</code> file:</p>
<pre class="programlisting">ftp       stream  tcp    nowait  root   /usr/libexec/ftpd    ftpd -ll</pre>
<p>From the left, the service-name is "ftp", socket-type is "stream",
      protocol is "tcp", <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> won't wait for the server
      process to terminate ("nowait"), the process runs as user "root",
      path is <code class="filename">/usr/libexec/ftpd</code> and program name
      and arguments are "ftpd -ll".
      Notice in the last field, the program name is different
      from the service-name.</p>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-services"></a>25.4. Óervices - <code class="filename">/etc/services</code>
</h2></div></div></div>
<p>The next file to consider is the service name data base that can
      be found in <code class="filename">/etc/services</code>. This file
      basically contains information mapping a service name to a port
      number. The format of the <code class="filename">/etc/services</code>
      file is: </p>
<pre class="programlisting">service-name port-number/protocol-name [aliases]</pre>
<p>"service-name" is the name of the service, "port-number" is the
      port number assigned to the service, "protocol-name" is either
      "tcp" or "udp", and if alias names for a port are needed, they
      can be added as "aliases", separated by white spaces. Comments
      may be added after a hash mark (#). </p>
<p>Let's take a look at the "ssh" entries as an example:</p>
<pre class="programlisting">ssh             22/tcp           # Secure Shell
ssh             22/udp</pre>
<p>As we can see, from the left, the service name is "ssh",
      the port number is "22", the protocols are both "tcp" and "udp".
      Notice that there is a separate entry for every protocol a
      service can use (even on the same port).</p>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-protocols"></a>25.5. Ðrotocols - <code class="filename">/etc/protocols</code>
</h2></div></div></div>
<p>Another file read by <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> is
      <code class="filename">/etc/protocols</code>. This file has the information
      pertaining to DARPA Internet protocols.
      The format of the protocols name data base is:</p>
<pre class="programlisting">protocol-name number [aliases]</pre>
<p>where "protocol-name" describes the payload of an IP packet,
      e.g. "tcp" or "udp". "number" is the official protocol number
      assigned by IANA, and optional alias names can be added after
      that. </p>
<p>Let's look at the seventh entry in the
      <code class="filename">/etc/protocols</code>
      db as an example:</p>
<pre class="programlisting">tcp     6       TCP             # transmission control protocol</pre>
<p>Starting from the left, we see that the protocol name is "tcp",
      the number is "6" and the only aliases listed is "TCP",
      belonging to the Transmission Control Protocol as indicated by
      the comment in that line. </p>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-rpc"></a>25.6. Òemote Procedure Calls (RPC) - <code class="filename">/etc/rpc</code>
</h2></div></div></div>
<p>The rpc program number data base used by services with the "rpc"
      protocol type in <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd.conf+5.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd.conf</span>(5)</span></a> is kept in
      <code class="filename">/etc/rpc</code> and contains name mappings to rpc
      program numbers. The format of the file is:</p>
<pre class="programlisting">server-name program-number aliases</pre>
<p>For example, here is the nfs entry:</p>
<pre class="programlisting">nfs             100003  nfsprog</pre>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-tcpwrap"></a>25.7. Állowing and denying hosts
      - <code class="filename">/etc/hosts.{allow,deny}</code>
</h2></div></div></div>
<p>As mentioned above, NetBSD's <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> has the tcpwrapper
      package built in via the libwrap library. As such, <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>
      can allow or deny access to each service on a more fine-grained
      base than just allowing a service to everyone, or not enabling
      it at all. The access control is defined in the files
      <code class="filename">/etc/hosts.allow</code> and
      <code class="filename">/etc/hosts.deny</code>, see the
      <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?hosts_access+5.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">hosts_access</span>(5)</span></a> manpage. </p>
<p>Each of the two files contains several lines that describe
      access restrictions for a certain server. Access is allowed if
      permission is given in <code class="filename">/etc/hosts.allow</code>. If
      the service is not listened in
      <code class="filename">/etc/hosts.allow</code> but in
      <code class="filename">/etc/hosts.deny</code>, it is denied. If a service
      is listed in neither file, it is allowed, giving standard
      <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> behaviour. </p>
<p>Each line in <code class="filename">/etc/hosts.allow</code> and
      <code class="filename">/etc/hosts.deny</code> contains a service either
      by name (as given in the field for argv[0] in
      <code class="filename">/etc/inetd.conf</code>, e.g. "ftpd" instead of
      "ftp"), or the special service "ALL" which obviously applies to
      all services. Following the service name is - separated by a
      colon - a number of access restrictions, which can be hostnames,
      domains, single IP addresses, whole IP subnets or some other
      restrictions, please check <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?hosts_access+5.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">hosts_access</span>(5)</span></a> for all the
      details.</p>
<p>An example configuration that is mostly open but denies access
      to services to a certain host and all machines from a certain
      domain would look like this:</p>
<pre class="programlisting"># /etc/hostname.deny:
ALL: some.host.name, .some.domain</pre>
<p>Another example that would be mostly closed, denying access to
      all but very few machines would need entries in both
      <code class="filename">/etc/hosts.allow</code> and
      <code class="filename">/etc/hosts.deny</code>. The entry for
      <code class="filename">/etc/hosts.deny</code> would be:</p>
<pre class="programlisting"># /etc/hosts.deny
ALL: ALL</pre>
<p>The entry to allow a few hosts would be put into
      <code class="filename">/etc/hosts.allow</code>: </p>
<pre class="programlisting"># /etc/hosts.allow
ALL: friend.host.domain otherfriend.otherhost.otherdomain</pre>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-adding-service"></a>25.8. Ádding a Service</h2></div></div></div>
<p>Many times a systems administrator will find that they need
      to add a service to their system that is not already in
      <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> or they may wish to move a service to it because it
      does not get very much traffic. This is usually pretty
      simple, so as an example we will look at adding a version
      of POP3 on a NetBSD system.</p>
<p>In this case we have retrieved and installed the "cucipop"
      package, which can be found in
      <code class="filename">pkgsrc/mail/cucipop</code>.
      This server is pretty simple to use, the only oddities are
      different path locations. Since it is POP3 we know it is a
      stream oriented connection with "nowait". Running as "root" will
      be fine, the only item that is different is the location of the
      program and the name of the program itself.</p>
<p>So the first half of the new entry in
      <code class="filename">/etc/inetd.conf</code> looks like this: </p>
<pre class="programlisting">pop3   stream  tcp     nowait  root</pre>
<p>After installation, pkgsrc deposited cucipop in
      <code class="filename">/usr/pkg/sbin/cucipop</code>.
      So with the next field we have:</p>
<pre class="programlisting">pop3   stream  tcp     nowait  root /usr/pkg/sbin/cucipop</pre>
<p>Last, we want to use the Berkeley mailbox format,
      so our server program must be called with the
      <code class="option">-Y</code> option.
      This leaves the entire entry looking like so:</p>
<pre class="programlisting">pop3   stream  tcp     nowait  root /usr/pkg/sbin/cucipop cucipop -Y</pre>
<p>We have added the service named "pop3" to
      <code class="filename">/etc/inetd.conf</code>. Next item to check is that
      the system can map the service name to a port number in
      <code class="filename">/etc/services</code>:</p>
<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>grep ^pop3 /etc/services</code></strong>
pop3            110/tcp         # POP version 3
pop3            110/udp
pop3s           995/tcp                 # pop3 protocol over TLS/SSL (was spop3)
pop3s           995/udp                 # pop3 protocol over TLS/SSL (was spop3)</pre>
<p>The "pop3" entries here are of interest, i.e. they are already
      contained in the <code class="filename">/etc/services</code> file shipped
      with NetBSD.</p>
<p>Now, to have <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> use the new entry, we simply restart
      it using the rc script:</p>
<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>sh /etc/rc.d/inetd restart</code></strong></pre>
<p>All done, in most cases, the software you are using has
      documentation that will specify the entry, in the off case
      it does not, sometimes it helps to try and find something
      similar to the server program you will be adding. A
      classic example of this is a MUD server which has built-in telnet.
      You can pretty much borrow the telnet entry and change parts
      where needed.</p>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-use-or-not-use"></a>25.9. ×hen to use or not to use inetd</h2></div></div></div>
<p>The decision to add or move a service into or out of <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>
      is usually based on server load. As an example,
      on most systems the telnet daemon does not require as
      many new connections as say a mail server. Most of the
      time the administrator has to feel out if a service should be moved.</p>
<p>A good example I have seen is mail services such as smtp and pop.
      I had setup a mail server in which pop3 was in <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> and
      exim was running in standalone, I mistakenly assumed it
      would run fine since there was a low amount of users,
      namely myself and a diagnostic account. The server was also
      setup to act as a backup MX and relay in case another
      heavily used one went down. When I ran some tests I
      discovered a huge time lag for pop connections remotely.
      This was because of my steady fetching of mail and the
      diagnostic user constantly mailing diagnostics back and forth.
      In the end I had to move the pop3 service out of <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>.</p>
<p>The reason for moving the service is actually quite interesting.
      When a particular service becomes heavily used, of course,
      it causes a load on the system. In the case of a service
      that runs within the <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> meta daemon the effects of a heavily
      loaded service can also harm other services that use <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>.
      If the multiplexor is getting too many requests for one
      particular service, it will begin to affect the performance of
      other services that use <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>. The fix, in a situation like
      that, is to make the offending service run outside of <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>
      so the response time of both the service and <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?inetd+8.i386+NetBSD-7.1.1"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a> will increase.</p>
</div>
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="chap-inetd-resources"></a>25.10. Ïther Resources</h2></div></div></div>
<p>Following is some additional reading and information
      about topics covered in this document.</p>
<p>NetBSD manual pages:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><a class="ulink" href="http://netbsd.gw.com/cgi-bin/man-cgi/man?inetd+8+NetBSD-current" target="_top">inetd(8)</a></p></li>
<li class="listitem"><p><a class="ulink" href="http://netbsd.gw.com/cgi-bin/man-cgi/man?protocols+5+NetBSD-current" target="_top">protocols(5)</a></p></li>
<li class="listitem"><p><a class="ulink" href="http://netbsd.gw.com/cgi-bin/man-cgi/man?rpc+5+NetBSD-current" target="_top">rpc(5)</a></p></li>
<li class="listitem"><p><a class="ulink" href="http://netbsd.gw.com/cgi-bin/man-cgi/man?services+5+NetBSD-current" target="_top">services(5)</a></p></li>
<li class="listitem"><p><a class="ulink" href="http://netbsd.gw.com/cgi-bin/man-cgi/man?hosts_access+5+NetBSD-current" target="_top">hosts_access(5)</a></p></li>
</ul></div>
<p>Miscellaneous links:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><a class="ulink" href="http://www.iana.org/numbers.htm" target="_top">IANA: Protocol Numbers and Assignment Services</a></p></li>
<li class="listitem"><p><a class="ulink" href="http://www.isi.edu/in-notes/rfc1700.txt" target="_top">RFC1700: Assigned Numbers</a></p></li>
</ul></div>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="chap-net-practice.html">Prev</a>/td>
<td width="20%" align="center"><a accesskey="u" href="part-net.html">Up</a></td>
<td width="40%" align="right">a accesskey="n" href="chap-dns.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Chapter4. Óetting up TCP/IP on NetBSD in practice/td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> Ãhapter6. Ôhe Domain Name System</td>
</tr>
</table>
</div>
</body>
</html>