linux红帽子怎么配置dhcp,10.2. 配置 DHCP 服务器

10.2.1. 配置文件

配置 DHCP 服务器的第一步是创建保存客户端网络信息的配置文件。使用这个文件向客户端系统声明选项。

该配置文件可包含附加标签或空白行以方便格式化。关键词区分大小写,同时将以井号(#)开始的行视为注释。

配置文件中有两类语句:

参数 -- 说明如何执行任务,是否执行任务或向该客户端发送什么网络配置选项。

声明 -- 描述网络拓扑,描述客户端,提供客户端 IP 地址,或在一组声明中应用一组参数。

以关键字选项开始的参数请参考 选项。这些选项控制 DHCP 选项,必须为这些参数配置参数值,或控制 DHCP 服务器的行为。

大括号({ })前面一部分的参数(包括选项)是全局参数。全局参数适用于其后的所有内容。

重要

如果更改配置文件,更改的部分要在使用 systemctl restart dhcpd 重启 DHCP 守护进程后方可生效。

注意

与其每次更改 DHCP 配置文件并重启该服务,不如使用 omshell 命令提供一个互动的方法连接、查询并更改 DHCP 服务器的配置。使用 omshell 可在服务器运行过程中进行所有更改。有关 omshell 的详情请查看 omshell man page。

在 例 10.1 “子网声明” 中,可在下述 host 语句中使用以下routers、subnet-mask、domain-search、domain-name-servers 和 time-offset 选项。

对所有提供的子网及连接到 DHCP 服务器的所有子网,必须有一个 subnet 声明,该声明告知 DHCP 守护进程如何识别该子网中的地址。即使没有动态为那个子网分配任何地址,每个子网也都需要有一个 subnet 声明。

在这个示例中,子网中的每个 DHCP 客户端都有全局选项及一个声明的 range。会为这些客户端分配一个 range 范围内的 IP 地址。

例 10.1. 子网声明

subnet 192.168.1.0 netmask 255.255.255.0 {

option routers 192.168.1.254;

option subnet-mask 255.255.255.0;

option domain-search "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;

}

要配置一个为子网中的某个系统动态租用 IP 地址的 DHCP 服务器,请修改 例 10.2 “Range 参数” 中的示例值。它会说明客户端的默认租用时间、最长租用时间及网络配置值。这个示例为客户的系统分配 range 范围内的 IP 地址 192.168.1.10 和 192.168.1.100。

例 10.2. Range 参数

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-search "example.com";

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.10 192.168.1.100;

}

要根据网卡的 MAC 地址为客户端分配 IP 地址,请在 host 声明中使用 hardware ethernet 参数。如 例 10.3 “使用 DHCP 的静态 IP 地址” 所示,host apex 声明指定使用 MAC 地址 00:A0:78:8E:9E:AA 的网卡永远接收 IP 地址 192.168.1.4。

注:还可以使用自选参数 host-name 为客户端分配主机名。

例 10.3. 使用 DHCP 的静态 IP 地址

host apex {

option host-name "apex.example.com";

hardware ethernet 00:A0:78:8E:9E:AA;

fixed-address 192.168.1.4;

}

Red Hat Enterprise Linux 7 支持为 InfiniBank IPoIB 接口分配静态 IP 地址。但因为这些接口没有正常的硬件以太网地址,因此必须使用不同的方法为 IPoIB 接口指定唯一识别符。该标准是使用选项 dhcp-client-identifier= 结构指定 IPoIB 接口的 dhcp-client-identifier 字段。DHCP 服务器主机架构最多支持一个硬件以太网,在每个主机段中支持一个 dhcp-client-identifier 条目。但可能有多个固定地址条目,同时 DHCP 服务器会在接收 DHCP 请求后自动使用适用于该网络的地址响应。

例 10.4. 使用 DHCP 在多个接口中使用静态 IP 地址

在使用复杂配置的机器中,例如:有两个 InfiniBand 接口,且每个物理接口中都有 P_Key 接口,外加一个以太网连接,则可在配置时使用以下静态 IP 架构:

Host apex.0 {

option host-name “apex.example.com”;

hardware ethernet 00:A0:78:8E:9E:AA;

option dhcp-client-identifier=ff:00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:03:00:31:7b:11;

fixed-address 172.31.0.50,172.31.2.50,172.31.1.50,172.31.3.50;

}

host apex.1 {

option host-name “apex.example.com”;

hardware ethernet 00:A0:78:8E:9E:AB;

option dhcp-client-identifier=ff:00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:03:00:31:7b:12;

fixed-address 172.31.0.50,172.31.2.50,172.31.1.50,172.31.3.50;

}

要为您的设备找到正确的 dhcp-client-identifier,通常可使用前缀 ff:00:00:00:00:00:02:00:00:02:c9:00,然后在最后添加 8 字节 IPoIB 接口(恰好是 IPoIB 接口所在 InfiniBand 端口的 8 字节 GUID)。在有些旧的控制器中,这个前缀是错误的。如果出现那种情况,建议您在 DHCP 服务器中使用 tcpdump 捕获传入 IPoIB DHCP 请求,并从中获取正确的 dhcp-client-identifier。例如:

]$ tcpdump -vv -i mlx4_ib0

tcpdump: listening on mlx4_ib0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes

23:42:44.131447 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)

0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request, length 300, htype 32, hlen 0, xid 0x975cb024, Flags [Broadcast] (0x8000)

Vendor-rfc1048 Extensions

Magic Cookie 0x63825363

DHCP-Message Option 53, length 1: Discover

Hostname Option 12, length 10: "rdma-qe-03"

Parameter-Request Option 55, length 18:

Subnet-Mask, BR, Time-Zone, Classless-Static-Route

Domain-Name, Domain-Name-Server, Hostname, YD

YS, NTP, MTU, Option 119

Default-Gateway, Classless-Static-Route, Classless-Static-Route-Microsoft, Static-Route

Option 252, NTP

Client-ID Option 61, length 20: hardware-type 255, 00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:02:00:21:ac:c1

上述转储显示了 Client-ID 字段。hardware-type 255 与 ID 起始的 ff: 对应,然后将 ID 的剩余部分括起,因为要在 DHCP 配置文件中有这些内容。

如 例 10.5 “Shared-network 声明” 所示,应在 shared-network 声明中宣布共享同一物理网络的所有子网。shared-network 中的参数(未包含在子网声明中的除外)都应被视为全局参数。为 shared-network 分配的名称必须可描述该网络,比如使用 “test-lab” 描述所有 test lab 环境中的所有子网。

例 10.5. Shared-network 声明

shared-network name {

option domain-search "test.redhat.com";

option domain-name-servers ns1.redhat.com, ns2.redhat.com;

option routers 192.168.0.254;

#more parameters for EXAMPLE shared-network

subnet 192.168.1.0 netmask 255.255.252.0 {

#parameters for subnet

range 192.168.1.1 192.168.1.254;

}

subnet 192.168.2.0 netmask 255.255.252.0 {

#parameters for subnet

range 192.168.2.1 192.168.2.254;

}

}

如 例 10.6 “组声明” 所示,group 声明是用来在一组声明中应用全局参数。例如:共享网络、子网及主机都可分组。

例 10.6. 组声明

group {

option routers 192.168.1.254;

option subnet-mask 255.255.255.0;

option domain-search "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;

}

}

注意

可参照提供的示例配置文件,在其中添加自定义配置选项。请作为 root 使用以下命令将这个文件复制到正确位置:~]# cp /usr/share/doc/dhcp-version_number/dhcpd.conf.example /etc/dhcp/dhcpd.conf

其中 version_number 是 DHCP 版本号。

有关选项语句的完整列表及其功能,请查看 dhcp-options(5) man page。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值