搭建DHCP服务器

DHCP搭建流程以及知识点罗列
一.基本知识点概述
1.概念
DHCP英文全称:Dynamic Host configuration Protocol,动态主机分配协议,是一个局域网的网络协议,属于应用层的协议。它主要通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会响应客户端的IP参数要求。
2.建立条件
①.拥有真实的物理网卡,或者拥有连接广播域的真是物理网卡;
②.该接口或者物理网卡必须拥有一个合理的IP地址
③满足C/S架构-----客户端和服务端
3.DHCP的八种数据报文
(1)DHCP Discover
DHCP客户端请求地址的时候,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内部以广播的形式发送请求报文,这个报文就是Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置
(2)DHCP Offer
服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的配置信息(如网关,DNS服务器等),构造一个Offer报文,发送给用户,告知用户本服务器可以为其提供IP地址
(3)DHCP Request
客户端通常会选择第一个收到Offer报文的服务器作为自己的目标服务器,并且回应一个Request报文;在DHCP中会有一个租约信息,而当客户端成功获取IP地址后,会在地址使用租期过去1/2时后,回想DHCP服务器发送单播Request报文延续租期,如果没有收到DHCP Ack报文,在租约时间过去3/4时,会再次发送广播Request报文延续租期
(4)DHCP Ack
DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录(即之前的预分配过程中登记的那个MAC),如果有则发送ACK报文作为回应,通知用户可以使用分配的IP地址。
(5)DHCP NAK 否定应答
如果DHCP服务器收到Request报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则发送NAK报文作为回应,通知用户无法分配合适的IP地址。
(6)DHCP Release (释放)
当用户不再需要使用分配IP地址时,就会"主动"向DHCP服务器发送Release报文,告知服务器用户不再需要分配IP地址,DHCP服务器会释放被绑定的租约(在数据库中清除某个MAC对某个IP的租约记录,这样,这个IP就可以分配给下一个请求租约的MAC)
(7)DHCP Decline(拒绝)
DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的IP地址不可用,我们在手工设置静态IP、或者DHCP分配中有时会遇到"检测到IP冲突"的提示就是因为客户端利用ARP机制来在当前内网中确认当前指定的IP是否已经被占用
(8)DHCP Inform
DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端。
**注意:**在这里存在一个思想,先进先出,当存在多台DHCP 服务器时,客户端将会使用最先收到的信息,因为IP地址请求是以实时性为要求实现的。
4.DHCP的三种分配IP地址的方式
(1)自动分配
DHCP服务器为客户端下放一个永久的IP地址,一旦客户端第一次成功的从服务器租用到IP地址后,就可以永久的使用该地址
(2)动态分配方式
DHCP服务器会给客户端指定一个具有时间限制的IP地址,时间到期或客户端主机自动放弃该地址后,这个地址可以被其他的客户端主机使用
(3)手工分配方式
由网络管理员自己指定。
5.工作原理
DHCP协议采用UDP作为传输协议,客户端主机发送消息到DHCP服务器的67号端口,DHCP服务器回应消息给主机的68号端口。
概述:
①客户端利用广播包发送搜索到DHCP服务器,而因为客户端不知道自己属于哪一个网络,所以这个数据包的数据报文的第三层中源IP为0.0.0.0 ,目标IP为255.255.255.255,一般的主机收到该消息会直接丢弃,而当网络中存在DHCP服务器时,将会进行下一步的操作。
②DHCP服务器在监听到客户端发出的DHCP discover广播后,会根据这个客户端进行单播通讯,将地址下放给该客户端。
③客户端决定选择使用DHCP服务器提供的网络参数租约并向服务器确认。并且客户端还会发送一个DHCP discover广播数据包给该物理网段内的所有主机,告知已接受该服务器的租约,同时客户端还会再次发送一个ARP包,查询该地址有没有被别的主机使用,若被占用,将会重新发送DHCP discover信息
④服务端会记录盖茨租约行为并向客户端发送响应数据报文来确认客户端的使用
二.搭建方法以及过程
1.软件安装
#yum install dhcp-server -y
DHCP服务器的示例文件 /usr/share/doc/dhcp-server/dhcpd.conf.example
这里我们可以通过#rpm -ql dhcp-server来进行查看然后再进入再通过#vim /etc/dhcp/dhcp.conf,在末行模式下进行直接编辑

在这里插入图片描述
注意:我这里所说的软件安装是基于yum仓库源文件定义完成之后操作的,后期文章会编写关于这些基本操作的知识点。
2.配置文件格式说明
DHCP服务器主要配置文件路径:/etc/dhcp/dhcp.conf

编写配置文件的规范:
(1)除了大括号后面的,其余每一行配置都要在最后面以“;”结尾。
(2)配置项目的语法i形式主要是“参数代号 配置内容”------------也就是通常所说的键值对形式
(3)某些配置项目必须以option来定义,基本形式为“option 参数代码 配置内容”
在这里插入图片描述
这里我将这些参数做一些解释:
subnet 10.5.5.0 netmask 255.255.255.224 { ------声明网段和掩码
range 10.5.5.26 10.5.5.30; ----------指定地址池范围
option domain-name-servers 114.114.114.114 ;----------------指定DNS
option subnet-mask 255.255.255.0; --------------指定掩码
option routers 10.5.5.1; ---------------指定网关
default-lease-time 600; -----------默认租约
max-lease-time 7200; -------------------最大租约
}
3.具体操作
在今后的Linux操作系统学习中,我们无非就是去不断的搭建各种协议啊之类的东西,所以我们应该养成一个比较好的思维方式。这种思维方式也能很好的锻炼我们,以至于我们不管在做什么事情之前都有一个良好的思考能力和逻辑的解决方法,可以说是很有用的。下面我以这个搭建DHCP服务器为例来具体阐述一下
①首先要搭建DHCP服务器,我们就必须得满足最基本的条件:合理的IP即同一种网络模式(桥接或者仅主机都可)以及C/S架构
在这里插入图片描述
在这里插入图片描述

②安装DHCP服务软件包
在这里插入图片描述
③关闭防火墙,selinux这两种安全机制
在这里插入图片描述
这里我们常用到命令有
#getenforce -----查看目前selinux状态
或者也可以直接在/etc/selinux/config这个配置文件中直接将selinuxde状态改为permissive警告状态
#systemctl 系统控制命令后面可以跟start启动、restar重启t、stop停止、enable开机启动、disable开机不启用、status状态等
#systemctl status 文件名 可以查看目前文件的状态
这些都还是比较常用的命令,我做一些小小的总结
④根据需求自定义配置文件
在这里插入图片描述
在这里插入图片描述
**注意:**我们在对配置文件做了一些修改的时候必须重启一下服务,才可以正常运行,我这里使用的是八版本的,有些七版本的则不用。
⑤测试
在客户端主机上先手动关闭默认的DHCP功能,
在这里插入图片描述

然后通过正常的正常的地址请求就可以查看能否正常获取到IP了

在这里插入图片描述
个人心得:我在接触了一些网络实验以及Linux操作系统实验后,总结出了一个对我来说比较有用的学习方法,那就是逻辑思维能力,这是一个很重要的思想,它能锻炼我们在遇到问题时可以有条不紊的去剖析它,从而一步步的解决,这种思想的养成就是要靠我们在做事情前有目的的去从全局来思考,然后再脑海中搭建一个模糊的框架,然后一层一层的进行处理,从而达到我们的目的。慢慢的会发现,不管是遇到难题还是难事的时候,都能达到一种心中有乾坤的状态,也能培养我们的大局观。


版权声明:本文为moukai123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。