本文介绍如何将多台运行 Red Hat Linux 的计算机组建成本地局域网(Local Area Network, LAN)。首先阐述一些基础知识,其中包括 TCP/IP (Transmission Control Protocol/Internet protocol 互联网传输控制协议)的概述,以及局域网中 IP 地址的分配。其次介绍局域网的硬件,以及如何在 Red Hat Linux 操作系统上使用 LinuxConf 进行局域网配置。最后,本文将引导你对局域网进行测试和故障排除。
Linux 在计算机网络通讯领域的应用越来越普遍。由于在各个 FTP 或 HTTP 站点上能够下载到所有源码,获得 Linux 操作系统是相对简单而便宜的。当然,Red Hat Linux 的最新版本也可以在计算机零售店购得,根据你要购买的是标准版本还是完全版本,价格从 $25 到 $50 不等。与免费的 FTP 和 HTTP 资源相比而言,从零售店购买 Linux 系统是完全值得的,因为这个投资里还包括了 Red Hat Linux 工程师至少一年的技术支持。如果你阅读 Red Hat Linux 手册之后仍有不能解决的安装或配置问题,这些技术支持将是很有帮助的。
本文将介绍如何组建含有 Red Hat Linux 6.2 计算机的本地局域网 (LAN)。 LAN 是一种能连接多种设备的通讯网络,并为这些设备提供互相通讯的方法。通常局域网的规模都比较小,只局限于一幢楼里或相邻的几幢楼。在局域网中并不需要 modem (调制解调器)和电话线,而是通过网线相连。计算机之间的距离必须足够近才能够保证网线正常工作。
局域网中的每台计算机都需要一个网卡(network interface card, NIC)来接入网线,并且需要分配唯一的主机名和 IP 地址(分配方法将在本文后部分阐述)。在分配之前必须掌握关于 TCP/IP 协议的基础知识。
TCP/IP 介绍
TCP/IP 是互联网和大多数局域网所采用的一组协议。在 TCP/IP 协议中,连接到网络上的每个主机(计算机或其它通讯设备)都有一个唯一的 IP 地址。IP 地址由四个字节(每个字节的取值范围为 0 到 255)组成,字节之间用小数点隔开。通过这样的 IP 地址,就可以区分局域网上的主机。例如一个主机名为 Morpheus 的计算机的 IP 地址可以是 192.168.7.127。为了不将同一 IP 地址分配给多个主机,应当注意避免使用那些为局域网保留的 IP 地址。保留 IP 地址通常以 192.168. 开头。
局域网的网络地址
在局域网上的所有计算机,其IP 地址的前三个字节都应该是相同的。比如说,若有一个包括 128 台主机的局域网,这些主机的 IP 地址就可以从 192.168.1. x 开始分配,其中 x 表示1到128中任意一个数字。可以用类似的方法,为同一公司内另外 128 台计算机组建一个相邻的局域网。当然在一个局域网中并不是仅能包含 128 台计算机,你还可以组建更大的局域网络。
网络 IP 地址被分为若干类,这些类型决定一个局域网的规模以及它可以拥有的 IP 地址个数。比如说,A 类的局域网的 IP 地址超过 16,000,000 个,而 B 类局域网所拥有的 IP 地址数大约只有 65,000 个。局域网的规模大小取决于保留地址范围、以及子网掩码(在文章后面有详细解释)。(参看表1)
表 1. 地址范围与局域网规模
地址范围 子网掩码 提供 局域网的规模
10.0.0.0 - 10.255.255.255 255.0.0.0 1 A 类网 16,777,216
172.16.0.0 - 172.31.255.255 255.255.0.0 16 B 类网 65,536
192.168.0.0 - 192.168.255.255 255.255.255.0 256 C 类网 256
网络地址和广播地址
组建局域网时还要注意,IP 地址范围的两个边界地址被保留为该局域网的网络地址和广播地址。应用程序可以使用 网络地址来表示整个本地网络。而 广播地址则可用来将同样的消息同时发送给网络上所有主机。
例如要使用的地址范围为 192.168.1.0 到 192.168.1.128,则第一个 IP 地址(192.168.1.0)被保留为网络地址,而最后一个地址(192.168.1.128)被保留成广播地址。因此,给这个局域网上的计算机分配 IP 地址时,只能在 192.168.1.1 到 192.168.1.127 之间选择:
网络地址: 192.168.1.0
主机地址范围: 192.168.1.1 到 192.168.1.127
广播地址: 192.168.1.128
子网掩码
局域网上的每个主机都有一个子网掩码。 子网掩码 由四个字节组成,它的值为 255 时表示 IP 地址中网络地址的部分,值为 0 时则识别 IP 地址中表示主机号的部分。比如说,子网掩码 255.255.255.0 可以用来决定主机所处的局域网。子网掩码最后的 0 则决定该主机在局域网中的位置。
域名
域名(或称为 网络名 )由唯一的名字和标准互联网后缀组成,这些后缀包括 .com,.org,.mil,.net 等。只要你的局域网有一个简单的拨号连接,并且不直接为其他的主机提供某些类型的服务,就可以随意给它命名。这个例子里组建的网络被认为是秘密私有的,因为它使用了在 192.168.1.x 范围内的 IP 地址。因此执行了上述操作之后,从互联网上依然无法根据所选择的域名与主机连接。你还需要一个“官方”正式域名才能达到此目的。为了获得正式域名,你可以到 InterNIC,Network Solutions 或 Register.com 上登记。在本文末尾的 资料部分列举了一些站点,可以找到获得官方域名的具体方法。
主机名
组建局域网时的另一个重要步骤,是为局域网上所有的计算机分配主机名。为了识别局域网中的主机,主机名必须是唯一的。同时,主机名也不能包含空格或标点符号。例如 Morpheus、Trinity、Tank、Oracle 以及 Dozer 这五个名字都是合法的主机名,你可以将它们分配给局域网上的五个主机。此外选择主机名时还有一些技巧:例如简短的主机名能够减少打字量、容易记忆的名字便于日后通讯等。
表 2 对上述内容做了概括。局域网上所有的主机都应当拥有同样的网络地址、广播地址、子网掩码和域名,因为这些地址标志出一个局域网的全部内容。局域网上所有的计算机都拥有一个主机名和 IP 地址作为识别它们的唯一标志。若某个局域网的网络地址是 192.168.1.0,广播地址 192.168.1.128。则其他主机的 IP 地址就在 192.168.1.1 和 192.168.1.127 之间。
Table 2. 拥有少于 127 台主机的局域网的 IP 地址分配
IP 地址 例子 同/异
网络地址 192.168.1.0 所有主机都相同
域名
www.yourcompanyname.com 所有主机都相同
广播地址 192.168.1.128 所有主机都相同
子网掩码 255.255.255.0 所有主机都相同
主机名 任意合法的名字 每个主机都不同
主机地址 192.168.1. x 每个主机都不同
回页首
分配 IP 地址
在局域网中分配 IP 地址的方法有两种。你可以为局域网上所有主机都手工分配一个 静态 IP 地址;也可以使用一个特殊服务器来动态分配,即当一个主机登录到网络上时,服务器就自动为该主机分配一个 动态IP 地址。
静态 IP 地址分配
静态 IP 地址分配意味着为局域网上的每台计算机都手工分配唯一的 IP 地址。同一局域网中所有主机 IP 地址的前三个字节都相同,但最后一个字节却是唯一的。并且,每个计算机都必须分配一个唯一的主机名。局域网上的每个主机将拥有同样的网络地址(192.168.1.0),广播地址(192.168.1.128),子网掩码(255.255.255.0)和域名(yourcompanyname.com)。最好在分配时,记录下局域网上所有主机的主机名和 IP 地址,以便日后扩展网络时参考。
动态 IP 地址分配
IP 地址的动态分配是通过一个叫做 DHCP (Dynamic Host Configuration Program 动态主机配置程序)的服务器或主机来完成的,当计算机登录到局域网上时,DHCP 服务器就会自动为它分配一个唯一的 IP 地址。名为 BootP 的程序也能够提供类似的动态分配服务。DHCP/BootP 服务可以是程序或设备,但必须在拥有唯一 IP 地址的主机上运行。路由器可以看作一个 DHCP 设备的例子,它的一端充当以太网集线器(Ethernet hub,一种允许多个主机通过以太网插口和指定端口连接的通讯设备),另一端则可以连接到互联网上。另外,DHCP 服务器也需要分配网络和广播地址。在动态分配 IP 地址的网络系统里,不需要手工分配主机名和域名。
回页首
局域网中的硬件
如果缺少将计算机连接到一起的硬件,分配主机名和 IP 地址也就毫无用处。目前有若干种不同类型的网络硬件体系,比如以太网(Ethernet)、令牌环(Token Ring)、光纤分布式数据接口(FDDI)、令牌总线(Token Bus)等。由于以太网是应用最广泛的硬件体系,这里将主要介绍它所需要的硬件。你需要下列硬件:为每台计算机准备一块以太网卡(Ethernet Network Interface Card,NIC),一个端口数至少和待连接计算机一样多的以太网兼容集线器,以及将网卡与集线器相连的网线(或 10BaseT 的电缆)。在计算机出售商那里可以购得它们,而且也相对便宜。
选择硬件时还要注意确认它们与 Red Hat Linux 操作系统兼容。关于这些硬/软件兼容性的信息通常可以在产品包装盒上的 Requirements (要求)部分找到。当然,你也可以直接向出售计算机的人询问硬/软件要求。通常情况下,批量购买网卡要比单独购买便宜。
在选择以太网集线器的时候,必须确认它的端口数至少应和局域网内计算机数目相等。为了便于日后扩展局域网,最好选择端口有盈余的集线器。
如果你计划让局域网中所有的计算机通过本地 ISP(Internet Service Provider,互联网提供商)连入互联网,那么路由器与以太网的结合是最理想的选择。局域网上的任何一台计算机,只要配置好路由器/以太网信息便可。假设局域网上所有的计算机都运行 Red Hat Linux 操作系统,可以使用 LinuxConf 之类的 Linux 工具来配置路由器。
最后,选择网线要考虑可扩展性。通常情况下以太网使用 10BaseT 电缆,并在它的两端接上 RJ45 接口。购买网线时最好选择比需要长度多 1 或 2 倍,这样可以应付将来局域网拓扑结构(topology structure)的改变。
安装硬件
假如已将上面这些硬件准备完毕,下一步就是安装这些硬件。首先关掉所有将要连到局域网上的计算机。然后拆开这些计算机,遵照生产商的说明书在主板的正确插槽上插入网卡。
为以太网集线器找一个方便但安全的地方,最好是局域网所在建筑物的中心位置或是放置着所有待连接计算机的房间。然后用网线将每台计算机的网卡接到以太网集线器上,确保所有网线避开那些人们会时常经过的地方。在启动这些连接到局域网上的计算机之前,再次确认已执行完硬件提供商所说明的安装操作。
如果你使用路由器或者 DHCP 服务器,来将局域网连接到互联网,就需要根据用户手册的要求进行相应配置。假如现在所有计算机的网卡都已经和集线器某指定端口相连,就可以开始在 Red Hat Linux 操作系统上使用软件进行配置了。
回页首
配置局域网
如何配置局域网上的计算机,取决于 Red Hat 操作系统是在安装局域网硬件之前或是之后安装的。如果先安装局域网硬件,那么安装 Red Hat 系统的时候,安装程序就会提示进行网络配置。如果先安装 Red Hat 操作系统,则名为“Kudzu" 的程序会检测到新安装的以太网卡,并自动启动配置程序。"Kudzu" 配置步骤如下:
当启动程序显示 "Welcome to Kudzu." 对话框时,按 Enter 键便进入配置过程。
接着,在另外一个对话框中选择所安装网卡的商标名,并按 Enter 键继续。
一段短暂的延迟之后,你将会看到 "Would You Like to Set up Networking" 的消息。
用 Tab 键选择 NO 选项,并按 Enter 键,就会跳过具体的网络配置工作。(本文后面将描述进入 Linux 系统后,如何使用 LinuxConf 设置网络。)
这时启动程序会正常继续,接着用 root 帐号登录到计算机上。(root 帐号在 Red Hat 系统安装的时候创建)
使用 LinuxConf 来配置以太网卡
可以使用名为 LinuxConf 的应用程序为局域网上的每个计算机配置或重新配置网卡。在 KDE 终端窗口的命令行或 GNOME 桌面环境下输入 linuxconf 就能够启动 LinuxConf 程序。另一个启动该程序的方法则是在主菜单按钮上选择 System,然后再选 LinuxConf。当 LinuxConf 程序启动后,可以根据下列步骤来配置网卡:
在 LinuxConf 的树结构中,选择 Config, Networking, Client Tasks, Basic Host Information。
在 Host name 域中输入你为此计算机分配的合法完整的主机名。
然后点击 Adaptor 1,将会显示你的网卡设置。
检查 Enabled 按钮是否被选中,从而确认网卡被正常连接。
你可以选择 Manual 选项,并继续执行 第 6 步 来手工分配 IP 地址。如果该局域网上有 DHCP 或 BootP 服务器,就可以相应地选择 DHCP 或 BootP 选项。局域网将为此计算机动态分配地址,可以直接跳转到 第 12 步。
在 Primary name + domain 选项中,输入此台计算机的主机名以及域名,主机名和域名之间用句点隔开。
在 Aliases 选项中,可以为这台计算机输入其他的主机别名。若有多个别名,则用空格隔开。
在 IP Address 域里填入为此台计算机分配的 IP 地址(例如 192.168.1.1)。
在 Netmask 处输入子网掩码 255.255.255.0。
在 net device 处,填入 eth0。其中,eth0 表示这台计算机里面的第一块网卡。
该网卡的 driver 或 Kernel Module 选项会由 LinuxConf 自动填上。
点击 Accept 按钮来激活所有的变化。
重复步骤 1-12,为局域网上所有的计算机配置网卡,同时必须核实输入了正确的主机名以及相应 IP 地址。
Nameserver 规范
组建局域网的另一重要步骤是配置 Nameserver 规范。当计算机的名字给出之后,linux 根据这个规范来查找该计算机的 IP 地址。Red Hat Linux 系统有两种方法来将主机名映射成 IP 地址。一种是通过域名服务器(Domain Name Services,DNS),另一种则是通过 /etc/hosts 文件。/etc 目录是计算机中大部分系统配置文件存放的地方。输入 cd /etc ,将当前目录切换到 /etc 就可以找到 hosts 文件。然后可以根据下列步骤来将主机名映射成 IP 地址:
在 LinuxConf 的左栏里,打开 Nameserver specification (DNS)。
鼠标左键单击 DNS Usage 选项。(这个按钮应该被按下去。)
在 Serch Domain 1 域旁边输入 localdomain。
如果你知道缺省或其次 nameserver 的 IP 地址(这些信息可以在网卡上找到),可以在 IP of nameserver 1 和 IP of nameserver 2 域里分别输入相应的地址。否则,你可以不填这两项。
鼠标左键单击 Accept 按钮,从而激活所有的变化。
Hostname search path
给出了主机名之后,Red Hat Linux 系统可以利用 hostname search path 来搜索其对应的 IP 地址。根据下列步骤配置 hostname search path,就可以让本地文件 (/etc/hosts) 来查找本地主机名,并让 ISP 域名服务器提供网络域名服务:
在 LinuxConf 的左栏,打开 Routing and Gateways 项。
选择 Host Name Search path 选项。
在 LinuxConf 的右栏中,选择 Multiple IPs for One Host 选项。
在 LinuxConf 的右栏中选择 hosts, dns 选项。
鼠标左键单击 Accept 按钮来激活所有的变化。
设置 /etc/hosts
Red Hat Linux 操作系统需要一些方法来根据局域网中每台计算机的主机名来寻找相应 IP 地址。前面曾提到过域名服务器(DNS)是一种将主机名映射到 IP 地址的方法。在 DNS 配置时,主机名和 IP 地址应该已经被添加到一个已存在的 nameserver 上。可以咨询你的本地 ISP 提供商,来获得这些 IP 地址。另一方面,如果小规模局域网中有一个集中的 nameserver,则关于该局域网商每个计算机都有一个配置文件,记录该计算机的主机名,IP 地址和其他的别名。这个配置过程包括编辑 /etc/host 中的一个文本文件。你必须在局域网的每台计算机上,执行下列步骤配置 /etc/hosts 文件:
在 LinuxConf 的左栏,打开 Misc 项。
打开 Information about hosts 项。你可以看到一个记录着计算机 IP 地址,主机名和其他别名的条目。
鼠标左键单击 Add 按钮,就可以添加关于局域网上的其他主机信息的条目。
在出现的对话框中,为待添加的主机输入它的机器名+域名(例如 trinity.yourcompanyname.com)。
在 Alias 选项后为该主机输入一个和多个别名(例如 tank)。
在 IP number 项后面,输入你为这台主机所分配的 IP 地址。
鼠标左键单击 Accept 按钮来激活上面所做的变化。
重复步骤 1-7,为局域网上所有的计算机进行配置。
当你为所有的计算机执行了以上的步骤 1-7 之后,LinuxConf 中的 /etc/hosts 选项卡将列出局域网中所有计算机的信息。其中,本地主机名被显示成 localhost。最后你可以按照下列步骤,保存所做的修改配置并退出 LinuxConf 程序:
确信所有的主机名和 IP 地址都已经输入之后,鼠标左键单击 /etc/host 栏中的 Quit 按钮。
若用鼠标左键单击 LinuxConf 界面左下角的 Quit 按钮,退出 LinuxConf 程序。
若用鼠标左键单击 Activate the Changes 按钮则能够保存所做的修改并退出 LinuxConf。
重复为所有主机配置
现在你已经配置好局域网中的一台计算机,还需要重复从 "配置局域网" 开始所说的步骤,为所有计算机进行配置。如果希望用一个较节省时间的方法来配置所有计算机,可以直接用拷贝(copy)的方法来覆盖这些计算机上原来的 /etc/hosts 文件。
你可以将 /etc/hosts 文件拷贝到软盘或光盘(如果你拥有一个光盘刻录机)上,然后再从软盘或光盘上拷贝到待配置计算机的 /etc 目录下。在那台利用 LinuxConf 程序配置好的计算机上执行拷贝命令。只要在命令行上输入 cp /etc/hosts /mnt/floppy ,就可以将配置好的 /etc/hosts 文件拷贝到软盘上。
接着,将软盘插入局域网上其他计算机的软驱中,并在终端窗口上输入 cp /mnt/floppy hosts /etc/host 。此命令将 hosts 文件拷贝到局域网上这些计算机的 /etc 目录下。如果你使用光盘进行拷贝,只要将上述命令中的 /mnt/floppy / 替换成 /mnt/cdrom/ 便可。正如你所注意到的,/etc/hosts 文件其实是一个文本文件,分三栏列出了域名、主机名和 IP 地址。最后,确认本地计算机和它相应的 IP 地址在这个列表中出现了两次,而局域网上的其他计算机信息只列出一次。
回页首
测试局域网
测试局域网的第一步是,确认局域网中的计算机在启动之后能否与其他主机通讯。可以先在每台计算机上输入 reboot 命令。在 Linux 重新启动过程中,要仔细观看屏幕上滚动的测试信息。注意寻找下列信息:
Setting hostname: <hostname you assigned to this computer>
Bringing up Interface lo: <OK> or <FAILED>
Bringing up interface eth0 <OK> or <FAILED>
Setting hostname 这一项将显示你分配给这台计算机的主机名。而 lo 和 eth0 项的后面若显示 [OK],就表示检测成功。
可以使用 ping 命令来判断计算机能否与其他计算机通讯。在当前主机上打开一个终端窗口,并输入命令 ping <IP address> 或 ping <hostname> 。其中,<IP address> 或 <hostname> 是你分配给这个计算机的 IP 地址和主机名。需要注意的是,为了让 ping 命令正确工作,就必须输入 IP 地址或者主机名作为参数。
如果你已经正确配置了 DNS nameserver 规范,那么 ping <hostname> 命令就会将 hostname 这个主机名映射成相应的 IP 地址。否则,只好在 ping 命令后面给出确切 IP 地址来测试,也就意味着现在你要拥有该局域网上所有计算机的 IP 地址列表。ping 命令通过局域网将消息发送到目的 IP 地址所表示的计算机。如果这台计算机能够与其他主机”交谈“或通讯,就可以看到一些消息或包(包括信息的字节数)。这些包应该象下面这样:
64 bytes from 192.168.1.x : icmp_seq=0 ttl=255 time=0.8ms
64 bytes from 192.168.1.x : icmp_seq=0 ttl=255 time=0.8ms
64 bytes from 192.168.1.x : icmp_seq=0 ttl=255 time=0.8ms
注意到 ”192.168.1" 代表的是该主机所属于的网络,而 x 则表示试图要 ping 的主机号码(例如 Oracle),这两部分组成了一个完整的 IP 地址。ping 命令不会自动停止,你可以按 Ctrl+C 来终止它,就可以看到这次 ping 测试的基本信息:
--- hostname.yourcompanyname.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.4/0.8 ms
如果 packet loss 信息为 0%,就表示测试成功了。但倘若 ping 命令的结果看起来象下面这样,局域网可能还存在一些问题:
From hostname.comanyname.com (192.168.1.1): Destination Host Unreachable
这意味着两个计算机根本不能够通讯。出现不能通讯的情况时,可以参考下一部分的 局域网故障排除 。否则,若能成功地 ping 到局域网中其他所有机器,就说明局域网的基本通讯功能是完好的。此时局域网已基本组建好,你可以随心所欲地安装其他网络设备。