下一步 上一步 目录

4. 服务器端软件

在您继续安装服务器软件之前,最好先查看以下 HOWTO(按所列顺序)

特别是, Diskless-HOWTO 包含了对本项目非常有用的丰富信息。

所需软件大多已安装在标准的 Linux 发行版中,但可能缺少一些。通常找不到的那些(dhcpd、pxe 等)包含在 mpeg-box-project.tgz 文件中。

4.1 NFS 服务器安装。

我假设您已阅读 NFS-HOWTO 。如果您还没有,请帮自己一个忙,阅读一下。这些信息大多直接来自该 HOWTO。

在您开始设置 NFS 之前,请确保您已安装 nfs-utilsnfs-server 软件包。如果您没有安装它们,dhcpd-2.0pl2 源代码包含在 mpeg-box-project.tgz 文件中。

服务器的设置将分两个步骤完成:设置 NFS 的配置文件,然后启动 NFS 服务。

设置配置文件

您需要编辑三个主要的配置文件来设置 NFS 服务器:/etc/exports/etc/hosts.allow/etc/hosts.deny。严格来说,您只需要编辑 /etc/exports 即可使 NFS 工作,但您将留下一个极其不安全的设置。您可能还需要编辑您的启动脚本。

/etc/exports

此文件包含条目列表;每个条目都指示共享的卷以及共享方式。查看手册页(man exports)以获得文件中所有设置选项的完整描述,尽管这里的描述可能满足大多数人的需求。

/etc/exports 中的条目通常如下所示

directory machine1(option11,option12) machine2(option21,option22)

其中

directory

您要共享的目录。它可能是一个完整的卷,尽管不一定是。如果您共享一个目录,那么同一文件系统下该目录下的所有目录也将被共享。例如,它可能是:/exports

machine1 和 machine2

将有权访问该目录的客户端机器。机器可以通过其 IP 地址或 DNS 地址(例如,machine.company.com 或 192.168.0.8)列出。使用 IP 地址更可靠、更安全。

optionxx

每个机器的选项列表将描述该机器将具有的访问类型。重要选项是

对于我们的 MP3 播放器盒,我们只需要对包含 mp3 的目录进行只读访问。假设 MP3 播放器盒的 IP 将是 10.0.0.8,并且包含我们音乐文件的目录是 /exports/media/etc/exports 将如下所示

/exports/media     10.0.0.8(ro)

/etc/hosts.allow 和 /etc/hosts.deny

这两个文件指定网络上的哪些计算机可以使用您机器上的服务。文件的每一行都是一个条目,列出了服务和一组机器。当服务器收到来自机器的请求时,它会执行以下操作

总的来说,对于 NFS(以及大多数互联网服务),一个好主意是显式拒绝您不需要允许访问的主机的访问。

执行此操作的第一步是将以下条目添加到 /etc/hosts.deny

   portmap:ALL    

接下来,我们需要向 hosts.allow 添加一个条目,以授予我们想要允许访问的任何主机访问权限。(如果我们只将以上行留在 hosts.deny 中,那么没有人可以访问 NFS。)hosts.allow 中的条目遵循以下格式

    service: host [or network/netmask] , host [or network/netmask]           
此处,host 是潜在客户端的 IP 地址;在某些版本中可能可以使用主机的 DNS 名称,但这强烈不建议使用。

假设我们有上面的设置,我们只想允许访问 huh.com 和 arakis.dune.com,并假设这些机器的 IP 地址分别为 10.0.0.8 和 10.0.0.1。我们可以将以下条目添加到 /etc/hosts.allow

   portmap: 10.0.0.8, 10.0.0.1
对于最新的 nfs-utils 版本,我们还需要添加以下内容(同样,即使不支持这些条目也是无害的)

    lockd:  10.0.0.8, 10.0.0.1                                       
    rquotad: 10.0.0.8, 10.0.0.1                                      
    mountd:  10.0.0.8, 10.0.0.1                                       
    statd:  10.0.0.8, 10.0.0.1                                       

启动 NFS 服务器。

启动 NFS 服务器的 shell 脚本通常位于 /etc/init.d/etc/rc.d 中。根据您的 Linux 发行版,您需要运行:netconfigsetup (RedHat);YaSt2(SuSe);turbo-config (TurboLinux);或者您只能手动编辑 /etc/init.d/nfs-server 文件。如果您运行这些程序,请查找列出 NFSnfs-serveR 的选项并启动这些服务。

4.2 DHCPd 服务器安装。

DHCP(动态主机配置协议)是一种计算机查找其 IP 地址、网关设置、子网掩码以及更多信息的协议。对于系统管理员来说,这是一个非常好的卸载。您想要使用它的原因是,当 MP3 播放器盒启动时,如前所述,它没有硬盘驱动器,也没有软盘驱动器——因此它无法启动操作系统。但是对于支持 PXE 的网卡,会发生以下情况

如果没有 IP 地址,系统将无法获取 NBP,也无法获取 Linux 内核。

设置 DHCP 守护进程是一个两阶段的过程——安装二进制文件和设置 DHCP 的配置文件。

安装 DHCPd

我使用的 DHCP 版本来自 Internet Software Consortium,版本为 2.0。您可能已经安装了二进制文件,如果是这种情况——跳过此部分。

源代码是 1st Step - configuring server/01 - dhcpd/dhcp-2.0pl2,进入该目录并发出以下命令

./configure
make
make install

启动 DHCP 服务器的 shell 脚本通常位于 /etc/init.d/etc/rc.d 中。根据您的 Linux 发行版,您需要运行:netconfigsetup (RedHat);YaSt2(SuSe);turbo-config (TurboLinux);或者您只能手动编辑 /etc/init.d/dhcpd 文件。

设置 DHCPd 的配置文件

/etc/dhcpd.conf 文件最重要的部分是选项字段和主机字段。对于 ISC-dhcpd 的 v2.0,必须指定

option dhcp-class-identifier "PXEClient";
option vendor-encapsulated-options ff;
这将使 DHCP 服务器能够将带有 PXE 的网卡识别为有效。确保您也填写了主机部分。例如,对于名为 swallow.eoh 的 MP3 播放器盒,主机条目将如下所示
host swallow {
        hardware ethernet 00:90:27:c1:dc:db;
        fixed-address swallow.eoh;
}

这将允许 DHCP 服务器为具有该 MAC 地址(网卡在启动期间显示)的盒子分配与主机 swallow 关联的 IP 地址。主机如何与 10.0.0.8 关联——那是 DNS 服务器的工作(您希望已安装)。如果您没有 DNS,您可以使用平面主机解析,并将以下行添加到 /etc/hosts 中(将 00:90:27. .. 替换为您的 MAC 地址)

10.0.0.8       swallow.eoh    swallow

回到程序...

以下是我的 /etc/dhcpd.conf 文件

option domain-name "eoh";
option dhcp-class-identifier "PXEClient";
option vendor-encapsulated-options ff;

option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;

subnet 10.0.0.0 netmask 255.255.255.0 {
        range 10.0.0.20 10.0.0.40;
}
host swallow {
        hardware ethernet 00:90:27:c1:dc:db;
        fixed-address swallow.eoh;
}

您可以通过启动 Windows 工作站并将其 IP 地址更改为 自动获取 IP 地址 来检查您的 DHCP 服务器。

4.3 PXE 守护进程

PXE 是远程启动的标准。以下信息取自 1st Step - configuring server/02 - pxe/pxe-README

PXE 是 DHCP 的扩展,也是远程启动的方法。PXE 的规范可以在 ftp://download.intel.com/ial/wfm/pxespec.pdf 中找到。PXE 守护进程提供两种功能:proxyDHCPPXE Bootserver。PXE 守护进程可以设置为提供其中一种或两种功能。两种功能都是必需的。

proxyDHCP 与 DHCP 并行工作,并为启动客户端提供远程启动配置选项。ProxyDHCP 为 PXE 客户端提供以下信息:带有可选超时的远程启动提示、远程启动菜单和 PXE Bootserver 发现选项。

PXE Bootserver 是 PXE 守护进程提供的功能。PXE Bootserver 是为启动客户端提供特定启动环境的启动映像的功能。

PXE Bootserver 向 PXE 客户端提供请求的 NBP(网络启动程序)。PXE 客户端使用 proxyDHCP 提供给客户端的发现信息来定位 PXE Bootserver。PXE 客户端使用的发现方法(多播、广播或单播)和可用启动服务器类型的列表由 proxyDHCP 控制。PXE Bootserver 始终侦听所有三种类型的发现请求,并将响应所有有效请求。

安装 PXE 软件。

如果您有 RedHat 或 SuSE,pxe 可作为 RPM 使用 - 下载并安装它。不幸的是,您仍然需要源代码 - 您将必须重新编译 NBP(网络启动程序)。

下面提到的所有路径都指的是 mpeg-box-project.tgz 文件的内容,该文件包含下面列出的所有源文件和配置文件。

PXE 服务器的源文件位于

1st Step - configuring server/02 - pxe/pxe/pxe-linux/server.

如果您没有安装 PXE,只需运行:makemake install。文件将安装在 /usr/local 中。之后,您应该将 1st Step - configuring server/02 - pxe/pxe/pxe.init 文件复制到 /etc/rc.d/etc/init.d。之后进入您的 /etc/rc2.d 并将 /etc/init.d/pxe.init 文件链接到 S99pxe。命令是

ln -s ../init.d/pxe.init S99pxe
如果您不知道我在说什么,只需输入
pxe
这将启动 PXE 守护进程(但在您阅读下一节后执行此操作)

设置 PXE 守护进程。

为了使 PXE 守护进程完全正常工作,必须设置几个配置文件/目录。

完成所有这些步骤后,请确保您有一个正在运行且工作的 DHCP 守护进程(查看有关 DHCP 的部分以了解如何操作)。通过键入以下命令启动 pxe 守护进程

pxe
PXE 的调试信息通过管道传输到 /PxeServiceLog.txt。要关闭此调试功能,请编辑 /etc/pxe.conf - 搜索 DebugOutToFile

打开具有支持 PXE 的网卡的系统。您应该看到网卡从 DHCP 服务器获取 IP,然后显示一个菜单。如果是这种情况,您已成功配置服务器系统,现在是时候在下一节中配置 MP3 播放器盒的 Linux 内核和 initrd 文件了。


下一步 上一步 目录