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”。
- 状态
- 客户机当前状态。 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 服务器文件语法。
- "服务器 IP 地址"
- 是拥有此记录的 DHCP 服务器的 IP 地址。
- "类标识" "供应商标识" "主机名" "域名"
- 服务器使用值来决定将哪个选项发送给服务器(当做引用字符串存储)。 这些参数提高了性能,因为当 DHCP 服务器启动时可以为这些客户机预生成选项列表。