linux系统学习之搭建DHCP服务

linux系统搭建 DHCP服务

DHCP服务介绍

DHCP
英文全称(Dynamic Host Configuration Protocol) 《动态主机配置协议》
服务端口:UDP 67 - UDP 68
端口注解:客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。
主要功能:使网络环境中的主机动态的获得IP地址、掩码、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率,节约运维管理成本。
交互过程,如下图:
linux系统学习之搭建DHCP服务_第1张图片

第一步、
DHCP Client 发现阶段 :DHCP客户端寻找DHCP服务端的过程,对应于客户端发送DHCP Discovery,因为DHCP Server对应于DHCP客户端是未知的,所以DHCP 客户端发出的DHCP Discovery报文是广播包,源地址为 0.0.0.0 目的地址为 255.255.255.255。网络上的所有支持 TCP/IP 的主机都会收到该 DHCP Discovery报文,但是只有DHCP Server 会响应该报文。
第二步、
DHCP Server 提供阶段:为DHCP Server 响应DHCP Discovery所发的DHCP Offer 阶段,即 DHCP 服务器提供 IP 地址的阶段。在网络中接收到 DHCPdiscover 发现信息的 DHCP 服务器都会做出 响应,它从尚未出租的 IP地址中挑选一个分配给DHCP客户机,向DHCP 客户机发送一个包含出租的 IP 地址和其他设置的DHCPoffer 提供信息。
第三步、
DHCP Client 确认阶段:DHCP 客户机选择某台 DHCP 服务器提供的 IP 地址的阶段。如果有多台 DHCP 服务器向 DHCP客户机发来的DHCPoffer 提供信息,则 DHCP 客户机只接受第一个收到的 DHCPoffer 提供信息,然后它就以广播方式回答一个DHCPrequest 请求信息,该信息中包含向它所选定的DHCP服务器请求IP地 址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台 DHCP 服务器所提供的IP地址 。
第四步、
DHCP Server 确认阶段
: DHCP 服务器确认所提供的 IP 地址的阶段。当 DHCP 服务器收到 DHCP 客户机回答的 DHCPrequest 请求信息之后,它便向 DHCP 客户机发送一个包含它所提供的 IP 地址和其他设置的 DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
第五步、
DHCP Client 重新登录网络
:当DHCP Client重新登录后,就不需要再发送DHCP discover 发现信息了,而是直接发送包含前一 次所分配的 IP地址的 DHCP request 请求信息。当 DHCP 服务器收到这一信息后,它会尝试让 DHCP 客户机继续使用原来的 IP地址,并回答一个DHCP ack确认信息。如果此 IP地址已无法再分配给原来的 DHCP 客户机使用时(比如此 IP地址已分配给其它 DHCP 客户机使用),则 DHCP 服务器给 DHCP 客 户机回答一个DHCP nack 否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须 重新发送DHCP discover 发现信息来请求新的 IP地址。
第六步、
DHCP Client 更新租约
:DHCP获取到的IP地址都有一个租约,租约过期后,DHCP Server将回收该IP地址,所以如果DHCP Client 如果想继续使用该IP地址,则必须更新租约。更新的方式就是,当前租约期限过了一半后,DHCP Client 都会发送DHCP Renew报文来续约租期。

实验环境如下:
linux系统学习之搭建DHCP服务_第2张图片
1.1、安装DHCP
#使用Yum进行安装 DHCP
[root@server ~]# yum -y install dhcp
安装完毕,使用RPM -qa 查找配置文件
[root@server ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
[root@server ~]# vim /etc/dhcp/dhcpd.conf
打开/etc/dhcp/dhcpd.conf 配置文件,发现提示寻找模板配置文件,DHCP主程序包安装好后会自动生成主配置文件的范本文件。
#. DHCP Server Configuration file
#. see /usr/share/doc/dhcp*/dhcpd.conf.example
#. see dhcpd.conf(5) man page
1.2、启动DHCP 服务
[root@Server ~]# systemctl restart dhcpd
Job for dhcpd.service failed because the control process exited with error code. See “systemctl status dhcpd.service” and “journalctl -xe” for details.
此时启动会失败 原因:启动失败的原因是 dhcp 服务器配置的 IP 地址和默认配置文件里定义的地址段不相同,在启动DHCP服务之前,需要给DHCPServer 配置一个静态的 IP地址。
1.3、设置DHCP为开机自启
[root@Server ~]# systemctl enable dhcpd
1.4、查看DHCP当前状态
1.5、[root@Server ~]# systemctl status dhcpd
修改配置文件每行注解
linux系统学习之搭建DHCP服务_第3张图片
编辑完毕,Esc返回 : wq 保存退出
Server 端再次重启 DHCP 服务
[root@Server ~]# systemctl restart dhcpd
到此,服务端配置完毕!

客户端只需要重启网卡获取IP即可
[root@Client ~]# systemctl restart network

DHCP服务配置完成!

2020年5月13日_zcb

  • 完成任务

你可能感兴趣的:(linux,centos,运维,网络)