玩转企业常见应用与服务系列(三):动态主机配置协议 DHCP 原理与实践

2023-11-16 14:37:46 浏览数 (1)

前面介绍了企业常用服务 NFS 网络文件共享存储文件共享服务 FTP 原理与实践相关的知识点,今天我将详细的为大家介绍动态主机配置协议 DHCP相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发朋友圈支持一波!!!

DHCP概述

什么是DHCP?

DHCP全称为Dynamic Host Configuration Protocol,中文含义为“动态主机配置协议”,通常被应用在大型的局域网络环境中,主要作用是集中管理、分配IP地址,使网络环境中的主机动态获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP工作原理

DHCP划分IP地址的过程

DHCP 的租约过程,分为4个步骤:

  • 客户机发送DHCP Discovery 广播包
    • 客户机广播请求IP地址(包含客户机的MAC地址)。
  • 服务器响应DHCP Offer 广播包
    • 服务器响应提供的IP地址(不包含子网掩码、网关等参数)。
  • 客户机发送DHCP Request 广播包
    • 客户机选择IP(确认使用哪个IP)。
  • 服务器发送DHCP ACK 广播包
    • 服务器确定了租约,并提供网卡详细参数IP、子网掩码、网关、DNS、租期等。

DHCP报文

DHCP报文共有8个类型,具体如下:

  • DHCP DISCOVER:这是DHCP客户端首次登录网络时进行DHCP过程的第一个报文,用来寻找DHCP服务器。
  • DHCP OFFER:服务器用来响应客户端的DHCPDISCOVER报文,并指定相应的配置参数。
  • DHCP REQUEST:由客户端发送给服务器来请求配置参数或者请求配置确认或者续借租期。此报文用于以下三种用途。
  • 客户端初始化后,发送广播的DHCPREQUEST报文来回应服务器的DHCPOFFER报文。
  • 客户端重启初始化后,发送广播的DHCPREQUEST报文来确认先前被分配的IP地址等配置信息。
  • 当客户端已经和某个IP地址绑定后,发送单播的DHCPREQUEST报文来延长IP地址的租期。
  • DHCP ACK:服务器对客户端的DHCPREQUEST报文的确认响应报文,客户端收到此报文后,才真正获得了IP地址和相关的配置信息。
DHCP报文的另外4个类型
  • DHCP DELINE:当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址。
  • DHCP NAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文,比如服务器对客户端分配的IP地址已超过使用租借期限或者客户端移到了另一个新的网络。 DHCP INFORM:客户端已经获得了IP地址,发送此报文的目的是为了从服务器获得其他的一些网络配置信息,比如网关地址、DNS服务器地址等。
  • DHCP RELEASE:客户端可通过发送此报文主动释放服务器分配给它的IP地址,当服务器收到此报文后,可将这个IP地址分配给其它的客户端。

DHCP 租期

当每个动态划分的IP地址都是存在租期的,当地址的租期到达50%时,会单播发出REQUSET报文,向DHCP服务器发出更新请求,如果服务器接收到并对计算机进行单播回复,则更新成功,租期重新计时。

当50%时的请求服务器为回复,可以继续使用IP地址,当达到80%的时候,计算机就会进行广播发送RQUEST报文,如果时原DHCP服务器进行了回复(ACK报文),则租期重新计时,如果是其他DHCP服务器收到了,并对其进行了回复,则计算机与新DHCP服务器重新进行IP地址请求。

如果租期彻底结束,都为收到DHCP服务器的回复,规划的IP地址失效。

DHCP释放过程

计算机可以通过主动发送DHCP RELEASE报文,向服务器主动申请释放自身IP地址,服务器收到后,就会将该IP地址重新放回IP地址池中。

DHCP分类

自动分配方式(Automatic Allocation)

DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。

动态分配方式(Dynamic Allocation)

DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

手工分配方式(Manual Allocation)

客户端IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址划分给客户端主机(主要通过mac地址与IP进行绑定,即可做的指定设备获得指定IP的地址)

DHCP与手动配置IP的优缺点

手动配置可能由于人为因素错误率高,DHCP基本不会出错。

在网络环境较大,环境复杂的网络中,由于可能随时有新PC的接入,和大量的PC需要配置,人为手动配置效率低,而DCHP可以根据实际情况,实时配置IP地址。

对于dhcp,可以指定划分一定区域和可以控制网络接入设备数量,所以管理性比手动配置高。

安装与配置DHCP

环境准备

取消虚拟机dhcp服务

首先打开虚拟机界面上方的编辑–虚拟网络编辑器,新建一个vmnet3,取消“使用本地DHCP服务将IP地址分配给虚拟机”这个选项,保存设置,应用退出。

界面上方的虚拟机-设置,点击网络适配器进行修改,然后确定退出。

编辑网卡信息

代码语言:javascript复制
vim /etc/sysconfig/network-scripts/ifcfg-ens33  #配置静态IP
systemctl restart network                       #重启网卡
安装DHCP服务
代码语言:javascript复制
###为保证实验顺利,关闭防火墙和selinux
systemctl stop firewalld      #关闭防火墙
setenforce 0                  #关闭selinux
 
###安装dhcp
yum -y install dhcp
 
vim /etc/dhcp/dhcpd.conf      #打开dhcp配置文件
 
#
#DHCP Server configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
 
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#会看到该配置文件的路径在 /usr/share/doc/dhcp* 下,因此我们把该路径下的模板文件覆盖到 /etc/dhcp下

修改配置文件

代码语言:javascript复制
vim /etc/dhcp/dhcpd.conf
 
subnet 网段IP netmask 子网掩码 {      #声明要分配的网段地址
  range IP地址池起始IP  IP地址池终止IP;  #设置地址池
  option routers 默认网关IP;       #指定默认网关地址
  option domain-name-servers  DNS服务器IP;   #可选
  default-lease-time 默认租期秒数;            #可选
  max-lease-time 最大租期秒数;                #可选
}
  
host 自定义名称 {       #指定需要分配固定 IP地址的客户机名称
  hardware ethernet MAC地址用:分隔;   #指定该主机的 MAC地址
  fixed-address IP地址;      #指定保留给该主机的 IP地址
}
配置文件参数详细说明
代码语言:javascript复制
option domain-name "example.org"; //指定默认域名
option domain-name-servers 114.114.144.144,8.8.8.8; // 指定DNS服务器地址
default-lease-time 600;   //默认租期,客户机通过dhcp获取IP地址后使用这个IP的时间,单位秒(s)。
max-lease-time 7200; //最大租期,正常情况下,客户机在默认租期期间会通过续租来刷新租期,当如果在客户机突然宕机,DHCP服务器并不会立即知晓,会保留这个IP地址,会等到最大租约时间过了,才会将IP地址收回到地址中。
ddns-update-style none;          //禁用DNS动态更新
//注以上是配置均是全局配置,作用是如果针对网段声明时,如果网段声明中没有,则会使用全局配置。
subnet 192.168.100.0 netmask 255.255.255.0 { //作用用声明的整网段,部分配置参数优先级高于全局配置
  range 192.168.100.10 192.168.100.20;      //声明IP地址池范围
  option domain-name-servers 192.168.100.2 //声明网段指定dns服务器地址
  option domain-name "internal.example.org"; //声明网段指定dns域名
  option routers 10.5.5.1;                   // 指定网关
  option broadcast-address 10.5.5.31;   // 指定广播地址
  default-lease-time 600;              //指定声明网段默认租期
  max-lease-time 7200;                 //指定声望的的最大租期
}
host pc1 {                             //主机声明,指定主机的主机名
  hardware ethernet 54:89:98:3E:67:EB ;  //指定需要分配固定IP的mac地址
  fixed-address 192.168.100.15;          // 指定给主机的IP地址
}

启动DHCP服务

代码语言:javascript复制
systemctl start dhcpd  #启用DHCP服务
 
ss -lunp | grep 67     #查看DHCP服务,67是服务端使用的udp端口
测试DHCP服务

同上,将windows10网络适配器修改为vmnet3。打开windows系统的网络连接窗口。

右击Ethernet0,点属性;选中(TCP/IPv4),点右下角的属性,选择自动获得IP地址,然后确定。

进入cmd命令指示符

代码语言:javascript复制
ipconfig /release      #释放IP地址
ipconfig /renew        #重新获取IP地址

可以看到,现在系统的IPv4地址变为了192.168.88.100;默认网关变为了192.168.88.254;IPv4 DHCP服务器变为了192.168.88.10;均符合上述设置,证明DHCP部署成功。

总结

DHCP并不难理解,首先就是DHCP的模式是典型的C/S模式,所以就可以将配置DHCP进行分开,主要配置在DHCP服务器上,DHCP服务器的主要参数有default-lease-time(默认租期),max-lease-time(最大租期)、option domain-name(指定dns域名)、option domain-name-servers(指定dns域名服务器)、subnet x.x.x.x netmask x.x.x.x { }(什么IP地址池),地址池中配置有range(地址池范围)、option routers(指定网关)等。

当开启dhcp过程中,会对dhcp服务的配置进行读取,如果遇到错误会提示错误,详细错误可以通过,systemctl status dhcpd查看详细报错。

参考链接:https://blog.csdn.net/q1y2y3/article /details/130203248 https://blog.csdn.net/ weixin_46514551/article/details/125253712

推荐阅读 点击标题可跳转

10 分钟快速构建一套虚拟开发环境,效率神器!

弃用 Docker !事实证明,它更牛逼。。。

还是决定去华为了!!!

坐不住了!985 高校也开始裁员了。。。

突发!又一科技巨头宣布退出中国市场!

面试官:如何将多个容器暴露到一个端口上?

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

0 人点赞