docs/143041: doc/en__US.ISO8859-1 refers to slip, slirp, slattach and pppd

Robert Jenssen robertjenssen at ozemail.com.au
Thu Jan 21 00:40:02 UTC 2010


>Number:         143041
>Category:       docs
>Synopsis:       doc/en__US.ISO8859-1 refers to slip, slirp, slattach and pppd
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 21 00:40:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Robert Jenssen
>Release:        8-STABLE
>Organization:
>Environment:
FreeBSD kraken 8.0-STABLE FreeBSD 8.0-STABLE #0: Wed Jan 20 07:40:20 EST 2010     root at kraken:/usr/obj/usr/src/sys/KRAKEN  i386
>Description:
slip, slirp, slattach and pppd have been removed from FreeBSD but they are still referred to in the documentation.

(There are still references to slip, slirp, slattach and pppd under /usr/src.)
>How-To-Repeat:

>Fix:
I have attached patches for 
en_US.ISO8859-1/articles/dialup-firewall/article.sgml
en_US.ISO8859-1/books/faq/book.sgml
en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
en_US.ISO8859-1/books/handbook/preface/preface.sgml

Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	article.sgml.diff
#	book.sgml.diff
#	chapter.sgml.diff
#	preface.sgml.diff
#
echo x - article.sgml.diff
sed 's/^X//' >article.sgml.diff << '2523653e9c26f6a06853ddd875789c39'
X*** orig/en_US.ISO8859-1/articles/dialup-firewall/article.sgml	2010-01-21 10:25:12.000000000 +1100
X--- new/en_US.ISO8859-1/articles/dialup-firewall/article.sgml	2010-01-21 10:37:14.000000000 +1100
X***************
X*** 269,304 ****
X  	    <devicename>tun1</devicename>, <devicename>tun2</devicename> and so
X  	    on.</para>
X  
X! 	  <para>You should also note that &man.pppd.8; uses the
X! 	    <devicename>ppp0</devicename> interface instead, so if you
X! 	    start the connection with &man.pppd.8; you must substitute
X! 	    <devicename>tun0</devicename> for
X! 	    <devicename>ppp0</devicename>.  A quick way to edit the
X! 	    firewall rules to reflect this change is shown below. The
X! 	    original rule set is backed up as
X! 	    <filename>fwrules_tun0</filename>.</para>
X! 
X! 	  <screen>	    &prompt.user; <userinput>cd /etc/firewall</userinput>
X! 	    /etc/firewall&prompt.user; <userinput>su</userinput>
X! 	    <prompt>Password:</prompt>
X! 	    /etc/firewall&prompt.root; <userinput>mv fwrules fwrules_tun0</userinput>
X! 	    /etc/firewall&prompt.root; <userinput>cat fwrules_tun0 | sed s/tun0/ppp0/g > fwrules</userinput>
X! 	  </screen>
X! 
X! 	  <para>To know whether you are currently using &man.ppp.8; or
X! 	    &man.pppd.8; you can examine the output of
X! 	    &man.ifconfig.8; once the connection is up. E.g., for a
X! 	    connection made with &man.pppd.8; you would see something
X! 	    like this (showing only the relevant lines):</para>
X! 
X! 	  <screen>	    &prompt.user; <userinput>ifconfig</userinput>
X! 	    <emphasis>(skipped...)</emphasis>
X! 	    ppp0: flags=<replaceable>8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524</replaceable>
X!                     inet <replaceable>xxx.xxx.xxx.xxx</replaceable> --> <replaceable>xxx.xxx.xxx.xxx</replaceable> netmask <replaceable>0xff000000</replaceable>
X! 	    <emphasis>(skipped...)</emphasis>
X! 	    </screen>
X! 
X! 	  <para>On the other hand, for a connection made with
X  	    &man.ppp.8; (<emphasis>user-ppp</emphasis>) you should see
X  	    something similar to this:</para>
X  
X--- 269,275 ----
X  	    <devicename>tun1</devicename>, <devicename>tun2</devicename> and so
X  	    on.</para>
X  
X! 	  <para>For a connection made with
X  	    &man.ppp.8; (<emphasis>user-ppp</emphasis>) you should see
X  	    something similar to this:</para>
X  
2523653e9c26f6a06853ddd875789c39
echo x - book.sgml.diff
sed 's/^X//' >book.sgml.diff << 'c0b1393dc42e3eff0b4aab955f5d387c'
X*** orig/en_US.ISO8859-1/books/faq/book.sgml	2010-01-21 10:25:12.000000000 +1100
X--- new/en_US.ISO8859-1/books/faq/book.sgml	2010-01-21 10:48:32.000000000 +1100
X***************
X*** 7687,7715 ****
X        </qandaentry>
X  
X        <qandaentry>
X! 	<question id="slip-ppp-support">
X! 	  <para>Does &os; support SLIP and PPP?</para>
X  	</question>
X  
X  	<answer>
X! 	  <para>Yes.  See the manual pages for &man.slattach.8;,
X! 	    &man.sliplogin.8;, &man.ppp.8;, and &man.pppd.8;.
X! 	    &man.ppp.8; and &man.pppd.8; provide support for both
X! 	    incoming and outgoing connections, while &man.sliplogin.8;
X! 	    deals exclusively with incoming connections, and
X! 	    &man.slattach.8; deals exclusively with outgoing
X! 	    connections.</para>
X  
X  	  <para>For more information on how to use these, please see the
X  	    <ulink
X! 	      url="&url.books.handbook;/ppp-and-slip.html">Handbook chapter on PPP and SLIP</ulink>.
X  	    </para>
X- 
X- 	  <para>If you only have access to the Internet through a
X- 	    <quote>shell account</quote>, you may want to have a look at
X- 	    the <filename role="package">net/slirp</filename> package.
X- 	    It can provide you with (limited) access to services such as
X- 	    ftp and http direct from your local machine.</para>
X  	</answer>
X        </qandaentry>
X  
X--- 7687,7705 ----
X        </qandaentry>
X  
X        <qandaentry>
X! 	<question id="ppp-support">
X! 	  <para>Does &os; support PPP?</para>
X  	</question>
X  
X  	<answer>
X! 	  <para>Yes.  See the manual pages for &man.ppp.8;.
X! 	    &man.ppp.8; provides support for both
X! 	    incoming and outgoing connections.</para>
X  
X  	  <para>For more information on how to use these, please see the
X  	    <ulink
X! 	      url="&url.books.handbook;/ppp.html">Handbook chapter on PPP</ulink>.
X  	    </para>
X  	</answer>
X        </qandaentry>
X  
X***************
X*** 8956,8963 ****
X  	  <para>This normally happens on server machines with slow disks
X  	    that are spawning a &man.getty.8; on the port, and executing
X  	    &man.ppp.8; from a login script or program after login.
X! 	    There were reports of it happening consistently when using
X! 	    slirp.  The reason is that in the time taken between
X  	    &man.getty.8; exiting and &man.ppp.8; starting, the
X  	    client-side &man.ppp.8; starts sending Line Control Protocol
X  	    (LCP) packets.  Because ECHO is still switched on for the
X--- 8946,8952 ----
X  	  <para>This normally happens on server machines with slow disks
X  	    that are spawning a &man.getty.8; on the port, and executing
X  	    &man.ppp.8; from a login script or program after login.
X! 	    The reason is that in the time taken between
X  	    &man.getty.8; exiting and &man.ppp.8; starting, the
X  	    client-side &man.ppp.8; starts sending Line Control Protocol
X  	    (LCP) packets.  Because ECHO is still switched on for the
X***************
X*** 9719,9725 ****
X      <title>Serial Communications</title>
X  
X      <para>This section answers common questions about serial
X!       communications with &os;.  PPP and SLIP are covered in the <link
X        linkend="networking">Networking</link> section.</para>
X  
X      <qandaset>
X--- 9708,9714 ----
X      <title>Serial Communications</title>
X  
X      <para>This section answers common questions about serial
X!       communications with &os;.  PPP is covered in the <link
X        linkend="networking">Networking</link> section.</para>
X  
X      <qandaset>
c0b1393dc42e3eff0b4aab955f5d387c
echo x - chapter.sgml.diff
sed 's/^X//' >chapter.sgml.diff << 'caa8c35a33a0bbab5ed23ad5917fd940'
X*** orig/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml	2010-01-21 10:25:12.000000000 +1100
X--- new/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml	2010-01-21 10:35:57.000000000 +1100
X***************
X*** 4,10 ****
X       $FreeBSD: doc/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.192 2009/02/01 09:38:25 manolis Exp $
X  -->
X  
X! <chapter id="ppp-and-slip">
X    <chapterinfo>
X      <authorgroup>
X        <author>
X--- 4,10 ----
X       $FreeBSD: doc/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.192 2009/02/01 09:38:25 manolis Exp $
X  -->
X  
X! <chapter id="ppp">
X    <chapterinfo>
X      <authorgroup>
X        <author>
X***************
X*** 16,36 ****
X      </authorgroup>
X    </chapterinfo>
X  
X!   <title>PPP and SLIP</title>
X  
X!   <sect1 id="ppp-and-slip-synopsis">
X      <title>Synopsis</title>
X      <indexterm id="ppp-ppp">
X        <primary>PPP</primary>
X      </indexterm>
X-     <indexterm id="ppp-slip">
X-       <primary>SLIP</primary>
X-     </indexterm>
X  
X      <para>FreeBSD has a number of ways to link one computer to
X        another.  To establish a network or Internet connection through a
X        dial-up modem, or to allow others to do so through you, requires
X!       the use of PPP or SLIP.  This chapter describes setting up
X        these modem-based communication services in detail.</para>
X  
X      <para>After reading this chapter, you will know:</para>
X--- 16,33 ----
X      </authorgroup>
X    </chapterinfo>
X  
X!   <title>PPP</title>
X  
X!   <sect1 id="ppp-synopsis">
X      <title>Synopsis</title>
X      <indexterm id="ppp-ppp">
X        <primary>PPP</primary>
X      </indexterm>
X  
X      <para>FreeBSD has a number of ways to link one computer to
X        another.  To establish a network or Internet connection through a
X        dial-up modem, or to allow others to do so through you, requires
X!       the use of PPP.  This chapter describes setting up
X        these modem-based communication services in detail.</para>
X  
X      <para>After reading this chapter, you will know:</para>
X***************
X*** 40,48 ****
X  	<para>How to set up user PPP.</para>
X        </listitem>
X        <listitem>
X- 	<para>How to set up kernel PPP.</para>
X-       </listitem>
X-       <listitem>
X  	<para>How to set up <acronym>PPPoE</acronym> (PPP over
X  	  Ethernet).</para>
X        </listitem>
X--- 37,42 ----
X***************
X*** 50,69 ****
X  	<para>How to set up <acronym>PPPoA</acronym> (PPP over
X  	  ATM).</para>
X  	</listitem>
X-       <listitem>
X- 	<para>How to configure and set up a SLIP client and
X- 	  server.</para>
X-       </listitem>
X      </itemizedlist>
X  
X      <indexterm id="ppp-ppp-user">
X        <primary>PPP</primary>
X        <secondary>user PPP</secondary>
X      </indexterm>      
X-     <indexterm id="ppp-ppp-kernel">
X-       <primary>PPP</primary>
X-       <secondary>kernel PPP</secondary>
X-     </indexterm>      
X      <indexterm id="ppp-ppp-ethernet">
X        <primary>PPP</primary>
X        <secondary>over Ethernet</secondary>
X--- 44,55 ----
X***************
X*** 77,83 ****
X        </listitem>
X        <listitem>
X  	<para>Understand the basics and purpose of a dialup connection
X! 	  and PPP and/or SLIP.</para>
X        </listitem>
X      </itemizedlist>
X  
X--- 63,69 ----
X        </listitem>
X        <listitem>
X  	<para>Understand the basics and purpose of a dialup connection
X! 	  and PPP.</para>
X        </listitem>
X      </itemizedlist>
X  
X***************
X*** 87,100 ****
X        This is expensive in terms of copying the data between the kernel
X        and userland, but allows a far more feature-rich PPP implementation.
X        User PPP uses the <devicename>tun</devicename> device to communicate
X!       with the outside world whereas kernel PPP uses the
X!       <devicename>ppp</devicename> device.</para>
X  
X      <note>
X        <para>Throughout in this chapter, user PPP will simply be
X  	referred to as <application>ppp</application> unless a distinction
X! 	needs to be made between it and any other PPP software such as
X! 	<application>pppd</application>.  Unless otherwise stated, all of
X  	the commands explained in this chapter should be executed as
X  	<username>root</username>.</para>
X      </note>
X--- 73,85 ----
X        This is expensive in terms of copying the data between the kernel
X        and userland, but allows a far more feature-rich PPP implementation.
X        User PPP uses the <devicename>tun</devicename> device to communicate
X!       with the outside world.</para>
X  
X      <note>
X        <para>Throughout in this chapter, user PPP will simply be
X  	referred to as <application>ppp</application> unless a distinction
X! 	needs to be made between it and any other PPP software. 
X!   Unless otherwise stated, all of
X  	the commands explained in this chapter should be executed as
X  	<username>root</username>.</para>
X      </note>
X***************
X*** 255,262 ****
X  	  <secondary>configuration</secondary>
X  	</indexterm>
X  
X! 	<para>Both <command>ppp</command> and <command>pppd</command>
X! 	  (the kernel level implementation of PPP) use the configuration
X  	  files located in the <filename class="directory">/etc/ppp</filename> directory.
X            Examples for user ppp can be found in
X            <filename class="directory">/usr/share/examples/ppp/</filename>.</para>
X--- 240,246 ----
X  	  <secondary>configuration</secondary>
X  	</indexterm>
X  
X! 	<para><command>ppp</command> uses the configuration
X  	  files located in the <filename class="directory">/etc/ppp</filename> directory.
X            Examples for user ppp can be found in
X            <filename class="directory">/usr/share/examples/ppp/</filename>.</para>
X***************
X*** 1305,1797 ****
X      </sect2>
X    </sect1>
X  
X-   <sect1 id="ppp">
X-     <sect1info>
X-       <authorgroup>
X-         <author>
X-           <firstname>Gennady B.</firstname>
X-           <surname>Sorokopud</surname>
X-           <contrib>Parts originally contributed by </contrib>
X-         </author>
X-         <author>
X-           <firstname>Robert</firstname>
X-           <surname>Huff</surname>
X-         </author>
X-       </authorgroup>
X-     </sect1info>
X- 
X-     <title>Using Kernel PPP</title>
X- 
X-     <sect2>
X-       <title>Setting Up Kernel PPP</title>
X- 
X-       <indexterm>
X- 	<primary>PPP</primary>
X- 	<secondary>kernel PPP</secondary>
X-       </indexterm>
X- 
X-       <para>Before you start setting up PPP on your machine, make sure
X- 	that <command>pppd</command> is located in
X- 	<filename class="directory">/usr/sbin</filename> and the directory
X- 	<filename class="directory">/etc/ppp</filename> exists.</para>
X- 
X-       <para><command>pppd</command> can work in two modes:</para>
X- 
X-       <orderedlist>
X- 	<listitem>
X- 	  <para>As a <quote>client</quote> — you want to connect your
X- 	    machine to the outside world via a PPP serial connection or
X- 	    modem line.</para>
X- 	</listitem>
X- 
X-         <indexterm>
X- 	  <primary>PPP</primary>
X- 	  <secondary>server</secondary>
X- 	</indexterm>
X- 
X- 	<listitem>
X- 	  <para>As a <quote>server</quote> — your machine is located on
X- 	    the network, and is used to connect other computers using
X- 	    PPP.</para>
X- 	</listitem>
X-       </orderedlist>
X- 
X-       <para>In both cases you will need to set up an options file
X-         (<filename>/etc/ppp/options</filename> or
X- 	<filename>~/.ppprc</filename> if you have more than one user on
X- 	your machine that uses PPP).</para>
X- 
X-       <para>You will also need some modem/serial software (preferably
X- 	<filename role="package">comms/kermit</filename>), so you can dial and
X- 	establish a connection with the remote host.</para>
X-     </sect2>
X- 
X-     <sect2>
X-       <sect2info>
X- 	<authorgroup>
X- 	  <author>
X- 	    <firstname>Trev</firstname>
X- 	    <surname>Roydhouse</surname>
X- 	    <contrib>Based on information provided by </contrib>
X- 	    <!-- Trev.Roydhouse at f401.n711.z3.fidonet.org -->
X- 	  </author>
X- 	</authorgroup>
X-       </sect2info>
X- 	    
X-       <title>Using <command>pppd</command> as a Client</title>
X- 
X-       <indexterm>
X- 	<primary>PPP</primary>
X- 	<secondary>client</secondary>
X-       </indexterm>
X- 
X-       <indexterm>
X- 	<primary>Cisco</primary>
X-       </indexterm>
X- 
X-       <para>The following <filename>/etc/ppp/options</filename> might be
X-         used to connect to a Cisco terminal server PPP line.</para>
X- 
X-       <programlisting>crtscts         # enable hardware flow control
X- modem           # modem control line
X- noipdefault     # remote PPP server must supply your IP address
X-                 # if the remote host does not send your IP during IPCP
X-                 # negotiation, remove this option
X- passive         # wait for LCP packets
X- domain ppp.foo.com      # put your domain name here
X- 
X- :<replaceable>remote_ip</replaceable>    # put the IP of remote PPP host here
X-                 # it will be used to route packets via PPP link
X-                 # if you didn't specified the noipdefault option
X-                 # change this line to <replaceable>local_ip</replaceable>:<replaceable>remote_ip</replaceable>
X- 
X- defaultroute    # put this if you want that PPP server will be your
X-                 # default router</programlisting>
X- 
X-       <para>To connect:</para>
X- 
X-       <indexterm><primary>Kermit</primary></indexterm>
X-       <indexterm><primary>modem</primary></indexterm>
X-       <procedure>
X- 	<step>
X- 	  <para>Dial to the remote host using
X- 	    <application>Kermit</application> (or some other modem
X- 	    program), and enter your user name and password (or whatever
X- 	    is needed to enable PPP on the remote host).</para>
X- 	</step>
X- 
X- 	<step>
X- 	  <para>Exit <application>Kermit</application> (without
X- 	  hanging up the line).</para>
X- 	</step>
X- 
X- 	<step>
X- 	  <para>Enter the following:</para>
X- 
X- 	  <screen>&prompt.root; <userinput>/usr/sbin/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen>
X- 
X- 	  <para>Be sure to use the appropriate speed and device name.</para>
X- 	</step>
X-       </procedure>
X- 
X-       <para>Now your computer is connected with PPP.  If the connection
X- 	fails, you can add the <option>debug</option> option to the
X- 	<filename>/etc/ppp/options</filename> file, and check console messages
X- 	to track the problem.</para>
X- 	  
X-       <para>Following <filename>/etc/ppp/pppup</filename> script will make
X- 	all 3 stages automatic:</para>
X- 
X-       <programlisting>#!/bin/sh
X- pgrep -l pppd
X- pid=`pgrep pppd`
X- if [ "X${pid}" != "X" ] ; then
X-         echo 'killing pppd, PID=' ${pid}
X-         kill ${pid}
X- fi
X- pgrep -l kermit
X- pid=`pgrep kermit`
X- if [ "X${pid}" != "X" ] ; then
X-         echo 'killing kermit, PID=' ${pid}
X-         kill -9 ${pid}
X- fi
X- 
X- ifconfig ppp0 down
X- ifconfig ppp0 delete
X- 
X- kermit -y /etc/ppp/kermit.dial
X- pppd /dev/tty01 19200</programlisting>
X- 
X-       <indexterm>
X- 	<primary>Kermit</primary>
X-       </indexterm>
X- 
X-       <para><filename>/etc/ppp/kermit.dial</filename> is a
X- 	<application>Kermit</application> script that dials and makes all
X- 	necessary authorization on the remote host (an example of such a
X- 	script is attached to the end of this document).</para>
X- 
X-       <para>Use the following <filename>/etc/ppp/pppdown</filename> script
X-         to disconnect the PPP line:</para>
X- 
X-       <programlisting>#!/bin/sh
X- pid=`pgrep pppd`
X- if [ X${pid} != "X" ] ; then
X-         echo 'killing pppd, PID=' ${pid}
X-         kill -TERM ${pid}
X- fi
X- 
X- pgrep -l kermit
X- pid=`pgrep kermit`
X- if [ "X${pid}" != "X" ] ; then
X-         echo 'killing kermit, PID=' ${pid}
X-         kill -9 ${pid}
X- fi
X- 
X- /sbin/ifconfig ppp0 down
X- /sbin/ifconfig ppp0 delete
X- kermit -y /etc/ppp/kermit.hup
X- /etc/ppp/ppptest</programlisting>
X- 
X-       <para>Check to see if <command>pppd</command> is still running by
X- 	executing <filename>/usr/etc/ppp/ppptest</filename>, which should look
X- 	like this:</para>
X- 
X-       <programlisting>#!/bin/sh
X- pid=`pgrep pppd`
X- if [ X${pid} != "X" ] ; then
X-         echo 'pppd running: PID=' ${pid-NONE}
X- else
X-         echo 'No pppd running.'
X- fi
X- set -x
X- netstat -n -I ppp0
X- ifconfig ppp0</programlisting>
X- 
X-       <para>To hang up the modem, execute
X- 	<filename>/etc/ppp/kermit.hup</filename>, which should
X- 	contain:</para>
X- 
X-       <programlisting>set line /dev/tty01	; put your modem device here
X- set speed 19200
X- set file type binary
X- set file names literal
X- set win 8
X- set rec pack 1024
X- set send pack 1024
X- set block 3
X- set term bytesize 8
X- set command bytesize 8
X- set flow none
X- 
X- pau 1
X- out +++
X- inp 5 OK
X- out ATH0\13
X- echo \13
X- exit</programlisting>
X- 
X-       <para>Here is an alternate method using <command>chat</command>
X- 	instead of <command>kermit</command>:</para>
X- 
X-       <para>The following two files are sufficient to accomplish a 
X- 	<command>pppd</command>	connection.</para>
X- 
X-       <para><filename>/etc/ppp/options</filename>:</para>
X- 
X-       <programlisting>/dev/cuad1 115200
X- 
X- crtscts		# enable hardware flow control
X- modem		# modem control line
X- connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
X- noipdefault	# remote PPP serve must supply your IP address
X- 	        # if the remote host doesn't send your IP during
X-                 # IPCP negotiation, remove this option
X- passive         # wait for LCP packets
X- domain <replaceable>your.domain</replaceable>	# put your domain name here
X- 
X- :		# put the IP of remote PPP host here
X- 	        # it will be used to route packets via PPP link
X-                 # if you didn't specified the noipdefault option
X-                 # change this line to <replaceable>local_ip</replaceable>:<replaceable>remote_ip</replaceable>
X- 
X- defaultroute	# put this if you want that PPP server will be
X- 	        # your default router</programlisting>
X- 
X-       <para><filename>/etc/ppp/login.chat.script</filename>:</para>
X- 
X-       <note>
X- 	<para>The following should go on a single line.</para>
X-       </note>
X- 
X-       <programlisting>ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<replaceable>phone.number</replaceable>
X-   CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <replaceable>login-id</replaceable>
X-   TIMEOUT 5 sword: <replaceable>password</replaceable></programlisting>
X- 
X-       <para>Once these are installed and modified correctly, all you need
X- 	to do is run <command>pppd</command>, like so:</para>
X- 
X-       <screen>&prompt.root; <userinput>pppd</userinput></screen>
X-     </sect2>
X- 
X-     <sect2>
X-       <title>Using <command>pppd</command> as a Server</title>
X- 
X-       <para><filename>/etc/ppp/options</filename> should contain something
X- 	similar to the following:</para>
X- 
X-       <programlisting>crtscts                         # Hardware flow control
X- netmask 255.255.255.0           # netmask (not required)
X- 192.114.208.20:192.114.208.165  # IP's of local and remote hosts
X-                                 # local ip must be different from one
X-                                 # you assigned to the Ethernet (or other)
X-                                 # interface on your machine.
X-                                 # remote IP is IP address that will be 
X-                                 # assigned to the remote machine
X- domain ppp.foo.com              # your domain
X- passive                         # wait for LCP
X- modem                           # modem line</programlisting>
X- 
X-       <para>The following <filename>/etc/ppp/pppserv</filename> script
X- 	will tell <application>pppd</application> to behave as a
X- 	server:</para>
X- 
X-       <programlisting>#!/bin/sh 
X- pgrep -l pppd
X- pid=`pgrep pppd`
X- if [ "X${pid}" != "X" ] ; then
X-         echo 'killing pppd, PID=' ${pid}
X-         kill ${pid}
X- fi
X- pgrep -l kermit
X- pid=`pgrep kermit`
X- if [ "X${pid}" != "X" ] ; then
X-         echo 'killing kermit, PID=' ${pid}
X-         kill -9 ${pid}
X- fi
X- 
X- # reset ppp interface
X- ifconfig ppp0 down
X- ifconfig ppp0 delete
X- 
X- # enable autoanswer mode
X- kermit -y /etc/ppp/kermit.ans
X- 
X- # run ppp
X- pppd /dev/tty01 19200</programlisting>
X- 
X-       <para>Use this <filename>/etc/ppp/pppservdown</filename> script to
X- 	stop the server:</para>
X- 
X-       <programlisting>#!/bin/sh 
X- pgrep -l pppd
X- pid=`pgrep pppd`
X- if [ "X${pid}" != "X" ] ; then
X-         echo 'killing pppd, PID=' ${pid}
X-         kill ${pid}
X- fi
X- pgrep -l kermit
X- pid=`pgrep kermit`
X- if [ "X${pid}" != "X" ] ; then
X-         echo 'killing kermit, PID=' ${pid}
X-         kill -9 ${pid}
X- fi
X- ifconfig ppp0 down
X- ifconfig ppp0 delete
X- 
X- kermit -y /etc/ppp/kermit.noans</programlisting>
X- 
X-       <para>The following <application>Kermit</application> script
X- 	(<filename>/etc/ppp/kermit.ans</filename>) will enable/disable
X- 	autoanswer mode on your modem.  It should look like this:</para>
X- 
X-       <programlisting>set line /dev/tty01
X- set speed 19200
X- set file type binary
X- set file names literal
X- set win 8
X- set rec pack 1024
X- set send pack 1024
X- set block 3
X- set term bytesize 8
X- set command bytesize 8
X- set flow none
X- 
X- pau 1
X- out +++
X- inp 5 OK
X- out ATH0\13
X- inp 5 OK
X- echo \13
X- out ATS0=1\13   ; change this to out ATS0=0\13 if you want to disable
X-                 ; autoanswer mode
X- inp 5 OK
X- echo \13
X- exit</programlisting>
X- 
X-       <para>A script named <filename>/etc/ppp/kermit.dial</filename> is
X- 	used for dialing and authenticating on the remote host.  You will
X- 	need to customize it for your needs.  Put your login and password
X- 	in this script; you will also need to change the input statement
X- 	depending on responses from your modem and remote host.</para>
X- 
X-       <programlisting>;
X- ; put the com line attached to the modem here:
X- ;
X- set line /dev/tty01
X- ;
X- ; put the modem speed here:
X- ;
X- set speed 19200
X- set file type binary            ; full 8 bit file xfer
X- set file names literal
X- set win 8
X- set rec pack 1024
X- set send pack 1024
X- set block 3
X- set term bytesize 8
X- set command bytesize 8
X- set flow none
X- set modem hayes
X- set dial hangup off
X- set carrier auto                ; Then SET CARRIER if necessary,
X- set dial display on             ; Then SET DIAL if necessary,
X- set input echo on
X- set input timeout proceed
X- set input case ignore
X- def \%x 0                       ; login prompt counter
X- goto slhup
X- 
X- :slcmd                          ; put the modem in command mode
X- echo Put the modem in command mode.
X- clear                           ; Clear unread characters from input buffer
X- pause 1
X- output +++                      ; hayes escape sequence
X- input 1 OK\13\10                ; wait for OK
X- if success goto slhup
X- output \13
X- pause 1
X- output at\13
X- input 1 OK\13\10
X- if fail goto slcmd              ; if modem doesn't answer OK, try again
X- 
X- :slhup                          ; hang up the phone
X- clear                           ; Clear unread characters from input buffer
X- pause 1
X- echo Hanging up the phone.
X- output ath0\13                  ; hayes command for on hook
X- input 2 OK\13\10
X- if fail goto slcmd              ; if no OK answer, put modem in command mode
X- 
X- :sldial                         ; dial the number
X- pause 1
X- echo Dialing.
X- output atdt9,550311\13\10               ; put phone number here
X- assign \%x 0                    ; zero the time counter
X- 
X- :look
X- clear                           ; Clear unread characters from input buffer
X- increment \%x                   ; Count the seconds
X- input 1 {CONNECT }
X- if success goto sllogin
X- reinput 1 {NO CARRIER\13\10}
X- if success goto sldial
X- reinput 1 {NO DIALTONE\13\10}
X- if success goto slnodial
X- reinput 1 {\255}
X- if success goto slhup
X- reinput 1 {\127}
X- if success goto slhup
X- if < \%x 60 goto look
X- else goto slhup
X- 
X- :sllogin                        ; login
X- assign \%x 0                    ; zero the time counter
X- pause 1
X- echo Looking for login prompt.
X- 
X- :slloop
X- increment \%x                   ; Count the seconds
X- clear                           ; Clear unread characters from input buffer
X- output \13
X- ;
X- ; put your expected login prompt here:
X- ;
X- input 1 {Username: }
X- if success goto sluid
X- reinput 1 {\255}
X- if success goto slhup
X- reinput 1 {\127}
X- if success goto slhup
X- if < \%x 10 goto slloop         ; try 10 times to get a login prompt
X- else goto slhup                 ; hang up and start again if 10 failures
X- 
X- :sluid
X- ;
X- ; put your userid here:
X- ;
X- output ppp-login\13
X- input 1 {Password: }
X- ;
X- ; put your password here:
X- ;
X- output ppp-password\13
X- input 1 {Entering SLIP mode.}
X- echo
X- quit
X- 
X- :slnodial
X- echo \7No dialtone.  Check the telephone line!\7
X- exit 1
X- 
X- ; local variables:
X- ; mode: csh
X- ; comment-start: "; "
X- ; comment-start-skip: "; "
X- ; end:</programlisting>
X-     </sect2>
X-   </sect1>
X- 
X    <sect1 id="ppp-troubleshoot">
X      <sect1info>
X        <authorgroup>
X--- 1289,1294 ----
X***************
X*** 2480,3202 ****
X      </sect2>
X    </sect1>
X  
X-   <sect1 id="slip">
X-     <sect1info>
X-       <authorgroup>
X- 	<author>
X- 	  <firstname>Satoshi</firstname>
X- 	  <surname>Asami</surname>
X- 	  <contrib>Originally contributed by </contrib>
X- 	</author>
X-       </authorgroup>
X-       <authorgroup>
X- 	<author>
X- 	  <firstname>Guy</firstname>
X- 	  <surname>Helmer</surname>
X- 	  <contrib>With input from </contrib>
X- 	</author>
X- 	<author>
X- 	  <firstname>Piero</firstname>
X-           <surname>Serini</surname>
X- 	</author>
X-       </authorgroup>
X-     </sect1info>
X- 
X-     <title>Using SLIP</title>
X-     <indexterm><primary>SLIP</primary></indexterm>
X- 
X-     <sect2 id="slipc">
X-       <title>Setting Up a SLIP Client</title>
X- 
X-       <indexterm>
X- 	<primary>SLIP</primary>
X- 	<secondary>client</secondary>
X-       </indexterm>
X- 
X-       <para>The following is one way to set up a FreeBSD machine for SLIP
X- 	on a static host network.  For dynamic hostname assignments (your
X- 	address changes each time you dial up), you probably need to
X- 	have a more complex setup.</para>
X- 
X-       <para>First, determine which serial port your modem is connected to.
X- 	Many people set up a symbolic link, such as
X- 	<filename class="devicefile">/dev/modem</filename>, to point to the real device name,
X- 	<filename class="devicefile">/dev/cuad<replaceable>N</replaceable></filename>.
X- 	This allows you to abstract the actual device
X- 	name should you ever need to move the modem to a different port.  It
X- 	can become quite cumbersome when you need to fix a bunch of files in
X- 	<filename class="directory">/etc</filename> and <filename>.kermrc</filename> files all
X- 	over the system!</para>
X- 
X-       <note>
X- 	<para><filename class="devicefile">/dev/cuad0</filename>
X- 	  is
X- 	  <devicename>COM1</devicename>, <filename class="devicefile">/dev/cuad1</filename>
X- 	  is
X- 	  <devicename>COM2</devicename>, etc.</para>
X-       </note>
X- 
X-       <para>Make sure you have the following in your kernel configuration
X- 	file:</para>
X-       
X-       <programlisting>device   sl</programlisting>
X- 
X-       <para>It is included in the <filename>GENERIC</filename> kernel, so
X- 	this should not be a problem unless you have deleted it.</para>
X- 
X-       <sect3>
X- 	<title>Things You Have to Do Only Once</title>
X- 
X- 	<procedure>
X- 	  <step>
X- 	    <para>Add your home machine, the gateway and nameservers to
X- 	      your <filename>/etc/hosts</filename> file.  Ours looks like
X- 	      this:</para>
X- 
X- 	    <programlisting>127.0.0.1               localhost loghost
X- 136.152.64.181          water.CS.Example.EDU water.CS water
X- 136.152.64.1            inr-3.CS.Example.EDU inr-3 slip-gateway
X- 128.32.136.9            ns1.Example.EDU ns1
X- 128.32.136.12           ns2.Example.EDU ns2</programlisting>
X- 	  </step>
X- 
X- 	  <step>
X- 	    <para>Make sure you have <literal>files</literal> before
X- 	      <literal>dns</literal> in the <literal>hosts:</literal>
X- 	      section of your <filename>/etc/nsswitch.conf</filename>
X- 	      file.  Without these parameters funny things may
X- 	      happen.</para>
X- 	  </step>
X- 
X- 	  <step>
X- 	    <para>Edit the <filename>/etc/rc.conf</filename> file.</para>
X- 
X- 	    <orderedlist>
X- 	      <listitem>
X- 		<para>Set your hostname by editing the line that
X- 		  says:</para>
X- 	      
X- 		<programlisting>hostname="myname.my.domain"</programlisting>
X- 
X- 		<para>Your machine's full Internet hostname should be
X- 		  placed here.</para>
X- 	      </listitem>
X- 
X- 	      <indexterm><primary>default route</primary></indexterm>
X- 	      <listitem>
X- 		<para>Designate the default router by changing the
X- 		  line:</para>
X- 
X- 		<programlisting>defaultrouter="NO"</programlisting>
X- 
X- 		<para>to:</para>
X- 
X- 		<programlisting>defaultrouter="slip-gateway"</programlisting>
X- 	      </listitem>
X- 	    </orderedlist>
X- 	  </step>
X- 
X- 	  <step>
X- 	    <para>Make a file <filename>/etc/resolv.conf</filename> which
X- 	      contains:</para>
X- 
X- 	    <programlisting>domain CS.Example.EDU
X- nameserver 128.32.136.9
X- nameserver 128.32.136.12</programlisting>
X- 
X- 	    <indexterm><primary>nameserver</primary></indexterm>
X- 	    <indexterm><primary>domain name</primary></indexterm>
X- 	    <para>As you can see, these set up the nameserver hosts.  Of
X- 	      course, the actual domain names and addresses depend on your
X- 	      environment.</para>
X- 	  </step>
X- 
X- 	  <step>
X- 	    <para>Set the password for <username>root</username> and 
X- 	      <username>toor</username> (and any other
X- 	      accounts that do not have a password).</para>
X- 	  </step>
X- 
X- 	  <step>
X- 	    <para>Reboot your machine and make sure it comes up with the
X- 	      correct hostname.</para>
X- 	  </step>
X- 	</procedure>
X-       </sect3>
X- 
X-       <sect3>
X- 	<title>Making a SLIP Connection</title>
X- 
X- 	<indexterm>
X- 	  <primary>SLIP</primary>
X- 	  <secondary>connecting with</secondary>
X- 	</indexterm>
X- 
X- 	<procedure>
X- 	  <step>
X- 	    <para>Dial up, type <command>slip</command> at the prompt,
X- 	      enter your machine name and password.  What is required to
X- 	      be entered depends on your environment.  If you use
X- 	      <application>Kermit</application>, you can try a script like
X- 	      this:</para>
X- 
X- 	    <programlisting># kermit setup
X- set modem hayes
X- set line /dev/modem
X- set speed 115200
X- set parity none
X- set flow rts/cts
X- set terminal bytesize 8
X- set file type binary
X- # The next macro will dial up and login
X- define slip dial 643-9600, input 10 =>, if failure stop, -
X- output slip\x0d, input 10 Username:, if failure stop, -
X- output silvia\x0d, input 10 Password:, if failure stop, -
X- output ***\x0d, echo \x0aCONNECTED\x0a</programlisting>
X- 
X- 	    <para>Of course, you have to change the username and password
X- 	      to fit yours.  After doing so, you can just type
X- 	      <command>slip</command> from the
X- 	      <application>Kermit</application> prompt to connect.</para>
X- 
X- 	    <note>
X- 	      <para>Leaving your password in plain text anywhere in the
X- 	        filesystem is generally a <emphasis>bad</emphasis> idea.
X- 		Do it at your own risk.</para>
X- 	    </note>
X- 	  </step>
X- 
X- 	  <step>
X- 	    <para>Leave the <application>Kermit</application> there (you can
X- 	      suspend it by
X- 	      <keycombo>
X- 		<keycap>Ctrl</keycap>
X- 		<keycap>z</keycap>
X- 	      </keycombo>) and as <username>root</username>, type:</para>
X- 
X- 	    <screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen>
X- 
X- 	    <para>If you are able to <command>ping</command> hosts on the
X- 	      other side of the router, you are connected!  If it does not
X- 	      work, you might want to try <option>-a</option> instead of
X- 	      <option>-c</option> as an argument to 
X-               <command>slattach</command>.</para>
X- 	  </step>
X- 	</procedure>
X-       </sect3>
X- 
X-       <sect3>
X- 	<title>How to Shutdown the Connection</title>
X- 
X- 	<para>Do the following:</para>
X- 
X- 	<screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen>
X- 
X- 	<para>to kill <command>slattach</command>.  Keep in mind you must be
X- 	  <username>root</username> to do the above.  Then go back to
X- 	  <command>kermit</command> (by running <command>fg</command> if you
X- 	  suspended it) and exit from it (<keycap>q</keycap>).</para>
X- 
X- 	<para>The &man.slattach.8; manual page says you have 
X- 	  to use <command>ifconfig sl0 down</command> 
X-           to mark the interface down, but this does not
X- 	  seem to make any difference.
X- 	  (<command>ifconfig sl0</command> reports the same thing.)</para>
X- 
X- 	<para>Some times, your modem might refuse to drop the carrier.
X- 	  In that case, simply start <command>kermit</command> and quit
X- 	  it again. It usually goes out on the second try.</para>
X-       </sect3>
X- 
X-       <sect3>
X- 	<title>Troubleshooting</title>
X- 
X- 	<para>If it does not work, feel free to ask on &a.net.name; mailing
X- 	  list.  The things that people tripped over so far:</para>
X- 
X- 	<itemizedlist>
X- 	  <listitem>
X- 	    <para>Not using <option>-c</option> or <option>-a</option> in
X- 	      <command>slattach</command> (This should not be fatal,
X- 	      but some users have reported that this solves their
X- 	      problems.)</para>
X- 	  </listitem>
X- 
X- 	  <listitem>
X- 	    <para>Using <option>s10</option> instead of
X- 	      <option>sl0</option> (might be hard to see the difference on
X- 	      some fonts).</para>
X- 	  </listitem>
X- 
X- 	  <listitem>
X- 	    <para>Try <command>ifconfig sl0</command> to see your
X- 	      interface status.  For example, you might get:</para>
X- 
X- 	    <screen>&prompt.root; <userinput>ifconfig sl0</userinput>
X- sl0: flags=10<POINTOPOINT>
X-         inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00</screen>
X- 	  </listitem>
X- 
X- 	  <listitem>
X- 	    <para>If you get <errorname>no route to host</errorname>
X-             messages from &man.ping.8;, there may be a problem with your
X-             routing table.  You can use the <command>netstat -r</command>
X-             command to display the current routes :</para>
X- 
X- 	    <screen>&prompt.root; <userinput>netstat -r</userinput>
X- Routing tables
X- Destination      Gateway            Flags     Refs     Use  IfaceMTU    Rtt    Netmasks:
X- 
X- (root node)
X- (root node)
X- 
X- Route Tree for Protocol Family inet:
X- (root node) =>
X- default          inr-3.Example.EDU  UG          8   224515  sl0 -      -
X- localhost.Exampl localhost.Example. UH          5    42127  lo0 -       0.438
X- inr-3.Example.ED water.CS.Example.E UH          1        0  sl0 -      -
X- water.CS.Example localhost.Example. UGH        34 47641234  lo0 -       0.438
X- (root node)</screen>
X- 
X- 	    <para>The preceding examples are from a relatively busy system.
X-               The numbers on your system will vary depending on
X-               network activity.</para>
X- 
X- 	  </listitem>
X- 	</itemizedlist>
X-       </sect3>
X-     </sect2>
X- 
X-     <sect2 id="slips">
X-       <title>Setting Up a SLIP Server</title>
X- 
X-       <indexterm>
X- 	<primary>SLIP</primary>
X- 	<secondary>server</secondary>
X-       </indexterm>
X- 
X-       <para>This document provides suggestions for setting up SLIP Server
X- 	services on a FreeBSD system, which typically means configuring
X- 	your system to automatically start up connections upon login for
X- 	remote SLIP clients.</para>
X- 
X-       <!-- Disclaimer is not necessarily relevant
X-       <para> The author has written this document based
X- 	on his experience; however, as your system and needs may be
X- 	different, this document may not answer all of your questions, and
X- 	the author cannot be responsible if you damage your system or lose
X- 	data due to attempting to follow the suggestions here.</para>
X-       -->
X- 
X-       <sect3 id="slips-prereqs">
X- 	<title>Prerequisites</title>
X- 	<indexterm><primary>TCP/IP networking</primary></indexterm>
X- 	<para>This section is very technical in nature, so background
X- 	  knowledge is required.  It is assumed that you are familiar with
X- 	  the TCP/IP network protocol, and in particular, network and node
X- 	  addressing, network address masks, subnetting, routing, and
X- 	  routing protocols, such as RIP.  Configuring SLIP services on a
X- 	  dial-up server requires a knowledge of these concepts, and if
X- 	  you are not familiar with them, please read a copy of either
X- 	  Craig Hunt's <emphasis>TCP/IP Network Administration</emphasis>
X- 	  published by O'Reilly & Associates, Inc. (ISBN Number
X- 	  0-937175-82-X), or Douglas Comer's books on the TCP/IP
X- 	  protocol.</para>
X- 
X- 	<indexterm><primary>modem</primary></indexterm>
X- 	<para>It is further assumed that you have already set up your
X- 	  modem(s) and configured the appropriate system files to allow
X- 	  logins through your modems.  If you have not prepared your
X- 	  system for this yet, please see <xref
X- 	  linkend="dialup"> for details on dialup services
X- 	  configuration.
X- 	  You may also want to check the manual pages for &man.sio.4; for
X- 	  information on the serial port device driver and &man.ttys.5;,
X- 	  &man.gettytab.5;, &man.getty.8;, & &man.init.8; for
X- 	  information relevant to configuring the system to accept logins
X- 	  on modems, and perhaps &man.stty.1; for information on setting
X- 	  serial port parameters (such as <literal>clocal</literal> for
X- 	  directly-connected serial interfaces).</para>
X-       </sect3>
X- 
X-       <sect3>
X- 	<title>Quick Overview</title>
X- 
X- 	<para>In its typical configuration, using FreeBSD as a SLIP server
X- 	  works as follows:  a SLIP user dials up your FreeBSD SLIP Server
X- 	  system and logs in with a special SLIP login ID that uses
X- 	  <filename>/usr/sbin/sliplogin</filename> as the special user's
X- 	  shell.  The <command>sliplogin</command> program browses the
X- 	  file <filename>/etc/sliphome/slip.hosts</filename> to find a
X- 	  matching line for the special user, and if it finds a match,
X- 	  connects the serial line to an available SLIP interface and then
X- 	  runs the shell script
X- 	  <filename>/etc/sliphome/slip.login</filename> to configure the
X- 	  SLIP interface.</para>
X- 
X-         <sect4>
X- 	  <title>An Example of a SLIP Server Login</title>
X- 
X- 	  <para>For example, if a SLIP user ID were
X- 	    <username>Shelmerg</username>, <username>Shelmerg</username>'s
X- 	    entry in <filename>/etc/master.passwd</filename> would look
X- 	    something like this:</para>
X- 
X- 	  <programlisting>Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting>
X- 
X- 	  <para>When <username>Shelmerg</username> logs in,
X- 	    <command>sliplogin</command> will search
X- 	    <filename>/etc/sliphome/slip.hosts</filename> for a line that
X- 	    had a matching user ID; for example, there may be a line in
X- 	    <filename>/etc/sliphome/slip.hosts</filename> that
X- 	    reads:</para>
X- 
X- 	  <programlisting>Shelmerg        dc-slip sl-helmer       0xfffffc00		  autocomp</programlisting>
X- 
X- 	  <para><command>sliplogin</command> will find that matching line,
X- 	    hook the serial line into the next available SLIP interface,
X- 	    and then execute <filename>/etc/sliphome/slip.login</filename>
X- 	    like this:</para>
X- 
X- 	  <programlisting>/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
X- 
X- 	  <para>If all goes well,
X- 	    <filename>/etc/sliphome/slip.login</filename> will issue an
X- 	    <command>ifconfig</command> for the SLIP interface to which
X- 	    <command>sliplogin</command> attached itself (SLIP interface
X- 	    0, in the above example, which was the first parameter in the
X- 	    list given to <filename>slip.login</filename>) to set the
X- 	    local IP address (<hostid>dc-slip</hostid>), remote IP address
X- 	    (<hostid>sl-helmer</hostid>), network mask for the SLIP
X- 	    interface (<hostid role="netmask">0xfffffc00</hostid>), and
X- 	    any additional flags (<literal>autocomp</literal>).  If
X- 	    something goes wrong, <command>sliplogin</command> usually
X- 	    logs good informational messages via the
X- 	    <application>syslogd</application> daemon facility, which usually
X- 	    logs to <filename>/var/log/messages</filename> (see the manual
X- 	    pages for &man.syslogd.8; and &man.syslog.conf.5; and perhaps
X- 	    check <filename>/etc/syslog.conf</filename> to see to what
X- 	    <application>syslogd</application> is logging and where it is
X- 	    logging to).</para>
X- 	</sect4>
X-       </sect3>
X- 
X-       <sect3>
X- 	<title>Kernel Configuration</title>
X- 
X- 	<indexterm>
X- 	  <primary>kernel</primary>
X- 	  <secondary>configuration</secondary>
X- 	</indexterm>
X- 
X- 	<indexterm>
X- 	  <primary>SLIP</primary>
X- 	</indexterm>
X- 
X- 	<para>&os;'s default kernel (<filename>GENERIC</filename>)
X- 	  comes with SLIP (&man.sl.4;) support; in case of a custom
X- 	  kernel, you have to add the following line to your kernel
X- 	  configuration file:</para>
X- 
X- 	<programlisting>device   sl</programlisting>
X- 
X- 	<para>By default, your &os; machine will not forward packets.
X- 	  If you want your FreeBSD SLIP Server to act as a router, you
X- 	  will have to edit the <filename>/etc/rc.conf</filename> file and
X- 	  change the setting of the <literal>gateway_enable</literal> variable
X- 	  to <option>YES</option>.  This will make sure that setting the
X- 	  routing option will be persistent after a reboot.</para>
X-  
X- 	<para>To apply the settings immediately you can execute the
X- 	  following command as <username>root</username>:</para>
X- 
X- 	<screen>&prompt.root; /etc/rc.d/routing start</screen>
X- 
X- 	<para>Please refer to <xref linkend="kernelconfig"> on
X- 	  Configuring the FreeBSD Kernel for help in
X- 	  reconfiguring your kernel.</para>
X-       </sect3>
X- 
X-       <sect3>
X- 	<title>Sliplogin Configuration</title>
X- 
X- 	<para>As mentioned earlier, there are three files in the
X- 	  <filename class="directory">/etc/sliphome</filename> directory that are part of
X- 	  the configuration for <filename>/usr/sbin/sliplogin</filename>
X- 	  (see &man.sliplogin.8; for the actual manual page for
X- 	  <command>sliplogin</command>): <filename>slip.hosts</filename>,
X- 	  which defines the SLIP users and their associated IP
X- 	  addresses; <filename>slip.login</filename>, which usually just
X- 	  configures the SLIP interface; and (optionally)
X- 	  <filename>slip.logout</filename>, which undoes
X- 	  <filename>slip.login</filename>'s effects when the serial
X- 	  connection is terminated.</para>
X- 
X-         <sect4>
X- 	  <title><filename>slip.hosts</filename> Configuration</title>
X- 
X- 	  <para><filename>/etc/sliphome/slip.hosts</filename> contains
X- 	    lines which have at least four items separated by
X- 	    whitespace:</para>
X- 
X- 	  <itemizedlist>
X- 	    <listitem>
X- 	      <para>SLIP user's login ID</para>
X- 	    </listitem>
X- 
X- 	    <listitem>
X- 	      <para>Local address (local to the SLIP server) of the SLIP
X- 		link</para>
X- 	    </listitem>
X- 
X- 	    <listitem>
X- 	      <para>Remote address of the SLIP link</para>
X- 	    </listitem>
X- 
X- 	    <listitem>
X- 	      <para>Network mask</para>
X- 	    </listitem>
X- 	  </itemizedlist>
X- 
X- 	  <para>The local and remote addresses may be host names
X- 	    (resolved to IP addresses by
X- 	    <filename>/etc/hosts</filename> or by the domain name
X- 	    service, depending on your specifications in the file
X- 	    <filename>/etc/nsswitch.conf</filename>), and the network mask
X- 	    may be a name that can be resolved by a lookup into
X- 	    <filename>/etc/networks</filename>.  On a sample system,
X- 	    <filename>/etc/sliphome/slip.hosts</filename> looks like
X- 	    this:</para>
X- 
X- 	  <programlisting>#
X- # login local-addr      remote-addr     mask            opt1    opt2 
X- #                                               (normal,compress,noicmp)
X- #
X- Shelmerg  dc-slip       sl-helmerg      0xfffffc00      autocomp</programlisting>
X- 
X- 	  <para>At the end of the line is one or more of the
X- 	    options:</para>
X- 
X- 	  <itemizedlist>
X- 	    <listitem>
X- 	      <para><option>normal</option> — no header
X- 		compression</para>
X- 	    </listitem>
X- 
X- 	    <listitem>
X- 	      <para><option>compress</option> — compress
X- 		headers</para>
X- 	    </listitem>
X- 
X- 	    <listitem>
X- 	      <para><option>autocomp</option> — compress headers if
X- 		the remote end allows it</para>
X- 	    </listitem>
X- 
X- 	    <listitem>
X- 	      <para><option>noicmp</option> — disable ICMP packets
X- 		(so any <quote>ping</quote> packets will be dropped instead
X- 		of using up your bandwidth)</para>
X- 	    </listitem>
X- 	  </itemizedlist>
X- 
X-   	  <indexterm><primary>SLIP</primary></indexterm>
X-   	  <indexterm><primary>TCP/IP networking</primary></indexterm>
X- 	  <para>Your choice of local and remote addresses for your SLIP
X- 	    links depends on whether you are going to dedicate a TCP/IP
X- 	    subnet or if you are going to use <quote>proxy ARP</quote> on
X- 	    your SLIP server (it is not <quote>true</quote> proxy ARP, but
X- 	    that is the terminology used in this section to describe it).
X- 	    If you are not sure which method to select or how to assign IP
X- 	    addresses, please refer to the TCP/IP books referenced in
X- 	    the SLIP Prerequisites (<xref linkend="slips-prereqs">)
X- 	    and/or consult your IP network manager.</para>
X- 
X- 	  <para>If you are going to use a separate subnet for your SLIP
X- 	    clients, you will need to allocate the subnet number out of
X- 	    your assigned IP network number and assign each of your SLIP
X- 	    client's IP numbers out of that subnet.  Then, you will
X- 	    probably need to configure a static route to the SLIP
X- 	    subnet via your SLIP server on your nearest IP router.</para>
X- 
X-   	  <indexterm><primary>Ethernet</primary></indexterm>
X- 	  <para>Otherwise, if you will use the <quote>proxy ARP</quote>
X- 	    method, you will need to assign your SLIP client's IP
X- 	    addresses out of your SLIP server's Ethernet subnet, and you
X- 	    will also need to adjust your
X- 	    <filename>/etc/sliphome/slip.login</filename> and
X- 	    <filename>/etc/sliphome/slip.logout</filename> scripts to use
X- 	    &man.arp.8; to manage the <quote>proxy ARP</quote> entries in the SLIP
X- 	    server's ARP table.</para>
X- 	</sect4>
X- 
X- 	<sect4>
X- 	  <title><filename>slip.login</filename> Configuration</title>
X- 
X- 	  <para>The typical <filename>/etc/sliphome/slip.login</filename>
X- 	    file looks like this:</para>
X- 
X- 	  <programlisting>#!/bin/sh -
X- #
X- #       @(#)slip.login  5.1 (Berkeley) 7/1/90
X- 
X- #
X- # generic login file for a slip line.  sliplogin invokes this with
X- # the parameters:
X- #      1        2         3        4          5         6     7-n
X- #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
X- #
X- /sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting>
X- 
X- 	  <para>This <filename>slip.login</filename> file merely runs
X- 	    <command>ifconfig</command> for the appropriate SLIP interface
X- 	    with the local and remote addresses and network mask of the
X- 	    SLIP interface.</para>
X- 
X- 	  <para>If you have decided to use the <quote>proxy ARP</quote>
X- 	    method (instead of using a separate subnet for your SLIP
X- 	    clients), your <filename>/etc/sliphome/slip.login</filename>
X- 	    file will need to look something like this:</para>
X- 
X- 	  <programlisting>#!/bin/sh -
X- #
X- #       @(#)slip.login  5.1 (Berkeley) 7/1/90
X- 
X- #
X- # generic login file for a slip line.  sliplogin invokes this with
X- # the parameters:
X- #      1        2         3        4          5         6     7-n
X- #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
X- #
X- /sbin/ifconfig sl$1 inet $4 $5 netmask $6 
X- # Answer ARP requests for the SLIP client with our Ethernet addr
X- /usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting>
X- 
X- 	  <para>The additional line in this
X- 	    <filename>slip.login</filename>, <command>arp -s
X- 	    $5 00:11:22:33:44:55 pub</command>, creates an ARP entry
X- 	    in the SLIP server's ARP table.  This ARP entry causes the
X- 	    SLIP server to respond with the SLIP server's Ethernet MAC
X- 	    address whenever another IP node on the Ethernet asks to
X- 	    speak to the SLIP client's IP address.</para>
X- 
X-   	  <indexterm>
X- 	    <primary>Ethernet</primary>
X- 	    <secondary>MAC address</secondary>
X- 	  </indexterm>
X- 
X- 	  <para>When using the example above, be sure to replace the
X- 	    Ethernet MAC address (<hostid
X- 	    role="mac">00:11:22:33:44:55</hostid>) with the MAC address of
X- 	    your system's Ethernet card, or your <quote>proxy ARP</quote>
X- 	    will definitely not work!  You can discover your SLIP server's
X- 	    Ethernet MAC address by looking at the results of running
X- 	    <command>netstat -i</command>; the second line of the output
X- 	    should look something like:</para>
X- 
X- 	  <screen>ed0   1500  <Link>0.2.c1.28.5f.4a         191923	0   129457     0   116</screen>
X- 
X- 	  <para>This indicates that this particular system's Ethernet MAC
X- 	    address is <hostid role="mac">00:02:c1:28:5f:4a</hostid>
X- 	    — the periods in the Ethernet MAC address given by
X- 	    <command>netstat -i</command> must be changed to colons and
X- 	    leading zeros should be added to each single-digit hexadecimal
X- 	    number to convert the address into the form that &man.arp.8;
X- 	    desires; see the manual page on &man.arp.8; for complete
X- 	    information on usage.</para>
X- 
X- 	  <note>
X- 	    <para>When you create
X- 	      <filename>/etc/sliphome/slip.login</filename> and
X- 	      <filename>/etc/sliphome/slip.logout</filename>, the
X- 	      <quote>execute</quote> bit (i.e., <command>chmod 755
X- 	      /etc/sliphome/slip.login /etc/sliphome/slip.logout</command>)
X- 	      must be set, or <command>sliplogin</command> will be unable
X- 	      to execute it.</para>
X- 	  </note>
X- 	</sect4>
X- 
X- 	<sect4>
X- 	  <title><filename>slip.logout</filename> Configuration</title>
X- 
X- 	  <para><filename>/etc/sliphome/slip.logout</filename> is not
X- 	    strictly needed (unless you are implementing <quote>proxy
X- 	    ARP</quote>), but if you decide to create it, this is an
X- 	    example of a basic
X- 	    <filename>slip.logout</filename> script:</para>
X- 
X- 	  <programlisting>#!/bin/sh -
X- #
X- #       slip.logout
X- 
X- #
X- # logout file for a slip line.  sliplogin invokes this with
X- # the parameters:
X- #      1        2         3        4          5         6     7-n
X- #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
X- #
X- /sbin/ifconfig sl$1 down</programlisting>
X- 
X- 	  <para>If you are using <quote>proxy ARP</quote>, you will want to
X- 	    have <filename>/etc/sliphome/slip.logout</filename> remove the
X- 	    ARP entry for the SLIP client:</para>
X- 
X- 	  <programlisting>#!/bin/sh -
X- #
X- #       @(#)slip.logout
X- 
X- #
X- # logout file for a slip line.  sliplogin invokes this with
X- # the parameters:
X- #      1        2         3        4          5         6     7-n
X- #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
X- #
X- /sbin/ifconfig sl$1 down
X- # Quit answering ARP requests for the SLIP client
X- /usr/sbin/arp -d $5</programlisting>
X- 
X- 	  <para>The <command>arp -d $5</command> removes the ARP entry
X- 	    that the <quote>proxy ARP</quote>
X- 	    <filename>slip.login</filename> added when the SLIP client
X- 	    logged in.</para>
X- 
X- 	  <para>It bears repeating: make sure
X- 	    <filename>/etc/sliphome/slip.logout</filename> has the execute
X- 	    bit set after you create it (i.e., <command>chmod 755
X- 	    /etc/sliphome/slip.logout</command>).</para>
X- 	</sect4>
X-       </sect3>
X- 
X-       <sect3>
X- 	<title>Routing Considerations</title>
X- 	<indexterm>
X-     <primary>SLIP</primary>
X-     <secondary>routing</secondary>
X-   </indexterm>
X- 	<para>If you are not using the <quote>proxy ARP</quote> method for
X- 	  routing packets between your SLIP clients and the rest of your
X- 	  network (and perhaps the Internet), you will probably 
X- 	  have to add static routes to your closest default router(s) to
X- 	  route your SLIP clients subnet via your SLIP server.</para>
X- 
X- 	<sect4>
X- 	  <title>Static Routes</title>
X- 	  <indexterm><primary>static routes</primary></indexterm>
X- 
X- 	  <para>Adding static routes to your nearest default routers
X- 	    can be troublesome (or impossible if you do not have
X- 	    authority to do so...).  If you have a multiple-router
X- 	    network in your organization, some routers, such as those
X- 	    made by Cisco and Proteon, may not only need to be
X- 	    configured with the static route to the SLIP subnet, but
X- 	    also need to be told which static routes to tell other
X- 	    routers about, so some expertise and
X- 	    troubleshooting/tweaking may be necessary to get
X- 	    static-route-based routing to work.</para>
X- 	</sect4>
X-       </sect3>
X-     </sect2>
X-   </sect1>
X  </chapter>
X  
X  <!-- 
X--- 1977,1982 ----
caa8c35a33a0bbab5ed23ad5917fd940
echo x - preface.sgml.diff
sed 's/^X//' >preface.sgml.diff << '76edf66b30206b0dc62ba161aafbf652'
X*** orig/en_US.ISO8859-1/books/handbook/preface/preface.sgml	2010-01-21 10:25:12.000000000 +1100
X--- new/en_US.ISO8859-1/books/handbook/preface/preface.sgml	2010-01-21 10:30:29.000000000 +1100
X***************
X*** 106,112 ****
X  
X        <listitem>
X  	<para>A troubleshooting section has been added to <xref
X! 	  linkend="ppp-and-slip">, PPP and SLIP.</para>
X        </listitem>
X  
X        <listitem>
X--- 106,112 ----
X  
X        <listitem>
X  	<para>A troubleshooting section has been added to <xref
X! 	  linkend="ppp">, PPP.</para>
X        </listitem>
X  
X        <listitem>
X***************
X*** 209,215 ****
X  	reorganized and updated for FreeBSD 4.X/5.X.</para>
X        </listitem>
X        <listitem>
X! 	<para><xref linkend="ppp-and-slip"> (<quote>PPP and SLIP</quote>) has been substantially
X  	updated.</para>
X        </listitem>
X        <listitem>
X--- 209,215 ----
X  	reorganized and updated for FreeBSD 4.X/5.X.</para>
X        </listitem>
X        <listitem>
X! 	<para><xref linkend="ppp"> (<quote>PPP</quote>) has been substantially
X  	updated.</para>
X        </listitem>
X        <listitem>
X***************
X*** 482,490 ****
X        </listitem>
X      </varlistentry>
X      <varlistentry>
X!       <term><emphasis><xref linkend="ppp-and-slip">, PPP and SLIP</emphasis></term>
X        <listitem>
X! 	<para>Describes how to use PPP, SLIP, or PPP over Ethernet to
X  	connect to remote systems with FreeBSD.</para>
X        </listitem>
X      </varlistentry>
X--- 482,490 ----
X        </listitem>
X      </varlistentry>
X      <varlistentry>
X!       <term><emphasis><xref linkend="ppp">, PPP</emphasis></term>
X        <listitem>
X! 	<para>Describes how to use PPP or PPP over Ethernet to
X  	connect to remote systems with FreeBSD.</para>
X        </listitem>
X      </varlistentry>
76edf66b30206b0dc62ba161aafbf652
exit



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-doc mailing list