DHCP 详解(笔记)

一、DHCP

      DHCP 动态主机配置协议,局域网网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server)68(DHCP)。DHCP 通常备用与局域网环境,主要作用为集中管理,分配地址,是客户端动态的获得IP地址 ,gateway地址,DNS 服务器地址等信息,提高地址的使用率。

二、DHCP 协议报文

       

  • DHCP discover :客户端开始DHCP过程发送的包,是DHCP协议的开始
  • DHCP offer :服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息
  • DHCP requst :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用。
  • DHCP ack :服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。
  • DHCP nak :DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。
  • DHCP release :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址
  • DHCP inform :客户端发出的向服务器请求一些信息的报文
  • DHCP decline :当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止
    使用该IP地址。

     DHCP 的 工作流程:

DHCP 详解(笔记)_第1张图片

基本逻辑

  原则上DHCP SERVER是一直处在被动接受请求的状态,当有客户端请求时,服务器会读取获得客户端当前所在的状态以及客户端的信息,并在静态租约表和动态租约表中进行检索找到相应的表项,再根据客户端的状态执行不同的回复。当收到客户端的首次请求时,DHCP服务器先查找静态租约表;若存在请求的表项,返回这个客户的静态IP地址;否则,从IP地址池中选择可用的IP分配给客户,并添加信息到动态数据库中。此外,服务器将会周期性的刷新租约表写入文件存档,在这个过程中会顺便对动态租约表进行租期检查。

执行回复动作:

  • DHCPOFFER:
    • 静态租用:首先匹配MAC地址,看是否能在静态租约表中找到对应的项,若能找到就把IP分配给他。静态表中的IP不能被其他客户使用。   
    • 动态租用:
      • 1.server试图分配给client上次分配过的IP,在这之前检查这个IP是否正在使用。
      • 2.discover中含有request ip 时,检查该IP是否在地址池范围,是否正在使用,是否到期,是否是静态IP,网络上是否已经存在。
      • 3.discover不含request ip,从地址池上寻找一个最小的可用IP分配。
  • DHCPACK: 根据是否含有request ip和server ip识别客户端现在init_reboot,selecting,renewing/rebinding中的哪个状态,并根据以下规则执行DHCPACK回复:
    • 1.若client处于selecting状态,验证request ip和server ip是否同服务器中的匹配。
    • 2.若client处于init_reboot状态,验证request ip是否符合租约记录。
    • 3.若client处于renewing/rebinding状态,验证client ip address是否符合租约记录。
  • DHNAK:
    • 1.请求的IP是静态IP,但是MAC地址无法与其对应。
    • 2.上面DHCPACK中验证失败。  
  • 服务器还可能会收到其他包:
    • DHCPDECLINE:server会把租约表中相关client硬件地址置空,并保存这个地址一段时间。
    • DHCPRELEASE:清空租期回收IP。
    • DHCPINFORM:回复DHCPACK,数据包含有关于server的信息。


实验:DHCP服务器搭建。

              

PC1:    客户端1(克隆CentOS)

PC2:    客户端2(克隆CentOS)

Router:  模拟路由器(克隆CentOS)

DHCP 详解(笔记)_第2张图片

步骤

一.准备实验虚拟机:
  (1)克隆虚拟机
  (2)设置虚拟机网络模式
  (3)在虚拟机的虚拟网络编辑器中关闭VMnet1和VMnet8的DHCP服务
二.实验虚拟机配置
  (一)配置Router
    (1)修改主机名:    vim /etc/hostname
    (2)修改网卡配置信息: vim /etc/sysconfig/network-scripts/ifcfg-ens33
    (3)开启路由转发功能:  vim /etc/sysctl.d/99-sysctl.conf

  (二)配置DHCP服务器:
    (1)修改主机名:    vim /etc/hostname
    (2)修改网卡配置信息: vim /etc/sysconfig/network-scripts/ifcfg-ens33
    (3)配置DHCP服务:
      1)安装DHCP服务
      2)编辑配置文件:   vim /etc/dhcp/dhcpd.conf
      3)启动DHCP服务:  systemctl start dhcpd.service

  (三)配置客户端1
    (1)修改主机名:    vim /etc/hostname
    (2)修改网卡配置信息: vim /etc/sysconfig/network-scripts/ifcfg-ens33(设置成dhcp方式获取ip)
    (3)查看ip获取情况
    (4)查看DHCP服务器的IP分配情况:cat /var/lib/dhcpd/dhcpd.leases

  (四)配置客户端2
    (1)修改主机名:vim /etc/hostname
    (2)修改网卡配置信息: vim /etc/sysconfig/network-scripts/ifcfg-ens33(设置成dhcp方式获取ip)
    (3)DHCP中继服务测试
      1)配置中继服务文件:/etc/systemd/system/dhcrelay.service       2)开启中继服务: systemctl restart dhcrelay.service       3)DHCP中继: dhcrelay DHCP服务器IP -i ens37       4)不同网段连通性测试

DHCP思科网络配置

              实验目的

               1、理解DHCP的工作原理

                2、掌握DHCP服务端及客户端在cisco ios路由器的配置

               拓扑及需求

                DHCP 详解(笔记)_第3张图片

router的配置如下:

router#conf t

router(config)#int lo 0          

router(config-if)#ip address 1.1.1.1 255.255.255.255

router(config-if)#int e0/0

router(config-if)#ip address 192.168.1.254 255.255.255.0

router(config-if)#no sh

router(config-if)#ex

router(config)#service dhcp                 ///路由器开启DHCP

router(config)#ip dhcp excluded-address 192.168.1.254     ///网关是254,分配地址时需排除的IP地址 

router(config)#ip dhcp pool AAA     ///给地址池命名

router(dhcp-config)#network 192.168.1.0 /24     ///地址池的网络号

router(dhcp-config)#default-router 192.168.1.254     ///PC的网关地址

router(dhcp-config)#dns-server 8.8.8.8     ///DNS服务器的地址

/////////

PC#conf t

PC(config)#no ip routing 

PC(config)#int e0/0        

PC(config-if)#ip address dhcp     ///接口地址采用DHCP的自动获取

PC(config-if)#no sh

结果:

DHCP 详解(笔记)_第4张图片




你可能感兴趣的:(小知识点)