346 lines
7.9 KiB
HTML
346 lines
7.9 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Linux Networking</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.57"><LINK
|
|
REL="HOME"
|
|
TITLE="Linux Network Administrators Guide"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="Introduction to Networking"
|
|
HREF="x-087-2-intro.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="UUCP Networks"
|
|
HREF="x-087-2-intro.uucp.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Maintaining Your System"
|
|
HREF="x1392.html"></HEAD
|
|
><BODY
|
|
CLASS="SECT1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Linux Network Administrators Guide</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="x-087-2-intro.uucp.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
>Chapter 1. Introduction to Networking</TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="x1392.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN1312"
|
|
>1.4. Linux Networking</A
|
|
></H1
|
|
><P
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
As it is the result of a concerted effort of programmers around
|
|
the world, Linux wouldn't have been possible without the global
|
|
network. So it's not surprising that in the early stages of
|
|
development, several people started to work on providing it with
|
|
network capabilities. A UUCP implementation was running on Linux
|
|
almost from the very beginning, and work on TCP/IP-based networking
|
|
started around autumn 1992, when Ross Biro and others created what has
|
|
now become known as Net-1.</P
|
|
><P
|
|
>After Ross quit active development in May 1993, Fred van Kempen began
|
|
to work on a new implementation, rewriting major parts of the
|
|
code. This project was known as Net-2. The first public release, Net-2d, was
|
|
made in the summer of 1993 (as part of the 0.99.10 kernel), and has
|
|
since been maintained and expanded by several people, most
|
|
notably Alan Cox.<A
|
|
NAME="X-087-2-FNIT04"
|
|
HREF="#FTN.X-087-2-FNIT04"
|
|
>[1]</A
|
|
> Alan's original work was known as
|
|
Net-2Debugged. After heavy debugging and numerous improvements to the
|
|
code, he changed its name to Net-3 after Linux 1.0 was released. The
|
|
Net-3 code was further developed for Linux 1.2 and Linux 2.0. The 2.2
|
|
and later kernels use the Net-4 version network support, which remains
|
|
the standard official offering today.</P
|
|
><P
|
|
> The
|
|
Net-4 Linux Network code offers a wide variety of device drivers and
|
|
advanced features. Standard Net-4 protocols include SLIP and PPP (for
|
|
sending network traffic over serial lines), PLIP (for parallel lines),
|
|
IPX (for Novell compatible networks, which we'll discuss in <A
|
|
HREF="x-087-2-ipx.html"
|
|
>Chapter 15</A
|
|
>), Appletalk (for Apple networks) and AX.25,
|
|
NetRom, and Rose (for amateur radio networks). Other standard Net-4
|
|
features include IP firewalling, IP accounting (discussed later in
|
|
<A
|
|
HREF="x-087-2-firewall.html"
|
|
>Chapter 9</A
|
|
> and <A
|
|
HREF="x-087-2-accounting.html"
|
|
>Chapter 10</A
|
|
>), and IP Masquerade (discussed later in
|
|
<A
|
|
HREF="x-087-2-ipmasq.html"
|
|
>Chapter 11</A
|
|
>. IP tunnelling in a couple of
|
|
different flavors and advanced policy routing are supported. A very
|
|
large variety of Ethernet devices is supported, in addition to support
|
|
for some FDDI, Token Ring, Frame Relay, and ISDN, and ATM cards.</P
|
|
><P
|
|
> Additionally, there are a number of other features that greatly
|
|
enhance the flexibility of Linux. These features include an
|
|
implementation of the SMB filesystem, which interoperates with
|
|
applications like <I
|
|
CLASS="EMPHASIS"
|
|
>lanmanager</I
|
|
> and Microsoft
|
|
Windows, called Samba, written by Andrew Tridgell, and an
|
|
implementation of the Novell NCP (NetWare Core Protocol).<A
|
|
NAME="X-087-2-FNIT05"
|
|
HREF="#FTN.X-087-2-FNIT05"
|
|
>[2]</A
|
|
> </P
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN1352"
|
|
>1.4.1. Different Streaks of Development</A
|
|
></H2
|
|
><P
|
|
>There have been, at various times, varying network development efforts active
|
|
for Linux.</P
|
|
><P
|
|
> Fred continued development after
|
|
Net-2Debugged was made the official network implementation. This
|
|
development led to the Net-2e, which featured a much revised design of
|
|
the networking layer. Fred was working toward a standardized Device
|
|
Driver Interface (DDI), but the Net-2e work has ended now.</P
|
|
><P
|
|
> Yet another
|
|
implementation of TCP/IP networking came from Matthias
|
|
Urlichs, who wrote an ISDN driver for Linux and FreeBSD. For this
|
|
driver, he integrated some of the BSD networking code in the Linux
|
|
kernel. That project, too is no longer being worked on.</P
|
|
><P
|
|
>There has been a lot of rapid change in the Linux kernel networking
|
|
implementation, and change is still the watchword as development
|
|
continues. Sometimes this means that changes also have to occur in
|
|
other software, such as the network configuration tools. While this is
|
|
no longer as large a problem as it once was, you may still find that
|
|
upgrading your kernel to a later version means that you must upgrade
|
|
your network configuration tools, too. Fortunately, with the large
|
|
number of Linux distributions available today, this is a quite simple
|
|
task.</P
|
|
><P
|
|
>
|
|
The Net-4 network implementation is now quite mature and is in use at a
|
|
very large number of sites around the world. Much work has been done on
|
|
improving the performance of the Net-4 implementation, and it now competes
|
|
with the best implementations available for the same hardware platforms.
|
|
Linux is proliferating in the Internet Service Provider environment, and is
|
|
often used to build cheap and reliable World Wide Web servers, mail servers,
|
|
and news servers for these sorts of organizations. There is now sufficient
|
|
development interest in Linux that it is managing to keep abreast of
|
|
networking technology as it changes, and current releases of the Linux kernel
|
|
offer the next generation of the IP protocol, IPv6, as a standard offering.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN1372"
|
|
>1.4.2. Where to Get the Code</A
|
|
></H2
|
|
><P
|
|
>
|
|
|
|
|
|
It seems odd now to remember that in the early days of the Linux
|
|
network code development, the standard kernel required a huge patch
|
|
kit to add the networking support to it. Today, network development
|
|
occurs as part of the mainstream Linux kernel development process. The
|
|
latest stable Linux kernels can be found on <I
|
|
CLASS="EMPHASIS"
|
|
>ftp.kernel.org</I
|
|
> in
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/pub/linux/kernel/v2.x/</TT
|
|
>, where
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>x</I
|
|
> is an even number. The latest experimental Linux
|
|
kernels can be found on <I
|
|
CLASS="EMPHASIS"
|
|
>ftp.kernel.org</I
|
|
>
|
|
in <TT
|
|
CLASS="FILENAME"
|
|
>/pub/linux/kernel/v2.y/</TT
|
|
>, where
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>y</I
|
|
> is an odd number. There are Linux kernel source
|
|
mirrors all over the world. It is now hard to imagine Linux without
|
|
standard network support.</P
|
|
></DIV
|
|
></DIV
|
|
><H3
|
|
CLASS="FOOTNOTES"
|
|
>Notes</H3
|
|
><TABLE
|
|
BORDER="0"
|
|
CLASS="FOOTNOTES"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
WIDTH="5%"
|
|
><A
|
|
NAME="FTN.X-087-2-FNIT04"
|
|
HREF="x1312.html#X-087-2-FNIT04"
|
|
>[1]</A
|
|
></TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
WIDTH="95%"
|
|
><P
|
|
>Alan can be reached at
|
|
<SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>alan@lxorguk.ukuu.org.uk</SPAN
|
|
></P
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
WIDTH="5%"
|
|
><A
|
|
NAME="FTN.X-087-2-FNIT05"
|
|
HREF="x1312.html#X-087-2-FNIT05"
|
|
>[2]</A
|
|
></TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
WIDTH="95%"
|
|
><P
|
|
> NCP is the protocol on which Novell file
|
|
and print services are based.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x-087-2-intro.uucp.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x1392.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>UUCP Networks</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x-087-2-intro.html"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Maintaining Your System</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |