Linux TCP/IP Network Administration offers a comprehensive tutorial on the fundamentals of Linux TCP/IP networking for new and intermediate-level network administrators, detailed coverage of advanced topics for experienced administrators, and comprehensive reference material on the entire TCP/IP protocol stack for all Linux professionals. Long-time Linux netadmin Scott Mann covers the Linux TCP/IP protocol stack from bottom to top, offering practical, up-to-date guidance for implementing, managing, and troubleshooting any TCP/IP network or application. Linux TCP/IP Network Administration includes detailed coverage of routing, routing table management daemons such as RIPv2 and OSPF, as well as new routing policy and traffic control capabilities available through iproute2. Mann also walks through implementing, securing, and troubleshooting each major network application, including DNS, NIS, LDAP, DHCP, NFS, sendmail, NFS, and Samba.
(NOTE: All chapters conclude with Summary and For Further Reading.
A Note about Linux Distributions. Linux Documentation. Prerequisites. Typographical Conventions. Errata and Contacts. Acknowledgments.
Computer Networking. Network Types. Network Models. The Client-Server Model. Request for Comment. Institute of Electrical and Electronics Engineers (EEE). The Internet, TCP/IP, and Other Stacks.
Hardware Layer. Network Interface Layer. Linux Network Access Implementation.
ARP, RARP, and the TCP/IP Model. The Purpose of ARP. ARP Request/Reply. The ARP Cache. The arpwatch Daemon. A Related Protocol: RARP. Viewing Network Packets.
The Internet Protocol. IPV4 Addressing. Configuring NICS. Start-up Scripts and NIC Configuration Files. Hostname Resolution.
IPV6 Datagram. ICMPV6. IGMP and IPV6. IPV6 Addressing. Neighbor Discovery. The Current State of the Linux IPV6 Implementation.
A Simple Routing Example. A Simple Routing Algorithm. The Routing Process. An Intermediate Routing Example. A More Complex Routing Example. Multicast Routing. What about IPV6? Default Free Routers.
The Protocols. User Datagram Protocol. Transmission Control Protocol. Use of TCP versus UDP.
The Client-Server Model. Services and Ports. The /etc/inetd. Conf Configuration Files. TCP_Wrappers. Access Control and the Portmapper. Replacing inetd with xinetd. Which One Should I Use?
Troubleshooting Tips. Network Monitoring and Troubleshooting Utilities.
Domain Name Service. Dynamic Host Configuration Protocol. Remote Filesystems. Network Information Service. Lightweight Directory Access Protocol. Electronic Mail. X Window System.
Autonomous Systems. Protocol Types. The gated Daemon. RIP. Router Discovery. A Routing Example. Implementing RIP and Router Discovery with gated—An Example. One More Thing…Troubleshooting with gated.
OSPF Overview. Implementing OSPF with gated. A Flat OSPF Domain Example. Interlude: Using the ospf_monitor Utility. Examples Using OSPF Areas. RIP or OSPF? GNU Zebra.
BGP Overview. Implementing BGP with gated.
What is a Firewall? Packet Filtering. Configuring the Kernel for ipchains. Introduction to Using ipchains. Packet Fragments. IP Masquerading. Adding Custom Chains. Antispoofing Rules. Rule Ordering Is Important! Saving and Restoring Rules. Rule Writing and Logging Tips. Building Your Firewall. ipchains Isn't Just for Firewalls! A Few More Things… Supplementary Utilities. The Next Generation…
Netfilter Overview. The iptables Utility. iptables Examples.
Routing and iproute2. Iproute2 Commands: ip, rtmon, rtacct, and tc. Routing Policies. Tunneling. Traffic Control. The Real Routing Algorithm. Switching. Turning Linux for Routing.
There are a lot of documents, books, whitepapers, HOWTOs, and other guides, written about network administration generally, and Linux specifically. Indeed, I reference many of these throughout this book. There are, however, two things that these resources do not do. First, the coverage of the TCP/IP stack is usually either completely theoretical or minimized. The importance of associating implementation considerations, troubleshooting methods, and performance analysis with the functionality of each layer within the TCP/IP stack cannot be overstated. I am of the firm opinion that the theory of the stack and the application of the stack should be presented simultaneously. This I have endeavored to do in the first nine chapters.
Second, few resources provide any useful implementation information about routing table management protocols like OSPF and BGP. I have a whole bunch of horror stories relating to my early efforts at implementing OSPF and the fruits of those efforts are covered in Chapters 11 and 12. Unfortunately, I only had time to cover gated. At some future point, I hope to have the opportunity to add details about zebra. Additionally, I cover the basics of BGP as implemented by the public version of gated in Chapter 13. These chapters should give most modestly seasoned network administrators enough to go on to get one or more of these protocols functional.
I think that these topics alone give credence to this book. However, I tried to round out the work with some topics of general interest to network administrators. In particular, I give an introductory treatment of implementing packet filtering with ipchains and iptables in Chapters 14 and 15, respectively. I also cover some of the very exciting advanced Linux capabilities including routing policies, tunneling, and traffic control in Chapter 16.
Finally, Chapter 10 touches on the basic network applications, including DHCP, DNS, NFS, Samba, NIS, and LDAP. These topics are covered lightly with extensive reference details for further study.
I must confess that I do regret not being able to include a more thorough treatment of certain topics. In particular, the coverage of TCP, IPv6, multicast routing, and SNMP should have considerably more attention. Other areas such as coverage of iptables and tc could certainly be enhanced. On the other hand, the book is already at about 800 pages and took nine months to write (I still have a day job). So, hopefully, this a good resource as it is and a good first step toward an even better resource a year or two down the road. I certainly hope that you benefit from it.A Note about Linux Distributions
Throughout the book, I have attempted to address a number of different Linux distributions. In particular, I specifically address Red Hat 6.2/7.0, Caldera 2.4, SuSE 6.4, and Debian 2.1. The versions for each distribution reflect the latest available at the time of this writing.Linux Documentation
Throughout the book, I generally assume that you will know where to find the basic Linux documentation. So whenever I reference a HOWTO or Linux Guide or FAQ, I mean the document that can be found at the Linux Documentation Project (LDP) home page, namely
I also reference
man pages by
title(section number). For instance,
passwd(5) refers to the
passwd man page found in section 5 of the manual page catalogue. More often than not, the section number is irrelevant as there is only one
man page of the given name. However, sometimes, and in this particular case, there are multiple
man pages related to the given name. In the case of
passwd there are two pages, one in section 1 and the other in section 5. The command
man passwd will bring up the man page for
passwd(1). You can scroll down and eventually get to
passwd(5), but you can execute the command
man 5 passwd to obtain the
passwd(5) page immediately. See
man(1) for further details.
I do make certain assumptions about your knowledge. In general, I expect that you have some knowledge of system administration and, in particular, are familiar with the following or their equivalents.
I also assume general familiarity with the Linux environment including the X Window system and the use of the X Window manager of your choice.Errata and Contacts
If you discover anything that is incorrect or that is confusing or has some problem, please let me know! Send email to me at
I won't always answer, but I will review any corrections, comments, and recommendations. I will post updates and corrections to a site that you'll find a link to off this book's catalog page on phptr.com: