summaryrefslogtreecommitdiffstats
path: root/share/FAQ/Text/slip_server.FAQ
diff options
context:
space:
mode:
Diffstat (limited to 'share/FAQ/Text/slip_server.FAQ')
-rw-r--r--share/FAQ/Text/slip_server.FAQ433
1 files changed, 433 insertions, 0 deletions
diff --git a/share/FAQ/Text/slip_server.FAQ b/share/FAQ/Text/slip_server.FAQ
new file mode 100644
index 0000000..99b50a2
--- /dev/null
+++ b/share/FAQ/Text/slip_server.FAQ
@@ -0,0 +1,433 @@
+ Slip Server
+ FAQ
+ For
+ FreeBSD
+
+$Id: slip_server.FAQ,v 1.2 1994/12/16 04:01:16 gclarkii Exp $
+
+Help for setting up SLIP Server services on a FreeBSD system
+------------------------------------------------------------
+
+Written by Guy Helmer (ghelmer@alpha.dsu.edu)
+Last Updated December 13, 1994
+
+This document provides suggestions for setting up SLIP Server services
+on a FreeBSD system, which typically means configuring your system to
+automatically startup connections upon login for remote SLIP clients.
+I've written this document based on my own experience; however, as
+your system and needs may be different, this document may not answer
+all of your questions, and I cannot be responsible if you damage your
+system or lose data due to attempting to follow the suggestions here.
+
+I have only setup SLIP Server services on a FreeBSD 1.1 system, so if
+you are running a different version (such as FreeBSD 2.0), your system
+may be different. I've decided to write this document since I've
+recently been asked for the umpteenth time how to setup a FreeBSD
+machine as a SLIP server :-)
+
+
+1. Prerequisites
+----------------
+
+This document is very technical in nature, so background knowledge is
+required. I must assume that you are familiar with the TCP/IP network
+protocol, and in particular, network and node addressing, network
+address masks, subnetting, routing, and routing protocols, such as
+RIP. Configuring SLIP services on a dial-up server requires a
+knowledge of these concepts, and if you are not familiar with them,
+please read a copy of either Craig Hunt's "TCP/IP Network
+Administration" published by O'Reilly & Associates, Inc. (ISBN Number
+0-937175-82-X), or Douglas Comer's book on the TCP/IP protocol.
+
+I will assume that you have already setup your modem(s) and configured
+the appropriate system files to allow logins through your modems (see
+the manual pages for sio(4) for information on the serial port device
+driver and ttys(5), gettytab(5), getty(8), & init(8) for information
+relevant to configuring the system to accept logins on modems, and
+perhaps stty(1) for information on setting serial port parameters
+[such as "clocal" for directly-connected serial interfaces]).
+
+2. Quick Overview
+-----------------
+
+In its typical configuration, using FreeBSD as a SLIP server works as
+follows: a SLIP user dials up your FreeBSD SLIP Server system and logs
+in with a special SLIP login ID that uses "/usr/sbin/sliplogin" as the
+special user's shell. The "sliplogin" program browses the file
+"/etc/slip.hosts" to find a matching line for the special user, and if
+it finds a match, connects the serial line to an available SLIP
+interface and then runs /etc/slip.login to configure the SLIP
+interface.
+
+2.1 An Example of a SLIP Server Login
+-------------------------------------
+
+For example, if my SLIP user ID were "Shelmerg", that user's entry in
+/etc/master.passwd would look something like this (except it would be
+all on one line):
+
+Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:
+ /usr/users/Shelmerg:/usr/sbin/sliplogin
+
+and, when I log in with that user ID, "sliplogin" will search
+/etc/slip.hosts for a line that had a matching user ID; on my system,
+I may have a line in /etc/slip.hosts that reads:
+
+Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
+
+sliplogin will find that matching line, hook the serial line I'm on
+into the next available SLIP interface, and then execute
+/etc/slip.login like this:
+
+/etc/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
+
+If all goes well, /etc/slip.login will issue an "ifconfig" for the
+SLIP interface to which sliplogin attached itself (slip interface 0,
+in the above example, which was the first parameter in the list given
+to slip.login) to set the local IP address (dc-slip), remote IP
+address (sl-helmer), network mask for the SLIP interface (0xfffffc00),
+and any additional flags (autocomp). If something goes wrong,
+sliplogin usually logs good informational messages via the daemon
+syslog facility, which usually goes into /var/log/messages (see the
+manual pages for syslogd(8) and syslog.conf(5), and perhaps check
+/etc/syslog.conf to see to which files syslogd is logging).
+
+OK, enough of the examples -- let's dive into setting up the system.
+
+3. Kernel Configuration
+-----------------------
+
+FreeBSD's default kernels usually come with two SLIP interfaces
+defined (sl0 and sl1); you can use "netstat -i" to see whether these
+interfaces are defined in your kernel.
+
+Sample output from "netstat -i":
+Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
+ed0 1500 <Link>0.0.c0.2c.5f.4a 291311 0 174209 0 133
+ed0 1500 138.247.224 ivory 291311 0 174209 0 133
+lo0 65535 <Link> 79 0 79 0 0
+lo0 65535 loop localhost 79 0 79 0 0
+sl0* 296 <Link> 0 0 0 0 0
+sl1* 296 <Link> 0 0 0 0 0
+
+The sl0 and sl1 interfaces shown in "netstat -i"'s output indicate
+that there are two SLIP interfaces built into the kernel. (The
+asterisks after the "sl0" and "sl1" indicate that the interfaces are
+"down".)
+
+However, FreeBSD's default kernels do not come configured to forward
+packets (ie, your FreeBSD machine will not act as a router) due to
+Internet RFC requirements for Internet hosts (see RFC's 1009
+[Requirements for Internet Gateways], 1122 [Requirements for Internet
+Hosts -- Communication Layers], and perhaps 1127 [A Perspective on the
+Host Requirements RFCs]), so if you want your FreeBSD SLIP Server to
+act as a router, you'll have to add the line "options GATEWAY" to your
+machine's kernel configuration file and re-compile the kernel anyway.
+(Trivia: "Gateways" are the Internet's old name for what are now
+usually called "routers".)
+
+Please see the BSD System Manager's Manual chapter on "Building
+Berkeley Kernels with Config" [the source for which is in
+/usr/src/share/doc/smm] and the "FreeBSD Configuration Options" [in
+/sys/doc/options.doc] for more information on configuring and building
+kernels. You may have to unpack the kernel source distribution if
+haven't installed the system sources already (srcdist/srcsys.?? in
+FreeBSD 1.1, srcdist/sys.?? in FreeBSD 1.1.5.1, or the entire source
+distribution in FreeBSD 2.0-RELEASE) to be able to configure and build
+kernels.
+
+You'll notice that near the end of the default kernel configuration
+file (/sys/i386/conf/GENERICAH) is a line that reads:
+
+pseudo-device sl 2
+
+which is the line that defines the number of SLIP devices available in
+the kernel; the number at the end of the line is the maximum number of
+SLIP connections that may be operating simultaneously.
+
+See the "Building Berkeley Kernels with Config" and the manual page
+for config(8) to see how to configure and build kernels.
+
+4. Sliplogin Configuration
+--------------------------
+
+As mentioned earlier, there are three files in the /etc directory that
+are part of the configuration for /usr/sbin/sliplogin (see
+sliplogin(8) for the actual manual page for sliplogin): slip.hosts,
+which lists the SLIP users & their associated IP addresses;
+slip.login, which usually just configures the SLIP interface; and
+slip.logout, which undoes slip.login's effects when the serial
+connection is terminated.
+
+4.1 slip.hosts Configuration & Local and Remote Address Selection
+-----------------------------------------------------------------
+
+/etc/slip.hosts contains lines which have at least four items listed:
+a SLIP user's login ID, the local address (local to the SLIP server)
+of the SLIP link, the remote address of the SLIP link, and the network
+mask. The local and remote addresses may be host names (given in
+/etc/hosts or by the domain name service, depending on your
+specifications in /etc/host.conf), and I believe the network mask may
+be a name that can be resolved by a lookup into /etc/networks. On one
+of my systems, /etc/slip.hosts looks like this:
+
+----- begin /etc/slip.hosts -----
+#
+# login local-addr remote-addr mask opt1 opt2
+# (normal,compress,noicmp)
+#
+Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp
+----- end /etc/slip.hosts ------
+
+At the end of the line is one or more of the options:
+
+ "normal" - no header compression
+ "compress" - compress headers
+ "autocomp" - compress headers if the remote end allows it
+ "noicmp" - disable ICMP packets (so any "ping" packets won't use up
+ any of your bandwidth)
+
+Your choice of local and remote addresses for your SLIP links depends
+on whether you are going to dedicate a TCP/IP subnet or if you are
+going to use "proxy ARP" on your SLIP server (it's not "true" proxy
+ARP, but that is the terminology that I will use in this document to
+describe it). If you're not sure which method to select or how to
+assign IP addresses, please refer to the TCP/IP books referenced in
+the "Prerequisites" section and/or consult your IP network manager.
+
+If you are going to use a separate subnet for your SLIP clients, you
+will need to allocate the subnet number out of your assigned IP
+network number and assign each of your SLIP client's IP numbers out of
+that subnet; then you will probably either need to configure a static
+route to the SLIP subnet via your SLIP server on your nearest IP
+router, or install "gated" on your FreeBSD SLIP server and configure
+it to talk the appropriate routing protocols to your other routers to
+inform them about your SLIP server's route to the SLIP subnet.
+
+Otherwise, if you will use the "proxy ARP" method, you will need to
+assign your SLIP client's IP addresses out of your SLIP server's
+Ethernet subnet, and you'll also need to adjust your /etc/slip.login
+and /etc/slip.logout scripts to use arp(8) to manage the proxy-ARP
+entries in the SLIP server's ARP table.
+
+4.2 slip.login Configuration
+----------------------------
+
+The typical /etc/slip.login file looks like this:
+
+----- begin /etc/slip.login -----
+#!/bin/sh -
+#
+# @(#)slip.login 5.1 (Berkeley) 7/1/90
+
+#
+# generic login file for a slip line. sliplogin invokes this with
+# the parameters:
+# 1 2 3 4 5 6 7-n
+# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
+#
+/sbin/ifconfig sl$1 inet $4 $5 netmask $6
+----- end /etc/slip.login -----
+
+This slip.login file merely ifconfig's the appropriate SLIP interface
+with the local and remote addresses and network mask of the SLIP
+interface.
+
+If you have decided to use the "proxy ARP" method (instead of using a
+separate subnet for your SLIP clients), your /etc/slip.login file will
+need to look something like this:
+
+----- begin /etc/slip.login for "proxy ARP" -----
+#!/bin/sh -
+#
+# @(#)slip.login 5.1 (Berkeley) 7/1/90
+
+#
+# generic login file for a slip line. sliplogin invokes this with
+# the parameters:
+# 1 2 3 4 5 6 7-n
+# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
+#
+/sbin/ifconfig sl$1 inet $4 $5 netmask $6
+# Answer ARP requests for the SLIP client with our Ethernet addr
+/usr/sbin/arp -s $5 00:11:22:33:44:55 pub
+----- end /etc/slip.login for "proxy ARP" -----
+
+The additional line in this slip.login, "arp -s...", creates an ARP
+entry in the SLIP server's ARP table which asks the system to give out
+the SLIP server's Ethernet MAC address whenever a another system or
+router on the Ethernet asks to speak to the SLIP client's IP address.
+
+When using the example above, be sure to replace the Ethernet MAC
+address (00:11:22:33:44:55) with the MAC address of your system's
+Ethernet card, or your "proxy ARP" will definitely not work! You can
+discover your SLIP server's Ethernet MAC address by looking at the
+results of running "netstat -i"; the second line of the output should
+look something like:
+
+ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116
+ ^^^^^^^^^^^^^^^
+
+which indicates that this particular system's Ethernet MAC address is
+"00:02:c1:28:5f:4a" -- the periods in the Ethernet MAC address given
+by "netstat -i" must be changed to colons and leading zeros should be
+added to each single-digit hexadecimal number to convert the address
+into the form that arp(8) desires; see the manual page on arp(8) for
+complete information on usage.
+
+Note that when you create /etc/slip.login and /etc/slip.logout, the
+"execute" bit ("chmod 755 /etc/slip.login /etc/slip.logout") must be
+set, or sliplogin will be unable to execute it.
+
+4.3 slip.logout Configuration
+-----------------------------
+
+"/etc/slip.logout" isn't strictly needed, but if you decide to create
+it, this is an example of a basic slip.logout script:
+
+----- begin /etc/slip.logout -----
+#!/bin/sh -
+#
+# slip.logout
+
+#
+# logout file for a slip line. sliplogin invokes this with
+# the parameters:
+# 1 2 3 4 5 6 7-n
+# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
+#
+/sbin/ifconfig sl$1 down
+----- end /etc/slip.logout -----
+
+If you are using "proxy ARP", you'll want to have /etc/slip.logout
+remove the ARP entry for the SLIP client:
+
+----- begin /etc/slip.logout for "proxy ARP" -----
+#!/bin/sh -
+#
+# @(#)slip.logout
+
+#
+# logout file for a slip line. sliplogin invokes this with
+# the parameters:
+# 1 2 3 4 5 6 7-n
+# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
+#
+/sbin/ifconfig sl$1 down
+# Quit answering ARP requests for the SLIP client
+/usr/sbin/arp -d $5
+----- end /etc/slip.logout for "proxy ARP" -----
+
+The "arp -d $5" removes the ARP entry that the "proxy ARP" slip.login
+added when the SLIP client logged in.
+
+It bears repeating: make sure /etc/slip.logout has the execute bit set
+for after you create it (e.g., "chmod 755 /etc/slip.logout").
+
+5. Routing Considerations
+-------------------------
+
+If you are not using the "proxy ARP" method for routing packets
+between your SLIP clients and the rest of your network (and perhaps
+the Internet), you will probably either have to add static routes to
+your closest default router(s) to route your SLIP client subnet via
+your SLIP server, or you will probably need to install and configure
+gated on your FreeBSD SLIP server so that it will tell your routers
+via appropriate routing protocols about your SLIP subnet.
+
+5.1 Static Routes
+-----------------
+
+Adding static routes to your nearest default routers can be
+troublesome (or impossible, if you don't have authority to do so...).
+If you have a multiple-router network in your organization, some
+routers, such as Cisco and Proteon, may not only need to be configured
+with the static route to the SLIP subnet, but also need to be told
+which static routes to tell other routers about, so some expertise and
+troubleshooting/tweaking may be necessary to get static-route-based
+routing to work...
+
+5.2 Running gated
+-----------------
+
+An alternative to the headaches of static routes is to install gated
+on your FreeBSD SLIP server and configure it to use the appropriate
+routing protocols (RIP/OSPF/BGP/EGP) to tell other routers about your
+SLIP subnet. gated is available from ftp.gated.cornell.edu in
+/pub/gated; I believe the current version as of this writing is
+"gated-R3_5Alpha_8.tar.Z", which should include support for FreeBSD
+"out-of-the-box". Compile and install it, and then write a
+/etc/gated.conf file to configure your gated; here's a sample, similar
+to what I use on my FreeBSD SLIP server:
+
+----- begin sample /etc/gated.conf for gated version 3.5Alpha5 -----
+#
+# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5
+# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface
+#
+#
+# tracing options
+#
+traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;
+
+rip yes {
+ interface sl noripout noripin ;
+ interface ed ripin ripout version 1 ;
+ traceoptions route ;
+} ;
+
+#
+# Turn on a bunch of tracing info for the interface to the kernel:
+kernel {
+ traceoptions remnants request routes info interface ;
+} ;
+
+#
+# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP
+#
+
+export proto rip interface ed {
+ proto direct {
+ xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections
+ } ;
+} ;
+
+#
+# Accept routes from RIP via ed Ethernet interfaces
+
+import proto rip interface ed {
+ all ;
+} ;
+
+----- end sample /etc/gated.conf -----
+
+The above sample gated.conf file broadcasts routing information
+regarding the SLIP subnet "xxx.xxx.yy" via RIP onto the Ethernet; if
+you are using a different Ethernet driver than the "ed" driver, you'll
+need to change the references to the "ed" interface appropriately.
+This sample file also sets up tracing to /var/tmp/gated.output for
+debugging gated; you can certainly turn off the tracing options if
+gated works OK for you. I've changed my SLIP subnet's address to
+"xxx.xxx.yy" throughout the above file; you'll need to change the
+"xxx.xxx.yy"'s into the network address of your own SLIP subnet (be
+sure to change the net mask in the "proto direct" clause as well).
+Complete gated configuration information may be read through the Web
+at "http://www.gated.cornell.edu/".
+
+When you get gated built and installed, and create a configuration
+file for it, you'll need to run gated in place of routed on your
+FreeBSD system; change the routed/gated startup parameters in
+/etc/netstart as appropriate for your system. Please see the manual
+page for gated for information on gated's command-line parameters.
+
+6. Acknowledgements
+-------------------
+
+Thanks to these people for comments and advice regarding this FAQ:
+
+ Wilko Bulte <wilko@yedi.iaf.nl>
+ Piero Serini <Piero@Strider.Inet.IT>
+
+<<< END OF SLIP SERVER FAQ >>>
+
+
OpenPOWER on IntegriCloud