DHCP 原理与配置
Posted stranger_hello
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DHCP 原理与配置相关的知识,希望对你有一定的参考价值。
DHCP基础
一、DHCP介绍
-
1、DHCP 产生的背景
- 手工配置网络参数存在的问题
- 容易出错
- 灵活性差
- 工作量大
- IP地址资源利用率低
- DHCP相对于静态手工配置的有点
- 效率高
- 灵活性强
- 易于管理
- IP地址利用率高
- 避免IP地址冲突
- 手工配置网络参数存在的问题
-
2、DHCP 报文
文类型 含义 HCP DISCOVER 1 客户端用来寻找DHCP 服务器 HCP OFFER DHCP服务器用来相应DHCP discover 报文,此报文携带了各种配置信息 HCP REQUEST 客户端请求配置确认,或者续借租期 HCP ACK 服务器对REQUEST 报文的确认响应 HCP NAK 服务器对REQUEST 报文的拒绝响应 HCP RELEASE 2 客户端要释放地址时用来通知服务器 -
3、DHCP 基本工作过程
- 发现阶段: 客户机向局域网内广播一个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地址租约到期还没有收到服务器相应,客户端停止使用此IP地址
- 如果DHCP客户端不在使用分配的IP地址,也可以主动向DHCP服务器发送DHCP Release 报文,释放该IP地址
-
DHCP如何预防IP地址冲突
- 在客户端完成获取IP地址四部曲后,会有一个小的检测动作。
- 客户端会在网络中发送一个消息,其中源mac、源ip均为自己,目的mac为全0,客户端希望永远没有人回复这个消息,因为这样就代表自己的IP地址没有冲突,如果有人回复了,客户端就会拒绝使用这个IP并重新获取一个IP。
二、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
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
验证配置
- 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 安全威胁与防护机制
以上是关于DHCP 原理与配置的主要内容,如果未能解决你的问题,请参考以下文章