局域网的 网络协议,使用 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服务器