19.5. 使用 DHCP 初始化 Sun Ray Client 的要求

19.5.1. DHCP 基础
19.5.2. DHCP 参数搜索
19.5.3. DHCP 中继代理
19.5.4. 简化远程 Sun Ray Client 的 DHCP 配置
19.5.5. 标准 DHCP 参数
19.5.6. 供应商专用 DHCP 选项
19.5.7. 封装选项

因为 Sun Ray Client 是无状态的,所以它完全依赖网络服务来提供完成初始化所需要的配置数据。

Sun Ray Client 使用动态主机配置协议 (DHCP) 来获取该信息。

19.5.1. DHCP 基础

Sun Ray Client 是一种 DHCP 客户端,它通过在网络上广播 DHCP 包来请求配置信息。请求的信息将由一个或多个 DHCP 服务器提供以作为对客户端请求的响应。DHCP 服务可以由在 Sun Ray 服务器上执行的 DHCP 服务器进程提供,由在其他系统上执行的 DHCP 服务器进程提供,或者由以上两者联合提供。任何与 DHCP 服务一致的实现方案都可以用于满足 Sun Ray Client 的 DHCP 需求。Oracle Solaris DHCP 服务就是一种这样的实施方案。在非 Sun 平台上执行的第三方实现方案也可配置为向 Sun Ray Client 提供信息。

DHCP 协议定义了许多标准选项,这些选项可用于将各种常用网络功能通知给客户端。DHCP 还允许使用多个供应商专用选项,这些选项携带的信息仅对单个产品有意义。有关更多信息,请参见表 19.4 “备用供应商专用 DHCP 选项”

Sun Ray Client 依靠少量标准选项来建立其基本网络参数。它依靠若干个标准选项和供应商专用选项来提供组成完整客户端配置的附加信息。如果没有提供这些附加的配置参数,客户端将无法进行某些活动,其中最重要的是新 Sun Ray Client 固件的下载。表 19.4 “备用供应商专用 DHCP 选项”列出了供应商专用选项。

注意

如果管理员选择不让 Sun Ray Client 利用这些附加配置信息,那么必须建立向其提供固件更新的过程。一种解决方法是,通过一个 Sun Ray 服务器上的小型、专用互连。这样,当新固件在该服务器上可用时,管理员可以一个接一个地传输给客户端(例如,通过修补程序或 Sun Ray 产品升级)。

Sun Ray 服务器的位置通常通过一对 DHCP 供应商专用选项(AuthSrvrAltAuth)中的一个传输到 Sun Ray Client。

如果 Sun Ray Client 没有接收到该信息,则会使用基于广播的搜索机制来查找其子网上的 Sun Ray 服务器。如果基于广播的搜索机制失败,则 Sun Ray Client 会将 X Window Display Manager 的 DHCP 标准选项(选项 49)解释为 Sun Ray 服务器地址列表(其会在这些地址上尝试联系 Sun Ray 服务)。此功能可取消对 DHCP 供应商选项传输此信息的需求,以简化部署在 LAN 上的 Sun Ray 的 DHCP 配置。

表 19.3 “可用的 DHCP 服务参数”提供了可用的 DHCP 服务参数的列表。

表 19.3. 可用的 DHCP 服务参数

参数

Sun Ray 服务器 DHCP 服务

带有供应商专用选项的外部 DHCP 服务

不带供应商专用选项的外部 DHCP 服务

无 DHCP 服务

基本网络参数

其他参数(用于固件下载等)

Sun Ray 服务器位置

是,通过广播搜索或 X Display Manager 标准选项

是,通过广播搜索


19.5.2. DHCP 参数搜索

DHCP 启用两个阶段的参数搜索。初始 DHCPDISCOVER 阶段搜索基本网络参数。该阶段之后可能还有 DHCPINFORM 阶段,用来查找在 DHCPDISCOVER 过程中没有搜索到的其他信息。

所有 Sun Ray Clients 必须能够访问至少一种 DHCP 服务,该服务会提供网络参数以应答来自客户端的 DHCPDISCOVER 请求。Sun Ray Client 可以利用 DHCPINFORM 功能,该功能会启用客户端的完全配置,即使在无法提供完整配置数据的外部 DHCP 服务提供了 Sun Ray Client 的网络参数时也是如此。

19.5.3. DHCP 中继代理

Sun Ray Client 将 DHCP 请求作为只能在本地 LAN 段或子网上传播的广播包发出。如果 Sun Ray Client 与 DHCP 服务器驻留在相同的子网上,则 DHCP 服务器能够查看到广播包,并以 Sun Ray Client 需要的信息作出响应。如果 Sun Ray Client 与 DHCP 服务器驻留在不同的子网上,则客户端必须依靠本地 DHCP 中继代理来收集广播包并将其转发到 DHCP 服务器。根据物理网络拓扑和 DHCP 服务器策略,管理员可能需要在 Sun Ray 客户端连接的每个子网上配置 DHCP 中继代理。许多 IP 路由器都具有 DHCP 中继代理功能。如果部署计划需要使用 DHCP 中继代理,且管理员决定激活路由器上的此能力,则可以在路由器文档中找到相应的说明,其标题通常为 "DHCP Relay"(DHCP 中继)或 "BOOTP forwarding"(BOOTP 转发)。DHCP 源自早期称为 BOOTP 的协议。有些文档使用 DHCP,有些文档则使用 BOOTP。

在某些情况下,现有的企业 DHCP 服务为 Sun Ray Client 提供其 IP 地址,而 Sun Ray 服务器为 Sun Ray Client 提供固件版本详细信息以及 Sun Ray 服务器的位置。如果部署计划要求通过多个服务器将 DHCP 参数提供给客户端,并且这些服务器没有一个连接到该客户端驻留的子网,那么就应该配置 DHCP 中继代理,这样客户端子网便能够将广播发送至所有的 DHCP 服务器。例如,在由 Cisco IOS Executive 控制的路由器中,ip helper-address 命令会激活 DHCP 中继代理。为 ip helper-address 命令指定多个参数可启用多个 DHCP 服务器的中继。有关更多信息,请参见第 19.3.5.2 节 “在远程子网上部署”

19.5.4. 简化远程 Sun Ray Client 的 DHCP 配置

通过使用 X Window System Display Manager 选项提供可用的 Sun Ray 服务器的列表,可对位于远程站点的 Sun Ray Client 的 DHCP 配置进行简化。有了此选项,便不再需要提供 Sun Ray 供应商选项,也不再需要将 DHCPINFORM 请求转发至 Sun Ray 服务器。

有关对网络配置(包括 DHCP 和供应商专用选项)的更为完整的处理,请参见表 19.3 “可用的 DHCP 服务参数”表 19.4 “备用供应商专用 DHCP 选项”

以下是一个基于 Cisco IOS 的路由器的 DHCP 配置样例:

ip dhcp excluded-address 129.149.244.161
ip dhcp pool CLIENT
import all network 129.149.244.160 255.255.255.248
default-router 129.149.244.161
option 26 hex 0556
option 49 ip 10.6.129.67 129.146.58.136
lease 0 2

选项 49(X Window System Display Manager 选项)将 IP 地址 10.6.129.67129.146.58.136 列为 Sun Ray 服务器。Sun Ray Client 从路由器接收 DHCP 响应时,将试图连接到这些服务器。选项 26 设置最大传输单元 (Maximum Transmission Unit, MTU),它将定义 Sun Ray 连接的最大包大小,此处为 1366 字节,而不是默认的以太网 MTU 1500 字节。对于为实现虚拟专用网络 (virtual private network, VPN) 连接而留出 IPSec 头的空间而言,该设置是必要的。

直接来自于 ISP 或主防火墙的 DHCP 服务也是必需的,以便在防火墙后为路由器指定 IP 地址。

将路由器的 WAN 端口直接插入 DSL/电缆调制解调器或插入主防火墙或网关。然后将 Sun Ray Client 插入路由器上的四个 LAN 端口中的一个。直接插入 DSL 或电缆调制解调器的 VPN 路由器仅能连接到 Sun Ray Client。如果已将路由器配置为向 Sun Ray Client 提供 DHCP 参数,则路由器将指示客户端尝试连接到适当的 Sun Ray 服务器。

插入路由器时,它应启动 VPN 隧道;它应该始终保持打开状态。每个路由器均应使用基于用户 ID 的用户名和随机密码连接到 VPN 网关,并进行编程。应将 VPN 网关配置为仅允许 Sun Ray 的通信量通过,并且这些通信量仅前往有限数目的主机,这样用户就无法在路由器的 LAN 端连接其他的设备,也就无法连接到公司网络。但是,用户可以连接多个 Sun Ray Client。

每当使用 VPN 或其他隧道时,都需要考虑服务器与 Sun Ray Client 之间的路径上的 IP MTU。VPN 通常会将其他控制数据封装到每个包中,这会减少应用程序数据的可用空间。

最新的 Sun Ray 固件会自动尝试补偿这种缩减,但并不是在所有情况下都能做到这一点。请确保 Sun Ray Client 使用了最新的固件。在服务器上安装最新的修补程序是不够的,还必须确保将客户端配置为更新其固件并检查更新是否发生。

如果 Sun Ray Client 拥有最新的固件,但依然发生此问题,则必须将客户端设置为使用精简的 MTU 工作。可以通过用来向 Sun Ray 指定其基本配置数据的任何机制(例如 DHCP、TFTP)来更新客户端;如果客户端运行的是支持 GUI 的固件,则还可通过 Sun Ray Client 自身的本地配置进行更新。

站点应该知道整个 VPN 上的有效 MTU。否则,请参见任何可用的技术资料或 http://blogs.oracle.com/ThinkThin/ 上的 ThinkThin 博客。如果不一定要使用精确的 MTU,则使用一个较小的估计值(如 1350,标准值为 1500)就足以让您验证 MTU 是否是导致问题的原因。

在完成更新并重新启动 Sun Ray Client 后,客户端会将新的 MTU 值报告给服务器,而服务器将调整其包建构策略,以适应该 MTU。该客户端将不会再通过 VPN 隧道发送由于过大而无法一次发送的 Sun Ray 通信流量。

注意

Sun Ray Client 上的本地设置通常会覆盖从其他源(例如 .parms 文件或 DHCP)获取的值。因此,必须提供一个能够清除某设置的功能,以便 .parms 文件中的值不会被覆盖,从而可用于配置。对于数值,请输入空字段;对于切换设置,请在修改设置时单击 "Clear"(清除)按钮。来自客户端的 utquery 输出将反映本地配置中定义的值。

19.5.5. 标准 DHCP 参数

可以仅使用一些标准 DHCP 参数来启动一组 Sun Ray Client,将定义服务器列表的负载转移到域名服务 (Domain Name Service, DNS) 上,并将固件管理负载转移到 TFTP 上。

如果 sunray-config-serverssunray-servers 已由为一组远程 Sun Rays Client 提供服务的 DNS 适当定义,则除了基本网络信息外无需额外的 DHCP 参数。

  • 固件中整合的 DNS 客户端允许很多值使用名称而不是 IP 地址。大多数值既可使用名称,也可使用 IP 地址。如果指定名称,则 DNS 查找会附加所配置的域名。将依序剥离各个组成部分,直到查找成功,或者域名中只剩下两个组成部分。如果所有查找都不成功,则根据名称本身来查找。如果名称本身是以点字符 (".") 结尾的,则将该名称视为根名称,在查找该名称时不附加域名组成部分。

  • 支持将 DHCP 选项 66(TFTP 服务器名称)用作第 19.5.6 节 “供应商专用 DHCP 选项”中列出的 FWSrvr 供应商专用选项的替代项。该字符串值必须是单个 IP 地址或解析到 IP 地址列表的 DNS 主机名。如果是 IP 地址列表,则会随机选择其中一个地址。

  • 固件维护机制在 TFTP 起始目录中创建了 *.parms 文件(每种模型类型一个),读取这些文件可代替使用 NewTVer DHCP 供应商选项。因此,不通过 DHCP 访问 NewTVer 的值,也可进行远程固件升级。*.parms 文件包含版本、硬件版本以及屏障级别,在屏障限制将固件写入闪存的情况下减少了不必要的文件读取。有关可用于配置 .parms 文件的选项的详细信息,请参见 utfwadm 手册页。

  • 选项 66FWSrvr 均未给出时,将使用固件服务器的默认 DNS 名称 sunray-config-servers。在 DNS 中定义此名称时,不必使用 DHCP 选项,只需使用 DNS 服务器名称和域名来提供固件服务器的地址。

  • *.parms 文件中包含 servers=_server name list_ 和 select=inorder|random 可说明服务器名称列表,也可说明这些名称应当按顺序使用还是随机使用。如果名称解析为多个地址,则根据 select 关键字选择 IP 地址。

  • 当既没有提供服务器列表,也没有提供 AltAuth 列表时,

    系统将在 DNS 中查找默认名称 sunray-servers,并使用 IP 地址列表代替 AltAuth 列表。

如果在固件下载时发生错误,错误消息会提供一些附加信息,这些信息可能有助于诊断和更正问题。请参见第 16 章 故障排除图标

此外,在 DNS 查找期间,OSD 图标中的状态行会显示正在查找的名称,如果查找到该名称,则显示其 IP 地址。

19.5.6. 供应商专用 DHCP 选项

表 19.4 “备用供应商专用 DHCP 选项”列出了 Sun Ray 定义和使用的供应商专用 DHCP 选项。

表 19.4. 备用供应商专用 DHCP 选项

选项代码

参数名

客户端类

数据类型

是否必需?

间隔

最大计数

说明

21

AuthSrvr

SUNW.NewT.SUNW

IP

强制

1

1

单个 Sun Ray 服务器 IP 地址

22

AuthPort

SUNW.NewT.SUNW

NUMBER

可选

2

1

Sun Ray 服务器端口

23

NewTVer

SUNW.NewT.SUNW

ASCII

可选

1

0

需要的固件版本

24

LogHost

SUNW.NewT.SUNW

IP

可选

1

1

系统日志服务器 IP 地址

25

LogKern

SUNW.NewT.SUNW

NUMBER

可选

1

1

内核日志级别

26

LogNet

SUNW.NewT.SUNW

NUMBER

可选

1

1

网络日志级别

27

LogUSB

SUNW.NewT.SUNW

NUMBER

可选

1

1

USB 日志级别

28

LogVid

SUNW.NewT.SUNW

NUMBER

可选

1

1

视频日志级别

29

LogAppl

SUNW.NewT.SUNW

NUMBER

可选

1

1

固件应用程序的日志级别

30

NewTBW

SUNW.NewT.SUNW

NUMBER

可选

4

1

带宽上限(以位/秒为数值单位)

31

FWSrvr

SUNW.NewT.SUNW

IP

可选

1

1

固件 TFTP 服务器 IP 地址

32

NewTDispIndx

SUNW.NewT.SUNW

NUMBER

可选

4

1

过时。不要使用。

33

Intf

SUNW.NewT.SUNW

ASCII

可选

1

0

Sun Ray 服务器接口名称

34

NewTFlags

SUNW.NewT.SUNW

NUMBER

可选

4

1

过时。不要使用。

35

AltAuth

SUNW.NewT.SUNW

IP

可选

1

0

Sun Ray 服务器 IP 地址的列表

36

BarrierLevel

SUNW.NewT.SUNW

NUMBER

强制

4

1

固件下载:

屏障级别


即使在初始化期间这些选项都未提供,客户端仍能够执行其基本功能,但是某些高级客户端功能将无法实现,除非向客户端提供相应的选项。特别是:

  • AltAuthAuthSrvr 表示 Sun Ray 服务器的 IP 地址。系统将依次尝试 AltAuth 列表中的地址,直到建立连接。如果已提供 AltAuth,则当前固件会忽略 AuthSrvr;但是考虑到旧固件(Sun Ray Server Software 1.3 之前的版本)无法处理 AltAuth 选项,因此最好始终指定 AuthSrvr。如果这些选项均未提供,则客户端将尝试通过在本地子网上发送广播来定位 Sun Ray 服务器。客户端将尝试通过 X Window Display Manager 选项中提供的地址来联系 Sun Ray 服务器(如果已提供该选项)。

  • 要让客户端尝试进行固件下载,则必须提供 NewTVerFWSrvr 两者。NewTVer 包含客户端应当使用的固件版本的名称。如果该名称与客户端实际运行的固件版本名称不匹配,则客户端将试图从 TFTP 服务器上下载所需的固件,该服务器的地址是由 FWSrvr 提供的。

  • 必须指定 LogHost,以便让客户端通过系统日志协议报告消息。向主要客户端子系统报告阈值由 LogKernLogNetLogUSBLogVidLogAppl 选项控制。

注意

由于消息格式、内容和阈值仅供服务人员使用,因此没有在此进行说明。

所有 Sun Ray 供应商专用选项的 DHCP 客户端类名称均为 SUNW.NewT.SUNW。客户端在 DHCP 请求中引用该名称,以便服务器能使用一组合适的供应商专用选项作出响应。此机制确保了不会向客户端发送为一些其他类型的设备而定义的供应商选项,同时也确保了不会向其他设备发送仅对客户端有意义的选项。

19.5.7. 封装选项

对于每个参数名称,都有一个供应商 ID、一个选项代码、一个选项类型和一个用以表明该参数是否必需的标识符。

特定于供应商的选项是通过 DHCP 中的封装选项提供的。这些被封装了的选项有些复杂,如下面 DHCPINFORM 的回复或 DHCPACK 中所示,可看出特定于供应商的信息部分中字节的分类。

2b 4a 17 1d 32 2e 30 .......: .+J..2.0
0140 5f 31 39 2e 63 2c 52 45 56 3d 32 30 30 32 2e 30 _19.c,RE V=2002.0
0150 39 2e 30 36 2e 31 35 2e 35 34 21 04 68 6d 65 30 9.06.15. 54!.hme0
0160 1f 04 81 92 3a 88 15 04 81 92 3a 88 1d 01 06 1c ....:... ..:.....
0170 01 06 1b 01 06 1a 01 06 19 01 06 18 04 81 92 3a ........ .......:
0180 88 16 02 1b 61
注意

在此描述中,十六进制的值都以 0x 开头,后面跟着其十进制的值,中间有一个 = 号,比如 0x2b=43

  • 第一个字节是选项代码。

  • 第二个字节表示封装选项的长度,也就是构成此选项值的字节数目。

  • 接下来的一个或多个字节即构成多字节的选项值。

而选项值之后又跟着另一个封装选项代码,如此接连不断。

在本示例中,是以 0x2b=43 开始,它就是供应商专用信息的 DHCP 选项。它的长度为 0x4a=74 字节,即后面字节的总数目。这些字节中包含着封装了的供应商选项。

示例的其余部分表示特定于供应商的信息选项的值。首字节含有第一个封装选项(其值为 0x17=23)和 NewTVer 选项(其类型为 ASCII(美国信息交换标准代码))。下一个字节是 0x1d=29,表示 NewTVer 字符串的长度。这些选项后面跟着代表字符串自身的 29 个字节。

DHCPACK 右侧的 ASCII 解释为 2.0_19.c,REV=2002.09.06.15.54。这是第一个封装选项的结尾部分。下一个字节是下一选项 Intf 的起始字节,它是以 0x21=33 表示的。再后面的字节,即长度,是 0x04=4,后四个字节是 ASCII 值 hme0。第二个封装选项到此结束。

下一个字节是 0x1f=31,代表 FWSrvr 参数,其功能是标示固件 TFTP 服务器的 IP 地址。下一个字节是长度,4,IP 地址始终是这个长度。其十六进制值是 0x81 0x92 0x3a 0x88,它对应于 IP 地址 129.146.58.136