已复制
全屏展示
复制代码

CentOS7搭建DHCP服务


· 3 min read

一. 安装

dhcp软件包默认是在epel-release仓库源里的,所以需要安装epel-release。DHCP是 Dynamic Host Configuration Protocol(动态主机配置协议)的缩写,关于协议的详细内容请查看 DHCP协议原理。

yum install epel-release
yum install -y dhcp
  • 配置文件:/etc/dhcp/dhcpd.conf
  • 配置文件模板:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
  • 租约文件:/var/lib/dhcpd/dhcpd.leases

二. 配置

  • 配置的网段必须和dhcpd服务所在网段相同。
  • 如果全局配置和subnet的配置冲突,那么subnet配置优先。
  • dhcpd服务端使用67端口,客户端使用68端口。
  • 编辑配置文件/etc/dhcp/dhcpd.conf,常用配置文件如下。
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.80.0 netmask 255.255.255.0 {
  range 192.168.80.50 192.168.80.150;
  option subnet-mask 255.255.255.0;
  option routers 192.168.80.2;
  option domain-name "yuchaoshui.com";
  option domain-name-servers 114.114.114.114, 8.8.8.8;
  option broadcast-address 192.168.80.255;
  default-lease-time 21600;
  max-lease-time 43200;
}
  • 查看MAC地址方法:启动dhcpd服务程序,为主机动态分配一个 IP 地址,这时在DHCP 服务器的日志文件(/var/log/messages)中会保存分配记录,可以从该文件中获取 MAC 地址。
  • 编辑配置文件/etc/dhcp/dhcpd.confMAC地址绑定配置文件如下。如果需要IP地址和MAC地址绑定,使用如下配置。
host yuziyue {
  hardware ethernet 00:0c:29:5e:f9:5f;
  fixed-address 192.168.80.80;
  option subnet-mask 255.255.255.0;
  option routers 192.168.80.2;
  option domain-name "yuziyue.com";
  option domain-name-servers 114.114.114.114, 8.8.8.8;
}
  • 配置项解释说明
default-lease-time 21600            # 默认超时时间。
max-lease-time 43200                # 最大超时时间。
option domain-name-servers 8.8.8.8  # 定义DNS服务器地址,定义多个用逗号分开。
option domain-name "domain.org"     # 定义DNS域名,此域名会在客户端的 /etc/resolv.conf 配置文件中出现。
range                               # 定义用于分配的IP地址池。
option subnet-mask                  # 定义客户端的子网掩码。
option routers                      # 定义客户端的网关地址。
broadcast-address                   # 定义客户端的广播地址。
hardware ethernet                   # 指定网卡接口的类型与MAC地址。
fixed-address                       # 将某个固定的IP地址分配给指定主机
server-name                         # 向DHCP客户端通知DHCP服务器的主机名。

三. 启动

  • dhcpd服务启动
systemctl restart dhcpd
systemctl enable dhcpd
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload
  • 客户端配置:编辑配置文件/etc/sysconfig/network-scripts/ifcfg-ens33,修改如下两项,然后重启网络服务(systemctl restart network)。
BOOTPROTO=dhcp
ONBOOT=yes

四. 验证

  • 查看IP是否正确配置 ip addr
  • 查看/etc/resolv.conf是否正确配置
# /etc/resolv.conf
domain yuchaoshui.com
search yuchaoshui.com yuziyue.com
nameserver 114.114.114
nameserver 8.8.8.8
  • nameserver 指定域名服务器,且只有当第一个nameserver没有反应时才查询下面的nameserver
  • domain  声明主机的域名。当域名解析找不到结果时,进行域名补全,它只能配置一个。
  • search  声明主机的域名查询顺序。当域名解析找不到结果时,进行域名补全,它可以配置多个。
  • domainsearch不能共存,如果同时存在,后面出现的将会被使用。

正确的域名解析顺序是

  1. 查找/etc/hosts
  2. 根据nameserver查找域名。
  3. 如果在nameserver查找不到域名就进行searchdomain补全,重新走1~2步。

文章推荐