DHCP 动态主机配置协议 Dynamic Host Configuration Protocol

局域网的 网络协议,使用 UDP协议工作, 主要有两个用途:给内部网络或 网络服务供应商自动分配 IP地址,给用户或者内部 网络管理员作为对所有 计算机作中央管理的手段,端口:udp 67:服务器端 ;udp 68:客户端

DHCP具有以下功能:

1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。

2. DHCP应当可以给用户分配永久固定的IP地址。

3. DHCP应当可以同用其他方法获得IP地址的 主机共存(如手工配置IP地址的主机)。

4. DHCP 服务器应当向现有的BOOTP 客户端提供服务。

DHCP有三种机制分配IP地址:

1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。

2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

(3)DHCP的租用请求

请求 客户端 ---DHCP discover--》 服务器端(地址池)     广播

提供 客户端 ---DHCP offer-----》 服务器端            广播

选择 客户端 ---DHCP request---》 服务器端            广播

确认 客户端 ---DHCP ack-------》 服务器端            广播


实验 一


1、服务器端配ip,客户端为自动获取,绑网段,关闭防火墙,关闭selinux


2、服务器端:安装程序包 dhcp

   客户端:安装程序包  dhclient


3、搭建单区域的DHCP服务器

(1)DHCP服务器要有一个固定的ip地址

(2)DHCP第一个地址池与服务器同网段


修改配置文件 /etc/dhcp/dhcpd.conf


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


[全局设置]

#7 DNS解析域名

#8 DNS的全称域名或IP地址

#10 默认租期 秒

#11 租期上限

#22 日志


[新建一个地址池] 与DHCP相同网段的地址池 

#47 subnet IP netmask 子网掩码 {

#48 range(IP地址范围);

#49 option domain-name-servers DNS服务器;

#50 option domain-name "全称域名",DNS解析的区域

#51 option routers 网关;

#52 option broadcast-address 广播地址;

#53 default-lease-time 600;租期600s

#54 max-lease-time 7200;租期上限

#55 }


此外

option ntp-server  ip地址     NTP时间服务器(时间同步)

option netbios-name-servers  ip地址  wins服务器(主机名与IP地址的解析)


重启服务

#systemctl restart dhcpd

#systemctl enable dhcpd

#systemctl status dhcpd


客户端验证

dhclient -r 网卡名 释放IP地址

dhclient -v 网卡名 获取IP地址


客户端与服务器端的记录文件

服务器端:/var/lib/dhcpd/dhcpd.leases

客户端:/var/lib/dhclient/dhclient.lease


实验 二

【给某个客户端分配固定的IP地址】

ip捆绑:ip与客户端的MAC地址做捆绑

vim /etc/dhcp/dhcpd.conf


#75 host 保留名称(例:boss) 新建一个保留,保留名为boss

#76 hardware ethernet 00:0c:29:6f:ce:4d;指定客户端的MAC地址

#77 fixed-address 192.168.10.25;指定要捆绑的IP地址(该地址必须在所建的地址池的地址范围中)

#78 }

保存退出

重启服务验证


实验 三

DHCP中继代理


实验拓扑图:客户端1 ;DHCP --- 路由器 --- DHCP中继 ;客户端2


实验:


跨网段分配,DHCP中继  安装dhcp安装包


1、DHCP服务器:配网关,绑网段,新建20.0段地址池


vim /etc/dhcp/dhcpd.conf  新建20.0地址池,重启服务




2、路由:配ip,绑网段,开启路由转发功能


vim /usr/lib/sysctl.d/00-system.conf

最后一行追加

net.ipv4.ip_forward = 1

保存退出


重启网络服务

#systemctl restart network


查看路由转发是否开启

#cat /proc/sys/net/ipv4/ip_forward

1 -- 开启 ;0 -- 不开启


3、中继代理服务器:配ip,绑网段,配网关,开启中继代理功能

(1)安装程序包 dhcp

(2)开启代理功能

a、临时开启

#dhcrelay -i eno16777736 192.168.10.2

-i:指定哪块网卡提供中继代理服务

网卡名后指定DHCP服务器的IP地址


b、永久开启

vim /usr/lib/systemd/system/dhcrelay.service

#ExecStart = /usr/sbin/dhcrelay -d --no-pid -i eno16777736 +DHCP服务器的IP地址

保存退出

重启服务

#systemctl restart dhcrelay

#systemctl status dhcrelay

#systemctl daemon-reload  加载systemd


4、两台客户端:绑网段,设置为动态获取


<以上需要5台机器>


若中继代理开在路由器上


1、在路由器:安装程序包dhcp


2、开启代理功能(路由器上开中继,路由器上有几个网卡都要写上)

a、临时开启

#dhcrelay -i eno16777736 -i eno33554960 192.168.10.2

-i:指定哪块网卡提供中继代理服务

网卡名后指定DHCP服务器的IP地址


b、永久开启

vim /usr/lib/systemd/system/dhcrelay.service

#ExecStart = /usr/slib/dhcrelay -d --no-pid -i eno16777736 -i eno33554984 DHCP服务器的IP地址

保存退出

重启服务

#systemctl restart dhcrelay

#systemctl status dhcrelay

#systemctl daemon-reload  加载systemd


以上的DHCP服务器是用虚拟机,一般生产都是用路由器来做DHCP服务器