动态主机配置协议(DHCP)是用来自动给客户机器分配 TCP/IP 信息的网络协议。每个 DHCP 客户都连接到中央位置的 DHCP 服务器,该服务器会返回包括 IP 地址、网关和 DNS 服务器信息的客户网络配置。
18.1. 为什么使用 DHCPDHCP 在快速发送客户网络配置方面很有用场。当配置客户系统时,管理员可以选择 DHCP,并不必输入 IP 地址、子网掩码、网关、或 DNS 服务器。客户从 DHCP 服务器中检索这些信息。DHCP 在管理员想改变大量系统的 IP 地址时也大有用途。与其重新配置所有系统,管理员只需编辑服务器上的一个 DHCP 配置文件即可获得新 IP 地址集合。如果某机构的 DNS 服务器改变了,这种改变只需在 DHCP 服务器上而不必在 DHCP 客户上进行。一旦客户的网络被重新启动(或客户重新引导系统),改变就会生效。
除此之外,如果便携电脑或任何类型的可移计算机被配置使用 DHCP,只要每个办公室都有一个允许它联网的 DHCP 服务器,它就可以不必重新配置而在办公室间自由移动。
18.2. 配置 DHCP 服务器你可以使用配置文件 /etc/dhcpd.conf 来配置 DHCP 服务器。
DHCP 还使用 /var/lib/dhcp/dhcpd.leases 文件来贮存客户租期数据库。详情请参阅第 18.2.2 节。
18.2.1. 配置文件配置 DHCP 服务器的第一步是创建贮存客户网络信息的配置文件。全局选项可以为所有客户声明,可选选项可以为每个客户系统声明。
该配置文件可以使用任何附加的制表符或空行来进行简单格式化。关键字是区分大小写的,起首为井号(#)的行是注释。
目前实现了两种 DNS 更新方案 — 特殊 DNS 更新模式和过渡性 DHCP-DNS 互动草图更新模式。如果这两种模式被接受为 IETF 标准进程的一部分,就会出现第三个模式 — 标准 DNS 更新方法。DHCP 服务器必须配置使用这两种当前方案中的一种。版本 3.0b2pl11 以及更早的版本使用特殊模式;不过,这种模式已经过时。如果你想保留相同的行为方式,在配置文件的开头添加以下一行:
ddns-update-style ad-hoc;要使用推荐的模式,在配置文件的开头添加以下一行:
ddns-update-style interim;请阅读 dhcpd.conf 的说明书(man)页来获得有关不同模式的细节。
配置文件中有两类陈述:
参数 — 表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。
声明 — 描述网络的布局;描述客户;提供客户的地址;或把一组参数应用到一组声明中。
某些参数必须以 option 关键字开头,它们也被称为选项。选项配置 DHCP 的可选选项;而参数配置的是必选的或控制 DHCP 服务器行为的值。
在使用大括号({ })的部分之前声明的参数(包括选项)通常被当做全局参数。全局参数应用位于其下的所有部分。
重要:如果你改变了配置文件,这些改变在你使用 service dhcpd restart 命令来重新启动 DHCP 守护进程之后才会生效。
在例 18-1中, routers 、 subnet-mask 、 domain-name 、 domain-name-servers 和 time-offset 选项被用于所有在它们下面声明的 host 声明中。
如例 18-1所示,你可以声明 subnet 。你必须为你的网络中的每一个子网包括一个 subnet 声明,否则, DHCP 服务器可能无法启动。
在这个例子中,子网中的每个 DHCP 客户都带有全局选项,并且声明了 range 。客户被分配给 range 之内的 IP 地址。
subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254; option subnet-mask 255.255.255.0;
[1] [2] [3] 下一页
option domain-name "example.com";
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
range 192.168.1.10 192.168.1.100; }
例 18-1. 子网声明
所有共享同一物理网络的子网应该在 shared-network 声明之内声明,如例 18-2所示。在 shared-network 之内,但在被包围起来的 subnet 声明之外的参数被当做全局参数。 shared-network 的名称应该是对网络有描述性的标题,例如,使用 test-lab 来描述所有处于实验室(test lab)环境中的子网。
shared-network name { option domain-name "test.redhat.com"; option domain-name-servers ns1.redhat.com, ns2.redhat.com; option routers 192.168.1.254; more parameters for EXAMPLE shared-network subnet 192.168.1.0 netmask 255.255.255.0 { parameters for subnet range 192.168.1.1 192.168.1.31; } subnet 192.168.1.32 netmask 255.255.255.0 { parameters for subnet range 192.168.1.33 192.168.1.63; } }例 18-2. 共享网络声明
如例 18-3 中所演示, group 声明可以用来把全局参数应用到一组声明中。你可以组合共享的网络、子网、主机或其它组群。
group { option routers 192.168.1.254; option subnet-mask 255.255.255.0;option domain-name "example.com"; option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; }
host raleigh { option host-name "raleigh.example.com"; hardware ethernet 00:A1:DD:74:C3:F2; fixed-address 192.168.1.6; } }
例 18-3. 组群声明
要配置将动态 IP 地址租给子网内系统的 DHCP 服务器,用你的数值来修改例 18-4。它为客户声明一个默认租期、最长租期、以及网络配置值。范例中把 range 192.168.1.10 和 192.168.1.100 之间的 IP 地址分配给客户。
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "example.com";subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; }
上一页 [1] [2] [3] 下一页
例 18-4. 范围参数
要根据网卡的 MAC 地址给客户分配 IP 地址,使用 host 声明内的 hardware ethernet 参数。 如例 18-5 中所演示, host apex 声明表明:网卡的 MAC 地址为 00:A0:78:8E:9E:AA 的系统所分配的 IP 地址将一直是 192.168.1.4。
注意,你还可以使用可选的参数 host-name 来为客户分配主机名。
host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; }例 18-5. 使用 DHCP 的静态 IP 地址
窍门:你可以使用 Red Hat Linux 9 的配置文件范例作为样板,然后在其上添加你自己定制的配置选项。使用下面的命令把它复制到正确的位置里:
(出处:http://www.sheup.com)
例 18-5. 使用 DHCP 的静态 IP 地址
窍门:你可以使用 Red Hat Linux 9 的配置文件范例作为样板,然后在其上添加你自己定制的配置选项。使用下面的命令把它复制到正确的位置里:
(出处:http://www.sheup.com/)