dhclient - 动态主机配置协议客户端
Internet 软件 DHCP 客户端 dhclient 提供了一种使用动态主机配置协议、BOOTP 协议配置一个或者多个网络接口的方法,或者如果这些协议失败,则通过静态分配地址。
操作
DHCP 协议允许主机联系中央服务器,该服务器维护可能分配给一个或者多个子网的 IP 地址列表。
DHCP 客户端可以从这个池中请求一个地址,然后临时使用它在网络上进行通信。
DHCP 协议还提供了一种机制,通过该机制,客户端可以了解有关其所连接网络的重要详细信息,例如默认路由器的位置、名称服务器的位置等。
启动时,dhclient 读取 dhclient.conf 以获取配置说明。
然后它获取当前系统中配置的所有网络接口的列表。
对于每个接口,它尝试使用 DHCP 协议配置接口。
为了在系统重新启动和服务器重新启动时跟踪租约,dhclient 在 dhclient.leases 文件中保留了已分配的租约列表。
在启动时,在读取 dhclient.conf 文件后,dhclient 读取 dhclient.leases 文件以刷新其关于已分配的租约的内存。
获得新租约时,会将其添加到 dhclient.leases 文件的末尾。
为了防止文件变得任意大,dhclient 会不时从其内核租用数据库中创建一个新的 dhclient.leases 文件。
dhclient.leases 文件的旧版本保留在名称 dhclient.leases~ 下,直到下一次 dhclient 重写数据库。
如果首次调用 dhclient 时 DHCP 服务器不可用(通常在初始系统引导过程中),则保留旧租约,以防 DHCP 服务器不可用。
在这种情况下,将测试 dhclient.leases 文件中尚未过期的旧租约,如果确定它们有效,则使用它们直到它们到期或者 DHCP 服务器可用。
语法
dhclient [ -p port ] [ -d ] [ -q ] [ -1 ] [ -r ] [ -lf lease-file ] [ -pf pid-file ] [ -cf config-file ] [ -sf script-file ] [ -s server ] [ -g relay ] [ -n ] [ -nw ] [ -w ] [ if0 [ ...ifN ] ]
命令行
dhclient 应该尝试配置的网络接口的名称可以在命令行中指定。
如果在命令行中没有指定接口名称,dhclient 通常会识别所有网络接口,尽可能消除非广播接口,并尝试配置每个接口。
也可以在 dhclient.conf 文件中按名称指定接口。
如果以这种方式指定接口,那么客户端将只配置在配置文件或者命令行中指定的接口,而将忽略所有其他接口。
如果 DHCP 客户端应该在标准端口(端口 68)以外的端口上侦听和传输,则可以使用 -p 标志。
后面应该是 dhclient 应该使用的 udp 端口号。
这主要用于调试目的。
如果为客户端指定了不同的端口来侦听和传输,则客户端还将使用一个大于指定目标端口的不同目标端口。
DHCP 客户端通常在获取 IP 地址之前将其发送的任何协议消息传输到 IP 受限广播地址 255.255.255.255.
出于调试目的,让服务器将这些消息传输到某个其他地址可能很有用。
这可以使用 -s 标志指定,后跟目标的 IP 地址或者域名。
出于测试目的,可以使用 -g 标志设置客户端发送的所有数据包的 giaddr 字段,后跟要发送的 IP 地址。
这仅对测试有用,不应期望以任何一致或者有用的方式工作。
DHCP 客户端通常会在前台运行,直到配置了接口,然后才会恢复到后台运行。
要强制 dhclient 始终作为前台进程运行,应指定 -d 标志。
当在调试器下运行客户端时,或者在 System V 系统上从 inittab 运行它时,这很有用。
客户端通常打印一条启动消息并将协议序列显示到标准错误描述符,直到它获得一个地址,然后只使用 syslog 工具记录消息。
-q 标志可防止将错误以外的任何消息打印到标准错误描述符。
客户端通常不会释放当前租用,因为 DHCP 协议不需要它。
一些有线 ISP 要求他们的客户端通知服务器如果他们希望释放分配的 IP 地址。
-r 标志明确释放当前租用,一旦租用被释放,客户端退出。
-1 标志导致 dhclient 尝试一次获得租约。
如果失败,dhclient 将退出,退出代码为 2.
DHCP 客户端通常从 /etc/dhclient.conf 获取其配置信息,从 /var/lib/dhcp/dhclient.leases 获取其租用数据库,将其进程 ID 存储在名为 /var/run/dhclient.pid 的文件中,并配置使用 /sbin/dhclient-script 的网络接口 要为这些文件指定不同的名称和/或者位置,请分别使用 -cf、-lf、-pf 和 -sf 标志,后跟文件名。
例如,如果 /var/lib/dhcp 或者 /var/run 在 DHCP 客户端启动时尚未安装,则此功能特别有用。
如果 DHCP 客户端无法识别任何要配置的网络接口,它通常会退出。
在笔记本电脑和其他具有热插拔 I/O 总线的计算机上,系统启动后可能会添加广播接口。
-w 标志可用于使客户端在找不到任何此类接口时不退出。
然后可以使用 omshell (8) 程序在添加或者删除网络接口时通知客户端,以便客户端可以尝试在该接口上配置 IP 地址。
可以指示 DHCP 客户端不要尝试使用 -n 标志配置任何接口。
这最有可能与 -w 标志结合使用。
还可以指示客户端立即成为守护进程,而不是等待它获得 IP 地址。
这可以通过提供 -nw 标志来完成。