TCP/IP 地址和参数指定 — 动态主机配置协议(DHCP) “传输控制协议/网际协议”(TCP/IP)使已配置地址的机器之间能够进行通信。网络管理员必须面对的部分负担是为网络上的所有机器指定地址和分发参数。通常地,在此过程中管理员给每个用户规定配置,允许用户配置自己的机器。然而,错误配置和误解会生成管理员必须个别处理的服务调用。“动态主机配置协议”(DHCP)提供网络管理员一种方式来从此配置问题中除去最终用户并将网络配置保留在一个集中位置。 DHCP 是一个应用层协议,它允许网络上的客户机从服务器获取 IP 地址和其它配置参数。它通过在客户机上的守护程序和服务器上的另一守护程序之间交换包来获取信息。现在大多数操作系统在它们的基础包中都提供一个 DHCP 客户机。 为了获取一个地址,DHCP 客户机守护程序(dhcpcd)会广播一条 DHCP 发现消息,此消息由服务器接收并处理。(可以在网络上配置多个服务器用于冗余。)如果一个自由地址对该客户机来说是可用的,就会创建一条 DHCP 提供消息,此消息包含适用于那个客户机的 IP 地址和其它选项。客户机接收该服务器的 DHCP 提供并存储它,同时等待其它提供。当客户机选择最佳提供时,它会广播一个 DHCP 请求以指定它想要哪个服务器提供。 所有已配置的 DHCP 服务器都接收请求。每一个都检查其是否是被请求的服务器。如果不是,服务器会释放指定给那个客户机的地址。被请求的服务器把地址标记为已指定的并返回一条 DHCP 确认,此时,事务结束。在服务器指定的时间周期(租用)内客户机拥有一个地址。 当租用时间已使用一半时,客户机会发送给服务器一个更新数据包来延长租用时间。如果服务器愿意更新,它会发送一个 DHCP 确认。如果客户机没有从拥有其当前地址的服务器处得到响应,例如,服务器已经从一个网络移动到另一个,它会广播一个 DHCP 重新绑定包以到达服务器。如果客户机在全部租用时间结束后没有更新其地址,接口会关闭且此进程再次开始。此循环防止使一个网络上的多台客户机指定相同的地址。 DHCP 服务器基于密钥来分配地址。四个公共密钥是网络、类、供应商和客户机标识。服务器使用这些密钥来获取一个地址和一组配置选项来返回到客户机。 网络 标识包来自那个网络段。网络密钥允许服务器检查其地址数据库并根据网络段分配地址。 类 是完全由客户机配置的。它能指定地址和选项。此密钥能被用来表示网络中的机器功能或描述机器为了管理目的是如何进行分组的。例如,网络管理员可能想创建一个包含用于 NetBIOS 客户机的选项的 netbios 类或一个代表需要访问指定打印机的“财务”部门机器的 accounting 类。 供应商 通过它的硬件/软件平台(例如,Windows 95 客户机或 OS/2 Warp 客户机)来帮助标识客户机。 客户机标识 通过机器主机名或它的介质访问控制(MAC)层地址来识别客户机。客户机标识在 dhcpcd 守护程序的配置文件中指定。此外,服务器能够使用客户机标识来把选项传递给一台指定的客户机或阻止一台特殊的客户机接收任何参数。 这些密钥能由配置个别或结合起来使用。如果客户机提供了多个密钥且能够分配多个地址,仅有一个能选择,且选项集是从第一个选择的密钥中派生出来的。有关密钥和地址选择的更多详细信息,请参阅配置 DHCP。 中继代理是必需的,这样来自客户机的初始广播才能离开本地网络。此代理称为 BOOTP 中继代理。中继代理充当 DHCP 和 BOOTP 包的转发代理。 DHCP 服务器 以 AIX 4.3.1 开始,DHCP 服务器已经被分段成三个主要的块:数据库、协议引擎和服务线程集合,每块都有其各自的配置信息。 DHCP 数据库 db_file.dhcpo 数据库用来跟踪客户机和地址并用于访问控制(例如,允许一些网络中的某些客户机而不允许其它,或在一个特殊网络上禁用 BOOTP 客户机)。选项也存储在数据库中用于检索和递交给客户机。数据库作为一个动态可受载的对象来实现,它允许简易的服务器升级和维护。 通过使用配置文件中的信息,数据库为一致性做好预先准备和验证。一组检查点文件会处理数据库的更新并减少写到主存储文件的开销。数据库也包含地址和选项池,但这些是静态的并将在配置 DHCP中讨论。 主存储文件和它的备份都是能够编辑的平面 ASCII 文件。用于数据库主存储文件的格式是: DF01 “CLIENT ID”“0.0.0.0”State LeaseTimeStart LeaseTimeDuration LeaseTimeEnd “Server IP Address”“Class ID”“Vendor ID”“Hostname”“Domain Name” “CLIENT ID”“0.0.0.0”State LeaseTimeStart LeaseTimeDuration LeaseTimeEnd “Server IP Address”“Class ID”“Vendor ID”“Host Name”“Domain Name” ... 第一行是文件:DF01c 的版本标识符。接下来的行是客户机记录定义行。服务器从第二行开始读取直到文件结尾。(引号中的参数必须用引号括起。) “CLIENT ID” 客户机用来向服务器表示自己的标识。 “0.0.0.0” 是当前分配给 DHCP 服务器的 IP 地址。如果没有地址分配,它就是“0.0.0.0”。 State 客户机当前状态。DHCP 协议引擎包含允许的设置,状态被保持在 DHCP 数据库中。State 旁的数字代表它的值。状态可能是: (1) FREE 代表可以使用的地址。通常,客户机没有此状态,除非它们没有分配地址。dadmin 和来自 lssrc 的输出把此状态报告为“Free”。 (2) BOUND 表示客户机和地址连接在一起且该地址已经分配给此客户机一段时间了。dadmin 和从 lssrc 的输出把此状态报告为“Leased”。 (3) EXPIRED 表示客户机和地址只是为了信息的用途连接在一起(与释放地址方式相似)。然而,过期状态代表了那些使其租约过期的客户机。过期地址是可用的并在所有自由地址不可用之后而释放地址再分配之前进行重新分配。dadmin 和来自 lssrc 的输出把此状态报告为“Expired”。 (4) RELEASED 表示客户机和地址只是由于信息的用途而连接在一起。DHCP 协议建议 DHCP 服务器保留关于它所服务的客户机的信息以便将来参考(主要是为了尝试把相同发地址分给那些过去已经分配了该地址的客户机)。此状态表示客户机已经释放了地址。如果没有其它地址可用,此地址可为其它客户机使用。dadmin 和来自 lssrc 的输出把此状态报告为“Released”。 (5) RESERVED 表示客户机和地址连接在一起,但连接是松散的。客户机已经发布一条 DHCP 发现消息并且 DHCP 服务器已响应,但客户机还没有对该地址作出 DHCP 请求的回应。dadmin 和来自 lssrc 的输出把此状态报告为“Reserved”。 (6) BAD 代表一个在网络中使用的但是还没有由 DHCP 服务器分发的地址。此状态也代表客户机已拒绝的地址。此状态不适用于客户机。dadmin 和来自 lssrc 的输出把此状态分别报告为“Used”和“Bad”。 LeaseTimeStart 是当前租用开始的时间(从 1970 年 1 月 1 日开始,以秒计)。 LeaseTimeDuration 代表租用的持续时间(以秒记)。 LeaseTimeEnd 使用与 LeaseTimeStart 相同的格式,但它表示租用的结束。一些配置选项对租用的开始和结束使用不同的值并且这些值可以由配置文件选项覆盖。请参阅db_file 数据库的 DHCP 服务器文件语法。 “Server IP Address” 是拥有此记录的 DHCP 服务器的 IP 地址。 “Class ID” “Vendor ID” “Host Name” “Domain Name” 服务器使用值来决定将哪个选项发送给服务器(当做引用字符串存储)。这些参数提高了性能,因为当 DHCP 服务器启动时可以为这些客户机预生成选项列表。 检查点文件 没有指定用于检查点文件的语法。如果服务器崩溃或者不得不关机且不能正常关闭数据库,服务器可以处理检查点和备份文件来重建一个有效的数据库。在服务器崩溃时被写入检查点文件的客户机丢失。缺省文件是: /etc/db_file.cr 正常的数据库操作 /etc/db_file.crbk 数据库备份 /etc/db_file.chkpt 和 /etc/db_file.chkpt2 旋转检查点文件 用于 AIX 4.3.1 及以后版本的 DHCP 服务器运用线程。为了保持高吞吐量,数据库操作(包含保存操作)是节省线程的。当请求保存时,现有的检查点文件转到下一个检查点文件,现有的数据库文件复制到备份文件,并且创建新的保存文件。然后每个客户机记录被记录到日志并切换一个位来指示客户机应该使用新检查点文件来记录日志。当所有的客户机记录都记录完,关闭保存并删除备份的和旧的检查点文件。客户机仍然可以进行处理,且取决于客户机记录是否保存,数据库变化被加入一个新保存文件或一个新检查点文件。 DHCP 协议引擎 对 AIX 4.3.1 及其后继版本来说,DHCP 协议引擎已经更新为 RFC 2131,但仍然与 RFC 1541 兼容。(服务器也能处理在 RFC 2132 中定义的选项。)协议引擎使用数据库来确定将什么信息返回到客户机。 地址池的配置有些影响每个机器状态的配置选项。例如,DHCP 服务器在分发地址之前先 ping 这些地址。服务器等待响应时间的数量现在对每个地址池来说是可配置的。 DHCP 线程操作 DHCP 服务器的最后一块实际上是一组用来保持事件运行的操作。由于 DHCP 服务器是线程的,这些操作实际上设置为线程用于偶尔做一些确保所有事件在一起的工作。 第一个线程,main 线程,处理 SRC 请求(例如 startsrc、stopsrc、lssrc、traceson 和 refresh)。此线程还协调所有影响所有线程的操作并处理信号。例如, · SIGHUP (-1) 引起在配置文件中所有数据库的刷新。 · SIGTERM (-15) 将会导致服务器轻松停止。 下一线程,dadmin 线程,是 dadmin 客户机程序和 DHCP 服务器之间的接口。dadmin 工具能用来获取状态以及修改数据库来避免手工编辑数据库文件。如果一个状态请求正在运行,DHCP 服务器的早先版本防止任何客户机获取地址。随着 dadmin 和 src 线程的增加,服务器可以处理服务请求并仍然处理客户机请求。 下个线程是 garbage 线程,它运行定时器用于周期性清除数据库、保存数据库、清除没有地址的客户机,并除去处在保留状态太长时间的保留地址。所有这些定时器都是可配置的(请参阅配置 DHCP)。其它的线程都是包处理器。这些线程的数量是可配置的;缺省值是 10。每个线程都可以处理来自 DHCP 客户机的请求。包处理器要求的数目在某种程度上依赖于负载和机器。如果机器用于 DHCP 以外的其他服务,那么启动 500 个线程是不明智的。 规划 DHCP 为了使用此协议,网络管理员需要建立一个 DHCP 服务器并在没有 DHCP 服务器的链路上配置 BOOTP 中继代理。提前规划可以减少网络上的 DHCP 负载。例如,可以配置一台服务器处理所有客户机,但是所有包必须通过它传递。如果在两个大网络之间有一个单独的路由器,那么最好在网络上放置两个服务器,一个链路上放一个。 另一个要考虑的方面是 DHCP 表示一个流量模式。例如,如果设置的缺省租用时间少于两天且要在周末关闭机器电源,那么周一的早上就会变成一个高 DHCP 流量时期。尽管 DHCP 流量不会引起网络的庞大开销,但当决定在网络的何处放置 DHCP 服务器和使用多少时必须考虑这一点。 在使 DHCP 能够获取网络上的客户机之后,客户机不要求输入任何内容。DHCP 客户机,dhcpcd,读取 dhcpcd.ini 文件,此文件包含关于记录和启动运行时所需的其它参数的信息。在安装之后,决定将哪种方法用于 TCP/IP 配置:最小配置或 DHCP。如果选择了 DHCP,就选择一个接口并指定一些可选的参数。为了选择接口,选择关键字 any,它告知 dhcpcd 去查找第一个工作的接口并使用它。此方法最小化了在客户机那边的输入量。 配置 DHCP 缺省情况下,通过读取 /etc/dhcpsd.cnf 文件来配置 DHCP 服务器,此文件指定了选项和地址的初始数据库。服务器在 /etc/rc.tcpip 文件中启动。它也能从基于 Web 的系统管理器、从 SMIT 或通过 SRC 命令启动。通过运行基于 Web 的系统管理器、“系统管理接口工具”(SMIT)或编辑平面 ASCII 文件可以配置 DHCP 客户机。 配置 DHCP 服务器通常是在网络中使用 DHCP 最难的部分。首先,决定想让 DHCP 客户机处于什么网络上。网络中的每个子网都代表一个地址池,DHCP 服务器必须把这些地址添加进它的数据库。例如: database db_file {
subnet 9.3.149.0 255.255.255.0 { option 3 9.3.149.1 # The default gateway clients on this network should use option 6 9.3.149.2 # The nameserver clients on this network should use } ... options or other containers added later } 上面的示例显示了一个子网,9.3.149.0,带有子网掩码 255.255.255.0。在此子网中的所有地址,9.3.149.1 到 9.3.149.254,都在该池中。可选地,可以在行的结尾指定一个范围或者在子网容器中包含范围或排除语句。关于通用配置方法和定义的相关信息,请参阅DHCP 服务器文件已知选项。 带有 db_file 的数据库子句表示对于处理配置文件的此部分要使用哪个数据库方法。注释以一个 #(磅字符)开头。从初始的 # 开始到行结尾的文本将被 DHCP 服务器忽略。每个 option 行都由服务器使用来告知客户机该做什么。DHCP 服务器文件已知选项描述当前已知的受支持的选项。有关服务器不了解的指定选项的方法,请参阅常规服务器操作 DHCP 服务器文件语法。 如果服务器不知道如何分析一个选项,它就使用缺省方法发送选项至客户机。这也允许 DHCP 服务器发送站点特定选项,它们不是 RFC 定义的,但是可以被某些客户机或客户机配置所使用。 配置文件 配置文件有一个地址段和一个选项定义段。这些段用容器来保留选项、修饰符和潜在的其它容器。 容器(主要是分组选项的一个方法)使用一个标识符来把客户机分类成组。容器类型是子网、类、供应商和客户机。当前不存在一个通用的用户可定义的容器。标识符唯一地定义客户机,这样如果客户机在两个子网间移动时也能对其进行跟踪。不止一种容器类型能用来定义客户机访问。 选项是返回到客户机的标识符,例如缺省网关和 DNS 地址。 修饰符是修改容器某些方面,例如租用时间缺省值的单独语句。 容器 当 DHCP 服务器接收到一个请求时,包被分析并且标识键决定抽取哪个容器、选项和地址。 前面的示例显示了子网容器。它的标识键是客户机在网络中的位置。如果客户机来自那个网络,那么它就进入了那个容器。 容器的每个类型使用一个不同的选项来识别客户机: · 子网容器使用 giaddr 字段或接收接口的接口地址来确定客户机来自哪个子网。 · 类容器使用在选项 77(用户站点类标识符)中的值。 · 供应商使用在选项 60(供应商类标识符)中的值。 · 客户机容器对 DHCP 客户机使用选项 61(客户机标识符),对 BOOTP 客户机使用 BOOTP 包中的 chaddr 字段。 除了子网,每个容器允许匹配其值的规范,包含正则表达式匹配。 此外还存在一个隐式容器,全局容器。选项和修饰符置于全局容器中,除非被覆盖或拒绝。大部分容器能放置于其它暗示可见范围的容器中。容器可能有或可能没有与它们联系的地址范围。子网,根据它们的性质,有与其相联系的范围。 容器和子容器的基本规则是: · 所有容器在全局级别上有效。 · 子网不能置于其它容器中。 · 受限制的容器中不能有其相同类型的常规容器。(例如,一个带有仅允许一个 Accounting 类选项的容器不能包含带有允许所有以子母“a”开头的类的选项的容器。这是非法的。) · 受限制的客户机容器不能有子容器。 给出以上规则,就能生成一个容器的层次结构,这些容器把选项分段成用于特殊客户机或客户机集的组。 如果一个客户机匹配多个容器,将如何分发选项和地址? DHCP 服务器接收消息,将请求发送至数据库(本例中为 db_file),并且生成一个容器列表。列表以深度和优先级的顺序呈现。优先级在容器中定义为一个隐式层次结构。严格的容器比常规的容器有更高的优先级。客户机、类、供应商和最终子网以那种顺序排序,且在容器类型内部按深度排序。这就生成了一个从最特定到最不特定排序的列表。例如: Subnet 1 --Class 1 --Client 1 Subnet 2 --Class 1 ----Vendor 1 ----Client 1 --Client 1 示例显示了两个子网,Subnet 1 和 Subnet 2。有一个类名 Class 1,一个供应商名 Vendor 1 和一个客户机名 Client 1。Class 1 和 Client 1 在多个地方进行了定义。因为它们在不同的容器中,它们的名称可以相同但在其内部的值可以不同。如果 Client 1 从选项列表中已指定 Class 1 的 Subnet 1 发送消息到 DHCP 服务器,则 DHCP 服务器将会生成以下容器路径: Subnet 1,Class 1,Client 1 最特定的容器列在最后。为了获取一个地址,按逆向层次结构检查列表以查找第一个可用的地址。然后,按正向层次结构检查列表以获取选项。选项将覆盖先前的值,除非容器中出现 deny 选项。同样,因为 Class 1 和 Client 1 在 Subnet 1中,所以它们根据容器优先级排序。如果相同的客户机在 Subnet 2 中并发送相同的消息,那么生成的容器列表是: Subnet 2,Class 1,Client 1(在 Subnet 2 级别),Client 1(在 Class 1 级别) Subnet 2 第一个列出,然后是 Class 1,然后是 Client 1 在 Subnet 2 级别(因为此客户机语句在层次结构中仅低一个级别)。层次结构表示匹配第一个客户机语句的客户机没有匹配在 Subnet 2 中的 Class 1 的 Client 1 客户机特定。 在层次结构中根据深度选择的优先级不能被容器自己的优先级所取代。例如,如果相同的客户机发布了相同的消息并指定了供应商标识符,则容器列表是: Subnet 2,Class 1,Vendor 1,Client 1(在 Subnet 2 级别),Client 1(在 Class 1 级别) 容器优先级增进了搜索性能,因为它遵循一个总的概念,即客户机容器是定义一个或多个客户机的最特定的方法。类容器保留比客户机容器更不特定的地址;供应商则还要不特定;子网是最不特定的。 地址和地址范围 任何容器类型都可以有相联系的地址范围;子网必须有相联系的地址范围。在容器中的每个范围必须是容器范围的子集且不能与其它容器的范围相重叠。例如,如果一个类在子网中定义且该类有一个范围,那么此范围必须是子网范围的子集。同样,在那个类容器中的范围不能与在其级别上的任何其它范围相重叠。 范围能够在容器行中表示并能被范围和排除语句修改以允许一个与容器相联系的不相交的地址集。如果有子网的前十个地址和次十个地址可用,该子网就能根据子网子句中的范围来指定这些地址以减少内存使用和与不在指定范围内的其它客户机地址冲突的可能性。 一旦选择了一个地址,在列表中任何包含地址范围的后继容器将与其子容器一起从列表中除去。如果不是从容器内使用地址,则在已除去的容器中的网络特定选项是无效的。 选项 在列表经过挑选以确定地址后,就会生成一组用于客户机的选项。在该选择过程中,选项将覆盖先前选定的选项,除非遇到 deny,在那样的情况下,已否定的选项会从发送到客户机的列表中除去。此方法允许从父容器继承来减少必须指定的数据量。 修饰符 修饰符是更改特定容器某些方面的项,比如访问或租用时间。在修改容器之前定义地址和选项池。最普通的修饰符是 leasetimedefault、supportBootp 和 supportUnlistedclients。 leasetimedefault 定义租用给客户机地址的时间总数。 supportBootp 定义服务器是否响应 BOOTP 客户机。 supportUnlistedclients 表示客户机是否由客户机语句明确定义来接收地址。supportUnlistedClients 的值可以是 none、dhcp、bootp 或 both。这允许您限制对 bootp 客户机的访问并允许所有 DHCP 客户机获取地址。 其它修饰符将在db_file 数据库的 DHCP 服务器文件语法中列出。 记录 在选择了修饰符后,下一个要建立的项是记录。记录参数在一个类似于数据库的容器中指定,但是容器的关键字是 logging_info。当学习配置 DHCP 时,建议将记录调至其最高级别。同样,最好在任何其它配置文件数据之前指定记录配置以确保在记录子系统初始化之后记录配置错误。使用 logitem 关键字来打开记录级别或除去 logitem 关键字来禁用记录级别。其它记录关键字允许指定日志文件名、文件大小和旋转日志文件数量。 特定服务器选项 要指定的最后一组参数是特定服务器选项,它们允许用户控制包处理器数、无用信息收集线程运行的频率,等等。 例如,两个特定服务器选项是: reservedTime 表示发送一个 OFFER 到 DHCP 客户机以后地址能以保留状态停留多长时间 reservedTimeInterval 表示 DHCP 服务器扫描整个地址的频率以检查是否存在任何保留状态时间已大于 reservedTime 的。 如果有好几个客户机广播 DISCOVER 消息和或者不广播它们的 REQUEST 消息,或者它们的 REQUEST 消息在网络中丢失时,这些选项是很有用的。使用这些参数能够防止为不兼容的客户机无限期地保留地址。 另一个特别有用的选项是 SaveInterval,它表示保存发生的频率。所有特定服务器选项都会与记录关键字一起在常规服务器操作 DHCP 服务器文件语法中列出。 性能注意事项 理解这点是重要的:即某些配置关键字和配置文件的结构对内存使用和 DHCP 服务器的性能有影响。 首先,通过理解选项从父容器到子容器的继承模型可以避免内存的过度使用。在一个不支持未列出客户机的环境中,管理员必须在文件中明确地列出每个客户机。当选项为任何特定客户机列出时,服务器比选项从父容器(例如,子网、网络或全局容器)继承时使用更多内存来存储配置树。因此,管理员应该验证是否在配置文件中客户机级别的任何选项都要重复并确定是否可以在父容器中指定这些选项以及是否可以做为一个整体由客户机集来共享。 同样,当使用 logItem 条目 INFO 和 TRACE 时,在每个 DHCP 客户机消息处理的过程中有大量的消息被记录。附加一行到日志文件可能是一个昂贵的操作;因此,限制记录数能提高 DHCP 服务器的性能。当 DHCP 服务器有一个错误暂挂起来时,使用 SRC traceson 或 dadmin 命令能动态重新启用记录。 最后,选择一个 numprocessors 值,取决于 DHCP 所支持网络的大小、pingTime db_file 配置参数和典型的网络传播延迟。因为每个包处理器线程发布一个“ICMP 回送请求”用来在把它提供给客户机之前验证服务器自有地址的状态,所以任何“回送响应”等待的时间数直接影响用于一个处理 DISCOVER 消息的时间数。主要地,包处理器线程除了等待任何响应或 pingTime 超时什么也不能做。降低 numprocessors 值会通过降低客户机重发数来改善服务器的响应时间,然而仍然保持了服务器设计的 ping 好处。 为了得到最好性能,选择一个基于由 DHCP 服务器支持的任何远程网络传播延迟的 pingTime。此外,选择基于此 pingTime 值和网络大小的 numprocessors 值。选择一个太小的值可能导致所有包处理线程停止。这导致服务器等待任何“回送响应”,而到达的 DHCP 客户机消息却在服务器端口上排队。这导致服务器以批处理方式而不是以恒定流方式处理客户机消息。 选择一个太小的值可能导致所有包处理线程停止而等待任何“回送响应”,这将导致。 为防止此情况,设置 numprocessors 值为一个大于 DISCOVER 消息估计数的数,其可以在一个 DHCP 客户机高活动周期内的 pingTime 时间间隔内接收到。然而,不将 numprocessors 值设置的过高以致加重内核线程管理的负担。 例如,在每秒可能会有 10 个 DISCOVER 消息的环境中,使用值 numprocessors 5 和 pingTime 300 会导致性能恶化,因为在高峰需求时,每 3 秒只能处理 5 个消息。用类似于 numprocessors 20 和 pingTime 80 的值配置此环境。 定制配置文件 许多网络包含多客户机类型;例如,一个单一网络可能包含运行多种操作系统的计算机,例如 Windows、OS/2、Java OS 和 UNIX。每一个都需要唯一的供应商标识符(用于给 DHCP 服务器识别机器类型的字段)。Java OS 客户机和 IBM 瘦客户机机器可能需要唯一的参数如 bootfiles 和为它们特别定制的配置选项。Windows 95 计算机对于特定 Java 选项处理的不好。 如果某些机器的主要用途基于那些机器的用户类型,特定机器选项就可以封装于供应商容器中。例如,开发人员可能把此操作系统客户机用于编程、市场人员可能使用 OS/2 客户机、销售人员可能使用 Java OS 客户机和 IBM 瘦客户机机器,而记帐人员可能使用 Windows 95 机器。这些用户系列的每一个可能需要不同的配置选项(不同的打印机、名称服务器或缺省 Web 服务器等等)。在此例子中,这些选项可能包含在供应商容器中,因为每个组使用一个不同的机器类型。 如果多个组使用相同的机器类型,将选项放进一个从属类标识符中作为替代,将会允许市场部经理,例如,使用一个特定的其它雇员不能访问的打印机集合。 注: 下面虚构的示例代表了配置文件的一部分。注释以一个磅字符(#)开始并描述了每行是如何定义安装的。 vendor "AIX_CLIENT" { # No specific options, handles things based on class }
vendor "OS/2 Client" { # No specific options, handles things based on class }
vendor "Windows 95" { option 44 9.3.150.3 # Default NetBIOS Nameserver }
vendor "Java OS" { bootstrapserver 9.3.150.4 # Default TFTP server for the Java OS boxes option 67 "javaos.bin" # The bootfile of the Java OS box }
vendor "IBM Thin Client" { bootstrapserver 9.3.150.5 # Default TFTP server for Thin Client boxes option 67 "thinos.bin" # Default bootfile for the Thin Client boxes }
subnet 9.3.149.0 255.255.255.0 { option 3 9.3.149.1 # The default gateway for the subnet option 6 9.3.150.2 # This is the nameserver for the subnet class accounting 9.3.149.5-9.3.149.20 { # The accounting class is limited to address range 9.3.149.5-9.3.149.20 # The printer for this group is also in this range, so it is excluded. exclude 9.3.149.15 option 9 9.3.149.15 # The LPR server (print server) vendor "Windows 95" { option 9 deny # This installation of Windows 95 does not support # this printer, so the option is denied. } } . . . }
|