一DHCP简介:
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
2.DHCP服务器简介:
DHCP服务器指的是由服务器控制一段IP地址范围,客户端登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。


二.DHCP服务器的相关配置
我将虚拟机server作为dhcp服务器使用,利用destop进行测试
为了方便,将server主机名更名为dhcp.server.com,将desktop主机名更名为dhcp.test.com
下来,我们在dhcp.server.com这台主机上进行配置:
1.查看server的ip
linux之dchp搭建_第1张图片
2.查看DHCP服务的依赖包:
linux之dchp搭建_第2张图片
3.安装DHCP服务:
linux之dchp搭建
4.进行配置:

(1)开启dhcp服务

systemctl start dhcpd

(2)更改配置文件

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf
更改以下部分:

1 option domain-name "server.com";
域名:参见/etc/resolv.conf
2 option domain-name-servers 172.25.10.254;
指定dns服务器,多台用逗号隔开。
3 subnet 172.25.10.0 netmask 255.255.255.0
指定子网络及子网掩码
4 range 172.25.10.10 172.25.10.20;
指定IP范围
5 option routers 172.25.10.254;
指定网关
后面可以不要

下面是在dns.test.com上所做的配置:
(1)网络参数设置:
编辑/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
关键部位为dhcp
ONBOOT=yes
(2)重启网络:
systemctl restart network
在本次试验,我遇到了如下问题:执行该命令报错,无法通过DHCP服务器获得ip,解决思路为:DHCP通常是用于局域网内的一个通信协议,它主要通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会响应客户端的ip参数要求。所以DHCP服务器与客户端应该在同一个物理网段内。整个DHCP数据包在服务器与客户端间的交互情况如下图(1):
所以我猜测是防火墙阻止了数据包的传送
我采取的解决方法是:
两台虚拟机均执行命令:
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --reload
查看dhcp是否通行:
firewall-cmd --list-all
重启虚拟机后问题解决。


DHCP数据包在服务器与客户端间的交互情况示图
linux之dchp搭建_第3张图片


测试机通过DHCP服务器获得ip:
linux之dchp搭建
(3)将整个网络重启之后,如果执行的结果找到的正确的DHCP主机,那么以下几个文件可能会被修改。
1.查看/etc/resolv.conf
linux之dchp搭建_第4张图片
2.查看路由
linux之dchp搭建_第5张图片
3.查看服务器记录的DHCP信息
cat /var/lib/dhcpd/dhcpd.leases
linux之dchp搭建_第6张图片


三.配置文件详解

cat /etc/dhcp/dhcpd.conf
1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户

ddns-update-style 配置DHCP-DNS 互动更新模式。
default-lease-time 指定确省租赁时间的长度,单位是秒。
max-lease-time 指定最大租赁时间长度,单位是秒。
hardware 指定网卡接口类型和MAC地址。
server-name 通知DHCP客户服务器名称。
get-lease-hostnames flag 检查客户端使用的IP地址。
fixed-address ip 分配给客户端一个固定的地址。
authritative 拒绝不正确的IP地址的要求。


2.DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等
shared-network 用来告知是否一些子网络分享相同网络。
subnet 描述一个IP地址是否属于该子网。
range 起始IP 终止IP 提供动态分配IP 的范围。
host 主机名称 参考特别的主机。
group 为一组参数提供声明。
allow unknown-clients;deny unknown-client 是否动态分配IP给未知的使用者。
allow bootp;deny bootp 是否响应激活查询。
allow booting;deny booting 是否响应使用者查询。
filename 开始启动文件的名称. 应用于无盘工作站。
next-server 设置服务器从引导文件中装如主机名,应用于无盘工作站。


  1. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始
    subnet-mask 为客户端设定子网掩码。
    domain-name 为客户端指明DNS名字。
    domain-name-servers 为客户端指明DNS服务器IP地址。
    host-name 为客户端指定主机名称。
    routers 为客户端设定默认网关。
    broadcast-address 为客户端设定广播地址。
    ntp-server 为客户端设定网络时间服务器IP地址。
    time-offset 为客户端设定和格林威治时间的偏移时间,单位是秒。
    注意:如果客户端使用的是视窗操作系统,不要选择"host-name"选项,即不要为其指定主机名称