DHCP 原理与配置

Posted stranger_hello

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DHCP 原理与配置相关的知识,希望对你有一定的参考价值。

DHCP基础

一、DHCP介绍

  • 1、DHCP 产生的背景

    • 手工配置网络参数存在的问题
      • 容易出错
      • 灵活性差
      • 工作量大
      • IP地址资源利用率低
    • DHCP相对于静态手工配置的有点
      • 效率高
      • 灵活性强
      • 易于管理
      • IP地址利用率高
      • 避免IP地址冲突
  • 2、DHCP 报文

    文类型含义
    HCP DISCOVER 1客户端用来寻找DHCP 服务器
    HCP OFFERDHCP服务器用来相应DHCP discover 报文,此报文携带了各种配置信息
    HCP REQUEST客户端请求配置确认,或者续借租期
    HCP ACK服务器对REQUEST 报文的确认响应
    HCP NAK服务器对REQUEST 报文的拒绝响应
    HCP RELEASE 2客户端要释放地址时用来通知服务器
  • 3、DHCP 基本工作过程

    • 获取IP地址


- 发现阶段: 客户机向局域网内广播一个DCHP Discover报文,寻求DHCP Server并请求IP地址。 如果局域网内存在多台DHCP Server 那么都将收到这个DHCP Discover报文,并进行回复
- 提供阶段:每一个接收到DHCP Discover消息的DHCP Server都会从自己维护的地址池中选择一个合适的IP地址,并通过DHCP Offer消息将这个IP地址发送给DHCP Client。DHCP Server是以单播的方式来发送DHCP Offer消息的。
- 请求阶段:请求阶段客户端会在受到的若干个DHCP Offer包中根据某种运行规则选择其中一个, 默认选择收到的第一个DHCP Offer 并广播回复一个DHCP Request 包,这个包中含有DHCP Offer消息中提供的IP地址和所选择的的DHCP 路由器的Sever标识(称为Server identifier),当收到这个DHCP Server收到Request包后发现带有自己的Server identifier,标识客户端愿意接收自己的Offer。其他的服务器则放弃这次IP分配,收回发出的Offer,那么Offer中带有的IP地址也可以给其他客户机使用了。
- 确认过程: DHCP Server会向PC上的DHCP Client发送一个DHCP Ack消息。注意,DHCP Server也可能会向PCt发送一个DHCP Nak消息。如果PC接收到了DHCP Nak消息,就说明这次获取IP地址的尝试失败了,需要重新回到发现阶段开始新一轮的地址申请。

非常有意思的是,这个IP地址的申请过程类似于一个岗位招聘,人事就是PC 求职者就是DHCP Server,你在招聘市场发布一个招聘信息(广播-发现阶段),求职者都会收到这条信息并私信你一个Offer简历(单播-提供阶段)。你在收到的简历中进行比较,确认你要和哪一个人签约,你会在招聘市场公开回复这个职位已经招聘满了,所有向你求职的人都会收到这个消息,其中被你录取的人收到的消息中就包含你提供的入职信息,最后如果这个人愿意到你们公司那么会回复你一个确认,如果不愿意过来则会回复一个拒绝,那么你就需要重新发起招聘。

  • 续租IP地址

    • IP租约期限达到50%时,DHCP客户端会请求更新IP地址租约
    • IP租约期限达到87.5%时,还没收到服务器响应,会申请重新绑定IP
    • 当IP地址分配的时候没有指定租期时,默认为一天。
  • IP地址释放

    ​​​​​​
    • 如果IP地址租约到期还没有收到服务器相应,客户端停止使用此IP地址
    • 如果DHCP客户端不在使用分配的IP地址,也可以主动向DHCP服务器发送DHCP Release 报文,释放该IP地址
  • DHCP如何预防IP地址冲突

    • 在客户端完成获取IP地址四部曲后,会有一个小的检测动作。
    • 客户端会在网络中发送一个消息,其中源mac、源ip均为自己,目的mac为全0,客户端希望永远没有人回复这个消息,因为这样就代表自己的IP地址没有冲突,如果有人回复了,客户端就会拒绝使用这个IP并重新获取一个IP。
客户端 李四 王五 服务器 你好!如果和我的IP地址一样请回复我哦 你好!如果和我的IP地址一样请回复我哦 IP一样,回复张三 IP不一样,丢弃 如果没人回复 我,我就可以 用这个IP了. 泥坑我,这个IP地址有人用了,我不接受这个IP。 Decline 客户端 李四 王五 服务器

二、DHCP配置

  • 1、基于接口的DHCP配置

[Huawei]dhcp enable
[Huawei]interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 10.1.1.254
[Huawei-GigabitEthernet0/0/0]dhcp select interface
[Huawei-GigabitEthernet0/0/0]dhcp server dns-list 10.1.1.253	
[Huawei-GigabitEthernet0/0/0]dhcp server excluded-ip-address 10.1.1.253
[Huawei-GigabitEthernet0/0/0]dhcp server lease day 2
  • 2、基于全局的DHCP配置


DHCP Server配置

[DHCP-Server]dhcp enable
[DHCP-Server]ip pool test
Info: It's successful to create an IP address pool.
[DHCP-Server-ip-pool-test]network 10.1.1.0 mask 24
[DHCP-Server-ip-pool-test]gateway-list 10.1.1.254
[DHCP-Server-ip-pool-test]dns-list 10.1.1.253
[DHCP-Server-ip-pool-test]lease day 2		
[DHCP-Server-ip-pool-test]excluded-ip-address 10.1.1.253
[DHCP-Server-ip-pool-test]static-bind ip-address 10.1.1.15 mac-address 5489-9850-24B0
[DHCP-Server-ip-pool-test]quit
[DHCP-Server-ip-pool-test]interface GigabitEthernet0/0/0
[DHCP-Server-ip-pool-test]dhcp select global

DHCP Client路由器配置

[DHCP-Client]dhcp enable 
[DHCP-Client]int g0/0/0
[DHCP-Client-GigabitEthernet0/0/0]ip add dhcp-alloc 

验证配置

  • 3、命令讲解

  • display ip pool //可以验证你的DHCP配置
  • DHCP Server //配置基于接口的地址分配方式,只会响应该接口接收的DHCP请求;配置 基于全局地址池的地址分配方式,可以响应所有端口接收的DHCP请求。
  • dhcp enable //使能DHCP功能,在配置DHCP服务器时必须先执行该命令,才能配置DHCP的其他功能并生效 *
    • ip pool test //设置一个名为test的全局地址池
    • gateway-list 10.1.1.254 //设置分配的网关IP
    • network 10.1.1.0 mask 255.255.255.0 //设置分配的地址网段
    • excluded-ip-address 10.1.1.253 //设置不参与自动分配的IP地址范围
    • lease day 3 hour 0 minute 0 //设置地址池中IP地址的租用有效期限,默认1天
    • dns-list 10.1.1.253 //设置分配的DNS服务器地址
    • static-bind ip-address <ip地址> mac-address <mac地址> //绑定固定主机IP地址
  • interface GigabitEthernet0/0/0
    • dhcp select global //接口下使能全局方式分配地址
    • dhcp select interface //使能接口分配地址方式且关联接口地址池
  • [DHCP-Client-GigabitEthernet0/0/0]ip add dhcp-alloc //接口使用dhcp获取IP地址

三、DHCP Relay

  • 1、DHCP Relay产生的背景

    • DHCP Discover、DHCP Offer等消息都是以广播报文的方式发送的,也就是说,DHCP Client和DHCP Server必须在同一个二层广播域中才能接收到DHCP消息。DHCP消息无法跨越二层广播域传递。
    • 一个实际的IP网络通常都包含了多个二层广播域,如果需要部署DHCP,那么可以有两种方法:
      • 方法一:

        在每一个二层广播域中都部署一个DHCP Server(代价太大,现实中一般不推荐此方法)。
      • 方法二:

        部署一个DHCP Server来同时为多个二层广播域中的DHCP Client服务,这就需要引入DHCP Relay。

  • 2、DHCP Relay工作原理

  • DHCP Relay的基本作用就是专门在DHCP Client和DHCP Server之间进行DHCP消息的中转。
  • 如图所示,DHCP Client利用DHCP Relay来从DHCP Server那里获取IP地址等配置参数时,DHCP Relay必须与DHCP Client位于同一个二层广播域,但DHCP Server可以与DHCP Relay位于同一个二层广播域,也可以与DHCP Relay位于不同的二层广播域。DHCP Client与DHCP Relay之间是以广播方式交换DHCP消息的,但DHCP Relay与DHCP Server之间是以单播方式交换DHCP消息的(这就意味着,DHCP Relay必须事先知道DHCP Server的IP地址)。
  • 3、DHCP Relay配置方法


    DHCP-Server配置

      [DHCP_Server]dhcp enable
      [DHCP_Server]ip pool test 										//仅为DHCP地址池名称
      [DHCP_Server-ip-pool-test]gateway-list 192.168.1.254
      [DHCP_Server-ip-pool-test]dns-list 10.1.1.1
      [DHCP_Server-ip-pool-test]lease day 0 hour 8 
      [DHCP_Server]interface g0/0/0
      [DHCP_Server-GigabitEthernet0/0/0] ip address 10.1.1.1 24	
      [DHCP_Server-GigabitEthernet0/0/0] dhcp select global 
      [DHCP_Server] ip route-static 192.168.1.0 24 10.1.1.2 			//由于中继后的DHCP报文是一个源地址为192.168.1.1的单播报文,需要有回去的路由,当前为了简单,使用静态路由完成,正常网络内可以配置IGP使得地址能够通信
    

    DHCP-Relay配置

      [DHCP_Relay]dhcp server group DHCP							//配置DHCP服务器组名
      [DHCP_Relay-dhcp-server-group-DHCP]dhcp-server 10.1.1.1		//设定DHCP服务器地址
      [DHCP_Relay]dhcp enable 										//中继设备一样需要开启DHCP
      [DHCP_Relay]interface g0/0/1
      [DHCP_Relay-GigabitEthernet0/0/1]ip address 192.168.1.254 24
      [DHCP_Relay-GigabitEthernet0/0/1]dhcp select relay  			 //启用DHCP Relay功能
      [DHCP_Relay-GigabitEthernet0/0/1]dhcp relay server-select DHCP //设定DHCP Relay要使用的服务器组
      [DHCP_Relay]interface g0/0/0
      [DHCP_Relay-GigabitEthernet0/0/0]ip address 10.1.1.2 24
    

    验证配置

四、DHCP 安全威胁与防护机制

  • 1、安全weixie

    • DHCP饿死攻击

    • 假冒DHCP Server攻击

    • DHCP中间人攻击

  • 2、防护机制

    • DHCP Snooping

    • PSG(IP Source Guard)


  1. 发现报文 用来查找和定位DHCP 服务器 ↩︎

  2. 当DHCP 服务器收到这个报文后,就可以回收IP地址了 ↩︎

以上是关于DHCP 原理与配置的主要内容,如果未能解决你的问题,请参考以下文章

在ensp上配置基于接口地址池的DHCP

linux网络设置DHCP原理DHCP安装DHCP中继配置

linux的DHCP

dhcp怎么设置

高分求助 DHCP客户端租期到50%和87.5%时,客户端和服务器会有啥动作? 要求详细过程?

DHCP