DHCP基础
- 一、DHCP介绍
-
-
- 1、DHCP 产生的背景
- 2、DHCP 报文
- 3、DHCP 基本工作过程
-
- 获取IP地址
- 续租IP地址
- IP地址释放
- DHCP如何预防IP地址冲突
-
- 二、DHCP配置
-
-
- 1、基于接口的DHCP配置
- 2、基于全局的DHCP配置
- 3、命令讲解
-
- 三、DHCP Relay
-
-
- 1、DHCP Relay产生的背景
- 2、DHCP Relay工作原理
- 3、DHCP Relay配置方法
-
- 四、DHCP 安全威胁与防护机制
-
-
- 1、安全weixie
-
- DHCP饿死攻击
- 假冒DHCP Server攻击
- DHCP中间人攻击
- 2、防护机制
-
- DHCP Snooping
- PSG(IP Source Guard)
-
一、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 基本工作过程
-
获取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地址租约到期还没有收到服务器相应,客户端停止使用此IP地址
- 如果DHCP客户端不在使用分配的IP地址,也可以主动向DHCP服务器发送DHCP Release 报文,释放该IP地址
-
DHCP如何预防IP地址冲突
- 在客户端完成获取IP地址四部曲后,会有一个小的检测动作。
- 客户端会在网络中发送一个消息,其中源mac、源ip均为自己,目的mac为全0,客户端希望永远没有人回复这个消息,因为这样就代表自己的IP地址没有冲突,如果有人回复了,客户端就会拒绝使用这个IP并重新获取一个IP。
二、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 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产生的背景
-
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 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)
-
-
发现报文 用来查找和定位DHCP 服务器 ↩︎
-
当DHCP 服务器收到这个报文后,就可以回收IP地址了 ↩︎