DHCP基础知识

  • 什么是DHCP?

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。主要是用来给网络客户机分配动态IP地址、子网掩码、网关地址、DNS服务器地址。

  • DHCP的主要功能

    • ①给内部网络或网络服务供应商自动分配IP地址。
    • ②给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
  • DHCP的优点

    • DHCP避免了由于需要手动在每个计算机上输入值而引起的配置错误。DHCP还有助于防止由于在网络上配置新的计算机时重新使用以前已分配的IP地址而引起的地址冲突。
    • 使用DHCP服务器可以大大降低用于配置和重新配置网上计算机的时间。可以配置服务器,使其在分配地址租约时提供全部的其他配置值,如:网关地址、DNS服务器地址等。
    • DHCP租约续订过程中,有助于确保客户端计算机配置需要经常更新的情况,如:使用移动设备频繁封盖位置的用户。
  • DHCP常用的术语

    • ①DHCP服务器:提供DHCP服务的计算机。
    • ②DHCP客户端:启用DHCP设置的计算机,就是需要DHCP服务的设备。
    • ③作用域:一个完整连续的可用IP地址范围,DHCP服务主要就是通过作用域来管理网络分布,IP地址分配及其它相关配置参数。
    • ④超级作用域:管理级的作用域集合,用于支持同一物理网络上的多个逻辑IP子网,超级作用域包含子作用域的列表,对子作用域进行统一管理。
    • ⑤排除范围:排除范围是作用域内从DHCP服务中排除的有限IP地址序列,排除范围确保在这些范围中的任何地址都不是由网络上的服务器提供给DHCP客户机,(就相当于保留地址,比如网络中网络打印机地址需要固定,就不能把这个地址再给客户机)
    • ⑥地址池:在定义DHCP作用域并应用排除范围之后,剩余的地址在作用域内形成可用地址池,就是作用域中可用IP的范围,这时的地址才可以由DHCP服务器动态分配给DHCP客户端使用。
    • ⑦租约:客户计算机可以使用动态分配IP地址的时间,这个时间可以由DHCP服务器设置。当一台客户机发出租约后,此租约被看作是活动的,在租约终止前,客户机可以向DHCP服务器请求更新其租约。当租约到期或被服务器删除后,就变动不活动的了,租约的持续时间决定了租约什么时候终止及客户机隔多久向DHCP服务器更新其租约 。
    • ⑧预约:创建从DHCP服务器客户机的永久地址租约指定,预约可以保证子网上的特定设备总是使用相同的IP地址(如网络打印机的IP,DHS服务器的等)
    • ⑨选项类型:当DHCP服务器向DHCP客户机提供租约服务时可以指定的其它客户机的配置参数,典型的这些选项类型由各个作用域启用和配置。大多数选项在RFC21232中预定了,如需要,可以在DHCP管理器定义并添加自定义选项类型。
    • ⑩选项类别:DHCP服务器用于进一步提供给客户机的选项类型的方法,选项类别可以在用户的DHCP服务器上配置以提供特定的客户机支持。
  • DCHP的工作流程

    客户机首次获取IP租约,需要经过4个阶段与DHCP服务器建立联系。

    • IP租用请求:客户机通过UDP端口67广播一个DHCPDISCOVER信息包,向网络上的任意一个DHCP服务器请求提供IP租约。
    • IP租用提供:网络上所有的DHCP服务器均会收到此信息包,每台DHCP服务器通过UDP端口68给客户机回应一个DHCPOFFER广播包,提供一个IP地址。
    • IP租用选择:客户机收到多台DHCP服务器的OFFER后,会选择第一个收到的OFFER包,并向网络广播一个DHCPREQUEST消息包,表明自己已接受了一个DHCP服务器提供的IP地址。该广播包中包含所接受的IP地址和服务器的IP地址。
    • IP租用确认:被客户机选择的DHCP服务器在收到REQUEST广播后,会广播给客户机一个DHCPACK消息包,表明接受客户机的选择,并将这一IP地址的合法租用以及其他配置信息放入广播包发给客户机。客户机收到ACK包后配置TCP/IP,租用过程完成,可以在网络中通信。
  • DHCP客户的IP租约更新(续约)

    取得IP租约后,客户机必须定期更新租约,否则租约到期就不能继续使用IP地址。按照默认规定,每当租用时间超过租约的50%和87.5%时,客户机就必须发出REQUEST信息包,向服务器请求更新租约。

  • DHCP中继代理(dhcprelay)
    当DHCP服务器的IP地址要与分配的IP地址不在一个子网时,需要一个支持DHCP请求转发的硬件路由器,如果没有,就需要在DHCP服务器的子网上架设DHCP中继代理。

  • DHCP分配地址的方式

    • ①自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
    • ②动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
    • ③手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

DHCP相关配置文件

  • DHCP守护进程: /usr/sbin/dhcpd
  • DHCP中继代理守护进程:/usr/sbin/dhcrelay
  • DHCP服务单元配置文件:/usr/lib/systemd/system/dhcpd.service
  • 主配置文件(IPv4):/etc/dhcp/dhcpd.conf
  • DHCP租约文件(IPv4):/var/lib/dhcpd/dhcpd.leases
  • 主配置文件模板(IPv4):/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

DHCP 主配置文件

DCHP安装结束后, DHCP 端口监听程序 dhcpd配置文件是/etc/dhcp目录中的名为dhcpd.conf的文件。dhcpd.conf文件通常包括三部分:parameters、declarations 、option。

  • ①DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。主要内容如下:

    ddns-update-style 说明:配置DHCP-DNS 互动更新模式。

    default-lease-time 说明:指定默认地址租赁时间的长度,单位是秒。

    max-lease-time 说明:指定最大租赁时间长度,单位是秒。

    hardware 说明:指定网卡接口类型和MAC地址。

    server-name 说明:通知DHCP客户服务器名称。

    get-lease-hostnames flag 说明:检查客户端使用的IP地址。

    fixed-address ip 说明:分配给客户端一个固定的地址。

    authritative 说明:拒绝不正确的IP地址的要求。

  • ② DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等。主要内容如下:

    shared-network 说明:用来告知DHCP服务器某些IP子网其实是共享同一个物理网络,在此声明可以使用多个subnet声明多个逻辑子网络。

    subnet 说明:描述一个IP地址是否属于该子网。

    range 起始IP 终止IP 说明:提供动态分配IP 的地址范围。

    host 主机名称 说明:为特定的DHCP客户机提供IP网络参数。

    group 说明:为一组参数提供声明。

    allow unknown-clients ﹔deny unknown-client 说明:是否动态分配IP给未知的使用者。

    allow bootp;deny bootp 说明:是否响应激活查询。

    allow booting﹔deny booting 说明:是否响应使用者查询。

    filename 说明:开始启动文件的名称,应用于无盘工作站。

    next-server 说明:设置服务器从引导文件中装如主机名,应用于无盘工作站。

  • ③ DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始,主要内容如下:

    subnet-mask 说明:为客户端设定子网掩码。

    domain-name 说明:为客户端指明DNS名字。

    domain-name-servers 说明:为客户端指明DNS服务器的IP地址。

    host-name 说明:为客户端指定主机名称。

    routers 说明:为客户端设定默认网关。

    broadcast-address 说明:为客户端设定广播地址。

    ntp-server 说明:为客户端设定网络时间服务器的IP地址。

    time-offset 说明:为客户端设定与格林威治时间的偏移时间,单位是秒。

项目实施

流程:

(1)安装DCHP服务程序

(2)编辑主配置文件dhcpd.conf ,指定IP作用域。

(3)建立租约数据库文件。

(4)重新加载配置文件或重新启动DHCP服务使配置文件生效。

  • 安装DHCP服务

    • 查看可安装的DHCP软件包信息。
      yum info dhcp
      图片说明
    • 安装DHCP软件包
      yum -y install dhcp
    • 查看系统有没有安装DHCP
      rmp -ql dhcp
    • 查看安装状况
      rpm -qa|grep dhcp
  • 配置举例

    dhcpd.conf 是DHCP服务的配置文件,DHCP服务所有参数都是通过修改dhcpd.conf 文件来实现,安装后dhcpd.conf 是没有做任何配置的,将/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 复制为/etc/dhcp/dhcpd.conf 文件进行配置。

    ddns-update-style none; #定义所支持的DNS动态更新类型(必选)
    ignore client-updates;  #忽略客户机更新DNS记录
    Default-lease-time  18000; #默认租约时间为18000秒;最大租约时间为36000秒
    Max-lease-time  36000;
    subnet 192.168.1.0 netmask 255.255.255.0 { #定义作用域(IP子网)
      range 192.168.1.10   192.168.1.199;      #给客户端分配地址的范围
      option routers 192.168.1.1;           #为客户端指定网关
      option subnet-mask 255.255.255.0;     #为客户端指定子网掩码 
      option domain-name “qp.com”;              #为客户端指定DNS域名
      option domain-name-servers 192.168.1.1, 192.168.1.251; #为客户端指定DNS服务器的IP地址
      option ntp-servers   192.168.1.1; #为客户端设置网络时间服务器的IP地址
       host  STU     {                            # 备注名称,可以自行定义。       
          hardware ethernet  00:A0:78:8E:9E:AA;   #静态绑定mac和ip       
          fixed-address 192.168.1.250;        
       }                                        #固定分配的地址 
       next-server 192.168.1.252;              #远程启动服务器地址
       filename "pxelinux.0";                  #获取远程启动服务器地址后下载pxelinux.0这个文件
    }
  • DHCP配置检查与服务启动

    #dhcpd –t                   #检查配置文件语法的正确性
    #systemctl enable dhcpd     #设置开机启动
    #systemctl start dhcpd      #启动dhcp服务
    #systemctl status dhcpd     #查看DHCP服务状态