Differences between version 3 and previous revision of HowToNetHOWTO.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Friday, October 29, 2004 10:11:04 am | by StuartYeates | Revert |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:07:11 am | by perry | Revert |
@@ -1,7014 +1 @@
-Linux Networking HOWTO
-!!!Linux Networking HOWTO
-!Joshua Drake
-
-Copyright (c) 2000 by Commandprompt, Inc
-
-
-
-
-
-
-
-This is a !LinuxPorts.Com Document for the Linux Documentation Project. It has been sponsored in part
-by the Open Source Documentation Fund.
-
-
-
-The current version is v1.7.0 is a minor update with some grammar fixes.
-
-
-
-
-
-----; __Table of Contents__; 1. How can I help?: ; 1.1. Assisting with the Net-HOWTO; 2. Document History: ; 2.1. Feedback; 3. How to use this HOWTO.: ; 3.1. Conventions used in this document; 4. General Information about Linux Networking.: ; 4.1. Linux Networking Resources.; 4.2. Sources of non-linux-specific network information.; 5. Generic Network Configuration Information.: ; 5.1. What do I need to start ?: ; 5.1.1. Current Kernel source(Optional).; 5.1.2. IP Addresses: an Explanation.; 5.2. Where should I put the configuration commands ?; 5.3. Creating your network interfaces.; 5.4. Configuring a network interface. Kernels 2.0 and 2.2; 5.5. Configuring your Name Resolver.: ; 5.5.1. What's in a name ?; 5.5.2. What information you will need.; 5.5.3. /etc/resolv.conf; 5.5.4. /etc/host.conf; 5.5.5. /etc/hosts; 5.5.6. Running a name server; 5.6. Configuring your loopback interface.; 5.7. Routing.: ; 5.7.1. So what does the ''routed'' program do ?; 5.8. Configuring your network servers and services.: ; 5.8.1. /etc/services: ; 5.8.1.1. An example /etc/services file.; 5.8.2. /etc/inetd.conf: ; 5.8.2.1. An example /etc/inetd.conf; 5.9. Other miscellaneous network related configuration files.: ; 5.9.1. /etc/protocols; 5.9.2. /etc/networks; 5.10. Network Security and access control.: ; 5.10.1. /etc/ftpusers; 5.10.2. /etc/securetty; 5.10.3. The ''tcpd'' hosts access control mechanism.: ; 5.10.3.1. /etc/hosts.allow; 5.10.3.2. /etc/hosts.deny; 5.10.4. /etc/hosts.equiv; 5.10.5. Configure your ''ftp'' daemon properly.; 5.10.6. Network Firewalling.; 5.10.7. Other suggestions.; 6. Ethernet Information: ; 6.1. Supported Ethernet Cards: ; 6.1.1. 3Com; 6.1.2. AMD, ATT, Allied Telesis, Ansel, Apricot; 6.1.3. Cabletron, Cogent, Crystal Lan; 6.1.4. Danpex, DEC, Digi, DLink; 6.1.5. Fujitsu, HP, ICL, Intel; 6.1.6. KTI, Macromate, NCR NE2000/1000, Netgear, New Media; 6.1.7. !PureData, SEEQ, SMC; 6.1.8. Sun Lance, Sun Intel, Schneider, WD, Zenith, IBM, Enyx; 6.2. General Ethernet Information; 6.3. Using 2 or more Ethernet Cards in the same machine: ; 6.3.1. If your driver is a module (Normal with newer distros); 7. IP Related Information: ; 7.1. Kernel Level Options: ; 7.1.1. General IP option listing; 7.2. EQL - multiple line traffic equaliser; 7.3. IP Accounting (for Linux-2.): ; 7.3.1. IP Accounting (for Linux-2.2); 7.4. IP Aliasing; 7.5. IP Firewall (for Linux-2.): ; 7.5.1. IP Firewall (for Linux-2.2); 7.6. IPIP Encapsulation: ; 7.6.1. A tunneled network configuration.; 7.6.2. A tunneled host configuration.; 7.7. IP Masquerade: ; 7.7.1. Masquerading with IPFWADM (Kernels 2..x); 7.7.2. Masquerading with IPCHAINS; 7.8. IP Transparent Proxy; 7.9. IPv6; 7.10. IPv6 Linux resources; 7.11. Mobile IP; 7.12. Multicast; 7.13. Traffic Shaper - Changing allowed bandwidth; 8. DHCP and DHCPD: ; 8.1. DHCP Client Setup for users of !LinuxConf; 8.2. DHCP Server Setup for Linux: ; 8.2.1. Options for DHCPD; 8.2.2. Starting the server; 9. Advanced Networking with Kernel 2.2: ; 9.1. The Basics: ; 9.1.1. Using the information; 9.2. Adding a route with the new ip tools; 9.3. Using NAT with Kernel 2.2; 10. Kernel 2.2 IP Command Reference (Work In Progress): ; 10.1. ip; 11. Using common PC hardware: ; 11.1. ISDN; 11.2. PLIP for Linux-2.: ; 11.2.1. PLIP for Linux-2.2; 11.3. PPP; 11.4. SLIP client - (Antiquated): ; 11.4.1. dip; 11.4.2. slattach; 11.4.3. When do I use which ?; 11.4.4. Static SLIP server with a dialup line and DIP.; 11.4.5. Dynamic SLIP server with a dialup line and DIP.; 11.4.6. Using DIP.; 11.4.7. Permanent SLIP connection using a leased line and slattach.; 11.4.8. SLIP server.; 11.4.9. Slip Server using ''sliplogin''.; 11.4.10. Where to get ''sliplogin''; 11.4.11. Configuring /etc/passwd for Slip hosts.; 11.4.12. Configuring /etc/slip.hosts; 11.4.13. Configuring the /etc/slip.login file.; 11.4.14. Configuring the /etc/slip.logout file.; 11.4.15. Configuring the /etc/slip.tty file.; 11.4.16. Slip Server using ''dip''.; 11.4.17. Configuring /etc/diphosts; 11.4.18. SLIP server using the ''dSLIP'' package.; 12. Other Network Technologies: ; 12.1. ARCNet; 12.2. Appletalk (AF_APPLETALK): ; 12.2.1. Configuring the Appletalk software.; 12.2.2. Exporting a Linux filesystems via Appletalk.; 12.2.3. Sharing your Linux printer across Appletalk.; 12.2.4. Starting the appletalk software.; 12.2.5. Testing the appletalk software.; 12.2.6. Caveats of the appletalk software.; 12.2.7. More information; 12.3. ATM; 12.4. AX25 (AF_AX25); 12.5. DECNet; 12.6. FDDI; 12.7. Frame Relay; 12.8. IPX (AF_IPX); 12.9. !NetRom (AF_NETROM); 12.10. Rose protocol (AF_ROSE); 12.11. SAMBA - `NetBEUI', `!NetBios', `CIFS' support.; 12.12. STRIP support (Starmode Radio IP); 12.13. Token Ring; 12.14. X.25; 12.15. !WaveLan Card; 13. Cables and Cabling: ; 13.1. Serial NULL Modem cable; 13.2. Parallel port cable (PLIP cable); 13.3. 10base2 (thin coax) Ethernet Cabling; 13.4. Twisted Pair Ethernet Cable; 14. Glossary of Terms used in this document.; 15. Authors: ; 15.1. Current; 15.2. Past; 16. Copyright.----
-!!!Chapter 1. How can I help?
-
-We will try to provide comprehensive coverage for all Linux Networking implementations. However,
-time is of the essence, and this document is not a revenue maker. We provide this information
-in the hope that it will be useful to both the Linux Community and to newly converted Linux users.
-We are always interested in feedback! We will implement every relevant topic possible in
-this HOWTO document.
-
-
-
-
-
-----
-!!!1.1. Assisting with the Net-HOWTO
-
-If you would like to assist with this document, there are two primary avenues that are extremely
-helpful.
-
-
-
-
-
-
-*
-
-Purchase an !OpenBook! If you purchase
-!OpenDocs books, !OpenDocs Publishing will donate a portion of the proceeds back to the
-Open Source Documentation Fund. This
-fund assists authors financially while they continue to write documentation for Open Source
-projects.
-
-
-*
-*
-
-''Provide a monetary contribution to the document''. By contributing, you can even request what
-you would like to have updated, written, or expanded within the document. To provide
-a monetary contribution, please contact Command Prompt, Inc.
-You may also contact Joshua Drake.
-
-
-*
-*
-
-If you have written something that you would like to contribute, please email it to
-poet@linuxports.com
-
-
-*----
-!!!Chapter 2. Document History
-
-The original NET-FAQ was written by Matt Welsh and Terry Dawson. NET-FAQ
-answered frequently asked questions about networking for Linux (at a time
-before the Linux Documentation Project had formally started). This document
-covered the very early development versions of the Linux Networking
-Kernel. The NET-2-HOWTO superseded the NET-FAQ, and it was one of the
-original LDP HOWTO documents. It covered what was called "version 2" (and
-subsequently "version 3") of the Linux kernel Networking software. NET-2_HOWTO
-in turn superseded it, and relates only to version 4 of the Linux
-Networking Kernel (ie: kernel releases 2.x and 2.2.x. ).
-
-
-
-Previous versions of this document became quite large because of
-the enormous amount of material that fell within its scope. To help
-reduce this problem, a number of HOWTOs dealing with specific
-networking topics have been produced. This document will provide
-pointers to them where relevant, and it will cover those areas not yet reviewed
-by other documents.
-
-----
-!!!2.1. Feedback
-
-We are always interested in feedback. Please contact us at:
-poet@linuxports.com.
-
-
-
-If you find anything erroneous, or if you feel that something should be
-added, please contact us.
-
-
-
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 3. How to use this HOWTO.
-
-This document is organized top-down. The first sections include
-informative material, and it can be skipped if you are not interested;
-what follows is a generic discussion of networking issues, and you
-must ensure you understand this before proceeding to more specific
-parts. The ``technology specific'' information is grouped into
-three main sections: Ethernet and IP-related information, technologies
-pertaining to widespread PC hardware, and seldom-used technologies.
-
-
-
-The suggested path through this document is as follows:
-
-
-
-
-
-
-
-; Read the generic sections::
-
-These sections apply to almost every technology described in
-subsequent sections, and they are very important for you to understand.
-I expect many of the readers will be confident with this material.
-
-; Consider your network::
-
-You should know how your network is (or will be)
-designed, and you should also be familiar with
-exactly what hardware and technology types you will be implementing.
-
-; If you are directly connected to a LAN or the Internet,
-please refer to the ``Ethernet and IP'' section::
-
-This section describes basic Ethernet configurations, and it describes
-the various features that Linux offers for IP networking (ie: firewalling,
-advanced routing, etc).
-
-; If you are interested in low-cost local
-networks or dial-up connections, please refer to the next section:
-
-This section describes the widespread technologies used on personal
-workstations (ie: PLIP, PPP, SLIP, and ISDN).
-
-; Please refer to the technology-specific sections
-that are related to your requirements::
-
-Your needs may differ from IP and/or other common
-hardware This final section covers details specific to both
-non-IP protocols and to peculiar communication hardware.
-
-; Do the configuration work::
-
-You should actually try to
-configure your network. Take careful note of
-any existing problems
-
-; Look for further help::
-
-If you experience problems that this document does not
-help you to resolve, then you should refer to the sections
-related to "Help" and "Where to report bugs".
-
-; Have fun!:
-
-Networking is fun! Enjoy it!
-
-
-
-----
-!!!3.1. Conventions used in this document
-
-No special conventions are used here, but you must be warned about
-the way commands are shown. This howto follows the classic Unix documentation:
-any command you type to your shell is prefixed by a
-prompt. It shows "user%" as the prompt for commands
-that do not require superuser privileges, and "root#" as the
-prompt for commands that need to run as root. I chose to use
-"root#" instead of a plain "#" to prevent confusion
-with snapshots from shell scripts (where the hash mark is used to
-define comment lines).
-
-
-
-When ``Kernel Compile Options'' are shown, they are represented in
-the format used by ''menuconfig''. They should be understandable even
-if you (like me) are not used to ''menuconfig''. If you are
-in doubt about the options' nesting, then running the program once can
-always help.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 4. General Information about Linux Networking.
-!!!4.1. Linux Networking Resources.
-
-There are a number of places where you can find good information about
-Linux networking.
-
-
-
-There are a wealth of Consultants available to assist you. A search able
-listing can be found at:
-http://www.linuxports.com/.
-
-
-
-Alan Cox, the current maintainer of the Linux kernel networking code, maintains
-a world wide web page containing highlights of current and new developments
-in Linux Networking:
-www.uk.linux.org.
-
-
-
-There is a newsgroup in the Linux news hierarchy dedicated to networking
-and related matters at this location:
-comp.os.linux.networking
-
-
-
-You can also subscribe to a mailing list where you may ask questions
-relating to Linux networking. Send an email message for a subscription to:
-
- To: majordomo@vger.rutgers.edu
-Subject: anything at all
-Message:
-subscribe linux-net
-
-
-
-Please remember to include as much relevant detail
-about the problem as possible. You should specify the versions of
-software that you are using (especially the kernel version), the version of
-tools such as ''pppd/'' or ''dip'' ,
-and the exact nature of the problem(s) that you are experiencing. This means you should take notes
-of both the exact syntax of error message(s) you receive, and of any commands that you are issuing.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!4.2. Sources of non-linux-specific network information.
-
-If you are after some basic tutorial information on tcp/ip networking,
-then I recommend you take a look at the following documents:
-
-
-
-
-
-
-
-; tcp/ip introduction::
-
-This document comes as both a text version and a postscript version.
-
-; tcp/ip administration::
-
-This document comes as both a
-text version and a postscript version.
-
-
-
-
-
-If you are after some more detailed information on tcp/ip networking, then
-I highly recommend:
-
-
-
-"''Inter networking with TCP/IP, Volume 1: Principles,
-Protocols and Architecture'', by Douglas E. Comer, ISBN
--13-227836-7, Prentice Hall publications, Third Edition,
-1995."
-
-
-
-If you are wanting to learn about how to write network applications in
-a Unix compatible environment, then I recommend:
-
-
-
-"''Unix Network Programming'', by W. Richard Stevens,
-ISBN -13-949876-1, Prentice Hall Publications, 1990."
-
-
-
-A second edition of this book is appearing on the bookshelves. The new
-book is made up of three volumes. Check Prenice-Hall's web site for further details.
-
-
-
-You might also try the comp.protocols.tcp-ip newsgroup.
-
-
-
-RFCs are an important source of specific technical information relating to
-the Internet and the tcp/ip suite of protocols. RFC is an
-acronym for `Request For Comment' and it is the standard means of
-submitting and documenting Internet protocol standards. There are many
-RFC repositories. Many of these sites are ftp sites. Others provide
-World Wide Web access (with an associated search engine) that allows you
-to search the RFC database for particular keywords.
-
-
-
-One possible source for RFCs is at Nexor RFC database.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 5. Generic Network Configuration Information.
-
-You will pretty much need to know and understand the following subsections
-before you actually try to configure your network. They are fundamental
-principles that apply regardless of the exact nature of the network you
-wish to deploy.
-
-----
-!!!5.1. What do I need to start ?
-
-Before you start building or configuring your network, you will need
-certain items. The most important of these are:
-
-----
-!!5.1.1. Current Kernel source(Optional).
-
-Please note:
-
-
-
-The majority of current distributions come with networking enabled.
-It may not be required to recompile the kernel. If you are running well known
-hardware you should be fine. For example: 3COM NIC, NE2000 NIC, or an
-Intel NIC. However, if you find yourself in the position that you do need to
-update the kernel, the following information is provided.
-
-
-
-Because the kernel you are running now might not yet have support for the
-network types or cards that you wish to use, you will probably need the
-kernel source to recompile the kernel with the appropriate
-options.
-
-
-
-For users of the major distributions such as Redhat, Caldera, Debian, or
-Suse, this no longer holds true. As long as you stay within the mainstream of
-hardware, there should be no need to recompile your kernel (unless there is a
-very specific feature that you need).
-
-
-
-You can always obtain the latest kernel source from ftp.cdrom.com.
-This is not the official site, but they have LOTS of bandwidth and capacity.
-The official site is kernel.org, however, please use the above URL if
-you can. Please remember that ftp.kernel.org is seriously overloaded. Use a
-mirror.
-
-
-
-Normally the kernel source will be untarred into the
-/usr/src/linux directory. For information on how to apply
-patches and build the kernel, you should read the Kernel-HOWTO. For information on how
-to configure kernel modules, you should read the ``Modules
-mini-HOWTO''. The README file found in the kernel
-sources and the Documentation directory are very informative:
-for the brave reader!
-
-
-
-Unless specifically stated, I recommend you stick with
-the standard kernel release (the one with the even number as the
-second digit in the version number). Development release kernels (the
-ones with the odd second digit) may have structural or other changes
-that may cause problems working with other software on your
-system. If you are uncertain that you could resolve those sorts of
-problems, then don't use Development release kernels.
-
-----
-!!5.1.2. IP Addresses: an Explanation.
-
-Internet Protocol Addresses are composed of four bytes. The convention is
-to write addresses in what is called `dotted decimal notation'. In this form,
-each byte is converted to a decimal number, (-255). It drops any leading
-zeros (unless the number is zero) and written with each byte separated by a
-`.' character. By convention, each interface of a host or router has an IP
-address. It is legal for the same IP address to be used on each interface of a
-single machine, but usually each interface will have its own address.
-
-
-
-Internet Protocol Networks are contiguous sequences of IP addresses. All
-addresses within a network have a number of digits within the address in
-common. The portion of the address that is common amongst all addresses
-within the network is called the `network portion' of the address. The
-remaining digits are called the `host portion'. The number of bits that
-are shared by all addresses within a network is called the netmask. It
-is the role of the netmask to determine which addresses belong to the network it
-is applied to and which don't belong. For example, consider the following:
-
-
-
-
- ----------------- ---------------
-Host Address 192.168.110.23
-Network Mask 255.255.255.
-Network Portion 192.168.110.
-Host portion .23
------------------ ---------------
-Network Address 192.168.110.
-Broadcast Address 192.168.110.255
------------------ ---------------
-
-
-
-Any address that is 'bitwise anded' with its netmask will reveal the address
-of the network that it belongs to. The network address is therefore always the
-lowest numbered address within the range of addresses on the network, and
-it always has the host portion of the address coded in all zeroes.
-
-
-
-The broadcast address is a special address that every host on the network
-listens to (in addition to its own unique address). This address is the one
-that datagrams are sent to if every host on the network is meant to receive
-it. Certain types of data, like routing information and warning messages,
-are transmitted to the broadcast address so that every host on the network
-can receive it simultaneously. There are two commonly used standards for
-the broadcast address. The most widely accepted one is to
-use the highest possible address on the network as the broadcast address.
-In the above example, this would be 192.168.110.255.
-For some reason other sites have adopted the convention of using the network address
-as the broadcast address. In practice it doesn't matter very much which you use,
-but you must make sure that every host on the network is configured with the
-same broadcast address.
-
-
-
-For administrative reasons (some time early in the development of the IP
-protocol), some arbitrary groups of addresses were formed into networks.
-These networks were grouped into what are called classes. Classes
-provide a number of standard size networks that could be allocated. The ranges
-allocated are:
-
-
-
-
- --------------------------------------------------------------------------------
-| Network | Netmask | Network Addresses |
-| Class | | |
---------------------------------------------------------------------------------
-| A | 255...0 | ...0 - 127.255.255.255 |
-| B | 255.255..0 | 128...0 - 191.255.255.255 |
-| C | 255.255.255.0 | 192...0 - 223.255.255.255 |
-|Multicast| 240...0 | 224...0 - 239.255.255.255 |
---------------------------------------------------------------------------------
-
-
-
-What addresses you should use depends on exactly what it is that you
-are doing. You may have to use a combination of the following activities
-to get all the addresses you need:
-
-
-
-
-
-
-
-; Installing a Linux machine on an existing IP network:
-
-If you wish to install a Linux machine onto an existing IP network, then
-you should contact the network administrator and ask them for
-the following information:
-
-
-
-
-
-
-
-
-*
-
-Host IP Address
-
-
-*
-*
-
-IP network address
-
-
-*
-*
-
-IP broadcast address
-
-
-*
-*
-
-IP netmask
-
-
-*
-*
-
-Router address
-
-
-*
-*
-
-Domain Name Server Address
-
-
-*
-
-
-
-You should then configure your linux network device with those
-details. You can not make them up and expect your configuration to
-work.
-
-; Building a brand new network that will never connect to the
-Internet:
-
-If you are building a private network, and you never
-intend that network to be connected to the Internet, then you can
-choose whatever addresses you like. However, for safety and
-consistency reasons, there have been some IP network addresses that
-have been reserved specifically for this purpose. These are
-specified in RFC1597 and are as follows:
-
-
-
-
- -----------------------------------------------------------
-| RESERVED PRIVATE NETWORK ALLOCATIONS |
------------------------------------------------------------
-| Network | Netmask | Network Addresses |
-| Class | | |
------------------------------------------------------------
-| A | 255...0 | 10...0 - 10.255.255.255 |
-| B | 255.255..0 | 172.16..0 - 172.31.255.255 |
-| C | 255.255.255.0 | 192.168..0 - 192.168.255.255 |
------------------------------------------------------------
-
-
-
-You should first decide how large you want your network to be, then
-choose as many of the addresses as you require.
-
-
-
-----
-!!!5.2. Where should I put the configuration commands ?
-
-There are a few different approaches to Linux system boot
-procedures. After the kernel boots, it always executes a program
-called `''init'''. The ''init'' program then reads its configuration
-file called /etc/inittab and commences the boot
-process. There are a few different flavors of ''init''
-Everyone now seems to be gravitating to the System V (Five) flavor,
-developed by Miguel van Smoorenburg.
-
-
-
-Despite the fact that the ''init'' program is always the same, the
-setup of system boot is organized in a different way by each
-distribution.
-
-
-
-Usually the /etc/inittab file contains an entry looking something
-like:
-
-
-
-
- si::sysinit:/etc/init.d/boot
-
-
-
-This line specifies the name of the shell script file that actually manages
-the boot sequence. This file is somewhat equivalent to the AUTOEXEC.BAT
-file in MS-DOS.
-
-
-
-There are usually other scripts that are called by the boot script, and often
-the network is configured within one of these scripts.
-
-
-
-The following table may be used as a guide for your system:
-
-
-
-
----------------------------------------------------------------------------
-Distrib. | Interface Config/Routing | Server Initialization
----------------------------------------------------------------------------
-Debian | /etc/init.d/network | /etc/rc2.d/*
----------------------------------------------------------------------------
-Slackware| /etc/rc.d/rc.inet1 | /etc/rc.d/rc.inet2
----------------------------------------------------------------------------
-!RedHat | /etc/rc.d/init.d/network | /etc/rc.d/rc3.d/*
----------------------------------------------------------------------------
-
-
-
-Note that Debian and Red Hat use a whole directory to host scripts
-that fire up system services (and usually information does not lie
-within these files: for example, Red Hat systems store all of system
-configuration in files under /etc/sysconfig, where it is
-retrieved by boot scripts). If you want to grasp the details of the
-boot process, my suggestion is to check ''/etc/inittab'' and the
-documentation that accompanies ''init''. Linux Journal is also
-going to publish an article about system initialization, and this
-document will point to it as soon as it is available on the web.
-
-
-
-Most modern distributions include a program that will allow you to
-configure many of the common sorts of network interfaces. If you have
-one of these, you should see if it will do what you want before
-attempting a manual configuration.
-
-
-
-
- -----------------------------------------
-Distrib | Network configuration program
------------------------------------------
-!RedHat | /usr/bin/netcfg
-Slackware | /sbin/netconfig
------------------------------------------
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!5.3. Creating your network interfaces.
-
-In many Unix operating systems, the network devices have appearances in the
-''/dev'' directory. This is not so in Linux. In Linux, the network devices
-are created dynamically in software, and they do not require device files to
-be present.
-
-
-
-In the majority of cases, the network device is automatically created by the
-device driver (while it is initializing and locating your hardware). For
-example, the Ethernet device driver creates eth
[[..n
] interfaces
-sequentially as it locates your Ethernet hardware. The first Ethernet card
-found becomes eth0, the second eth1 etc.
-
-
-
-In some cases though, notably with ''slip'' and ''ppp'', the network devices
-are created through the action of some user program. The same sequential
-device numbering applies, but the devices are not created automatically
-at boot time. The reason for this is that unlike Ethernet devices, the number
-of active ''slip'' or ''ppp'' devices may vary during the uptime of the
-machine. These cases will be covered in more detail in later sections.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!5.4. Configuring a network interface. Kernels 2.0 and 2.2
-
-When you have all of the programs you need (and your address and network
-information), you can configure your network interfaces. When we talk about
-configuring a network interface, we are talking about two items. One is the process of assigning
-appropriate addresses to a network device. The second is setting the appropriate values
-for other configurable parameters of a network device. The program most
-commonly used to do this is the ''ifconfig'' (interface configure) command.
-
-
-
-Typically you would use a command similar to the following:
-
-
-
-
- root# ifconfig eth0 192.168..1 netmask 255.255.255.0 up
-
-
-
-In this example, I'm configuring an Ethernet interface `eth0' with the
-IP address `192.168..1' and a network mask of `255.255.255.'.
-The `''up''' that trails the command tells the interface that it should
-become active (but can usually be omitted) since it is the default. To
-shutdown an interface, you can just call ``ifconfig eth0 down''.
-
-
-
-The kernel assumes certain defaults when you are configuring interfaces. For example,
-you may specify the network address and broadcast address for an interface.
-If you don't (as in my example above), then the kernel will make reasonable
-guesses as to what these addresses should be. If you don't supply a netmask
-then on the network class of the IP address is auto-configured.
-In my example, the kernel would assume that it is a class-C network that is
-being configured on the interface. It would thus configure a network address of
-`192.168..' ,and a broadcast address of
-`192.168..255' for the interface.
-
-
-
-There are many other options to the ''ifconfig'' command. The most
-important of these are:
-
-
-
-
-
-
-
-; up:
-
-This option activates an interface (and it is the default).
-
-; down:
-
-This option deactivates an interface.
-
-; [[-]arp:
-
-This option enables or disables use of the
-address resolution protocol on this interface .
-
-; [[-]allmulti:
-
-This option enables or disables the
-reception of all hardware multicast packets. Hardware
-multicast enables groups of hosts to receive packets
-addressed to special destinations. This may be of
-importance if you are using applications like desktop
-video conferencing. This option is normally not used.
-
-; mtu N:
-
-This parameter allows you to set the ''MTU'' of
-this device.
-
-; netmask `addrb:
-
-This parameter allows you to set the network
-mask of the network. This device belongs to:
-
-; irq `addrb:
-
-This parameter only works on certain types of
-hardware. It allows you to set the hardware IRQ
-of this device.
-
-; [[-]broadcast [[addr]:
-
-This parameter allows you
-to enable and set the accepting of datagrams destined
-to the broadcast address.It also allows you to disable reception
-of these datagrams.
-
-; [[-]pointopoint [[addr]:
-
-This parameter allows you
-to set the address of the machine at the remote end of
-a Point-to-Point link (ie; for ''slip'' or
-''ppp'').
-
-; hw `type `addrb:
-
-This parameter allows you to set
-the hardware address of certain types of network
-devices. This is not often useful for Ethernet, but is
-useful for other network types like AX.25.
-
-
-
-
-
-With the release of Kernel 2.2, there are a number of options available
-that are not listed above. Some of the most interesting ones are tunneling and
-IPV6. The ifconfig parameters for kernel 2.2 are listed below.
-
-
-
-
-
-
-
-; interface:
-
-The name of the interface. This is usually a
-driver name followed by a unit number. For example,
-eth0 for the first Ethernet interface.
-
-; up:
-
-This flag causes the interface to be activated. It
-is implicitly specified if an address is assigned
-to the interface.
-
-; down:
-
-This flag causes the driver for this interface to
-be shut down.
-
-; [[-]arp:
-
-Enables or disables the use of the ARP protocol on
-this interface.
-
-; [[-]promisc:
-
-Enables or disables the promiscuous mode of the
-interface. If selected, all packets on the network
-will be received by the interface.
-
-; [[-]allmulti:
-
-Enables or disables all-multicast mode. If selected,
-all multicast packets on the network will be
-received by the interface.
-
-; metric N:
-
-This parameter sets the interface metric.
-
-; mtu N:
-
-This parameter sets the Maximum Transfer Unit (MTU)
-of an interface.
-
-; dstaddr addr:
-
-Sets the remote IP address for a point-to-point link
-(such as PPP). This keyword is now obsolete; you should
-now use the pointopoint keyword.
-
-; netmask addr:
-
-Sets the IP network mask for this interface. This
-value defaults to the usual class A, B or C network
-mask (as derived from the interface IP address).
-It can, however, be set to any value.
-
-; add addr prefixlen:
-
-Adds an IPv6 address to an interface.
-
-; del addr prefixlen:
-
-Removes an IPv6 address from an interface.
-
-; tunnel aa.bb.cc.dd:
-
-Creates a new SIT (IPv6-in-IPv4) device that tunnels
-to the given destination.
-
-; irq addr:
-
-Sets the interrupt line used by this device. Not
-all devices can dynamically change their IRQ set-
-ting.
-
-; io_addr addr:
-
-Sets the start address in I/O space for this device.
-
-; mem_start addr:
-
-Set the start address for shared memory used by
-this device. Only a few devices need this parameter.
-
-; media type:
-
-Sets the physical port (or medium type) to be used by
-the device. Not all devices can change this set-
-ting. Those that can change the setting vary in what values
-they support. Typical values for type are 10base2 (thin
-Ethernet), 10baseT (twisted-pair 10Mbps Ethernet),
-AUI (external transceiver) and so on. The special
-medium type of auto can be used to tell the driver
-to auto-sense the media. Again, not all drivers
-can do this.
-
-; [[-]broadcast [[addr]:
-
-If the address argument is given, set the protocol
-broadcast address for this interface. Otherwise,
-set (or clear) the IFF_BROADCAST flag for the
-interface.
-
-; [[-]pointopoint [[addr]:
-
-This keyword enables the point-to-point mode of an
-interface. This means that it is a direct link between
-two machines, and that nobody else is listening on it.
-If the address argument is also given, set the pro-
-tocol address of the other side of the link ( just
-as the obsolete dstaddr keyword does). Otherwise,
-set or clear the IFF_POINTOPOINT flag for the
-interface.
-
-; hw class address:
-
-Set the hardware address of this interface (if the
-device driver supports this operation). The keyword
-must be followed by the name of the hardware class
-and the printable ASCII equivalent of the hardware
-address. Hardware classes currently supported
-include ether (Ethernet), ax25 (AMPR AX.25), ARCnet
-and netrom (AMPR NET/ROM).
-
-; multicast:
-
-Set the multicast flag on the interface. This
-should not normally be needed because the drivers set
-the flag correctly themselves.
-
-; address:
-
-The IP address to be assigned to this interface.
-
-; txqueuelen length:
-
-Sets the length of the transmit queue of the device.
-It is useful to set this to small values for slower
-devices with a high latency (modem links, ISDN). This
-prevents fast bulk transfers from disturbing inter-
-active traffic (like telnet) too much.
-
-
-
-You may use the ''ifconfig'' command on any network interface. Some user
-programs such as ''pppd'' and ''dip'' automatically configure the network
-devices as they create them, so manual use of ''ifconfig'' is unnecessary.
-
-
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!5.5. Configuring your Name Resolver.
-
-The `''Name Resolver''' is a part of the linux standard library. Its prime
-function is to provide a service to convert human-friendly hostnames (like
-`ftp.funet.fi' ) into machine friendly IP addresses (such as
-128.214.248.6).
-
-----
-!!5.5.1. What's in a name ?
-
-You will probably be familiar with the appearance of Internet host
-names, but you may not understand how they are constructed or
-de-constructed. Internet domain names are hierarchical in nature.
-In other words, they have a tree-like structure. A `''domain''' is a family, or
-group, of names. A `''domain''' may be broken down into a
-`''subdomain'''. A `''top level domain''' is a domain that is not a
-subdomain. The Top Level Domains are specified in RFC-920. Some
-examples of the most common top level domains are:
-
-
-
-
-
-
-
-; COM:
-
-Commercial Organizations
-
-; EDU:
-
-Educational Organizations
-
-; GOV:
-
-Government Organizations
-
-; MIL:
-
-Military Organizations
-
-; ORG:
-
-Other Organizations
-
-; NET:
-
-Internet-Related Organizations
-
-; Country Designator:
-
-These are two- letter codes that
-represent a particular country.
-
-
-
-
-
-For historical reasons, most domains belonging to one of the
-non-country based top level domains were used by organizations within
-the United States (even though the United States also has its own country
-code `.us'). This is not true any more for .com and .org
-domains, which are commonly used by non-us companies.
-
-
-
-Each of these top level domains has subdomains. The top level
-domains based on country name are often next broken down into
-subdomains based on the com, edu, gov, mil and
-org domains. So for example you end up with: com.au and
-gov.au for commercial and government organizations in Australia;
-note that this is not a general rule, as actual policies depend on the
-naming authority for each domain.
-
-
-
-The next level of division usually represents the name of the
-organization. Further subdomains vary in nature. Often the next level
-of subdomain is based on the departmental structure of the
-organization. It can, however, be based on any criterion considered
-reasonable and meaningful by the network administrators of the
-organization.
-
-
-
-The very left-most portion of the name is always the unique name
-assigned to the host machine. It is called the `''hostname'''. The
-portion of the name to the right of the hostname is called the
-`''domainname''' and the complete name is called the `''Fully
-Qualified Domain Name'''.
-
-
-
-To use Terrys host as an example, the fully qualified domain name
-is `perf.no.itg.telstra.com.au'. This means that the host name is
-`perf' and the domain name is `no.itg.telstra.com.au'. The
-domain name is based on a top level domain (based on his country Australia).
-And since his email address belongs to a commercial
-organization, `.com' is positioned as the next level domain. The name
-of the company is (was) `Telstra' . Their internal naming
-structure is based on organizational structure. In this case, the
-machine belongs to the Information Technology Group (Network
-Operations section).
-
-
-
-Usually, the names are much shorter. For example, my ISP is
-called ``systemy.it'' . My non-profit organization is called
-``linux.it'', without any com and org subdomain.
-My own host is just called ``morgana.systemy.it'' :
-rubini@linux.it is a valid email address. Note that the owner
-of a domain has the rights to register hostnames as well as subdomains.
-For example, the LUG I belongs to uses the domain pluto.linux.it,
-because the owners of linux.it agreed to open a subdomain for the LUG.
-
-----
-!!5.5.2. What information you will need.
-
-You will need to know what domain your hosts name will belong to. The name
-resolver software provides this name translation service by making
-requests to a `''Domain Name Server'''. You will need to know the IP
-address of a local name server that you can use.
-
-
-
-There are three files you need to edit. I'll cover each of these in turn.
-
-----
-!!5.5.3. /etc/resolv.conf
-
-The /etc/resolv.conf is the main configuration file for
-the name resolver code. Its format is quite simple. It is a text file that
-has one keyword per line. There are three keywords typically used by the file.
-These keywords are:
-
-
-
-
-
-
-
-; domain:
-
-This keyword specifies the local domain name.
-
-; search:
-
-This keyword specifies a list of alternate domain
-names to search for a hostname
-
-; name server:
-
-This keyword, which may be used many times,
-specifies an IP address of a domain name server to
-query when resolving names
-
-
-
-
-
-An example /etc/resolv.conf might look something like:
-
-
-
-
- domain maths.wu.edu.au
-search maths.wu.edu.au wu.edu.au
-name server 192.168.10.1
-name server 192.168.12.1
-
-
-
-This example specifies that the default domain name to append to unqualified
-names (ie hostnames supplied without a domain) is maths.wu.edu.au .
-If the host is not found in that domain, it will also try the wu.edu.au
-domain directly. Two name server entries are supplied. These entries may be
-called upon by the name resolver code to resolve the name.
-
-----
-!!5.5.4. /etc/host.conf
-
-The /etc/host.conf file is where you configure some items that
-govern the behavior of the name resolver code. The format of this file
-is described in detail in the `resolv+' man page. In nearly all
-circumstances, the following example will work for you:
-
-
-
-
- order hosts,bind
-multi on
-
-
-
-This configuration tells the name resolver to check the /etc/hosts
-file before attempting to query a name server. It also tells the resolver to return all valid addresses
-for a host found in the /etc/hosts file (instead of just the first address).
-
-----
-!!5.5.5. /etc/hosts
-
-The /etc/hosts file is where you put the name and IP
-address of local hosts. If you place a host in this file, then you do
-not need to query the domain name server to get its IP Address. The
-disadvantage of doing this is that if the IP address for that host changes, you must
-keep this file up to date yourself . In a well managed
-system, the only hostnames that usually appear in this file are an
-entry for the loopback interface, and also the local hosts name.
-
-
-
-
- # /etc/hosts
-127...1 localhost loopback
-192.168..1 this.host.name
-
-
-
-You may specify more than one host name per line (as demonstrated by
-the first entry), which is a standard entry for the loopback interface.
-
-----
-!!5.5.6. Running a name server
-
-If you want to run a local name server, you can do it easily. Please
-refer to the DNS-HOWTO and to any
-documents included in your version of ''BIND'' (Berkeley Internet
-Name Domain).
-
-----
-!!!5.6. Configuring your loopback interface.
-
-The `loopback' interface is a special type of interface that allows you
-to make connections to yourself. There are various reasons why you might want
-to do this. For example, you may wish to test some network software without
-interfering with anybody else on your network. By convention, the IP address
-`127...1' has been assigned specifically for loopback. No matter
-what machine you go to, if you open a telnet connection to 127...1
-you will always reach the local host.
-
-
-
-Configuring the loopback interface is simple, and it must be done
-(but note that this task is usually performed by the standard initialization
-scripts).
-
-
-
-
- root# ifconfig lo 127...1
-root# route add -host 127...1 lo
-
-
-
-We'll talk more about the ''route'' command in the next section.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!5.7. Routing.
-
-Routing is a big topic. It is easily possible to write large
-volumes of text about the subject. Most of you will have fairly simple routing
-requirements; some of you will not. I will cover some basic
-fundamentals of routing only. If you are interested in more detailed
-information, then I suggest you refer to the references provided at the
-start of this document.
-
-
-
-Let's start with a definition. What is IP routing? Here is one
-that I'm using:
-
-
-
-"IP Routing is the process by which a host with
-multiple network connections decides where to deliver the IP
-datagrams that it has received."
-
-
-
-It might be useful to illustrate this with an example. Imagine a typical
-office router. It might have a PPP link off the Internet, a number of
-Ethernet segments feeding the workstations, and another PPP link off to
-another office. When the router receives a datagram on any of its network
-connections, it uses the routing mechanism to determine which interface
-it should send the datagram to next. Simple hosts also need to route. All
-Internet hosts have two network devices, one is the loopback interface
-described above, and the other is the one it uses to talk to the rest of
-the network (perhaps an Ethernet, perhaps a PPP, or an SLIP serial interface).
-
-
-
-Ok, so how does routing work ? Each host keeps a special list of routing
-rules called a "routing table". This table contains rows which typically
-contain at least three fields: the first is a destination address,
-the second is the name of the interface where the datagram is to be routed,
-and the third is optionally the IP address of another machine that
-carries the datagram on its next step through the network. You can see this table
-in linux by using the following command:
-
-
-
-
- user% cat /proc/net/route
-
-
-
-or by using either of the following commands:
-
-
-
-
- user% /sbin/route -n
-user% netstat -r
-
-
-
-The routing process is fairly simple. The incoming datagram is received,
-the destination address (who it is for) is examined, and then it is compared with
-each entry in the table. The entry that best matches that address is
-selected, and the datagram is forwarded to the specified interface. If the
-gateway field is filled, then the datagram is forwarded to that host via
-the specified interface. The destination address is otherwise assumed to
-be on the network supported by the interface.
-
-
-
-To manipulate this table, a special command is used. This command takes
-command line arguments and converts them into kernel system calls. These
-calls request the kernel to add, delete, or modify entries in the routing table.
-The command is called `''route'''.
-
-
-
-Here is a simple example. Imagine you have an Ethernet network. You've been told
-it is a class-C network with an address of 192.168.1.. You've been
-supplied with an IP address of 192.168.1.10 for your use, and you have
-been told that 192.168.1.1 is a router connected to the Internet.
-
-
-
-The first step is to configure the interface as described earlier. You would
-use a command similar to the following:
-
-
-
-
- root# ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
-
-
-
-You now need to add an entry into the routing table to tell the kernel that
-datagrams for all hosts with addresses that match 192.168.1.* should
-be sent to the ethernet device. You would use a command similar to:
-
-
-
-
- root# route add -net 192.1Ethernetetmask 255.255.255.0 eth0
-
-
-
-Note the use of the `-net' argument to tell the route program that this
-entry is a network route. Your other choice
here is a `-host' route, which
-is a route that is specific to one IP address.
-
-
-
-This route will enable you to establish IP connections with all of the hosts
-on your ethernet segment. But what about all of the IP hosts that aren't on
-your ethernet segment?
-
-
-
-It would be a very difficult job to have to add routes to every possible
-destination network. There is a special trick that is used to simplify this
-task. The trick is called the `default' route. The default route
-matches every possible destination (but poorly). If any other entry
-exists that matches the required address, it will be used instead of the
-default route. The idea of the default route is simply to enable
-you to say in effect: "and everything else should go here". In this example
-you would use an entry like:
-
-
-
-
- root# route add default gw 192.168.1.1 eth0 on them
-
-
-
-The `gw' argument tells the route command that the next argument is
-the IP address, or name, of a gateway or router machine. This machine is where all datagrams
-matching the entry should be directed to for further routing. on them
-
-
-
-So, your complete configuration would look like:
-
-
-
-
- root# ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
-root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
-root# route add default gw 192.168.1.1 eth0 on them is
-
-
-
-If you take a close look at your network `rc' files, you will find
-that at least one of them looks very similar to this configuration (a very common
-one).
-
-
-
-Let's now look at a slightly more complicated routing configuration. Let's
-imagine we are configuring the router we looked at earlier (the one supporting
-the PPP link to the Internet, and the lan segments feeding the workstations in
-the office). Lets imagine the router has three ethernet segments, and it also has
-one PPP link. Our routing configuration would look something like the fEthernet:
-
-
-
-
- root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
-root# route add -net 192.168.2.0 netmask 255.255.255.0 eth1
-root# route add -net 192.168.3.0 netmask 255.255.255.0 eth2
-root# route add default ppp0
-
-
-
-Each of the workstations would use the simpler form presented
-above. Only the router needs to specify each of the network routes
-separately. The default route for the workstations
-mechanism will capture all of them, letting the router worry about
-splitting them up appropriately. You may be wondering why the default
-route presented doesn't specify a `gw'. The reason for this is
-simple: serial link protocols such as PPP and SLIP only have two
-hosts on their network (one at each end). To specify the host at the
-other end of the link as the gateway is both pointless and redundant.
-You do not need to specify a gateway for these types of network connections as there is
-no other choice. Other network types, such as
-ethernet, arcnet, or token ring, do actually require the gateway to be specified
-(as these networks support Ethernetmbers of hosts ).
-
-
-----
-!!5.7.1. So what does the ''routed'' program do ?
-
-The routing configuration described above is best suited for simple network
-arrangements where there are only single possible paths to destinations.
-When you have a more complex network arrangement, things get a little more
-complicated. Fortunately for most of you this won't be an issue.
-
-
-
-The big problem with `manual routing' or `static routing' is
-that if a machine or link fails in your network, the only way to
-re-direct your datagrams (if another way in fact exists) is by manually
-intervening and executing the appropriate commands. Naturally this is
-clumsy, slow, impractical, and hazard prone. Various techniques have been
-developed to automatically adjust routing tables in the event of network
-failures (where there are alternate routes). All of these techniques are
-loosely grouped by the term `dynamic routing protocols'.
-
-
-
-You may have heard of some of the more common dynamic routing protocols. The
-most common are probably RIP (Routing Information Protocol) and OSPF (Open
-Shortest Path First Protocol). The Routing Information Protocol is very common
-on small networks (such as small-medium sized corporate networks or building
-networks). OSPF is more modern. It is more capable at handling large network
-configurations, and it is better suited to environments where there is a large number
-of possible paths through the network. Common implementations of these
-protocols are: `''routed''' - RIP and `''gated''' - RIP, OSPF and others.
-The `''routed''' program is normally supplied with your Linux distribution,
-or it is included in the `!NetKit' package detailed above.
-
-
-
-An example of where and how you might use a dynamic routing protocol might
-look something like the following:
-
-
-
-
- 192.168.1.0 / 192.168.2.0 /
-255.255.255.0 255.255.255.
-- -
-| |
-| /-----\ /-----\ |
-| | |ppp0 // ppp0| | |
-eth0 |---| A |------//---------| B |---| eth0
-| | | // | | |
-| \-----/ \-----/ |
-| \ ppp1 ppp1 / |
-- \ / -
-\ /
-\ /
-\ /
-\ /
-\ /
-\ /
-\ /
-\ /
-ppp0\ /ppp1
-/-----\
-| |
-| C |
-| |
-\-----/
-|eth0
-|
-|---------|
-192.168.3.0 /
-255.255.255.
-
-
-
-We have three routers A, B and C. Each router supports one ethernet segment with
-a Class C IP network (netmask 255.255.255.). Each one also has a PPP link
-to each of tEthernet routers. The network ultimately forms a triangle.
-
-
-
-It should be clear that the routing table at router A could look like the following:
-
-
-
-
- root# route add -net 192.168.1.0 netmask 255.255.255.0 eandth0
-root# route add -net 192.168.2.0 netmask 255.255.255.0 ppp0
-root# route add -net 192.168.3.0 netmask 255.255.255.0 ppp1
-
-
-
-This would work just fine until the link between router A and B fails.
-Hosts on the ethernet segment of A (see above diagram) could not reach hosts on the
-ethernet segment on B: their datagramEthernete directed to router As ppp0 link
-(which in this example is broEthernetey could still continue to talk to hosts on the ethernet segment
-of C. And hosts on CCsethernet segment could still talk to hosts on
-BBsethernet segment. !TheEthernetnications can still occur because the link between B
-and C is still intact.
-
-
-
-If A can talk to C, and C can still talk to B, why shouldn't A
-route its datagrams for B via C (and let C send them to B) ? This is exactly
-the sort of problem that dynamic routing protocols like RIP were designed
-to solve. If each of the routers A, B and C were running a routing daemon,
-then their routing tables would be automatically adjusted to reflect the
-new state of the network (should any one of the links in the network fail).
-To configure such a network is simple: at each router you need only do
-two things. In this case for Router A:
-
-
-
-
- root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
-root# /usr/sbin/routed
-
-
-
-The `''routed''' routing daemon automatically finds all active network
-ports (when it sends and listens for messages on each of the
-network devices) to allow it to both determine and update the routing table
-on the host.
-
-
-
-This has been a very brief explanation of dynamic routing.
-If you would like more information, please refer to the suggested
-references listed at the top of this document.
-
-
-
-The important points relating to dynamic routing are:
-
-
-
-
-
-
-
-
-#
-
-You only need to run a dynamic routing protocol daemon
-when your Linux machine has the possibility of
-selecting multiple route alternatives to a destination.
-An example of this would be if you plan to use
-IP Masquerading.
-
-
-#
-#
-
-The dynamic routing daemon will automatically modify
-your routing table to adjust to changes in your
-network.
-
-
-#
-#
-
-RIP is suitable for small to medium sized networks.
-
-
-#
-
-----
-!!!5.8. Configuring your network servers and services.
-
-Network servers and services are programs that allow a remote user to
-make use of your Linux machine. Server programs listen on network ports.
-Network ports are a means of addressing a particular service on any particular
-host. They are how a server knows the difference between an incoming telnet
-connection and an incoming ftp connection. The remote user establishes a
-network connection to your machine. The server program (the network daemon
-program) listening on that port accepts the connection and then executes. There are
-two ways that network daemons may operate. Both are commonly employed in
-practice. The two ways are:
-
-
-
-
-
-
-
-; sstand-alone:
-
-The network daemon program listens on the
-designated network port. When an incoming
-connection is made, the daemon manages the network connection
-itself to provide the service.
-
-; slave to the ''inetd'' server:
-
-The ''inetd'' server
-is a special network daemon program that specializes
-in managing incoming network connections. It has a
-configuration file which tells it what program needs
-to be run upon receiving an incoming connection. Any
-service port may be configured for either of the tcp
-or udp protocols. The ports are described in another
-file that we will soon review..
-
-
-
-
-
-There are two important files that need to be configured. They are the
-/etc/services file (which assigns names to port numbers), and the
-/etc/inetd.conf file (the configuration file for the
-''inetd'' network daemon).
-
-----
-!!5.8.1. /etc/services
-
-The /etc/services file is a simple database that associates a
-human friendly name to a machine friendly service port. Its format is
-quite simple. The file is a text file where each line represents and
-entry in the database. Each entry is comprised of three fields separated by
-any number of whitespace (tab or space) characters. The fields
-are:
-
-
-
- name port/protocol aliases # comment
-
-
-
-
-
-
-
-; name:
-
-A single word name that represents the service
-being described.
-
-; port/protocol:
-
-This field is split into two subfields.
-
-; port:
-
-A number that specifies the port number where
-the named service will be available. Most
-of the common services have assigned service
-numbers. These are described in
-RFC-1340.
-
-; protocol:
-
-This subfield may be set to either
-tcp or udp.
-
-
-
-It is important to note that an entry of 18/tcp is
-very different from an entry of 18/udp There
-is no technical reason why the same service needs to exist on
-both. Normally common sense prevails. It is only if a
-particular service is available via both tcp and
-udp that you will see an entry for both.
-
-; aliases:
-
-Other names that may be used to refer to
-this service entry.
-
-
-
-
-
-Any text appearing in a line after a `#' character is ignored, and
-it is treated as a comment.
-
-----
-!5.8.1.1. An example /etc/services file.
-
-All modern linux distributions provide a good /etc/services file.
-Just in case you happen to be building a machine from the ground up, here is
-a copy of the /etc/services file supplied with an old
-Debian distribution:
-
-
-
-
-# /etc/services:
-# $Id: Net-HOWTO.sgml,v 1.1.1.1 2001/01/17 19:55:16 lx Exp $
-#
-# Network services, Internet style
-#
-# Note that it is presently the policy of IANA to assign a single well-known
-# port number for both TCP and UDP; hence, most entries here have two entries
-# even if the protocol doesn't support UDP operations.
-# Updated from RFC 1340, ``Assigned Numbers'' (July 1992). Not all ports
-# are included (only the more common ones):
-tcpmux 1/tcp # TCP port service multiplexer
-echo 7/tcp
-echo 7/udp
-discard 9/tcp sink null
-discard 9/udp sink null
-systat 11/tcp users
-daytime 13/tcp
-daytime 13/udp
-netstat 15/tcp
-qotd 17/tcp quote
-msp 18/tcp # message send protocol
-msp 18/udp # message send protocol
-chargen 19/tcp ttytst source
-chargen 19/udp ttytst source
-ftp-data 20/tcp
-ftp 21/tcp
-ssh 22/tcp # SSH Remote Login Protocol
-ssh 22/udp # SSH Remote Login Protocol
-telnet 23/tcp
-# 24 - private
-smtp 25/tcp mail
-# 26 - unassigned
-time 37/tcp timserver
-time 37/udp timserver
-rlp 39/udp resource # resource location
-nameserver 42/tcp name # IEN 116
-whois 43/tcp nicname
-re-mail-ck 50/tcp # Remote Mail Checking Protoconame server
-re-mail-ck 50/udp # Remote Mail Checking Protocol
-domain 53/tcp nameserver # name-domain server
-domain 53/udp nameserver
-mtp 57/tcp # deprecated
-bootps 67/tcname serverTP server
-bootps 67/udp
-bootpc 68/tcname serverTP client
-bootpc 68/udp
-tftp 69/udp
-gopher 70/tcp # Internet Gopher
-gopher 70/udp
-rje 77/tcp netrjs
-finger 79/tcp
-www 80/tcp http # !WorldWideWeb HTTP
-www 80/udp # !HyperText Transfer Protocol
-link 87/tcp ttylink
-kerberos 88/tcp kerberos5 krb5 # Kerberos v5
-kerberos 88/udp kerberos5 krb5 # Kerberos v5
-supdup 95/tcp
-# 100 - reserved
-hostnames 101/tcp hostname # usually from sri-nic
-iso-tsap 102/tcp tsap # part of ISODE.
-csnet-ns 105/tcp cso-ns # also used by CSO name server
-csnet-ns 105/udp cso-ns
-rtelnet 107/tcp # Remote Telnet
-rtelnet 107/udp
-pop-2 109/tcp postoffice # POP version 2
-pop-2 109/udp
-pop-3 110/tcp # POP version 3
-pop-3 110/udp
-sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP
-sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP
-auth 113/tcp authentication tap ident
-sftp 115/tcp
-uucp-path 117/tcp
-nntp 119/tcp readnews untp # USENET News Transfer Protocol
-ntp 123/tcp
-ntp 123/udp # Network Time Protocol
-netbios-ns 137/tcp # NETBIOS Name Service
-netbios-ns 137/udp
-netbios-dgm 138/tcp # NETBIOS Datagram Service
-netbios-dgm 138/udp
-netbios-ssn 139/tcp # NETBIOS session service
-netbios-ssn 139/udp
-imap2 143/tcp # Interim Mail Access Proto v2
-imap2 143/udp
-snmp 161/udp # Simple Net Mgmt Proto
-snmp-trap 162/udp snmptrap # Traps for SNMP
-cmip-man 163/tcp # ISO mgmt over IP (CMOT)
-cmip-man 163/udp
-cmip-agent 164/tcp
-cmip-agent 164/udp
-xdmcp 177/tcp # X Display Mgr. Control Proto
-xdmcp 177/udp
-nextstep 178/tcp NeXTStep !NextStep # NeXTStep window
-nextstep 178/udp NeXTStep !NextStep # server
-bgp 179/tcp # Border Gateway Proto.
-bgp 179/udp
-prospero 191/tcp # Cliff Neuman's Prospero
-prospero 191/udp
-irc 194/tcp # Internet Relay Chat
-irc 194/udp
-smux 199/tcp # SNMP Unix Multiplexer
-smux 199/udp
-at-rtmp 201/tcp # !AppleTalk routing
-at-rtmp 201/udp
-at-nbp 202/tcp # !AppleTalk name binding
-at-nbp 202/udp
-at-echo 204/tcp # !AppleTalk echo
-at-echo 204/udp
-at-zis 206/tcp # !AppleTalk zone information
-at-zis 206/udp
-z3950 210/tcp wais # NISO Z39.50 database
-z3950 210/udp wais
-ipx 213/tcp # IPX
-ipx 213/udp
-imap3 220/tcp # Interactive Mail Access
-imap3 220/udp # Protocol v3
-ulistserv 372/tcp # UNIX Listserv
-ulistserv 372/udp
-#
-# UNIX specific services
-#
-exec 512/tcp
-biff 512/udp comsat
-login 513/tcp
-who 513/udp whod
-shell 514/tcp cmd # no passwords used
-syslog 514/udp
-printer 515/tcp spooler # line printer spooler
-talk 517/udp
-ntalk 518/udp
-route 520/udp router routed # RIP
-timed 525/udp timeserver
-tempo 526/tcp newdate
-courier 530/tcp rpc
-conference 531/tcp chat
-netnews 532/tcp readnews
-netwall 533/udp # -for emergency broadcasts
-uucp 540/tcp uucpd # uucp daemon
-remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
-klogin 543/tcp # Kerberized `rlogin' (v5)
-kshell 544/tcp krcmd # Kerberized `rsh' (v5)
-kerberos-adm 749/tcp # Kerberos `kadmin' (v5)
-#
-webster 765/tcp # Network dictionary
-webster 765/udp
-#
-# From ``Assigned Numbers'':
-#
-#b The Registered Ports are not controlled by the IANA and on most systems
-#b can be used by ordinary user processes or programs executed by ordinary
-#b users.
-#
-#b Ports are used in the TCP [[45,106] to name the ends of logical
-#b connections which carry long term conversations. For the purpose of
-#b providing services to unknown callers, a service contact port is
-#b defined. This list specifies the port used by the server process as its
-#b contact port. While the IANA can not control uses of these ports it
-#b does register or list uses of these ports as a convenience to the
-#b community.
-#
-ingreslock 1524/tcp
-ingreslock 1524/udp
-prospero-np 1525/tcp # Prospero non-privileged
-prospero-np 1525/udp
-rfe 5002/tcp # Radio Free Ethernet
-rfe 5002/udp # Actually uses UDP only
-bbs 7000/tcp # BBS service
-#
-#
-# Kerberos (Project Athena/MIT) services
-# Note that these are for Kerberos v4 and are unofficial. Sites running
-# v4 should uncomment these and comment out the v5 entries above.
-#
-kerberos4 750/udp kdc # Kerberos (server) udp
-kerberos4 750/tcp kdc # Kerberos (server) tcp
-kerberos_master 751/udp # Kerberos authentication
-kerberos_master 751/tcp # Kerberos authentication
-passwd_server 752/udp # Kerberos passwd server
-krb_prop 754/tcp # Kerberos slave propagation
-krbupdate 760/tcp kreg # Kerberos registration
-kpasswd 761/tcp kpwd # Kerberos "passwd"
-kpop 1109/tcp # Pop with Kerberos
-knetd 2053/tcp # Kerberos de-multiplexor
-zephyr-srv 2102/udp # Zephyr server
-zephyr-clt 2103/udp # Zephyr serv-hm connection
-zephyr-hm 2104/udp # Zephyr hostmanager
-eklogin 2105/tcp # Kerberos encrypted rlogin
-#
-# Unofficial but necessary (for NetBSD) services
-#
-supfilesrv 871/tcp # SUP server
-supfiledbg 1127/tcp # SUP debugging
-#
-# Datagram Delivery Protocol services
-#
-rtmp 1/ddp # Routing Table Maintenance Protocol
-nbp 2/ddp # Name Binding Protocol
-echo 4/ddp # !AppleTalk Echo Protocol
-zip 6/ddp # Zone Information Protocol
-#
-# Debian GNU/Linux services
-rmtcfg 1236/tcp # Gracilis Packeten remote config server
-xtel 1313/tcp # french minitel
-cfinger 2003/tcp # GNU Finger
-postgres 4321/tcp # POSTGRES
-mandelspawn 9359/udp mandelbrot # network mandelbrot
-# Local services
-
-
-
-In the real world, the actual file is always growing as new
-services are being created. If you fear your own copy is incomplete,
-I'd suggest to copy a new /etc/services from a recent distribution.
-
-----
-!!5.8.2. /etc/inetd.conf
-
-The /etc/inetd.conf file is the configuration file for the
-''inetd'' server daemon. Its function is to tell ''inetd'' what to do
-when it receives a connection request for a particular service. For each
-service that you wish to accept connections, you must tell ''inetd''
-what network server daemon to run (and how to run it).
-
-
-
-Its format is also fairly simple. It is a text file with each line describing
-a service that you wish to provide. Any text in a line following a `#'
-is both ignored, and it is considered a comment. Each line contains seven fields separated
-by any number of whitespace (tab or space) characters. The general format
-is as follows:
-
-
-
-
- service socket_type proto flags user server_path server_args
-
-
-
-
-
-
-
-; service:
-
-Is the service relevant to this
-configuration as taken from the /etc/services
-file.
-
-; socket_type:
-
-This field describes the type of socket
-that this entry will consider relevant. Allowable
-values are: stream, dgram, raw,
-rdm, or seqpacket. This is a little
-technical in nature. As a rule of thumb nearly all
-tcp based services use stream, and nearly all
-udp based services use dgram. It is only
-very special types of server daemons that would use any of the other values.
-
-; proto:
-
-The protocol to be considered valid for this
-entry. This should match the appropriate entry in the
-/etc/services file. It will typically be
-either tcp or udp. Sun RPC (Remote Procedure
-Call) based servers will use eitherrpc/tcp or
-rpc/udp.
-
-; flags:
-
-There are really only two possible settings
-for this field. This field setting tells ''inetd''
-whether the network server program frees the socket
-after it has been started (whether
-''inetd'' can start another one on the next
-connection request), or, whether ''inetd'' should wait
-and assume that any server daemon already running will
-handle the new connection request. This is a
-little tricky to work out, but as a rule of thumb all
-tcp servers should have this entry set to
-nowait. Most udp servers should have this
-entry set to wait. Be warned there are some
-notable exceptions. You should let the example guide you if you are not sure.
-
-; user:
-
-This field describes which user account from
-/etc/passwd will be set as the owner of the
-network daemon when it is started. This is often
-useful if you want to safeguard against security
-risks. You can set the user of an entry to the
-nobody user. If the network server
-security is breached, the possible damage is minimized by using nobody.
-Typically this field is set to root,
-because many servers require root privileges in order
-to function correctly.
-
-; server_path:
-
-This field is pathname to the athoughctual
-server program to execute for this entry.
-
-; server_args:
-
-This field comprises the rest of the
-line and it is optional. This field is where you place
-any command line arguments that you wish to pass to
-the server daemon program when it is launched.
-
-
-
-----
-!5.8.2.1. An example /etc/inetd.conf
-
-As for the /etc/services file all modern distributions will include
-a good /etc/inetd.conf file for you to work with. Here
-is the /etc/inetd.conf file from the
-Debian distribution.
-
-
-
-
-# /etc/inetd.conf: see inetd(8) for further informations.
-#
-# Internet server configuration database
-#
-#
-# Modified for Debian by Peter Tobias `tobias@et-inf.fho-emden.deb
-#
-# `service_nameb `sock_typeb `protob `flagsb `userb `server_pathb `argsb
-#
-# Internal services
-#
-#echo stream tcp nowait root internal
-#echo dgram udp wait root internal
-discard stream tcp nowait root internal
-discard dgram udp wait root internal
-daytime stream tcp nowait root internal
-daytime dgram udp wait root internal
-#chargen stream tcp nowait root internal
-#chargen dgram udp wait root internal
-time stream tcp nowait root internal
-time dgram udp wait root internal
-#
-# These are standard services.
-#
-telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
-ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd
-#fsp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.fspd
-#
-# Shell, login, exec and talk are BSD protocols.
-#
-shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd
-login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind
-#exec stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd
-talk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.talkd
-ntalk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.ntalkd
-#
-# Mail, news and uucp services.
-#
-smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.smtpd
-#nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/in.nntpd
-#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico
-#comsat dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.comsat
-#
-# Pop et al
-#
-#pop-2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop2d
-#pop-3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d
-#
-# `cfinger' is for the GNU finger server available for Debian. (NOTE: The
-# current implementation of the `finger' daemon allows it to be run as `root'.)
-#
-#cfinger stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.cfingerd
-#finger stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.fingerd
-#netstat stream tcp nowait nobody /usr/sbin/tcpd /bin/netstat
-#systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx
-#
-# Tftp service is provided primarily for booting. Most sites
-# run this only on machines acting as "boot servers."
-#
-#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd
-#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /boot
-#bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
-#
-# Kerberos authenticated services (these probably need to be corrected)
-#
-#klogin stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind -k
-#eklogin stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind -k -x
-#kshell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd -k
-#
-# Services run ONLY on the Kerberos server (these probably need to be corrected)
-#
-#krbupdate stream tcp nowait root /usr/sbin/tcpd /usr/sbin/registerd
-#kpasswd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/kpasswdd
-#
-# RPC based services
-#
-#mountd/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.mountd
-#rstatd/1-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rstatd
-#rusersd/2-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rusersd
-#walld/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rwalld
-#
-# End of inetd.conf.
-ident stream tcp nowait nobody /usr/sbin/identd identd -i
-
-----
-!!!5.9. Other miscellaneous network related configuration files.
-
-There are a number of miscellaneous files relating to network configuration
-under linux that might be of interest. You may never have to modify
-these files, but it is worth describing them so you know what they contain
-and why they are used.
-
-----
-!!5.9.1. /etc/protocols
-
-The /etc/protocols file is a database that maps protocol id numbers
-against protocol names. This is used by programmers to allow them to
-specify protocols by name in their programs. The file is also used by some programs
-such as ''tcpdump'' to allow them to display names instead of numbers
-in their output. The general syntax of the file is:
-
-
-
-
- protocolname number aliases
-
-
-
-The /etc/protocols file supplied with the
-Debian distribution is as follows:
-
-
-
-
-# /etc/protocols:
-# $Id: Net-HOWTO.sgml,v 1.1.1.1 2001/01/17 19:55:16 lx Exp $
-#
-# Internet (IP) protocols
-#
-# from: @(#)protocols 5.1 (Berkeley) 4/17/89
-#
-# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
-ip 0 IP # Internet protocol, pseudo protocol number
-icmp 1 ICMP # Internet control message protocol
-igmp 2 IGMP # Internet Group Management
-ggp 3 GGP # gateway-gateway protocol
-ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
-st 5 ST # ST datagram mode
-tcp 6 TCP # transmission control protocol
-egp 8 EGP # exterior gateway protocol
-pup 12 PUP # PARC universal packet protocol
-udp 17 UDP # user datagram protocol
-hmp 20 HMP # host monitoring protocol
-xns-idp 22 XNS-IDP # Xerox NS IDP
-rdp 27 RDP # "reliable datagram" protocol
-iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
-xtp 36 XTP # Xpress Tranfer Protocol
-ddp 37 DDP # Datagram Delivery Protocol
-idpr-cmtp 39 IDPR-CMTP # IDPR Control !MessTransfernsport
-rspf 73 RSPF # Radio Shortest Path First.
-vmtp 81 VMTP # Versatile Message Transport
-ospf 89 OSPFIGP # Open Shortest Path First IGP
-ipip 94 IPIP # Yet Another IP encapsulation
-encap 98 ENCAP # Yet Another IP encapsulation
-
-----
-!!5.9.2. /etc/networks
-
-The /etc/networks file has a similar function to that of the
-/etc/hosts file.This file provides a simple database of network names
-against network addresses. Its format differs in that there may be
-only two fields per line, and that the fields are coded as:
-
-
-
-
- networkname networkaddress
-
-
-
-An example might look like:
-
-
-
-
- loopnet 127...
-localnet 192.168..
-amprnet 44...
-
-
-
- You will get a display of the network name (NOT its address) while using a command like ''route'' in the following instance: the destination is a network, and that network has an entry in the /etc/networks file.
-
-----
-!!!5.10. Network Security and access control.
-
-Let me start this section by warning you that securing your machine and
-network against malicious attack is a complex art. I do not consider myself
-an expert in this field. The following mechanisms I describe
-will help. If you are serious about security, then I recommend you do some
-research of your own into the subject. There are many good references on the
-Internet relating to the security, including the Security-HOWTO
-
-
-
-An important rule of thumb is:
-`''Don't run servers you don't intend to use'''.
-Many distributions come configured with all sorts of services that are configured and
-automatically started. To ensure even a minimum level of safety, you should go
-through your /etc/inetd.conf file. Comment out (''place a `#' at
-the start of the line'') any entries for services you don't intend to use.
-Good candidates are services such as: shell, login, exec,
-uucp, ftp and informational services such as finger,
-netstat and systat.
-
-
-
-There are all sorts of security and access control mechanisms. I'll now describe
-the most elementary:
-
-----
-!!5.10.1. /etc/ftpusers
-
-The /etc/ftpusers file is a simple mechanism that allows you to
-deny certain users from logging into your machine via ftp. When an incoming ftp connection is
-received, the /etc/ftpusers file is read by the ftp daemon program (''ftpd'').
-The file is a simple list of those users who are not allowed login. It might look something like:
-
-
-
-
- # /etc/ftpusers - users not allowed to login via ftp
-root
-uucp
-bin
-mail
-
-----
-!!5.10.2. /etc/securetty
-
-The /etc/securetty file allows you to specify which tty devices
-root are allowed for login. The /etc/securetty file is read
-by the login program (usually ''/bin/login''). Its format is a list of
-the tty devices names allowed: on all others root login is disallowed:
-
-
-
-
- # /etc/securetty - tty's on which root is allowed to login
-tty1
-tty2
-tty3
-tty4
-
-----
-!!5.10.3. The ''tcpd'' hosts access control mechanism.
-
-The ''tcpd'' program listed in the samone
-/etc/inetd.conf provides logging and access control mechanisms to
-services. It is configured to protect.
-
-
-
-When it is invoked by the ''inetd'' program, it reads two files containing
-access rules. It will then either alallow oreny access to the server it is protecting.
-
-
-
-It will search the rules files until the first match is found. If no match is
-found, then it assumes that access should be allowed to anyone. The files it
-searches in sequence are: /etc/hosts.allow, /etc/hosts.deny.
-I'll describe each of these in turn. For a complete description of this
-facility, you should refer to the appropriate ''man'' pages
-(hosts_access(5) is a good starting point).
-
-----
-!5.10.3.1. /etc/hosts.allow
-
-The /etc/hosts.allow file is a configuration file of the
-''/usr/sbin/tcpd'' program. The hosts.allow file contains
-rules describing which hosts are ''allowed'' access to a service on
-your machine.
-
-
-
-The file format is quite simple:
-
-
-
-
- # /etc/hosts.allow
-#
-# `service listb: `host listb [[: command]
-
-
-
-
-
-
-
-; service list:
-
-This is a comma delimited list of
-server names where this rule applies. Example
-server names are: ftpd, telnetd and
-fingerd.
-
-; host list:
-
-This is a comma delimited list of host
-names. You may also use IP addresses here. You may
-additionally specify either hostnames or addresses using
-wildcard characters to match groups of hosts. Examples
-include: gw.vk2ktj.ampr.org to match a specific
-host, .uts.edu.au to match any hostname
-ending in that string, 44. to match any IP
-address commencing with those digits. There are some
-special tokens to simplify configuration. Some of
-these are: ALL matches every host, LOCAL
-matches any host whose name does not contain a
-`.' ie is in the same domain as your machine and
-PARANOID matches any host whose name does not
-match its address (name spoofing). There is one last
-token that is also useful. The EXCEPT token
-allows you to provide a list with exceptions. This
-will be covered in an example later.
-
-; command:
-
-This is an optional parameter. This
-parameter is the full pathname of a command that would
-be executed everytime this rule is matched. It could,
-for example, run a command that would attempt to
-identify who is logged onto the connecting host. It could also
-generate a mail message or some other warning to a
-system administrator that someone is attempting to
-connect. There are a number of expansions that may be
-included. Some common examples are: %h expands to
-the name of the connecting host or address if it
-doesn't have a name, %d the daemon name being
-called.
-
-
-
-
-
-An example:
-
-
-
-
- # /etc/hosts.allow
-#
-# Allow mail to anyone
-in.smtpd: ALL
-# All telnet and ftp to only hosts within my domain and my host at home.
-telnetd, ftpd: LOCAL, myhost.athome.org.au
-# Allow finger to anyone but keep a record of who they are.
-fingerd: ALL: (finger @%h | mail -s "finger from %h" root)
-
-----
-!5.10.3.2. /etc/hosts.deny
-
-The /etc/hosts.deny file is a configuration file of the
-''/usr/sbin/tcpd'' program. The hosts.deny file contains
-rules describing which hosts are ''disallowed'' access to a service on
-your machine.
-
-
-
-A simple sample would look something like this:
-
-
-
-
- # /etc/hosts.deny
-#
-# Disallow all hosts with suspect hostnames
-ALL: PARANOID
-#
-# Disallow all hosts.
-ALL: ALL
-
-
-
-The PARANOID entry is redundant because the other entry traps
-everything in any case. Either of these entries would make a reasonable default
-(depending on your particular requirement).
-
-
-
-Having an ALL: ALL default in the /etc/hosts.deny and then
-specifically enabling on those services and hosts that you want in the
-/etc/hosts.allow file is the safest configuration.
-
-----
-!!5.10.4. /etc/hosts.equiv
-
-The hosts.equiv file is used to grant certain hosts and users access
-rights to accounts on your machine without having to supply a password. This
-is useful in a secure environment where you control all machines, but is otherwise a
-security hazard . Your machine is only as secure as the least secure
-of the trusted hosts. To maximize security, don't use this mechanism.
-Encourage your users not to use the .rhosts file as well.
-
-----
-!!5.10.5. Configure your ''ftp'' daemon properly.
-
-Many sites will be interested in running an anonymous ''ftp'' server to
-allow other people to upload and download files without requiring a specific
-userid. If you decide to offer this facility, make sure you configure the
-''ftp'' daemon properly for anonymous access. Most ''man'' pages for
-ftpd(8) describe in some length the proper procedures. You should
-always ensure that you follow these instructions. An important tip is to
-not use a copy of your /etc/passwd file in the anonymous account
-/etc directory. Make sure you strip out all account details (except
-those that you must have), otherwise you will be vulnerable to brute force password cracking techniques.
-
-----
-!!5.10.6. Network Firewalling.
-
-Not allowing datagrams to even reach your machine (or servers) is an
-excellent means of security. This is covered in depth in the Firewall-HOWTO, and (more concisely)
-in a later section of this document.
-
-----
-!!5.10.7. Other suggestions.
-
-Here are some other (potentially religious) suggestions for you to consider:
-
-
-
-
-
-
-
-; sendmail:
-
-Despite its popularity, the ''sendmail''
-daemon appears with frightening regularity on security
-warning announcements. My recommendation is not
-to run it.
-
-; NFS and other Sun RPC services:
-
-Be wary of these services. There are all sorts of possible exploits for
-them. It is difficult finding an option to
-services like NFS. If you configure them, make
-sure you are careful to whom you allow mount rights.
-
-
-
-----
-!!!Chapter 6. Ethernet Information
-
-This section covers information specific to Ethernet, and it also covers
-the configuring of Ethernet Cards.
-
-----
-!!!6.1. Supported Ethernet Cards
-!!6.1.1. 3Com
-
-
-
-
-
-
-*
-
-3Com 3c501 - `Avoid like the plague!'' (3c501 driver)
-
-
-*
-*
-
-3Com 3c503 (3c503 driver), 3c505 (3c505 driver), 3c507 (3c507 driver), 3c509/3c509B (ISA) / 3c579
-(EISA)
-
-
-*
-*
-
-3Com Etherlink III Vortex Ethercards (3c590, 3c592, 3c595, 3c597)
-(PCI), 3Com Etherlink XL Boomerang (3c900, 3c905) (PCI) and Cyclone
-(3c905B, 3c980) Ethercards (3c59x driver) and 3Com Fast !EtherLink
-Ethercard (3c515) (ISA) (3c515 driver)
-
-
-*
-*
-
-3Com 3ccfe575 Cyclone Cardbus (3c59x driver)
-
-
-*
-*
-
-3Com 3c575 series Cardbus (3c59x driver) (ALL PCMCIA ??)
-
-
-*
-
-----
-!!6.1.2. AMD, ATT, Allied Telesis, Ansel, Apricot
-
-
-
-
-
-
-*
-
-AMD LANCE (79C960) / PCnet-ISA/PCI (AT1500, HP J2405A,
-NE1500/NE2100)
-
-
-*
-*
-
- ATT GIS WaveLAN
-
-
-*
-*
-
- Allied Telesis AT1700
-
-
-*
-*
-
- Allied Telesis LA100PCI-T
-
-
-*
-*
-
- Allied Telesyn AT2400T/BT ("ne" module)
-
-
-*
-*
-
- Ansel Communications AC3200 (EISA)
-
-
-*
-*
-
- Apricot Xen-II / 82596
-
-
-*
-
-----
-!!6.1.3. Cabletron, Cogent, Crystal Lan
-
-
-
-
-
-
-*
-
- Cabletron E21xx
-
-
-*
-*
-
- Cogent EM110
-
-
-*
-*
-
- Crystal Lan CS8920, Cs8900
-
-
-*
-
-----
-!!6.1.4. Danpex, DEC, Digi, DLink
-
-
-
-
-
-
-*
-
- Danpex EN-9400
-
-
-*
-*
-
- DEC DE425 (EISA) / DE434/DE435 (PCI) / DE450/DE500 (DE4x5 driver)
-
-
-*
-*
-
- DEC DE450/DE500-XA (dc21x4x) (Tulip driver)
-
-
-*
-*
-
- DEC DEPCA and EtherWORKS
-
-
-*
-*
-
- DEC EtherWORKS 3 (DE203, DE204, DE205)
-
-
-*
-*
-
- DECchip DC21x4x "Tulip"
-
-
-*
-*
-
- DEC QSilver's (Tulip driver)
-
-
-*
-*
-
- Digi International !RightSwitch
-
-
-*
-*
-
- DLink DE-220P, DE-528CT, DE-530+, DFE-500TX, DFE-530TX
-
-
-*
-
-----
-!!6.1.5. Fujitsu, HP, ICL, Intel
-
-
-
-
-
-
-*
-
- Fujitsu FMV-181/182/183/184
-
-
-*
-*
-
- HP PCLAN (27245 and 27xxx series)
-
-
-*
-*
-
- HP PCLAN PLUS (27247B and 27252A)
-
-
-*
-*
-
- HP 10/100VG PCLAN (J2577, J2573, 27248B, J2585) (ISA/EISA/PCI)
-
-
-*
-*
-
- ICL !EtherTeam 16i / 32 (EISA)
-
-
-*
-*
-
- Intel !EtherExpress
-
-
-*
-*
-
- Intel !EtherExpress Pro
-
-
-*
-
-----
-!!6.1.6. KTI, Macromate, NCR NE2000/1000, Netgear, New Media
-
-
-
-
-
-
-*
-
- KTI ET16/P-D2, ET16/P-DC ISA (work jumperless andjumper lessware-configuration options)
-
-
-*
-*
-
- Macromate MN-220P (PnP or NE2000 mode)
-
-
-*
-*
-
- NCR WaveLAN
-
-
-*
-*
-
- NE2000/NE1000 (be careful with clones)
-
-
-*
-*
-
- Netgear FA-310TX (Tulip chip)
-
-
-*
-*
-
- New Media Ethernet
-
-
-*
-
-----
-!!6.1.7. !PureData, SEEQ, SMC
-
-
-
-
-
-
-*
-
- !PureData PDUC8028, PDI8023
-
-
-*
-*
-
- SEEQ 8005
-
-
-*
-*
-
- SMC Ultra / EtherEZ (ISA)
-
-
-*
-*
-
- SMC 9000 series
-
-
-*
-*
-
- SMC PCI !EtherPower 10/100 (DEC Tulip driver)
-
-
-*
-*
-
- SMC !EtherPower II (epic100.c driver)
-
-
-*
-
-----
-!!6.1.8. Sun Lance, Sun Intel, Schneider, WD, Zenith, IBM, Enyx
-
-
-
-
-
-
-*
-
- Sun LANCE adapters (kernel 2.2 and newer)
-
-
-*
-*
-
- Sun Intel adapters (kernel 2.2 and newer)
-
-
-*
-*
-
- Schneider and Koch G16
-
-
-*
-*
-
- Western Digital WD80x3
-
-
-*
-*
-
- Zenith Z-Note / IBM !ThinkPad 300 built-in adapter
-
-
-*
-*
-
- Znyx 312 etherarray (Tulip driver)
-
-
-*
-
-----
-!!!6.2. General Ethernet Information
-
-Ethernet devices names are `eth0', `eth1', `eth2' etc. The first
-card detected by the kernel is assigned `eth0', and the rest are assigned
-sequentially in the order in which they are detected.
-
-
-
-Once you have your kernel properly built to support your ethernet card,
-configuration of the card is easy.
-
-
-
-Typically you would use something like (which most distributions already
-do for you, if you configured them to support your ethernet):
-
-
-
-
- root# ifconfig eth0 192.168..1 netmask 255.255.255.0 up
-root# route add -net 192.168..0 netmask 255.255.255.0 eth0
-
-
-
-Most of the ethernet drivers were developed by
-Donald Becker
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!6.3. Using 2 or more Ethernet Cards in the same machine
-!!6.3.1. If your driver is a module (Normal with newer distros)
-
-The module will typically can detect all of the installed cards.
-
-
-
-Information from the detection is stored in the file:
-
-
-
-''/etc/conf.modules. ''
-
-
-
-Consider that a user has 3 NE2000 cards, one at 0x300
-one at 0x240, and one at 0x220. You would add the following
-lines to the /etc/conf.modules file:
-
-
-
-
- alias eth0 ne
-alias eth1 ne
-alias eth2 ne
-options ne io=0x220,0x240,0x300
-
-
-
-What this does is tell the program ''modprobe'' to look for 3 NE based
-cards at the following addresses. It also states in which order they should
-be found and the device they should be assigned.
-
-
-
-Most ISA modules can take multiple comma separated I/O values.
-For example:
-
-
-
-
- alias eth0 3c501
-alias eth1 3c501
-options eth0 -o 3c501-0 io=0x280 irq=5
-options eth1 -o 3c501-1 io=0x300 irq=7
-
-
-
-The -o option allows for a unique name to be assigned to each module. The
-reason for this is that you can not have two copies of the same module
-loaded.
-
-
-
-The irq= option is used to specify the hardware IRQ, and the io= to specify
-the different io ports.
-
-
-
-By default, the Linux kernel only probes for one Ethernet device. You
-need to pass command line arguments to the kernel in order to force detection
-of furter boards.
-
-
-
-To learn how furthere your ethernet card(s) work under Linux, you
-should refer to the Ethernet-HOWTO.
-
-----
-!!!Chapter 7. IP Related Information
-
-This section covers information specific to IP.
-
-----
-!!!7.1. Kernel Level Options
-
-This section includes information on setting IP options within the kernel at
-boot time. An example of these options are __ip_forward__ or
-__ip_bootp_agent__. These options are used by setting the value
-to a file in the
-/proc/sys/net/ipv4/ directory. The name of the
-file is the name of the command.
-
-
-
-For example, to set __ip_forward__ __enabled__, you
-would type
-echo 1 b /proc/sys/net/ipv4/ip_forward
-
-----
-!!7.1.1. General IP option listing
-
-
-
-
-
-
-*
-
-__ip_forward__
-
-
-
-If __ip_forward__
-is set to 0 it is disabled. If it is sforwardany other number it is enabled. This option is used in conjunction with technologies such
-as routing between interfaces with IP Masquerading.
-.
-
-
-*
-*
-
-__ip_default_ttl__
-
-
-
-This is the time to live for an IP Packet. The default is 64 milliseconds.
-
-
-*
-*
-
-__ip_addrmask_agent__ - BOOLEAN
-
-
-
- Reply to ICMP ADDRESS MASK requests.
-default TRUE (router)
-FALSE (host)
-
-
-*
-*
-
-__ip_bootp_agent__
-
-
-
- - BOOLEAN
-Accept packets with source address of sort .b.c.d
-and destined to this host, broadcast or multicast.
-Such packets are silently ignored otherwise.
-default FALSE
-
-
-*
-*
-
-__ip_no_pmtu_disc__
-
-
-
- - BOOLEAN
-Disable Path MTU Discovery.
-default FALSE
-
-
-*
-*
-
-__ip_fib_model__ - INTEGER
-
-
-
- 0 - (DEFAULT) Standard model. All routes are in class MAIN.
-1 - default routes go to class DEFAULT. This mode should
-be very convenient for small ISPs making policy routing.
-2 - RFC1812 compliant model.
-Interface routes are in class MAIN.
-Gateway routes are in class DEFAULT.
-
-
-*
-
-----
-!!!7.2. EQL - multiple line traffic equaliser
-
-The EQL device name is `eql'.
-With the standard kernel source, you may have
-only one EQL device per machine. EQL provides a means of utilizing multiple
-Point-to-Point lines such as PPP, slip, or plip as a single logical link to
-carry tcp/ip. Often it is cheaper to use multiple lower speed lines than to
-have one high speed line installed.
-
-
-
-''Kernel Compile Options'':
-
- Network device support ---b
-[[*] Network device support
-`*b EQL (serial line load balancing) support
-
-
-
-To support this mechanism, the machine at the other end of the lines must also
-support EQL. Linux, Livingstone Portmasters and newer dial-in servers support
-compatible facilities.
-
-
-
-To configure EQL you will need the eql tools which are available from:
-metalab.unc.edu.
-
-
-
-Configuration is fairly straightforward. You start by configuring the eql
-interface. The eql interface is just like any other network device. You
-configure the IP address and mtu using the ''ifconfig'' utility. Here
-is an example:
-
-
-
-
- root# ifconfig eql 192.168.10.1 mtu 1006
-
-
-
-Next, you need to manually initiate each of the lines you will use. These may
-be any combination of Point-to-Point network devices. How you initiate the
-connections will depend on what sort of link they are. Refer to the
-appropriate sections for further information.
-
-
-
-Lastly you need to associate the serial link with the EQL device. This is
-called `enslaving' : it is done with the ''eql_enslave'' command as shown:
-
-
-
-
- root# eql_enslave eql sl0 28800
-root# eql_enslave eql ppp0 14400
-
-
-
-The `''estimated speed''' parameter you supply ''eql_enslave''
-doesn't do anything directly. It is used by the EQL driver to determine what share of
-the datagrams that device should receive. You can then fine tune the balancing of
-the lines by playing with this value.
-
-
-
-To disassociate a line from an EQL device, use the ''eql_emancipate''
-command as shown:
-
-
-
-
- root# eql_emancipate eql sl0
-
-
-
-You add routing as you would for any other Point-to-Point link, except that your
-routes should refer to the eql device rather than the actual serial
-devices. You would typically use:
-
-
-
-
- root# route addthemselveseql
-
-
-
-The EQL driver was developed by Simon Janes simon@ncm.com.
-
-
-
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!7.3. IP Accounting (for Linux-2.)
-
-The IP accounting features of the Linux kernel allow you to collect and
-analyze some network usage data. The data collected comprises the number
-of packets and the number of bytes accumulated since the figures were
-last reset. You may specify a variety of rules to categorize the
-figures to suit your purpose. This option has been
-removed in kernel 2.1.102 because the old ipfwadm-based firewalling
-was replaced by ``ipfwchains''.
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-[[*] IP: accounting
-
-
-
-After you have compiled and installed the kernel, you need to use the
-''ipfwadm'' command to configure IP accounting. There are many different
-ways of breaking down the accounting information.
-I've picked a simple example of what might be useful. You should
-read the ''ipfwadm'' man page for more information.
-
-
-
-Scenario: You have a ethernet network that is linked to the Internet via
-a PPP link. On the ethernet, you have a machine that offers a number of
-services. You are interested in knowing how much traffic is generated
-by each of ftp (and world wide web traffic), as well as total tcp and udp
-traffic.
-
-
-
-You might use a command set that looks like the following (shown as a
-shell script):
-
-
-
-
- #!/bin/sh
-#
-# Flush the accounting rules
-ipfwadm -A -f
-#
-# Set shortcuts
-localnet=44.136.8.96/29
-any=/
-# Add rules for local ethernet segment
-ipfwadm -A in -a -P tcp -D $localnet ftp-data
-ipfwadm -A out -a -P tcp -S $localnet ftp-data
-ipfwadm -A in -a -P tcp -D $localnet www
-ipfwadm -A out -a -P tcp -S $localnet www
-ipfwadm -A in -a -P tcp -D $localnet
-ipfwadm -A out -a -P tcp -S $localnet
-ipfwadm -A in -a -P udp -D $localnet
-ipfwadm -A out -a -P udp -S $localnet
-#
-# Rules for default
-ipfwadm -A in -a -P tcp -D $any ftp-data
-ipfwadm -A out -a -P tcp -S $any ftp-data
-ipfwadm -A in -a -P tcp -D $any www
-ipfwadm -A out -a -P tcp -S $any www
-ipfwadm -A in -a -P tcp -D $any
-ipfwadm -A out -a -P tcp -S $any
-ipfwadm -A in -a -P udp -D $any
-ipfwadm -A out -a -P udp -S $any
-#
-# List the rules
-ipfwadm -A -l -n
-#
-
-
-
-The names ``ftp-data'' and ``www'' refer to lines in
-/etc/services. The last command lists each of the Accounting
-rules and displays the collected totals.
-
-
-
-An important point to note when analyzing IP accounting is that
-''totals for all rules that match will be incremented''. To
-obtain differential figures, you need to perform appropriate maths. For
-example, if I wanted to know how much data was not ftp or www, I would
-subtract the individual totals from the rule that matches all ports.
-
-
-
-
-root# ipfwadm -A -l -n
-IP accounting rules
-pkts bytes dir prot source destination ports
-0 0 in tcp .../0 44.136.8.96/29 * -b 20
-0 0 out tcp 44.136.8.96/29 .../0 20 -b *
-10 1166 in tcp .../0 44.136.8.96/29 * -b 80
-10 572 out tcp 44.136.8.96/29 .../0 80 -b *
-252 10943 in tcp .../0 44.136.8.96/29 * -b *
-231 18831 out tcp 44.136.8.96/29 .../0 * -b *
-0 0 in udp .../0 44.136.8.96/29 * -b *
-0 0 out undp 44.136.8.96/29 .../0 * -b *
-0 0 in tcp .../0 .../0 * -b 20
-0 0 out tcp .../0 .../0 20 -b *
-10 1166 in tcp .../0 .../0 * -b 80
-10 572 out tcp .../0 .../0 80 -b *
-253 10983 in tcp .../0 .../0 * -b *
-231 18831 out tcp .../0 .../0 * -b *
-0 0 in udp .../0 .../0 * -b *
-0 0 out udp .../0 .../0 * -b *
-
-----
-!!7.3.1. IP Accounting (for Linux-2.2)
-
-The new accounting code is accessed via ``IP Firewall Chains''.
-See the IP chains home page for more information.
-You'll now need to use ''ipchains'' instead of ipfwadm
-to configure your filters. (From Documentation/Changes in the
-latest kernel sources).
-
-----
-!!!7.4. IP Aliasing
-
-There are some applications where being able to configure multiple
-IP addresses to a single network device is useful. Internet Service
-Providers often use this facility to provide a "customized" feature to their
-World Wide Web and ftp offerings for their customers. You can refer to
-the ``IP-Alias mini-HOWTO'' for more information.
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-....
-[[*] Network aliasing
-....
-`*b IP: aliasing support
-
-
-
-After compiling and installing your kernel with IP_Alias support,
-configuration is very simple. The aliases are added to virtual network
-devices associated with the actual network device. A simple naming
-convention applies to these devices being `devnameb:`virtual
-dev numb, e.g. eth0:, ppp0:10 etc. Note that the the
-ifname:number device can only be configured ''after'' the main
-interface has been set up.
-
-
-
-For example, assume you have an ethernet network that supports two different
-IP subnetworks simultaneously. You also wish your machine to have direct access
-to both. You could use something like:
-
-
-
-
- root# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
-root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
-root# ifconfig eth0:0 192.168.10.1 netmask 255.255.255.0 up
-root# route add -net 192.168.10.0 netmask 255.255.255.0 eth0:
-
-
-
-To delete an alias, add a `-' to the end of its name, then
-refer to it. It is as simple as:
-
-
-
-
- root# ifconfig eth0:-
-
-
-
-All routes associated with that alias will also be deleted automatically.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!7.5. IP Firewall (for Linux-2.)
-
-IP Firewall and Firewalling issues are covered in more depth in the
-Firewall-HOWTO. IP Firewalling allows
-you to secure your machine against unauthorized network access by filtering
-or allowing datagrams from or to IP addresses that you nominate. There are
-three different classes of rules; incoming filtering, outgoing filtering, and
-forwarding filtering. Incoming rules are applied to datagrams that are
-received by a network device. Outgoing rules are applied to datagrams that
-are to be transmitted by a network device. Forwarding rules are applied to
-datagrams that are received and are not for this machine (ie. datagrams that
-would be routed).
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-[[*] Network firewalls
-....
-[[*] IP: forwarding/gatewaying
-....
-[[*] IP: firewalling
-[[ ] IP: firewall packet logging
-
-
-
-Configuration of the IP firewall rules is performed using the ''ipfwadm''
-command. As I mentioned earlier, I am not a security expert.
-I will present an example you can use. You should, however, do your own
-research and develop your own rules.
-
-
-
-Using your linux machine as a router and firewall gateway to protect your local
-network from unauthorized access (from outside your network) is probably the most
-common use of an IP firewall.
-
-
-
-The following configuration is based on a contribution from Arnt Gulbrandsen:
-`agulbra@troll.nob.
-
-
-
-The example describes the configuration of the firewall rules on the Linux
-firewall/router machine illustrated below:
-
-
-
-
-- -
-\ | 172.16.37.
-\ | /255.255.255.
-\ --------- |
-| 172.16.174.30 | Linux | |
-NET =================| f/w |------| ..37.19
-| PPP | router| | --------
-/ --------- |--| Mail |
-/ | | /DNS |
-/ | --------
-- -
-
-
-
-The following commands would normally be placed in an rc file.
-They would be automatically started each time the system
-boots. For maximum security, they would be performed after the network
-interfaces are configured (but before the interfaces are actually
-brought up) to prevent anyone gaining access while the firewall machine
-is rebooting.
-
-
-
-
- #!/bin/sh
-# Flush the 'Forwarding' rules table
-# Change the default policy to 'accept'
-#
-/sbin/ipfwadm -F -f
-/sbin/ipfwadm -F -p accept
-#
-# .. and for 'Incoming'
-#
-/sbin/ipfwadm -I -f
-/sbin/ipfwadm -I -p accept
-# First off, seal off the PPP interface
-# I'd love to use '-a deny' instead of '-a reject -y' but then it
-# would be impossible to originate connections on that interface too.
-# The -o causes all rejected datagrams to be logged. This trades
-# disk space against knowledge of an attack of configuration error.
-#
-/sbin/ipfwadm -I -a reject -y -o -P tcp -S /0 -D 172.16.174.30
-# Throw away certain kinds of obviously forged packets right away:
-# Nothing should come from multicast/anycast/broadcast addresses
-#
-/sbin/ipfwadm -F -a deny -o -S 224./3 -D 172.16.37./24
-#
-# and nothing coming from the loopback network should ever be
-# seen on a wire
-#
-/sbin/ipfwadm -F -a deny -o -S 127./8 -D 172.16.37./24
-# accept incoming SMTP and DNS connections, but only
-# to the Mail/Name Server
-#
-/sbin/ipfwadm -F -a accept -P tcp -S /0 -D 172.16.37.19 25 53
-#
-# DNS uses UDP as well as TCP, so allow that too
-# for questions to our name server
-#
-/sbin/ipfwadm -F -a accept -P udp -S /0 -D 172.16.37.19 53
-#
-# but not "answers" coming to dangerous ports like NFS and
-# Larry !McVoy's NFS extension. If you run squid, add its port here.
-#
-/sbin/ipfwadm -F -a deny -o -P udp -S /0 53 \
--D 172.16.37./24 2049 2050
-# answers to other user ports are okay
-#
-/sbin/ipfwadm -F -a accept -P udp -S /0 53 \
--D 172.16.37./24 53 1024:65535
-# Reject incoming connections to identd
-# We use 'reject' here so that the connecting host is told
-# straight away not to bother continuing, otherwise we'd experience
-# delays while ident timed out.
-#
-/sbin/ipfwadm -F -a reject -o -P tcp -S /0 -D 172.16.37./24 113
-# Accept some common service connections from the 192.168.64 and
-# 192.168.65 networks, they are friends that we trust.
-#
-/sbin/ipfwadm -F -a accept -P tcp -S 192.168.64./23 \
--D 172.16.37./24 20:23
-# accept and pass through anything originating inside
-#
-/sbin/ipfwadm -F -a accept -P tcp -S 172.16.37./24 -D /
-# deny most other incoming TCP connections and log them
-# (append 1:1023 if you have problems with ftp not working)
-#
-/sbin/ipfwadm -F -a deny -o -y -P tcp -S /0 -D 172.16.37./24
-# ... for UDP too
-#
-/sbin/ipfwadm -F -a deny -o -P udp -S /0 -D 172.16.37./24
-
-
-
-Good firewall configurations are a little tricky. This example
-should be a reasonable starting point for you. The ''ipfwadm''
-manual page offers some assistance in how to use the tool. If
-you intend to configure a firewall, be sure to ask around and
-get as much advice from sources you consider reliable. Get
-someone to test/sanity check your configuration from the outside.
-
-----
-!!7.5.1. IP Firewall (for Linux-2.2)
-
-The new firewalling code is accessed via ``IP Firewall Chains''.
-See the IP chanins home page for more information. Among other
-things, you'll now need to use ''ipchains'' instead of ipfwadm
-to configure your filters (From Documentation/Changes in the
-latest kernel sources).
-
-
-
-We are aware that this is a sorely out of date statement. We are
-currently working on getting this section current. You can expect a
-newer version sometime this year.
-
-----
-!!!7.6. IPIP Encapsulation
-
-Why would you want to encapsulate IP datagrams within IP datagrams? It must
-seem odd if you've never seen a working application.
-Two common places where it is used are in Mobile-IP and
-IP-Multicast. Amateur Radio is perhaps the most widely spread (and least known) useage.
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-[[*] TCP/IP networking
-[[*] IP: forwarding/gatewaying
-....
-`*b IP: tunneling
-
-
-
-IP tunnel devices are called `tunl0', `tunl1' etc.
-
-
-
-"But why ?". Ok, ok. Conventional IP routing rules mandate that an IP network
-comprises a network address and a network mask. This produces a series of
-contiguous addresses that may all be routed via a single routing entry.
-This is very convenient. It means that you may use any particular
-IP address while you are connected to its piece of the network.
-In most instances this is ok. If you are a mobile netizen, however, then
-you may not be able to stay connected to the one place all the time. IP/IP
-encapsulation (IP tunneling) allows you to overcome this restriction by
-allowing datagrams destined for your IP address to be wrapped up and redirected
-to another IP address. If you know that you're going to be operating from another
-IP network, you can set up a machine on your home network
-to accept datagrams to your IP address. You can then redirect these datagrams to the address
-that you will be temporarily using.
-
-----
-!!7.6.1. A tunneled network configuration.
-
-
- 192.168.1/24 192.168.2/24
-- -
-| ppp0 = ppp0 = |
-| aaa.bbb.ccc.ddd fff.ggg.hhh.iii |
-| |
-| /-----\ /-----\ |
-| | | // | | |
-|---| A |------//---------| B |---|
-| | | // | | |
-| \-----/ \-----/ |
-| |
-- -
-
-
-
-The diagram illustrates another possible reason to use IPIP encapsulation;
-virtual private networking. This example presupposes that you have two machines,
-each with a simple dial up Internet connection. Each host is allocated just
-a single IP address. Behind each of these machines are some private local area
-networks. These LANs are configured with reserved IP network addresses. Suppose that you want
-to allow any host on network A to connect to any host on network B (just as
-if they were properly connected to the Internet with a network route). IPIP
-encapsulation will allow you to do this configuration. Note: encapsulation does not solve
-the problem of how you get the hosts on networks A and B to talk to any
-other on the Internet. You will still need to use tricks like IP Masquerade.
-Encapsulation is normally performed by machines functioning as routers.
-
-
-
-Linux router `A' would be configured with a script like the following:
-
-
-
-
- #!/bin/sh
-PATH=/sbin:/usr/sbin
-mask=255.255.255.
-remotegw=fff.ggg.hhh.iii
-#
-# Ethernet configuration
-ifconfig eth0 192.168.1.1 netmask $mask up
-route add -net 192.168.1.0 netmask $mask eth0
-#
-# ppp0 configuration (start ppp link, set default route)
-pppd
-route add default ppp0
-#
-# Tunnel device configuration
-ifconfig tunl0 192.168.1.1 up
-route add -net 192.168.2.0 netmask $mask gw $remotegw tunl0
-
-
-
-Linux router `B' would be configured with a similar script:
-
-
-
-
- #!/bin/sh
-PATH=/sbin:/usr/sbin
-mask=255.255.255.
-remotegw=aaa.bbb.ccc.ddd
-#
-# Ethernet configuration
-ifconfig eth0 192.168.2.1 netmask $mask up
-route add -net 192.168.2.0 netmask $mask eth0
-#
-# ppp0 configuration (start ppp link, set default route)
-pppd
-route add default ppp0
-#
-# Tunnel device configuration
-ifconfig tunl0 192.168.2.1 up
-route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0
-
-
-
-The command:
-
-
-
-
- route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0
-
-
-
-reads: `Send any datagrams destined for 192.168.1./24 inside an
-IPIP encap datagram with a destination address of aaa.bbb.ccc.ddd'.
-
-
-
-Note that the configurations are reciprocated at either end. The tunnel device
-uses the `gw' in the route as the ''destination'' of the IP datagram
-(where it will place the datagram it has received to route). That machine
-must know how to decapsulate IPIP datagrams. In other words, it must also be
-configured with a tunnel device.
-
-----
-!!7.6.2. A tunneled host configuration.
-
-You do not have to be routing a whole network. You could, for example, route
-just a single IP address. In that instance you might configure the tunl
-device on the `remote' machine with its home IP address. At the A end would have
-a host route (and Proxy Arp) rather than a network route via the tunnel
-device. Let's redraw and modify our configuration appropriately. Now we
-have just host `B' which you want to act and behave as if it is both
-fully connected to the Internet, and also part of the remote network supported
-by host `A':
-
-
-
-
- 192.168.1/24
--
-| ppp0 = ppp0 =
-| aaa.bbb.ccc.ddd fff.ggg.hhh.iii
-|
-| /-----\ /-----\
-| | | // | |
-|---| A |------//---------| B |
-| | | // | |
-| \-----/ \-----/
-| also: 192.168.1.12
--
-
-
-
-Linux router `A' would be configured with:
-
-
-
-
- #!/bin/sh
-PATH=/sbin:/usr/sbin
-mask=255.255.255.
-remotegw=fff.ggg.hhh.iii
-#
-# Ethernet configuration
-ifconfig eth0 192.168.1.1 netmask $mask up
-route add -net 192.168.1.0 netmask $mask eth0
-#
-# ppp0 configuration (start ppp link, set default route)
-pppd
-route add default ppp0
-#
-# Tunnel device configuration
-ifconfig tunl0 192.168.1.1 up
-route add -host 192.168.1.12 gw $remotegw tunl0
-#
-# Proxy ARP for the remote host
-arp -s 192.168.1.12 xx:xx:xx:xx:xx:xx pub
-
-
-
-Linux host `B' would be configured with:
-
-
-
-
- #!/bin/sh
-PATH=/sbin:/usr/sbin
-mask=255.255.255.
-remotegw=aaa.bbb.ccc.ddd
-#
-# ppp0 configuration (start ppp link, set default route)
-pppd
-route add default ppp0
-#
-# Tunnel device configuration
-ifconfig tunl0 192.168.1.12 up
-route add -net 192.168.1.0 netmask $mask gw $remotegwtunl0
-
-
-
-This sort of configuration is more typical of a Mobile-IP application: a single host
-wants to roam around the Internet and maintain a single usable
-IP address the whole time. You should refer to the Mobile-IP section for more
-information on how this is handled in practice.
-
-----
-!!!7.7. IP Masquerade
-
-Many people have a simple dialup account to connect to the Internet. Nearly
-everybody using this sort of configuration is allocated a single IP address
-by the Internet Service Provider. This is normally enough to allow only one
-host full access to the network. IP Masquerade is a clever trick that enables
-you to have many machines make use of that one IP address. It causes the
-other hosts to look like the machine supporting the dial-up connection. This is
-where the term masquerade applies. There is a small caveat: the
-masquerade function usually works only in one direction. That is, the
-masqueraded hosts can make calls out, but they cannot accept or receive
-network connections from remote hosts. This means that some network services
-do not work (such as ''talk''), and others (such as
-''ftp'') must be configured
-in passive (PASV) mode to operate. Fortunately, the most common network services such as
-''telnet'', World Wide Web and ''irc''
-work just fine.
-
-
-
-''Kernel Compile Options'':
-
- Code maturity level options ---b
-[[*] Prompt for development and/or incomplete code/drivers
-Networking options ---b
-[[*] Network firewalls
-....
-[[*] TCP/IP networking
-[[*] IP: forwarding/gatewaying
-....
-[[*] IP: masquerading (EXPERIMENTAL)
-
-
-
-Normally, you have your linux machine supporting a SLIP or PPP dial-up line
-(just as it would if it were a standalone machine). Additionally, it would have
-another network device configured (perhaps an ethernet) with one
-of the reserved network addresses. The hosts to be masqueraded would be on
-this second network. Each of these hosts would have the IP address of the
-ethernet port of the linux machine set as their default gateway or router.
-
-
-
-A typical configuration might look something like this:
-
-
-
-
-- -
-\ | 192.168.1.
-\ | /255.255.255.
-\ --------- |
-| | Linux | .1.1 |
-NET =================| masq |------|
-| PPP/slip | router| | --------
-/ --------- |--| host |
-/ | | |
-/ | --------
-- -
-
-----
-!!7.7.1. Masquerading with IPFWADM (Kernels 2..x)
-
-The most relevant commands for this configuration are:
-
-
-
-
- # Network route for ethernet
-route add -net 192.168.1.0 netmask 255.255.255.0 eth0
-#
-# Default route to the rest of the Internet.
-route add default ppp0
-#
-# Cause all hosts on the 192.168.1/24 network to be masqueraded.
-ipfwadm -F -a m -S 192.168.1./24 -D .../
-
-----
-!!7.7.2. Masquerading with IPCHAINS
-
-This is similar to using IPFWADM, but the command structure has changed:
-
-
-
-
- # Network route for ethernet
-route add -net 192.168.1.0 netmask 255.255.255.0 eth0
-#
-# Default route to the rest of the Internet.
-route add default ppp0
-#
-# Cause all hosts on the 192.168.1/24 network to be masqueraded.
-ipchains -A forward -s 192.168.1./24 -j MASQ
-
-
-
-You can get more information on the Linux IP Masquerade feature from the
-IP Masquerade Resource Page. Also, a ''very''
-detailed document about masquerading is the ``IP-Masquerade mini-HOWTO''
-(which also intructs to configure other OS's to run with a Linux
-masquerade server).
-
-
-
-For information on Applications of IP Masquerading, check the
-IPMASQ Applications page.
-
-----
-!!!7.8. IP Transparent Proxy
-
-IP transparent proxy is a feature that enables you to redirect servers or
-services destined for another machine to those services on this machine.
-Typically, this would be useful where you have a linux machine as a router
-(and also provides a proxy server). You would redirect all connections destined
-for that service remotely to the local proxy server.
-
-
-
-''Kernel Compile Options'':
-
- Code maturity level options ---b
-[[*] Prompt for development and/or incomplete code/drivers
-Networking options ---b
-[[*] Network firewalls
-....
-[[*] TCP/IP networking
-....
-[[*] IP: firewalling
-....
-[[*] IP: transparent proxy support (EXPERIMENTAL)
-
-
-
-Configuration of the transparent proxy feature is performed using the
-''ipfwadm'' command.
-
-
-
-An example that might be useful is as follows:
-
-
-
-
- root# ipfwadm -I -a accept -D /0 telnet -r 2323
-
-
-
-This example will cause any connection attempts to port telnet
-(23) on any host to be redirected to port 2323 on this host. If you
-run a service on that port, you could forward telnet connections, log
-them, or do whatever fits your needs.
-
-
-
-A more interesting example is redirecting all http traffic
-through a local cache. However, the protocol used by proxy servers is
-different from native http: (where a client connects to
-www.server.com:80 and asks for /path/page). When it
-connects to the local cache, it contacts proxy.local.domain:8080
-and asks for www.server.com/path/page.
-
-
-
-To filter an http request through the local proxy, you need to
-adapt the protocol by inserting a small server, called
-transproxy (you can find it on the world wide web). You can choose
-to run transproxy on port 8081.Just ssue this command:
-
-
-
-
- root# ipfwadm -I -a accept -D /0 80 -r 8081
-
-
-
-The transproxy program, then, will receive all connections meant
-to reach external servers, and will pass them to the local proxy (after fixing protocol differences).
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!7.9. IPv6
-
-Just when you thought you were beginning to understand IP networking, the
-rules get changed! IPv6 is the shorthand notation for version 6 of the Internet
-Protocol. IPv6 was developed primarily to overcome the concerns in the Internet
-community. Users worried that there would soon be a shortage of IP addresses to allocate. IPv6
-addresses are 16 bytes long (128 bits). IPv6 incorporates a number of other
-changes, mostly simplifications, that will make IPv6 networks more managable
-than IPv4 networks.
-
-
-
-Linux already has a working (but not complete) IPv6 implementation in
-the 2.2.* series kernels.
-
-
-
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!7.10. IPv6 Linux resources
-
-IPv6-HOWTO
-
-
-
-IPv6 for Linux
-
-
-
-Linux IPv6 RPM Project
-
-
-
-IPv6 FAQ/HOWTO
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!7.11. Mobile IP
-
-The term "IP mobility" describes the ability of a host that is able to
-move its network connection from one point on the Internet to another (without
-changing its IP address or losing connectivity). Usually when an IP host
-changes its point of connectivity, it must also change its IP address.
-IP Mobility overcomes this problem by allocating a fixed IP address to the
-mobile host. It also uses IP encapsulation (tunneling) with automatic routing
-to ensure that datagrams destined for it are routed to the actual IP address
-it is currently using.
-
-
-
-A project is underway to provide a complete set of IP mobility tools for Linux.
-The status of the project and tools may be obtained from:
-Linux Mobile IP Home Page.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!7.12. Multicast
-
-IP Multicast allows an arbitrary number of IP hosts on disparate IP networks
-to have IP datagrams simultaneously routed to them. This mechanism is exploited
-to provide Internet wide "broadcast" material, such as audio and video
-transmissions, as well as other novel applications.
-
-
-
-''Kernel Compile Options'':
-
-Networking options ---b
-[[*] TCP/IP networking
-....
-[[*] IP: multicasting
-
-
-
-A suite of tools and some minor network configuration is required.
-Please check the Multicast-HOWTO
-for more information on Multicast support in Linux.
-
-
-
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!7.13. Traffic Shaper - Changing allowed bandwidth
-
-The traffic shaper is a driver that creates new interface devices.
-Those devices are traffic-limited in a user-defined way. They rely
-on physical network devices for actual transmission, and they can be used as
-outgoing routed for network traffic.
-
-
-
-The shaper was introduced in Linux-2.1.15, and it was backported to
-Linux-2..36 (it appeared in 2..36-pre-patch-2 distributed by Alan
-Cox, the author of the shaper device and maintainer of Linux-2.).
-
-
-
-The traffic shaper can only be compiled as a module. It is
-configured by the ''shapecfg'' program. The commands are
-similar to the following:
-
-
-
-
- shapecfg attach shaper0 eth1
-shapecfg speed shaper0 64000
-
-
-
-The shaper device can only control the bandwidth of outgoing
-traffic (as packets are transmitted via the shaper; only according to
-the routing tables). A ``route by source address''
-functionality could help in limiting the overall bandwidth of specific
-hosts using a Linux router.
-
-
-
- Linux-2.2 already has support for such routing. If you need it for
-Linux-2.0 please check the patch by Mike !McLagan at
-ftp.invlogic.com. Refer to
-Documentationnetworking/shaper.txt for further information about
-the shaper.
-
-
-
-If you want to try out a (tentative) shaping for incoming packets,
-try out rshaper-1.01 (or newer) from ftp.systemy.it.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 8. DHCP and DHCPD
-
-DHCP is an acronym for Dynamic Host Configuration Protocol.
-The creation of DHCP has made configuring the network on multiple hosts
-extremely simple. Instead of having to configure each host separately, you
-can assign all of the common host-used parameters with a
-DHCP server.
-
-
-
-Each time the host boots up, it will broadcast a packet to the network. This
-packet is a call to any DHCP servers located on the same segment
-to configure the host.
-
-
-
-DHCP is extermely useful in assigning items such as the IP address, Netmask,
-and gateway of each host.
-
-----
-!!!8.1. DHCP Client Setup for users of !LinuxConf
-
-When you are in linux, and you are logged in as the user "root", start the program linuxconf.
-This program comes with all versions of redhat, and it works with X as well
-as with the console. It also works for both !SuSe and Caldera.
-
-
-
-
-Select Networking
------------------bBasic Host Information
------------------bSelect Enable
------------------bSet Config Mode DHCP
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!8.2. DHCP Server Setup for Linux
-
-''Retrieve DHCPD (if your machine does not already have it installed).''
-Get DHCPD
-
-
-
-''''Quick Note: MAKE SURE YOU HAVE MULTICAST ENABLED IN THE KERNEL.''''
-
-
-
-''If there is not a binary distribution for your version of linux, then you will
-have to compile DHCPD.''
-
-
-
-Edit your /etc/rc.d/rc.local to reflect an addition of a route for
-255.255.255.255.
-
-
-
-''''Quoted from DHCPd README:''''
-
-
-
-In order for dhcpd to work correctly with picky DHCP clients (e.g.,
-Windows 95), it must be able to send packets with an IP destination
-address of 255.255.255.255. Unfortunately, Linux insists on changing
-255.255.255.255 into the local subnet broadcast address (in this case,
-the address would be 192.5.5.223). This results in a DHCP protocol violation. While
-many DHCP clients don't notice the problem, some (e.g., all Microsoft
-DHCP clients) will recognize the violation. Clients that have this problem will appear not to
-see DHCPOFFER messages from the server.
-
-
-
-Type the following as root:
-
-
-
-route add -host 255.255.255.255 dev eth0
-
-
-
-If the message appears:
-
-
-
-255.255.255.255: Unknown host
-
-
-
-Try adding the following entry to your /etc/hosts file:
-
-
-
-255.255.255.255 dhcp
-
-
-
-Then, try:
-
-
-
-route add -host dhcp dev eth0
-
-----
-!!8.2.1. Options for DHCPD
-
-Now you need to configure DHCPd. In order to do this, you will have to
-create or edit /etc/dhcpd.conf. There is a graphical interface for
-dhcpd configuration under linuxconf. This makes configuring and managing DHCPD extremely
-simple.
-
-
-
-If you want to configure it by hand, you should follow instructions below. I suggest
-configuring it by hand at least once. It will help in the diagnostics that
-a GUI can't provide. Unfortunately Micrsoft doesn't believe this!
-
-
-
-The simplest way to assign IP addresses is to assign them randomly.
-A sample configuration file that shows this type of setup is displayed below:
-
-
-
-
-# Sample /etc/dhcpd.conf
-# (add your comments here)
-default-lease-time 1200;
-max-lease-time 9200;
-option subnet-mask 255.255.255.;
-option broadcast-address 192.168.1.255;
-option routers 192.168.1.254;
-option domain-name-servers 192.168.1.1, 192.168.1.2;
-option domain-name "mydomain.org";
-subnet 192.168.1.0 netmask 255.255.255.0 {
-range 192.168.1.10 192.168.1.100;
-range 192.168.1.150 192.168.1.200;
-}
-
-
-
-This will allow the DHCP server to assign the client an IP address
-from the range 192.168.1.10-192.168.1.100 or 192.168.1.150-192.168.1.200.
-
-
-
-If the client doesn't request a longer time frame, then the DHCP server
-will lease an IP address for 1200 seconds. Otherwise, the maximum (allowed) lease
-the server will allow is 9200 seconds. The server sends the following
-parameters to the client:
-
-
-
-Use 255.255.255.0 as your subnet mask
-Use 192.168.1.255 as your broadcast address
-Use 192.168.1.254 as your default gateway
-USE 192.168.1.1 and 192.168.1.2 as your DNS servers.
-
-
-
-If you specify a WINS server for your Windows clients, you need
-to include the following option in the dhcpd.conf file:
-
-
-
-option netbios-name-servers 192.168.1.1;
-
-
-
-You can also assign specific IP addresses based on the clients' ethernet
-''MAC'' address as follows:
-
-
-
-
- host haagen {
-hardware ethernet 08:00:2b:4c:59:23;
-fixed-address 192.168.1.222;
-}
-
-
-
-This will assign IP address 192.168.1.222 to a client with the ethernet
-''MAC'' address of 08:00:2b:4c:59:23.
-
-----
-!!8.2.2. Starting the server
-
-In most cases the DHCP installation doesn't create a "dhcpd.leases" file.
-Before you start the server, you must create an empty file:
-
-
-
-''touch /var/state/dhcp/dhcpd.leases''
-
-
-
-To start the DHCP server, simply type (or include in the bootup scripts):
-
-
-
-'' /usr/sbin/dhcpd''
-
-
-
-This will start dhcpd on eth0 device. If you need to start it on
-another device, simply supply it on the command line as shown below:
-
-
-
-'' /usr/sbin/dhcpd eth1''
-
-
-
-If you wish to test the configuration for any oddities, you can start
-dhcpd with the debugging mode. Typing the command below will allow you
-to see exactly what is going on with the server.
-
-
-
-'' /usr/sbin/dhcpd -d -f''
-
-
-
-''Boot up a client''.Take a look at the console of the server.
-You will see a number of debugging messages appear on the screen.
-
-
-
-''''Your done''''
-
-----
-!!!Chapter 9. Advanced Networking with Kernel 2.2
-
-Kernel 2.2 has advanced the routing capabilities of Linux quite a bit.
-Unfortunately, the documentation for using these new capabilities is almost
-impossible to find (even if it does exist).
-
-
-
-I have put some time into it and have been able to do a little with it. I
-will add more as I have the time and the assistance to figure out what it all means.
-
-
-
-In kernel 2.0 and below, Linux used the standard ''route'' command to
-place routes in a single routing table. If you were to type ''netstat
--rn'' at the Linux prompt, you would see and example.
-
-
-
-In the newer kernels (2.1 and above), you have another option. This option is
-rule based, and it allows you to have multiple routing tables. The new rules
-allow a great deal of flexibility in deciding how a packet is handled. You
-can choose between routes based not only on the destination address,
-but also on the source address, TOS, or incoming device.
-
-----
-!!!9.1. The Basics
-
-''Listing the Routing Table:''
-
-
-
-ip route
-
-
-
-Now on my machine, this equates to the following output:
-
-
-
-
-207.149.43.62 dev eth0 scope link
-207.149.43./24 dev eth0 proto kernel scope link src 207.149.43.62
-default via 207.149.43.1 dev eth0
-
-
-
-The first line:
-
-
-
-''207.149.43.62 dev eth0 scope link'' is the route for the interface
-
-
-
-The second line:
-
-
-
-''207.149.43./24 dev eth0 proto kernel scope link src 207.149.43.62''
-Is the route that says ''everything that goes to 207.149.43.0 needs to go
-out 207.149.43.62''.
-
-
-
-The third line:
-
-
-
-''default via 207.149.43.1 dev eth0'' is the default route.
-
-----
-!!9.1.1. Using the information
-
-Now that we have walked through a basic routing table, lets see how we use
-it. First read
-the Policy routing text. If you get confused, don't worry -- it is a confusing text.
-It will give you the run down on everything that the new routing code can accomplish.
-
-----
-!!!9.2. Adding a route with the new ip tools
-
-In the previous section, we spoke about both listing the routing table and we
-discussed what the basics of that listing meant. Fortunately, the output is very similar
-to the syntax that you would use to implement that exact routing table on
-your own.
-
-
-
-
-ip route add 207.149.43.62 dev eth0 scope link
-ip route add 207.149.43./24 dev eth0 proto kernel scope link src 207.149.43.62
-ip route add 127.../8 dev lo scope link
-ip route add default via 207.149.43.1 dev eth0
-
-
-
-As you can see, the output and input are almost exact (except for the adding
-of the ''ip route add'' in front of the line).
-
-
-
-''Note:'' We are aware that the documentation on Routing with 2.2 is
-sorely lacking in details. In fact, I think EVERYONE is aware of it! If you have any
-experience in this matter, please contact us at:
-poet@linuxports.com We
-would like to get any information that you may have to help strengthen our documentation!
-
-
-
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!9.3. Using NAT with Kernel 2.2
-
-The IP Network Address Translation facility is pretty much the standardized
-"big brother" of the Linux IP Masquerade facility. It is specified in some detail
-in RFC-1631 (at your nearest RFC archive). NAT provides features that
-IP-Masquerade does not (which make it eminently more suitable for use in both
-corporate firewall router designs, and in larger scale installations).
-
-
-
-An alpha implementation of NAT for Linux 2..29 kernel has been developed by
-Michael.Hasenstein: Michael.Hasenstein@informatik.tu-chemnitz.de. Michael's
-documentation and implementation are available from:
-
-
-
-Linux IP Network Address Web Page
-
-
-
-The much improved TCP/IP stack of Linux 2.2 kernel has NAT functionality
-built-in. This facility seems to render the work by Michael Hasenstein somewhat obsolete
-(Michael.Hasenstein@informatik.tu-chemnitz.de).
-
-
-
-To get it to work, you need the kernel with enabled CONFIG_IP_ADVANCED_ROUTER,
-CONFIG_IP_MULTIPLE_TABLES (aka policy routing) and CONFIG_IP_ROUTE_NAT (aka
-fast NAT). And if you want to use finer grained NAT rules, you may also
-want to turn on firewalling (CONFIG_IP_FIREWALL) and CONFIG_IP_ROUTE_FWMARK.
-To actually operate these kernel features, you will need the "ip" program by
-Alexey Kuznyetsov from ftp://ftp.inr.ac.ru/ip-routing/.
-
-
-
-Incoming datagrams NAT
-
-
-
-Now, to translate addresses of incoming datagrams, the following command is
-used:
-
-
-
-
- ip route add nat `ext-addrb[[/`masklenb] via `int-addrb
-
-
-
-This will make an incoming packet destined to "ext-addr" (the address visible
-from outside Internet) to have its destination address field rewritten to
-"int-addr" (the address in your internal network, behind your
-gateway/firewall). The packet is then routed according to the local routing
-table. You can translate either single host addresses or complete blocks.
-''Examples:''
-
-
-
-
- ip route add nat 195.113.148.34 via 192.168..2
-ip route add nat 195.113.148.32/27 via 192.168..
-
-
-
-First command will make internal address 192.168..2 accessible as
-195.113.148.34. The second example shows remapping block 192.168..-31 to
-195.113.148.32-63.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 10. Kernel 2.2 IP Command Reference (Work In Progress)
-!!!10.1. ip
-
-If you have the iproute2 tools installed, then executing the ip command will
-allow the basic syntax to be displayed.
-
-
-
-
-[[root@jd Net4]# ip
-Usage: ip [[ OPTIONS ] OBJECT { COMMAND | help }
-where OBJECT := { link | addr | route | rule | neigh | tunnel |
-maddr | mroute | monitor }
-OPTIONS := { -V[[ersion] | -s[[tatistics] | -r[[esolve] |
--f[[amily] { inet | inet6 | dnet | link } | -o[[neline] }
-
-
-
-There are also several options available:
-
-
-
-''-V, -Version'' -- print the version of the ip utility you are using and exit.
-
-
-
-''-s, -stats, -statistics'' -- obtain more output on the speficied
-device. You can issue this option more than once to increase the amount of
-information being displayed.
-
-
-
-''-f, -family followed by a protocol family identifier such as: inet, inet6 or
-link.'' -- Specify the exact protocol family to use. Inet uses the
-standard IPv4 (e.g.; current Internet standard), inet6 uses IPv6 (ground
-breadking, never to be implemented Internet standard), and link (a physical
-link). If you do not present the option, the protocol family is guessed.
-If not enough information is present, it will fallback to the default
-setting.
-
-
-
-''-o, -oneline'' Show the output each device record in a single line.
-
-
-
-''-r, -resolve'' Use the system resolver (e.g.; DNS) to print actual
-names (versus IP numbers).
-
-
-
-''OBJECT'' Is the object (device) that you can retrieve
-information from, and/or you can also manage the device.
-The current device types understood by the current implementation are:
-
-
-
-
-
-
-
-
-*
-
-link -- The network device e.g.; eth0 or ppp0 .
-
-
-*
-*
-
-address -- The IP (IP or IPv6) address on the specified device.
-
-
-*
-*
-
-neigh -- The ARP or NDISC cache entry.
-
-
-*
-*
-
-route -- The routing table entry.
-
-
-*
-*
-
-rule -- The rule in routing policy database.
-
-
-*
-*
-
-maddress -- The multicast address.
-
-
-*
-*
-
-mroute -- The multicast route cache entry.
-
-
-*
-*
-
-tunnel -- Whether or not to tunnel over IP.
-
-
-*
-
-
-
-The amount of possible options allowed on each object type depend on the
-type of action being taken. As a basic rule, it is possible to ''add'',
-''delete'', or to show the object(s). Not all object will allow
-additional commands to be used. Of course, command help is available for all
-objects. When help is used, it will print out a list of available sytanx conventions
-for the given object.
-
-
-
-If you do not give a command, the default command will be assumed. Typically the
-default command is to list the objects.If the the objects can not be listed, the default will
-provide standard help output.
-
-
-
-''ARGUMENTS'' is the list of arguments that can be passed to the command.
-The number of arguments depends upon both the command and the object being used.
-There are two types of arguments:
-
-
-
-''Flags'' consist of a keyword followed by a
-value. For convenience, each command contains some default parameters that can be
-left out for easier use. For example, the parameter ''devb'' defaults to an ''ip link''.
-
-
-
-''Mistakes... thank God for smart coders!''
-All the operations within the ip commands are dynamic. If the sytanx of the ip utility fails, it will not change the configuration of the system.
-There is an exception to this rule: the ''ip link'' command. This command is
-used to change part of a devices parameters.
-
-
-
-It is difficult to list all the error messages (especially the syntax errors). Generally speaking, their meaning is clear in the
-context of the commands.
-The most common mistakes are:
-1.
-Netlink is not configured in the kernel. The message is:
-Cannot open netlink socket: Invalid value
-
-
-
-2.
-RTNETLINK is not configured in the kernel. One of the following messages may be printed
-(depending upon the command):
-Cannot talk to rtnetlink: Connection refused Cannot send dump request: Connection refused
-
-
-
-3.
-Option CONFIG_IP_MULTIPLE_TABLES was not selected when configuring kernel. In this case, any attempt to
-use commandip rule will fail. For example:
-
-
-
-''jd@home $ ip rule list RTNETLINK error: Invalid argument dump
-terminated''
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 11. Using common PC hardware
-!!!11.1. ISDN
-
-The Integrated Services Digital Network (ISDN) is a series of standards
-that specify a general purpose switched digital data network. An ISDN `call'
-creates a synchronous Point-to-Point data service to the destination. ISDN
-is generally delivered on a high speed link that is broken down into a number
-of discrete channels. There are two different types of channels, the
-`B Channels' (which will actually carry the user data) and a single channel
-called the `D channel' (which is used to send control information to the ISDN
-exchange: used for establishing calls and other functions). In Australia, for example,
-ISDN may be delivered on a 2Mbps link that is broken into 30 discrete 64kbps
-B channels (with one 64kbps D channel). Any number of channels may be used at a
-time, and these channels can be used in any combination. You could, for example, establish 30 separate calls
-to 30 different destinations at 64kbps each. You could also establish 15 calls
-to 15 different destinations at 128kbps each (two channels used per call).
-Finally, you could establish just a small number of calls while leaving the rest idle. A channel may be used
-for either incoming or outgoing calls. The original intention of ISDN was to
-allow Telecommunications companies to provide a single data service. This service could
-deliver either telephone (via digitised voice) or data services to your home
-or business. In this case, the customer would not be required to make any special configuration changes.
-
-
-
-There are a few different ways to connect your computer to an ISDN service.
-One way is to use a device called a `Terminal Adaptor' .This adaptor plugs into the
-Network Terminating Unit (that you telecommunications carrier will have
-installed when you received your ISDN service), and it presents a number of serial
-interfaces. One of those interfaces is used to enter commands. Some commands are used to establish
-calls and configuration, while others are actually connected to the network
-devices that are to use the data circuits (when they are established). Linux will
-work in this sort of configuration without modification: you just treat
-the port on the Terminal Adaptor like you would treat any other serial device.
-The kernel ISDN support is also designed to allow the user to install an ISDN card into
-the Linux machine. This allows the Linux software to handle the protocols, and the software can
-make the calls itself.
-
-
-
-''Kernel Compile Options'':
-
- ISDN subsystem ---b
-`*b ISDN support
-[[ ] Support synchronous PPP
-[[ ] Support audio via ISDN
-` b ICN 2B and 4B support
-` b PCBIT-D support
-` b Teles/NICCY1016PC/Creatix support
-
-
-
-The Linux implementation of ISDN supports a number of different types of
-internal ISDN cards. These are listed in the kernel configuration options:
-
-
-
-
-
-
-
-
-*
-
-ICN 2B and 4B
-
-
-*
-*
-
-Octal PCBIT-D
-
-
-*
-*
-
-Teles ISDN-cards and compatibles
-
-
-*
-
-
-
-Some of these cards require software to be downloaded to make them
-operational. A separate utility exists to allow downloading to happen.
-
-
-
-Full details on how to configure the Linux ISDN support is available from
-the ''/usr/src/linux/Documentation/isdn/'' directory. You can also check the FAQ dedicated
-to ''isdn4linux'': it is available at
-www.lrz-muenchen.de.
-(You can click on the english flag to get an english version).
-
-
-
-''A note about PPP''. The PPP suite of protocols will operate over
-either asynchronous or synchronous serial lines. The commonly distributed
-PPP daemon for Linux `''pppd''' supports only asynchronous mode. If you wish
-to run the PPP protocols over your ISDN service, you need a specially modified
-version. Details of where to find this version are available in the documentation
-referred to above.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!11.2. PLIP for Linux-2.
-
-PLIP device names are `plip0', `plip1 and plip2.
-
-
-
-''Kernel Compile Options'':
-
- Network device support ---b
-`*b PLIP (parallel port) support
-
-
-
-''PLIP'' (Parallel Line IP) is similar to SLIP in that it is
-used for providing a ''Point-to-Point'' network connection
-between two machines.
-However, it is designed to use the parallel printer
-ports on your machine. It doesn't use the
-serial ports (a cabling diagram in
-included in the cabling diagram section later in this document). Because it
-is possible to transfer more than one bit at a time with a parallel port, it
-is possible to attain higher speeds with the ''PLIP''
-interface. PLIP will attain higher speeds than those achieved by using a standard serial device.
-In addition, even the simplest of parallel printer ports can be used
-(in lieu of you having to purchase comparatively expensive 16550AFN UART's for
-your serial ports). PLIP uses a lot of CPU compared to a serial link. It is
-not a good option if, for example, you are able to obtain some cheap ethernet cards.
-However, it will work when nothing else is available (and will work quite well).
-You should expect a data transfer rate of about 20 kilobytes per second (when
-a link is running well).
-
-
-
-The PLIP device driver competes with the parallel device driver for the
-parallel port hardware. If you wish to use both drivers, then you should
-compile them both as modules. This ensures that you are able to select which
-port you want to use for PLIP, and that you can select which ports you want for the printer driver.
-Refer to the ``Modules mini-HOWTO'' for more information on kernel module configuration.
-
-
-
-Please note that some laptops use chipsets that will not work with PLIP.
-These chipsets do not allow some combinations of signals. PLIP relies on
-these signals, but printers don't use them.
-
-
-
-The Linux ''PLIP'' interface is compatible with the
-''Crynwyr'' Packet
-Driver PLIP/ .This will mean that you can connect your Linux machine
-to a DOS machine running any other sort of tcp/ip software via ''PLIIP''.
-
-
-
-
-In the 2..* series kernel, the PLIP devices are mapped to i/o port and IRQ as
-follows:
-
-
-
-
- device i/o IRQ
------- ----- ---
-plip0 0x3bc 5
-plip1 0x378 7
-plip2 0x278 2
-
-
-
-If your parallel ports don't match any of the above combinations, then you
-can change the IRQ of a port. Change the IRQ by using the ''ifconfig'' command with the
-`irq' parameter (be sure to enable IRQ's on your printer ports in your
-ROM BIOS if it supports this option). As an alternative, you
-can specify ``io='' and ``irq='' options on the
-''insmod'' command line (if you use modules). For example:
-
-
-
-
- root# insmod plip.o io=0x288 irq=5
-
-
-
-PLIP operation is controlled by two timeouts: their default values
-are probably ok in most cases. You will more than likely need to increase them
-if you have an especially slow computer. In this case the timers to
-increase are actually on the ''other'' computer. A program called
-''plipconfig'' exists that allows you to change these timer settings
-without recompiling your kernel. This program is supplied with many Linux
-distributions.
-
-
-
-To configure a ''PLIP'' interface, you will need to invoke
-the following commands (or ''add'' them to your
-initialization scripts):
-
-
-
-
-
- root# /sbin/ifconfig plip1 localplip pointopoint remoteplip
-root# /sbin/route add remoteplip plip1
-
-
-
-Here, the port being used is the one at I/O address 0x378;
-''localplip'' amd ''remoteplip'' are the names or IP addresses used
-over the PLIP cable. I personally keep them in my /etc/hosts
-database:
-
-
-
-
- # plip entries
-192.168.3.1 localplip
-192.168.3.2 remoteplip
-
-
-
-The ''pointopoint'' parameter has the same meaning as for SLIP.
-It specifies the address of the machine at the other end of the link.
-
-
-
-In almost all respects, you can treat a ''PLIP'' interface as
-though it were a ''SLIP'' interface. However, neither
-''dip'' nor ''slattach'' can be used.
-
-
-
-Further information on PLIP may be obtained from the
-``PLIP mini-HOWTO''.
-
-----
-!!11.2.1. PLIP for Linux-2.2
-
-During development of the 2.1 kernel versions, support for the
-parallel port was changed to an improved setup.
-
-
-
-''Kernel Compile Options'':
-
- General setup ---b
-[[*] Parallel port support
-Network device support ---b
-`*b PLIP (parallel port) support
-
-
-
-The new code for PLIP behaves like the old one. You can use the same ''ifconfig''
-and ''route'' commands as in the previous section. However, initialization
-of the device is different due to the advanced parallel port support.
-
-
-
-The ``first'' PLIP device is always called ``plip0'' (where first
-is the first device detected by the system; similarly to what happens
-for Ethernet devices). The actual parallel port being used is one of
-the available ports, as shown in /proc/parport. For example,
-if you have only one parallel port, you'll only have a directory
-called /proc/parport/.
-
-
-
-If your kernel didn't detect the IRQ number used by your port,
-``insmod plip'' will fail. In this case just write the correct
-number to /proc/parport//irq,then reinvoke ''insmod''.
-
-
-
-Complete information about parallel port management is available in
-the file Documentation/parport.txt(part of your kernel sources).
-
-----
-!!!11.3. PPP
-
-Due to the nature, size, complexity, and flexibility of PPP, it has been moved to
-its own HOWTO. The PPP-HOWTO is still a Linux Documentation Project document, but its official home is at
-the !LinuxPorts.Com website
-PPP section.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!11.4. SLIP client - (Antiquated)
-
-SLIP devices are named `sl0', `sl1' etc. The first device
-configured is assigned `', and the rest of the devices are incremented sequentially
-as they are configured.
-
-
-
-''Kernel Compile Options'':
-
- Network device support ---b
-[[*] Network device support
-`*b SLIP (serial line) support
-[[ ] CSLIP compressed headers
-[[ ] Keepalive and linefill
-[[ ] Six bit SLIP encapsulation
-
-
-
-SLIP (Serial Line Internet Protocol) allows you to use tcp/ip over a serial
-line (could be a phone line with a dialup modem, or a leased line of some sort).
-To use SLIP, you would of course need access to an ''SLIP-server'' in your
-area. Many universities and businesses provide SLIP access all over the world.
-
-
-
-SLIP uses the serial ports on your machine to carry IP datagrams. To do this,
-SLIP must take control of the serial device. SLIP device names are named
-''sl0'', ''sl1'' etc. How do these correspond to your serial
-devices? The networking code uses what is called an ''ioctl'' (i/o
-control) call to change the serial devices into SLIP devices. There are
-two programs supplied that can perform this function: they are called ''dip'' and
-''slattach''
-
-----
-!!11.4.1. dip
-
-''dip'' (Dialup IP) is a smart program that is able to perform the following
-tasks: set the speed of the serial device, command your modem to dial the remote end of the link,
-automatically log you into the remote server, search for messages sent to you
-by the server, and extract information from them (such as your IP address). It will then
-perform the ''ioctl'' necessary to switch your serial port into
-SLIP mode. ''dip'' has a powerful scripting ability. It's this ability
-that you can exploit to automate your logon procedure.
-
-
-
-You can find it at:
-metalab.unc.edu.
-
-
-
-Refer to the following for installation guidelines:
-
-
-
-
- user% tar xvzf dip337o-uri.tgz
-user% cd dip-3.3.7o
-user% vi Makefile
-root# make install
-
-
-
-The Makefile assumes the existence of a group called ''uucp''.
-However, you might like to change this to either ''dip'' or ''SLIP''
-(depending on your configuration).
-
-----
-!!11.4.2. slattach
-
-''slattach'' (as contrasted with ''dip'') is a very simple program
-that does not have the sophistication of ''dip''.
-It does not have the scripting ability of dip. It will only configure your
-serial device as a SLIP device. It assumes you have all the information you
-need, and it figures that you have the serial line established before you invoke it. ''slattach''
-is ideal to use where you have a permanent connection to your server (such as
-a physical cable or a leased line).
-
-----
-!!11.4.3. When do I use which ?
-
-You would use ''dip'' when your link (to the machine that is your SLIP
-server) is either a dialup modem or some other temporary link. You would use
-''slattach'' when you have a leased line, perhaps a cable, between your
-machine and the server: it is assumed that there is no special action needed to get this link
-working. See section `Permanen ist Slip connection' for more information.
-
-
-
-Configuring SLIP is much like configuring an Ethernet interface
-(read section `Configuring an ethernet device' above). There
-are a few key differences.
-
-
-
-First of all, SLIP links are unlike ethernet networks in that there
-are only two hosts on the network (one at each end of the
-link). Ethernet is available for use as soon are you are
-cabled. However, SLIP may require you to initialize your network connection
-in some special way
-(depending upon the type of link that you have).
-
-
-
-If you are using ''dip'', then this would not normally be done
-at boot time. It could be done at some later time, when you're ready to use the
-link. It is possible to automate this procedure. If you are using
-''slattach'' then you will probably want to add a section to your
-''rc.inet1'' file. This will soon be addressed in our document..
-
-
-
-There are two major types of SLIP servers: Dynamic IP address
-servers and static IP address servers. Almost every SLIP server will
-prompt you to login using a username and password:
-''dip'' can handle logging you in automatically.
-
-----
-!!11.4.4. Static SLIP server with a dialup line and DIP.
-
-A static SLIP server is one in which you have been supplied an IP address
-that is exclusively yours. Each time you connect to the server, you will
-configure your SLIP port with that address. The static SLIP server will
-answer your modem call, possibly prompt you for a username and password,
-and then route any datagrams destined for your address to you via that
-connection. If you have a static server, then you may want to put entries
-for your hostname and IP address (since you know what it will be) into your
-/etc/hosts. You should also configure some other files such as:
-rc.inet2, host.conf, resolv.conf,
-/etc/HOSTNAME and rc.local. Remember that when configuring
-rc.inet1, you don't need to add any special commands for your SLIP
-connection (since it is ''dip'' that does all of the hard work for you in
-configuring your interface). You will need to give ''dip'' the appropriate
-information so it can configure the interface for you (after it commands the
-modem to establish the call and it has logged you into your SLIP server).
-
-
-
-If this is how your SLIP server works, then you can move on to the section
-`Using Dip' to learn how to configure ''dip'' it appropriately.
-
-----
-!!11.4.5. Dynamic SLIP server with a dialup line and DIP.
-
-A ''dynamic'' SLIP server is one which allocates you an IP
-address randomly (from a pool of addresses) each time you logon. This
-means that there is no guarantee that you will have any particular
-address. Address may well be used by someone else
-after you have logged off. The network administrator who configured
-the SLIP server will have assigned a pool of address for the SLIP
-server to use. When the server receives a new incoming call, the following steps occur: initially, it finds
-the first unused address; second, it guides the caller through the login process; finally, it
-then prints a welcome message that contains the IP address it has
-allocated. It will ultimately use that particular IP address for the duration of
-the call.
-
-
-
-Configuring for this type of server is similar to configuring for a
-static server. You must add an extra step, however, where you obtain the IP
-address the server has allocated to you. Then you can configure your SLIP
-device with that address.
-
-
-
-Again, ''dip'' does the hard work for you. New versions are smart
-enough to not only log you in, but they are also able to automatically
-read the IP address printed in the welcome message. They can then store this address so
-that you can have your SLIP device configured.
-
-
-
-If this is how your SLIP server works, then you can move to section
-`Using Dip' to learn how to configure ''dip'' appropriately.
-
-----
-!!11.4.6. Using DIP.
-
-As explained earlier, ''dip'' is a powerful program that can simplify
-and automate these process: dialing into the SLIP server, logging in the user,
-starting the connection, and configuring the SLIP devices with the
-appropriate ''ifconfig'' and ''route'' commands.
-
-
-
-To use ''dip'', you'll need to write a `dip script'. This script
-is basically a list of commands that ''dip'' understands. These commands
-tell ''dip'' how to perform each of the actions that you require.
-See sample.dip that comes supplied with ''dip''
-to get an idea of how it works. ''dip'' is quite a powerful
-program: it comes with many options. Instead of going into all of them here,
-you should look at the ''man'' page, README, and sample files that
-will have come with your version of ''dip''.
-
-
-
-You may notice that the sample.dip script assumes that
-you're using a static SLIP server (so you'll know what your IP address is
-beforehand). For dynamic SLIP servers, the newer versions of
-''dip'' include a command you can use to automatically read and
-configure your SLIP device (with the IP address that the dynamic server
-allocates for you). The following sample is a modified version of the
-sample.dip that came supplied with ''dip337j-uri.tgz''.
-It is probably a good starting point for you. You might like to save
-it as /etc/dipscript, then you can edit it to suit your configuration:
-
-
-
-
-#
-# sample.dip Dialup IP connection support program.
-#
-# This file (should show) shows how to use the DIP
-# This file should work for Annex type dynamic servers, if you
-# use a static address server then use the sample.dip file that
-# comes as part of the dip337-uri.tgz package.
-#
-#
-# Version: @(#)sample.dip 1.40 07/20/93
-#
-# Author: Fred N. van Kempen, `waltje@uWalt.NL.Mugnet.ORGb
-#
-main:
-# Next, set up the other side's name and address.
-# My dialin machine is called 'xs4all.hacktic.nl' (== 193.78.33.42)
-get $remote xs4all.hacktic.nl
-# Set netmask on sl0 to 255.255.255.
-netmask 255.255.255.
-# Set the desired serial port and speed.
-port cua02
-speed 38400
-# Reset the modem and terminal line.
-# This seems to cause trouble for some people!
-reset
-# Note! "Standard" pre-defined "errlevel" values:
-# 0 - OK
-# 1 - CONNECT
-# 2 - ERROR
-#
-# You can change those grep'ping for "addchat()" in *.c...
-# Prepare for dialing.
-send ATQ0V1E1X4\r
-wait OK 2
-if $errlvl != 0 goto modem_trouble
-dial 555-1234567
-if $errlvl != 1 goto modem_trouble
-# We are connected. Login to the system.
-login:
-sleep 2
-wait ogin: 20
-if $errlvl != 0 goto login_trouble
-send MYLOGIN\n
-wait ord: 20
-if $errlvl != 0 goto password_error
-send MYPASSWD\n
-loggedin:
-# We are now logged in.
-wait SOMEPROMPT 30
-if $errlvl != 0 goto prompt_error
-# Command the server into SLIP mode
-send SLIP\n
-wait SLIP 30
-if $errlvl != 0 goto prompt_error
-# Get and Set your IP address from the server.
-# Here we assume that after commanding the SLIP server into SLIP
-# mode that it prints your IP address
-get $locip remote 30
-if $errlvl != 0 goto prompt_error
-# Set up the SLIP operating parameters.
-get $mtu 296
-# Ensure "route add -net default xs4all.hacktic.nl" will be done
-default
-# Say hello and fire up!
-done:
-print CONNECTED $locip ---b $rmtip
-mode CSLIP
-goto exit
-prompt_error:
-print TIME-OUT waiting for sliplogin to fire up...
-goto error
-login_trouble:
-print Trouble waiting for the Login: prompt...
-goto error
-password:error:
-print Trouble waiting for the Password: prompt...
-goto error
-modem_trouble:
-print Trouble occurred with the modem...
-error:
-print CONNECT FAILED to $remote
-quit
-exit:
-exit
-
-
-
-The above example assumes you are calling a ''dynamic'' SLIP server. If
-you are calling a ''static'' SLIP server, then the sample.dip
-file that comes with ''dip337j-uri.tgz'' should work for you.
-
-
-
-When ''dip'' is given the ''get $local'' command, it
-searches the incoming text from the remote end for a string that looks like an
-IP address (ie strings numbers separated by `.' characters). This modification
-was put in place specifically for ''dynamic'' SLIP servers so that the
-process of reading the IP address granted by the server could be automated.
-
-
-
-The example above will automatically create a default route via your SLIP link.
-If this is not what you want, you might have an ethernet connection that should
-be your default route. Remove the ''default'' command from the script.
-After this script has finished running (if you do an ''ifconfig'' command),
-you will see that you have a device ''sl0''. This is your SLIP device.
-You can modify its configuration manually after the
-''dip'' command has finished by using both the ''ifconfig'' and
-the ''route'' commands.
-
-
-
-Please note that ''dip'' allows you to select a number of different
-protocols to use with the mode command. The most common example is
-''cSLIP'': it is used for SLIP with compression. Please note that both ends of the
-link must agree. You should ensure that whatever you select agrees with your server settings.
-
-
-
-The above example is fairly robust, and it should cope with most errors. Please
-refer to the ''dip'' man page for more information. Naturally, you could
-code the script to do such things as redial the server if it
-doesn't get a connection within a prescribed period of time. You can even try
-a series of servers (if you have access to more than one).
-
-----
-!!11.4.7. Permanent SLIP connection using a leased line and slattach.
-
-If you have a cable between two machines (or are fortunate enough to have a
-leased line), or some other permanent serial connection between your machine
-and second machine, then you don't need to go to all the trouble of using
-''dip'' to set up your serial link. ''slattach'' is a very simple
-utility that will allow you just enough functionality to configure your
-connection.
-
-
-
-Since your connection will be a permanent one, you will want to add some
-commands to your rc.inet1 file. To get a permanent
-connection, make sure that you configure the serial device to
-the correct speed. Then switch the serial device into SLIP mode. ''slattach''
-allows you to do this with one command. ''Add'' the following to your
-rc.inet1 file:
-
-
-
-
- #
-# Attach a leased line static SLIP connection
-#
-# configure /dev/cua0 for 19.2kbps and cslip
-/sbin/slattach -p cslip -s 19200 /dev/cua0 8
-/sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up
-#
-# End static SLIP.
-
-
-
-Where:
-
-
-
-
-; IPA.IPA.IPA.IPA:
-
-represents your IP address.
-
-; IPR.IPR.IPR.IPR:
-
-represents the IP address of the remote end.
-
-
-
-
-
-''slattach'' allocates the first unallocated SLIP device to the serial
-device specified. ''slattach'' starts with ''sl0''.
-The first ''slattach'' command attaches SLIP device ''sl0'' to
-the serial device specified; ''sl1'' the next time, etc.
-
-
-
-''slattach'' allows you to configure a number of different
-protocols with the -p argument. You will use
-either ''SLIP'' or ''cSLIP'': the choice will depend
-on whether or not you want to use compression. Note: both ends must agree on compression or no
-compression.
-
-----
-!!11.4.8. SLIP server.
-
-If you have a machine that is perhaps network connected, and you'd like
-other people be able to dial in and obtain network services, then you
-will need to configure your machine as a server. If you want to use SLIP
-as the serial line protocol, then you have three options as to how
-to configure your Linux machine (as a SLIP server). My preference would be to
-use the first presented (''sliplogin'') because it seems the easiest to
-configure and understand. I will present a summary of each so that you can
-make your own decision.
-
-----
-!!11.4.9. Slip Server using ''sliplogin''.
-
-''sliplogin'' is a program that you can use in place of the normal login
-shell for SLIP users. It converts the terminal line into a SLIP line. It also
-allows you to configure your Linux machine as either a ''static address
-server'' (users get the same address everytime they call in), or a
-''dynamic address server'' (where users may get a different address allocated
-to them each time they call).
-
-
-
-The caller will login as per the standard login process by entering their username
-and password. However, instead of being presented with a shell after their login,
-''sliplogin'' is executed. Sliplogin searches its configuration file
-(/etc/slip.hosts) for an entry with a login name that matches that of
-the caller. If it locates a match, it then configures the line as an 8bit clean line. It
-uses an ''ioctl'' call to convert the line discipline to SLIP. When
-this process is complete, the last stage of configuration takes place. Now
-''sliplogin'' invokes a shell script which configures the SLIP interface
-with the relevant ip address and netmask. It will also set appropriate routing in place.
-This script is usually called /etc/slip.login. In a similar manner
-to ''getty'' (where you have certain callers that require special
-initialization) you can create configuration scripts called
-/etc/slip.login.loginname. These scripts will be run instead of the defaults.
-
-
-
-There are either three or four files that you need to configure to get
-''sliplogin'' working for you. I will detail where to obtain
-the software and how to configure in detail. The files are:
-
-
-
-
-
-
-
-
-*
-
-/etc/passwd, for the dialin user accounts.
-
-
-*
-*
-
-/etc/slip.hosts, to contain the information unique to each
-dial-in user.
-
-
-*
-*
-
-/etc/slip.login, which manages the configuration of the routing
-that needs to be performed for the user.
-
-
-*
-*
-
-/etc/slip.tty, which is required only if you are configuring
-your server for ''dynamic address allocation''. It contains a table
-of addresses to allocate.
-
-
-*
-*
-
-/etc/slip.logout, which contains commands to clean up after the
-user has hung up or logged out.
-
-
-*
-
-----
-!!11.4.10. Where to get ''sliplogin''
-
-You may already have the ''sliplogin'' package installed as part of your
-distribution. If you do not have the package, then you can get ''sliplogin'' from:
-metalab.unc.edu.
-The tar file contains both source, precompiled binaries and a ''man'' page.
-
-
-
-To ensure that only authorized users will be able to run the''sliplogin''
-program, you should add an entry to your /etc/group file similar to
-the following:
-
-
-
-
- ..
-slip::13:radio,fred
-..
-
-
-
-When you install the ''sliplogin'' package, the
-''Makefile'' will
-change the group ownership of the
-''sliplogin'' program to slip.
-This will mean that only users who belong to that group will be able
-to execute it. The example above will allow only users radio and
-fred
-to execute
-''sliplogin''.
-
-
-
-
-To install the binaries into your /sbin directory, and to place the
-''man'' page into section 8, perform the following:
-
-
-
-
-# cd /usr/src
-# gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf -
-# cd sliplogin-2.1.1
-# `..edit the Makefile if you don't use shadow passwords..b
-# make install
-
-
-
-If you want to recompile the binaries before installation, add a
-make clean before the make install. If you want to install
-the binaries somewhere else, you will need to edit the Makefile
-''install rule.''
-
-----
-!!11.4.11. Configuring /etc/passwd for Slip hosts.
-
-You would usually create some special logins for Slip callers in your
-/etc/passwd file. A convention commonly followed is to use the
-''hostname'' of the calling host with a capital `S' prefixing it.
-If the calling host is called radio then you could
-create a /etc/passwd entry that looked like:
-
-
-
-
-Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin
-
-
-
-It doesn't really matter what the account is called: just make it
-meaningful to you!
-
-
-
-Note: the caller doesn't need any special home directory. They will not
-be presented with a shell from this machine, so /tmp is a good choice.
-Also note that ''sliplogin'' is used in place of the normal login shell.
-
-----
-!!11.4.12. Configuring /etc/slip.hosts
-
-The /etc/slip.hosts file is the file that ''sliplogin''
-searches (it looks for entries matching the login name) to obtain configuration details
-for this particular caller. It is this file where you specify the ip address and netmask
-that will be assigned to the caller (configured for their use). Sample
-entries for two hosts: one a static configuration for host radio, and
-another is a dynamic configuration for user host albert.They both might look like:
-
-
-
-
-#
-Sradio 44.136.8.99 44.136.8.100 255.255.255.0 normal -1
-Salbert 44.136.8.99 DYNAMIC 255.255.255.0 compressed 60
-#
-
-
-
-The /etc/slip.hosts file entries are:
-
-
-
-
-
-
-
-
-#
-
-The login name of the caller.
-
-
-#
-#
-
-The ip address of the server machine (ie: this machine).
-
-
-#
-#
-
-This is the ip address that is assigned to the caller. If this field is coded
-DYNAMIC, then an ip address will be allocated. This is based on the information
-contained in your /etc/slip.tty file (to be discussed later).
-''Note:'' you must be using at least version 1.3 of sliplogin for this to work.
-
-
-#
-#
-
-The netmask assigned to the calling machine in dotted decimal notation
-eg 255.255.255.0 for a Class C network mask.
-
-
-#
-#
-
-This is the slip mode setting which allows you to enable/disable compression and
-slip other features. Allowable values here are either "normal" or
-"compressed".
-
-
-#
-#
-
-A timeout parameter which specifies how long the line can remain idle (no
-datagrams received) before the line is automatically disconnected. A negative
-value disables this feature.
-
-
-#
-#
-
-Optional arguments.
-
-
-#
-
-
-
-Note: You can use either hostnames or IP addresses (in dotted decimal notation)
-for fields 2 and 3. If you use hostnames, then those hosts must be resolvable.
-In other words, your machine must be able to locate an IP address for those hostnames.
-If the machine can't locate an IP address, the script will fail when it is called. You can test this by
-trying to telnet to the hostname. If you get the
-`''Trying nnn.nnn.nnn...''' message, then your machine has been able to find
-an ip address for that name. If you get the message `''Unknown host''', then
-it was unsuccessful. In this case, you can either use ip addresses in dotted decimal notation, or fix
-up your name resolver configuration (See section Name Resolution).
-
-
-
-The most common slip modes are:
-
-
-
-
-; normal:
-
-to enable normal uncompressed SLIP.
-
-; compressed:
-
-to enable van Jacobsen header compression (cSLIP)
-
-
-
-
-
-Naturally these are mutually exclusive. You can use one or the other. For more
-information on the other options available, refer to the ''man'' pages.
-
-----
-!!11.4.13. Configuring the /etc/slip.login file.
-
-After ''sliplogin'' has searched the /etc/slip.hosts, and
-it has found a matching entry, it will then attempt to execute the /etc/slip.login file.
-It will then configure the SLIP interface with its ip address and netmask.
-
-
-
-The sample /etc/slip.login file supplied with the ''sliplogin''
-package looks like this:
-
-
-
-
-#!/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 ...
-# SLIPunit ttyspeed pid the arguments from the slip.host entry
-#
-/sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up
-/sbin/route add $6
-arp -s $6 `hw_addrb pub
-exit
-#
-
-
-
-You will note that this script simply uses the ''ifconfig'' and
-''route'' commands to configure the SLIP device (with its IP address,
-remote IP address, and netmask). The script then creates a route for the remote address via
-the SLIP device. This procedure is the same as you would invoke if you were using the
-''slattach'' command.
-
-
-
-Note also the use of ''Proxy ARP''. It ensures that other hosts on the same
-ethernet as the server machine will know how to reach the dial-in host.
-The `hw_addrb field should be the hardware address of the ethernet
-card in the machine. If your server machine isn't on an ethernet network, then
-you can eliminate this line.
-
-----
-!!11.4.14. Configuring the /etc/slip.logout file.
-
-You want to ensure that the serial device is restored
-to its normal state when the call drops out (so that future callers will be able to login correctly).
-This is achieved with the use of the /etc/slip.logout file. It is
-quite simple in format, and it is called with the same argument as the
-/etc/slip.login file.
-
-
-
-
- #!/bin/sh -
-#
-# slip.logout
-#
-/sbin/ifconfig $1 down
-arp -d $6
-exit
-#
-
-
-
-All it does is `down' the interface. This will delete the manual route
-previously created. It also uses the ''arp'' command to delete any proxy
-arp put in place. You don't need the ''arp'' command in the script
-if your server machine does not have an ethernet port.
-
-----
-!!11.4.15. Configuring the /etc/slip.tty file.
-
-If you are using dynamic ip address allocation, you should have any hosts configured
-with the DYNAMIC keyword in the /etc/slip.hosts file.
-You must then configure the /etc/slip.tty file to list what addresses
-are assigned to what port. You only need this file if you wish your server
-to dynamically allocate addresses to users.
-
-
-
-The file is a table that lists both the ''tty'' devices that will support
-dial-in SLIP connections,and the ip address that should be assigned to users
-who call in on that port.
-
-
-
-Its format is as follows:
-
-# slip.tty tty -b IP address mappings for dynamic SLIP
-# format: /dev/tty?? xxx.xxx.xxx.xxx
-#
-/dev/ttyS0 192.168..100
-/dev/ttyS1 192.168..101
-#
-
-
-
-What this table says is that callers that dial in on port /dev/ttyS0
-(who have their remote address field in the /etc/slip.hosts file
-set to DYNAMIC) will be assigned an address of 192.168..100.
-
-
-
-In this way you need only allocate one address per port for all the users who do
-not require dedicated address. This helps you keep the number
-of addresses you need down to a minimum.
-
-----
-!!11.4.16. Slip Server using ''dip''.
-
-Let me start by saying that some of the information below came from the
-''dip'' man pages (where how to run Linux as a SLIP server is briefly
-documented). Please also beware that the following has been based on
-the ''dip337o-uri.tgz'' package, and it probably will not apply to other
-versions of ''dip''.
-
-
-
-''dip'' has an input mode of operation. In this mode, it automatically locates
-an entry for the user who invoked it, and it then configures the serial line as
-a SLIP link (according to information it finds in the /etc/diphosts
-file). This input mode of operation is activated by invoking ''dip''
-as ''diplogin''. By creating special accounts where ''diplogin'' is used as the
-login shell, you are using ''dip'' as a SLIP server.
-
-
-
-The first thing you will need to do is to make a symbolic link as follows:
-
-
-
-
-# ln -sf /usr/sbin/dip /usr/sbin/diplogin
-
-
-
-You then need to add entries to both your /etc/passwd and your
-/etc/diphosts files. The entries you need to make are formatted
-as follows:
-
-
-
-To configure Linux as a SLIP server with ''dip'', you need to create some
-special SLIP accounts for users. You will use ''dip'' (in input mode) as
-the login shell. A suggested convention is to have all SLIP accounts
-begin with a capital `S', eg `Sfredm'.
-
-
-
-A sample /etc/passwd entry for a SLIP user looks like the following:
-
-
-
-
-Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin
-^^ ^^ ^^ ^^ ^^ ^^ ^^
-| | | | | | \__ diplogin as login shell
-| | | | | \_______ Home directory
-| | | | \____________ User Full Name
-| | | \_________________ User Group ID
-| | \_____________________ User ID
-| \_______________________________ Encrypted User Password
-\__________________________________________ Slip User Login Name
-
-
-
-After the user logs in, the ''login'' program (if it finds and
-verifies the user) will execute the ''diplogin''
-command ''dip''. ''diplogin'' knows that it
-should automatically assume that it is being used a login shell. When
-it is started as ''diplogin'' it uses the
-''getuid()'' function call to get the userid from whoever has
-invoked it. It then searches the /etc/diphosts file for the
-first entry that matches either the userid or the name of the
-''tty'' device from where the call has originated. It then configures itself
-appropriately. By deciding between giving the user an
-entry in the diphosts file, or providing her or him
-the default configuration, you can build your server in such a
-way that you can have a mix of static and dynamically assigned addressed
-users.
-
-
-
-You do not need to worry about manually adding such entries because
-''dip'' will automatically add a `Proxy-ARP' entry if invoked in input
-mode.
-
-----
-!!11.4.17. Configuring /etc/diphosts
-
-/etc/diphosts is used by ''dip'' to lookup preset
-configurations for remote hosts. These remote hosts might be users
-dialing into your linux machine, or they might be for machines that you dial
-into with your linux machine.
-
-
-
-The general format for /etc/diphosts is as follows:
-
-
-
-
- ..
-Suwalt::145.71.34.1:145.71.34.2:255.255.255.:SLIP uwalt:CSLIP,1006
-ttyS1::145.71.34.3:145.71.34.2:255.255.255.:Dynamic ttyS1:CSLIP,296
-..
-
-
-
-The fields are:
-
-
-
-
-
-#
-
-Login name: as returned by getpwuid(getuid())
-or tty name.
-
-
-
-#
-#
-
-Unused: compat. with passwd
-
-
-#
-#
-
-Remote Address: IP address of the calling host, either numeric or by name
-
-
-#
-#
-
-Local Address: IP address of this machine, again numeric or by name
-
-
-#
-#
-
-Netmask: in dotted decimal notation
-
-
-#
-#
-
-Comment field: place whatever you want here.
-
-
-#
-#
-
-Protocol: Slip, CSlip etc.
-
-
-#
-#
-
-MTU: decimal number
-
-
-#
-
-
-
-An example /etc/net/diphosts entry for a remote SLIP user might be:
-
-
-
-
-Sfredm::145.71.34.1:145.71.34.2:255.255.255.:SLIP uwalt:SLIP,296
-
-
-
-which specifies a SLIP link with remote address of 145.71.34.1 and MTU of 296,
-or:
-
-
-
-
-Sfredm::145.71.34.1:145.71.34.2:255.255.255.:SLIP uwalt:CSLIP,1006
-
-
-
-which specifies a cSLIP-capable link with remote address 145.71.34.1 and MTU
-of 1006.
-
-
-
-All users who you wish to be allowed a statically allocated dial-up
-IP access should have an entry in the /etc/diphosts. If you want
-users who call a particular port to have their details dynamically allocated,
-then you must have an entry for the tty device (and do not configure a
-user based entry). You should remember to configure at least one entry for
-each tty device that is used. This ensures that a suitable
-configuration is available for them regardless of which modem they call in on.
-
-
-
-When a user logs in, they will receive a normal login and password prompt.
-They should then enter their SLIP-login userid and password. If these verify
-properly, then the user will see no special messages. The user should then change into
-SLIP mode at their end. The user should then be able to connect and be
-configured with the relevant parameters from the diphosts file.
-
-----
-!!11.4.18. SLIP server using the ''dSLIP'' package.
-
-Matt Dillon `dillon@apollo.west.oic.comb has written a package
-that does not only dial-in but also dial-out SLIP. Matt's package is
-a combination of small programs and scripts that manage your connections
-for you. You will need to have ''tcsh'' installed as at least one
-of the scripts requires it. Matt supplies a binary copy of the ''expect''
-utility as it too is needed by one of the scripts. You will most likely need
-some experience with ''expect'' to get this package working to your
-liking, but don't let that deter your efforts!
-
-
-
-Matt has written a good set of installation instructions in the
-README file, so I won't bother to repeat them.
-
-
-
-You can get the ''dSLIP'' package from its home site at:
-
-
-
-''apollo.west.oic.com''
-
-/pub/linux/dillon_src/dSLIP203.tgz
-
-
-
-or from:
-
-
-
-''metalab.unc.edu''
-
-/pub/Linux/system/Network/serial/dSLIP203.tgz
-
-
-
-Read the README file and create the /etc/passwd and
-/etc/group entries ''before'' doing a make install.
-
-----
-!!!Chapter 12. Other Network Technologies
-
-The following subsections are specific to particular network
-technologies. The information contained in these sections does not
-necessarily apply to any other type of network technology. The topics
-are sorted alphabetically.
-
-----
-!!!12.1. ARCNet
-
-ARCNet device names are `arc0e', `arc1e', `arc2e' etc. or
-`arc0s', `arc1s', `arc2s' etc. The first card detected by the
-kernel is assigned either `arc0e' or `arc0s' The rest are assigned
-sequentially in the order they are detected. The letter at the end signifies
-either the ethernet encapsulation packet format or the RFC1051 packet format.
-
-
-
-''Kernel Compile Options'':
-
- Network device support ---b
-[[*] Network device support
-`*b ARCnet support
-[[ ] Enable arc0e (ARCnet "Ether-Encap" packet format)
-[[ ] Enable arc0s (ARCnet RFC1051 packet format)
-
-
-
-Once you have your kernel properly built to support your ethernet card, then
-configuring the the card is easy.
-
-
-
-Typically you would use something like:
-
-
-
-
- root# ifconfig arc0e 192.168..1 netmask 255.255.255.0 up
-root# route add -net 192.168..0 netmask 255.255.255.0 arc0e
-
-
-
-Please refer to the
-/usr/src/linux/Documentation/networking/arcnet.txt and
-/usr/src/linux/Documentation/networking/arcnet-hardware.txt files
-for further information.
-
-
-
-ARCNet support was developed by Avery Pennarun, apenwarr@foxnet.net.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.2. Appletalk (AF_APPLETALK)
-
-The Appletalk support has no special device names as it uses existing network
-devices.
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-`*b Appletalk DDP
-
-
-
-Appletalk support allows your Linux machine to interwork with Apple networks.
-An important use for this is to share resources (such as printers and disks)
-between your Linux and Apple computers. Additional software is required;
-this is called ''netatalk''. Wesley Craig netatalk@umich.edu represents
-a team called the `Research Systems Unix Group' at the University of Michigan.
-They have produced the ''netatalk'' package. This product provides software that
-implements the Appletalk protocol stack along with some useful utilities.
-The ''netatalk'' package will either be supplied with your Linux
-distribution, or you will have to ftp it from the home site at
-University of Michigan
-
-
-
-To build and install the package, do something like the following:
-
-
-
-
- user% tar xvfz .../netatalk-1.4b2.tar.Z
-user% make
-root# make install
-
-
-
-You may want to edit the `Makefile' before calling ''make'' to
-actually compile the software. Specifically, you might want to change
-the DESTDIR variable that defines where the files will later be installed.
-The default of /usr/local/atalk is fairly safe.
-
-----
-!!12.2.1. Configuring the Appletalk software.
-
-The first thing you need to do to make it all work is to ensure that the
-appropriate entries in the /etc/services file are present. The
-entries you need are:
-
-
-
-
- rtmp 1/ddp # Routing Table Maintenance Protocol
-nbp 2/ddp # Name Binding Protocol
-echo 4/ddp # !AppleTalk Echo Protocol
-zip 6/ddp # Zone Information Protocol
-
-
-
-The next step is to create the Appletalk configuration files in the
-/usr/local/atalk/etc directory (or wherever you installed the
-package).
-
-
-
-The first file to create is the /usr/local/atalk/etc/atalkd.conf file.
-This file initially needs only one line. This line gives the name of the network
-device supporting the network that your Apple machines are on:
-
-
-
-
- eth0
-
-
-
-The Appletalk daemon program will add extra details after it has been initiated.
-
-----
-!!12.2.2. Exporting a Linux filesystems via Appletalk.
-
-You can export filesystems from your linux machine to the network so that any
-Apple machine on the network can share them.
-
-
-
-To do this you must configure the
-/usr/local/atalk/etc/!AppleVolumes.system file. There is another
-configuration file called /usr/local/atalk/etc/!AppleVolumes.default
-This file has exactly the same format: it describes which filesystems users
-connecting with guest privileges will receive.
-
-
-
-Full details on how to configure these files (and their various options)
-can be found in the ''afpd'' man page.
-
-
-
-A simple example might look like:
-
-
-
-
- /tmp Scratch
-/home/ftp/pub "Public Area"
-
-
-
-This would export your /tmp filesystem as !AppleShare Volume
-`Scratch', and it would export your ftp public directory as !AppleShare Volume `Public Area'.
-The volume names are not mandatory. The daemon will choose some for you,
-but it won't hurt to specify them anyway.
-
-----
-!!12.2.3. Sharing your Linux printer across Appletalk.
-
-It is simple to share your linux printer with your Apple machines.
-You need to run the ''papd'' program, the Appletalk
-Printer Access Protocol Daemon. When you run this program, it will accept
-requests from your Apple machines and spool the print job to your local
-line printer daemon.
-
-
-
-You need to edit the /usr/local/atalk/etc/papd.conf file to configure
-the daemon. The syntax of this file is the same as that of your usual
-/etc/printcap file. The name you give to the definition is
-registered with the Appletalk naming protocol NBP.
-
-
-
-A sample configuration might look like:
-
-
-
-
- !TricWriter:\
-:pr=lp:op=cg:
-
-
-
-This would make a printer named `!TricWriter' available to your Appletalk
-network. All accepted jobs would be printed to the linux printer `lp'
-(as defined in the /etc/printcap file) using ''lpd''. The entry
-`op=cg' says that the linux user `cg' is the operator of the printer.
-
-----
-!!12.2.4. Starting the appletalk software.
-
-Ok.You should now be ready to test this basic configuration. There is an
-''rc.atalk'' file supplied with the ''netatalk'' package that should
-work ok for you, so all you should have to do is:
-
-
-
-
- root# /usr/local/atalk/etc/rc.atalk
-
-
-
-All should startup and run ok. You should see no error messages.
-The software will send messages to the console indicating each stage as it
-starts.
-
-----
-!!12.2.5. Testing the appletalk software.
-
-To test that the software is functioning properly: go to one of your Apple
-machines, pull down the Apple menu, select the Chooser, click on !AppleShare,
-and your Linux box should appear.
-
-----
-!!12.2.6. Caveats of the appletalk software.
-
-
-
-
-
-
-*
-
-You may need to start the Appletalk support before you
-configure your IP network. If you have problems
-starting the Appletalk programs (or if after you start
-them you have trouble with your IP network), then try
-starting the Appletalk software before you run your
-/etc/rc.d/rc.inet1 file.
-
-
-*
-*
-
-The ''afpd'' (Apple Filing Protocol Daemon)
-SEVERELY MESSES UP YOUR HARD DISK. It creates a couple of directories called
-``.!AppleDesktop'' and Network Trash
-Folder below the mount
-points. For each directory you access, it
-will create a .!AppleDouble below it so it can
-store resource forks, etc. Think twice before
-exporting /; you will have a great time
-cleaning up afterwards.
-
-
-*
-*
-
-The ''afpd'' program expects clear text passwords
-from the Macs. Security could be a problem, so be
-very careful when you run this daemon on a machine
-connected to the Internet. You only have yourself to blame
-if somebody nasty does something bad!
-
-
-*
-*
-
-The existing diagnostic tools (such as ''netstat''
-and ''ifconfig'') don't support Appletalk. The raw
-information is available in the /proc/net/
-directory.
-
-
-*
-
-----
-!!12.2.7. More information
-
-For a much more detailed description of how to configure Appletalk for Linux,
-refer to Anders Brownworth ''Linux Netatalk-HOWTO'' page at
-thehamptons.com.
-
-----
-!!!12.3. ATM
-
-Werner Almesberger `werner.almesberger@lrc.di.epfl.chb is
-managing a project to provide Asynchronous Transfer Mode support for Linux.
-Current information on the status of the project may be obtained from:
-lrcwww.epfl.ch.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.4. AX25 (AF_AX25)
-
-AX.25 device names are `sl0', `sl1', etc. in 2..* kernels or
-`ax0', `ax1', etc. in 2.1.* kernels.
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-[[*] Amateur Radio AX.25 Level 2
-
-
-
-The AX25, Netrom and Rose protocols are covered by the
-AX25-HOWTO.
-These protocols are used by Amateur Radio Operators world wide in packet
-radio experimentation.
-
-
-
-Most of the work for implementation of these protocols has been done by
-Jonathon Naylor: jsn@cs.nott.ac.uk.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.5. DECNet
-
-Support for DECNet is currently a work in progress. You should expect it to
-appear in a late 2.1.* kernel.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.6. FDDI
-
-FDDI device names are `fddi0', `fddi1', `fddi2' etc. The first
-card detected by the kernel is assigned `fddi0' : the rest are assigned
-sequentially in the order that they are detected.
-
-
-
-Larry Stefani, lstefani@ultranet.com, has developed a
-driver for the Digital Equipment Corporation FDDI EISA and PCI cards.
-
-
-
-''Kernel Compile Options'':
-
- Network device support ---b
-[[*] FDDI driver support
-[[*] Digital DEFEA and DEFPA adapter support
-
-
-
-When you have your kernel built and installed to support the FDDI driver,
-configuration of the FDDI interface is almost identical to that of an ethernet
-interface. You just specify the appropriate FDDI interface name in the
-''ifconfig'' and ''route'' commands.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.7. Frame Relay
-
-The Frame Relay device names are `dlci00', `dlci01' etc for the
-DLCI encapsulation devices, and `sdla0', `sdla1' etc for the FRAD(s).
-
-
-
-Frame Relay is a new networking technology that is designed to suit data
-communications traffic that is of a `bursty' or intermittent nature. You
-connect to a Frame Relay network using a Frame Relay Access Device (FRAD).
-The Linux Frame Relay supports IP over Frame Relay as described in RFC-1490.
-
-
-
-''Kernel Compile Options'':
-
- Network device support ---b
-`*b Frame relay DLCI support (EXPERIMENTAL)
-(24) Max open DLCI
-(8) Max DLCI per device
-`*b SDLA (Sangoma S502/S508) support
-
-
-
-Mike !McLagan, mike.mclagan@linux.org, developed the Frame Relay support
-and configuration tools.
-
-
-
-Currently the only FRAD I know of that are supported are
-Sangoma Technologies
-S502A, S502E , S508,
-and the Emerging Technologies. The Emerging Technologies website is found at: here.
-
-
-
-''I would like to make a point at this juncture. I have personal experience with
-Emerging Technologies, and I do not recommend them. I found thier staff to be
-very unprofessional and extremely rude. If anyone else has been fortunate enough to have a good
-experience with them, I would like to know. I will say this for Emerging Technologies:
-their product is flexible, and it and appears to be stable.''
-
-
-
-To configure the FRAD and DLCI devices (after you have rebuilt your kernel),
-you will need the Frame Relay configuration tools. These are available from
-ftp.invlogic.com.
-
-
-
-Compiling and installing the tools is straightforward, but the lack of a
-top level Makefile makes it a fairly manual process:
-
-
-
-
- user% tar xvfz .../frad-.15.tgz
-user% cd frad-.15
-user% for i in common dlci frad; make -C $i clean; make -C $i; done
-root# mkdir /etc/frad
-root# install -m 644 -o root -g root bin/*.sfm /etc/frad
-root# install -m 700 -o root -g root frad/fradcfg /sbin
-rppt# install -m 700 -o root -g root dlci/dlcicfg /sbin
-
-
-
-Note that the previous commands use ''sh'' syntax. If you use a
-''csh'' flavour instead (like ''tcsh''), the ''for'' loop will look
-different.
-
-
-
-After installing the tools, you need to create an
-/etc/frad/router.conf file. You can use this template (which
-is a modified version of one of the example files):
-
-
-
-
-# /etc/frad/router.conf
-# This is a template configuration for frame relay.
-# All tags are included. The default values are based on the code
-# supplied with the DOS drivers for the Sangoma S502A card.
-#
-# A '#' anywhere in a line constitutes a comment.
-# Blanks are ignored (you can indent with tabs too).
-# Unknown [[] entries and unknown keys are ignored .
-#
-[[Devices]
-Count=1 # number of devices to configure
-Dev_1=sdla0 # the name of a device
-#Dev_2=sdla1 # the name of a device
-# Specified here, these are applied to all devices and can be overridden for
-# each individual board.
-#
-Access=CPE
-Clock=Internal
-KBaud=64
-Flags=TX
-#
-# MTU=1500 # Maximum transmit IFrame length, default is 4096
-# T391=10 # T391 value 5 - 30, default is 10
-# T392=15 # T392 value 5 - 30, default is 15
-# N391=6 # N391 value 1 - 255, default is 6
-# N392=3 # N392 value 1 - 10, default is 3
-# N393=4 # N393 value 1 - 10, default is 4
-# Specified here, these set the defaults for all boards
-# CIRfwd=16 # CIR forward 1 - 64
-# Bc_fwd=16 # Bc forward 1 - 512
-# Be_fwd=0 # Be forward 0 - 511
-# CIRbak=16 # CIR backward 1 - 64
-# Bc_bak=16 # Bc backward 1 - 512
-# Be_bak=0 # Be backward 0 - 511
-#
-#
-# Device specific configuration
-#
-#
-#
-# The first device is a Sangoma S502E
-#
-[[sdla0]
-Type=Sangoma # Type of the device to configure, currently only
-# SANGOMA is recognized
-#
-# These keys are specific to the 'Sangoma' type
-#
-# The type of Sangoma board - S502A, S502E, S508
-Board=S502E
-#
-# The name of the test firmware for the Sangoma board
-# Testware=/usr/src/frad-.10/bin/sdla_tst.502
-#
-# The name of the FR firmware
-# Firmware=/usr/src/frad-.10/bin/frm_rel.502
-#
-Port=360 # Port for this particular card
-Mem=C8 # Address of memory window, A0-EE, depending on card
-IRQ=5 # IRQ number, do not supply for S502A
-DLCIs=1 # Number of DLCI's attached to this device
-DLCI_1=16 # DLCI #1's number, 16 - 991
-# DLCI_2=17
-# DLCI_3=18
-# DLCI_4=19
-# DLCI_5=20
-#
-# Specified here, these apply to this device only,
-# and override defaults from above
-#
-# Access=CPE # CPE or NODE, default is CPE
-# Flags=TXIgnore,RXIgnore,!BufferFrames,!DropAborted,Stats,MCI,AutoDLCI
-# Clock=Internal # External or Internal, default is Internal
-# Baud=128 # Specified baud rate of attached CSU/DSU
-# MTU=2048 # Maximum transmit IFrame length, default is 4096
-# T391=10 # T391 value 5 - 30, default is 10
-# T392=15 # T392 value 5 - 30, default is 15
-# N391=6 # N391 value 1 - 255, default is 6
-# N392=3 # N392 value 1 - 10, default is 3
-# N393=4 # N393 value 1 - 10, default is 4
-#
-# The second device is some other card
-#
-# [[sdla1]
-# Type=!FancyCard # Type of the device to configure.
-# Board= # Type of Sangoma board
-# Key=Value # values specific to this type of device
-#
-# DLCI Default configuration parameters
-# These may be overridden in the DLCI specific configurations
-#
-CIRfwd=64 # CIR forward 1 - 64
-# Bc_fwd=16 # Bc forward 1 - 512
-# Be_fwd=0 # Be forward 0 - 511
-# CIRbak=16 # CIR backward 1 - 64
-# Bc_bak=16 # Bc backward 1 - 512
-# Be_bak=0 # Be backward 0 - 511
-#
-# DLCI Configuration
-# These are all optional. The naming convention is
-# [[DLCI_D`devicenumb_`DLCI_Numb]
-#
-[[DLCI_D1_16]
-# IP=
-# Net=
-# Mask=
-# Flags defined by Sangoma: TXIgnore,RXIgnore,!BufferFrames
-# DLCIFlags=TXIgnore,RXIgnore,!BufferFrames
-# CIRfwd=64
-# Bc_fwd=512
-# Be_fwd=
-# CIRbak=64
-# Bc_bak=512
-# Be_bak=
-[[DLCI_D2_16]
-# IP=
-# Net=
-# Mask=
-# Flags defined by Sangoma: TXIgnore,RXIgnore,!BufferFrames
-# DLCIFlags=TXIgnore,RXIgnore,!BufferFrames
-# CIRfwd=16
-# Bc_fwd=16
-# Be_fwd=
-# CIRbak=16
-# Bc_bak=16
-# Be_bak=
-
-
-
-After you've built your /etc/frad/router.conf file, the only
-step remaining is to configure the actual devices. This is
-only a little trickier than a normal network device configuration.
-Remember to bring up the FRAD device before the DLCI
-encapsulation devices. These commands are best hosted in a shell
-script because of their number:
-
-
-
-
- #!/bin/sh
-# Configure the frad hardware and the DLCI parameters
-/sbin/fradcfg /etc/frad/router.conf || exit 1
-/sbin/dlcicfg file /etc/frad/router.conf
-#
-# Bring up the FRAD device
-ifconfig sdla0 up
-#
-# Configure the DLCI encapsulation interfaces and routing
-ifconfig dlci00 192.168.10.1 pointopoint 192.168.10.2 up
-route add -net 192.168.10.0 netmask 255.255.255.0 dlci00
-#
-ifconfig dlci01 192.168.11.1 pointopoint 192.168.11.2 up
-route add -net 192.168.11.0 netmask 255.255.255.0 dlci00
-#
-route add default dev dlci00
-#
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.8. IPX (AF_IPX)
-
-The IPX protocol is most commonly utilized in Novell !NetWare(tm) local area
-network environments. Linux includes support for this protocol, and it may be
-configured to act as a network endpoint (or, as a router for IPX).
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-[[*] The IPX protocol
-[[ ] Full internal IPX network
-
-
-
-The IPX protocol and the NCPFS are covered in greater depth in the
-IPX-HOWTO.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.9. !NetRom (AF_NETROM)
-
-!NetRom device names are `nr0', `nr1', etc.
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-[[*] Amateur Radio AX.25 Level 2
-[[*] Amateur Radio NET/ROM
-
-
-
-The AX25, Netrom and Rose protocols are covered by the
-AX25-HOWTO.
-These protocols are used by Amateur Radio Operators world wide in packet
-radio experimentation.
-
-
-
-Most of the work for implementation of these protocols has been done by
-Jonathon Naylor, jsn@cs.nott.ac.uk.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.10. Rose protocol (AF_ROSE)
-
-Rose device names are `rs0', `rs1', etc. in 2.1.* kernels.
-Rose is available in the 2.1.* kernels.
-
-
-
-''Kernel Compile Options'':
-
- Networking options ---b
-[[*] Amateur Radio AX.25 Level 2
-`*b Amateur Radio X.25 PLP (Rose)
-
-
-
-The AX25, Netrom and Rose protocols are covered by the
-AX25-HOWTO.
-These protocols are used by Amateur Radio Operators world wide in packet
-radio experimentation.
-
-
-
-Most of the work for implementation of these protocols has been done by
-Jonathon Naylor: jsn@cs.nott.ac.uk.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.11. SAMBA - `NetBEUI', `!NetBios', `CIFS' support.
-
-SAMBA is an implementation of the Session Management Block protocol. Samba
-allows Microsoft and other systems to mount and use your disks and printers.
-
-
-
-SAMBA and its configuration are covered in detail in the
-SMB-HOWTO.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.12. STRIP support (Starmode Radio IP)
-
-STRIP device names are `st0', `st1', etc.
-
-
-
-''Kernel Compile Options'':
-
- Network device support ---b
-[[*] Network device support
-....
-[[*] Radio network interfaces
-` b STRIP (Metricom starmode radio IP)
-
-
-
-STRIP is a protocol designed (specifically for a range of Metricom
-radio modems) for a research project being conducted by Stanford
-University called the !MosquitoNet Project. There is a lot of interesting reading
-here (even if you aren't directly interested in the project).
-
-
-
-The Metricom radios connect to a serial port, employ spread spectrum
-technology and are typically capable of about 100kbps.
-Information on the Metricom radios is available from:
-Metricom Web Server.
-
-
-
-The standard network tools and utilities currently do not support the
-STRIP driver. You will have to download some customized tools from the
-!MosquitoNet web server. Details on what software you need is available at:
-!MosquitoNet STRIP Page.
-
-
-
-A summary of the configuration is that you use a modified ''slattach'' program
-to set the line discipline of a serial tty device to STRIP. Configure
-the resulting `st[[-9]' device as you would for ethernet with one
-important exception: for technical reasons, STRIP does not support the ARP
-protocol, so you must manually configure the ARP entries for each of the hosts
-on your subnet. This shouldn't prove too onerous!
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.13. Token Ring
-
-Token ring device names are `tr0', `tr1' etc. Token Ring is an
-IBM standard LAN protocol that avoids collisions by providing a mechanism
-that allows only one station on the LAN the right to transmit at a time.
-A `token' is held by one station. This station is the only one
-allowed to transmit. When it has transmitted
-its data, it then passes the token onto the next station. The token loops amongst
-all active stations; hence the name `Token Ring'.
-
-
-
-''Kernel Compile Options'':
-
- Network device support ---b
-[[*] Network device support
-....
-[[*] Token Ring driver support
-` b IBM Tropic chipset based adaptor support
-
-
-
-Configuration of token ring is identical to that of ethernet except for
-configuring the network device name.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.14. X.25
-
-X.25 is a circuit based packet switching protocol defined by the
-C.C.I.T.T. (a standards body recognized by Telecommunications companies
-in most parts of the world). Implementations of X.25 and LAPB are currently being
-worked on, and recent 2.1.* kernels include the work in progress.
-
-
-
-Jonathon Naylor jsn@cs.nott.ac.uk is leading the development.
-A mailing list has been established to discuss Linux X.25 related matters.
-If you'd like to subscribe, send a message to: majordomo@vger.rutgers.edu. Be sure
-to include the text "subscribe linux-x25" in the body of the message.
-
-
-
-Early versions of the configuration tools may be obtained from Jonathon's ftp
-site at :ftp.cs.nott.ac.uk.
-
-
-
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!12.15. !WaveLan Card
-
-Wavelan device names are `eth0', `eth1', etc.
-
-
-
-''Kernel Compile Options'':
-
-Network device support ---b
-[[*] Network device support
-....
-[[*] Radio network interfaces
-....
-`*b WaveLAN support
-
-
-
-The WaveLAN card is a spread spectrum wireless lan card. The card looks
-very much like an ethernet card, and it is configured in much the same
-manner.
-
-
-
-You can get information on the Wavelan card from
-Wavelan.com.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 13. Cables and Cabling
-
-Those of you handy with a soldering iron may want to build your own cables
-to interconnect two linux machines. The following cabling diagrams should
-assist you with your little project.
-
-----
-!!!13.1. Serial NULL Modem cable
-
-Not all NULL modem cables are alike. Many null modem cables do little more
-than trick your computer into thinking all the appropriate signals are
-present (and then swap transmit and receive data). This is ok, but it means that you
-must use software flow control (XON/XOFF) that is less efficient than
-hardware flow control. The following cable provides the best possible signalling
-between machines, and it allows you to use hardware (RTS/CTS) flow control.
-
-Pin Name Pin Pin
-Tx Data 2 ----------------------------- 3
-Rx Data 3 ----------------------------- 2
-RTS 4 ----------------------------- 5
-CTS 5 ----------------------------- 4
-Ground 7 ----------------------------- 7
-DTR 20 -\--------------------------- 8
-DSR 6 -/
-RLSD/DCD 8 ---------------------------/- 20
-\- 6
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!13.2. Parallel port cable (PLIP cable)
-
-If you intend to use the PLIP protocol between two machines, then this cable
-will work for you (irrespective of what sort of parallel ports you have
-installed).
-
-Pin Name pin pin
-STROBE 1*
-D0-bERROR 2 ----------- 15
-D1-bSLCT 3 ----------- 13
-D2-bPAPOUT 4 ----------- 12
-D3-bACK 5 ----------- 10
-D4-bBUSY 6 ----------- 11
-D5 7*
-D6 8*
-D7 9*
-ACK-bD3 10 ----------- 5
-BUSY-bD4 11 ----------- 6
-PAPOUT-bD2 12 ----------- 4
-SLCT-bD1 13 ----------- 3
-FEED 14*
-ERROR-bD0 15 ----------- 2
-INIT 16*
-SLCTIN 17*
-GROUND 25 ----------- 25
-
-
-
-Notes:
-
-
-
-
-
-*
-
-Do not connect the pins marked with an asterisk `*'.
-
-
-*
-*
-
-Extra grounds are 18,19,20,21,22,23 and 24.
-
-
-*
-*
-
-If the cable you are using has a metallic shield, it should be connected
-to the metallic DB-25 shell at ''one end only''.
-
-
-*
-''Warning: A miswired PLIP cable can destroy your controller card.'' Be
-very careful! Be sure to double check every connection to ensure that you don't cause
-yourself any unnecessary work or heartache.
-
-
-
-While you may be able to run PLIP cables for long distances, you should
-avoid it if you can. The specifications for the cable allow for a cable
-length of about 1 meter or so. Please be very careful when running long
-PLIP cables as sources of strong electromagnetic fields (such as lightning,
-power lines, and radio transmitters) can interfere with and sometimes even
-damage your controller. If you really want to connect two of your computers
-over a large distance, then you really should be looking at obtaining a pair of
-thin-net ethernet cards (and running some coaxial cable).
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!13.3. 10base2 (thin coax) Ethernet Cabling
-
-10base2 is an ethernet cabling standard that specifies the use of 50 ohm
-coaxial cable that has a diameter of about 5 millimeters. There are a couple of
-important rules to remember when interconnecting machines with 10base2 cabling.
-The first is that you must use terminators at ''both ends'' of the cabling.
-A terminator is a 50 ohm resistor that helps to ensure that the signal is
-absorbed (and not reflected) when it reaches the end of the cable. Without
-a terminator at each end of the cabling, you may find that the ethernet is
-unreliable (or doesn't work). Normally you'd use `T pieces' to
-interconnect the machines. You would end up with something that looks like this:
-
-
-
-
- |==========T=============T=============T==========T==========|
-| | | |
-| | | |
------ ----- ----- -----
-| | | | | | | |
------ ----- ----- -----
-
-
-
-The `|' at either end represents a terminator, the
-`======' represents a length of coaxial cable with BNC plugs at either
-end, and the `T' represents a `T piece' connector. You should keep the
-length of cable between the `T piece' and the actual ethernet card in the
-PC as short as possible. The `T piece' will ideally be plugged directly into
-the ethernet card.
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!13.4. Twisted Pair Ethernet Cable
-
-If you have only two twisted pair ethernet cards (and you wish to connect
-them), you do not require a hub. You can cable the two cards directly together.
-A diagram showing how to do this is included in the
-Ethernet-HOWTO
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 14. Glossary of Terms used in this document.
-
-The following is a list of some of the most important terms used in this
-document.
-
-
-
-
-; ARP:
-
-This is an acronym for the ''Address Resolution
-Protocol'' . It is how a network machine associates an
-IP Address with a hardware address.
-
-; ATM:
-
-This is an acronym for ''Asynchronous Transfer
-Mode''. An ATM network packages data into standard size
-blocks which it can convey efficiently from point to
-point. ATM is a circuit switched packet network technology.
-
-; Client:
-
-This is usually the piece of software at the end
-of a system where the user is located. There are exceptions.
-For example, in the X11 window system, it is actually the
-server with the user and the client runs on the remote
-machine. The client is the program (or end) of a system that is
-receiving the service provided by the server. In the case of
-''peer to peer'' systems such as ''slip'' or ''ppp'', the
-client is taken to be the end that initiates the connection.
-The remote end being called is taken to be the server.
-
-; Datagram:
-
-A datagram is a discrete package of data and
-headers which contain addresses (which is the basic unit of
-transmission across an IP network). You might also hear this
-called a `packet'.
-
-; DLCI:
-
-The DLCI is the Data Link Connection Identifier. It
-is used to identify a unique virtual Point-to-Point connection
-via a Frame Relay network. The DLCI's are normally assigned by
-the Frame Relay network provider.
-
-; Frame Relay:
-
-Frame Relay is a network technology ideally
-suited to carrying traffic that is of bursty or sporadic in
-nature. Network costs are reduced by having many Frame Relay
-customer sharing the same network capacity (and relying on them
-wanting to make use of the network at slightly different
-times).
-
-; Hardware address:
-
-This is a number that uniquely
-identifies a host in a physical network at the media access
-layer. Examples of this are ''Ethernet Addresses'' and
-''AX.25 Addresses''.
-
-; ISDN:
-
-This is an acronym for ''Integrated Services
-Digital Network''. ISDN provides a standardized means by
-which Telecommunications companies may deliver either voice or
-data information to a customers premises. ISDN is technically
-a circuit switched data network.
-
-; ISP:
-
-This is an acronym for an Internet Service
-Provider. These are organizations or companies that provide
-people with network connectivity to the Internet.
-
-; IP address:
-
-This is a number that uniquely identifies a
-TCP/IP host on the network. The address is 4 bytes long and is
-usually represented in what is called the "dotted decimal
-notation" (where each byte is represented in decimal from with
-dots `.' between them).
-
-; MSS:
-
-The Maximum Segment Size (''MSS'') is the
-largest quantity of data that can be transmitted at one
-time. If you want to prevent local fragmentation, MSS would
-equal MTU-IP header.
-
-; MTU:
-
-The Maximum Transmission Unit (''MTU'') is a
-parameter that determines the largest datagram than can be
-transmitted by an IP interface (without it needing to be broken
-down into smaller units). The MTU should be larger than the
-largest datagram you wish to transmit unfragmented. Note: this
-only prevents fragmentation locally. Some other link in the
-path may have a smaller MTU: the datagram will be
-fragmented at that point. Typical values are 1500 bytes for an
-ethernet interface, or 576 bytes for a SLIP interface.
-
-; Route:
-
-The ''route'' is the path that your datagrams
-take through the network to reach their destination.
-
-; Server:
-
-This is usually the piece of software or end of a
-system remote from the user. The server provides some service
-to one or many clients. Examples of servers include ''ftp'',
-''Networked File System'', or ''Domain Name Server''. In the
-case of ''peer to peer'' systems (such as ''slip'' or
-''ppp'' ), the server is taken to be the end of the link that is
-called. The end calling is taken to be the client.
-
-; Window:
-
-The ''window'' is the largest amount of data
-that the receiving end can accept at a given point in time.
-
-
-
-----
-!!!Chapter 15. Authors
-!!!15.1. Current
-
-Joshua D. Drake
-
-
-
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!15.2. Past
-
-Terry Dawson
-Alessandro Rubini
-Was this section helpful? Why not Donate $2.50?
-
-----
-!!!Chapter 16. Copyright.
-
-''Copyright Information''
-
-
-
-The NET-3/4-HOWTO,NET-3, and Networking-HOWTO, information on how to install and configure networking
-support for Linux. Copyright (c) 1997 Terry Dawson, 1998 Alessandro Rubini,
-1999 8 2000 Joshua D. Drake {POET}/!CommandPrompt, Inc. - http://www.linuxports.com/
-
-
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your option)
-any later version. This program is distributed in the hope that it will be
-useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-Public License for more details. You should have received a copy of the GNU
-General Public License along with this program; if not, write to the: Free
-Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
.
+Describe
[HowToNetHOWTO
] here.