协议篇---DHCP协议详解

DHCP(dynamic host configration protocol动态主机配置协议):

DHCP协议分配IP地址:指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码

1.DHCP特点:

基于C-S(client-server)模型;DHCP所有数据包都是基于UDP封装的。客户端使用的端口号为68,服务器端使用的端口号为67.

2.DHCP报文:

在这里插入图片描述

第一行:

**OP:**若是 client 送给 server 的封包,设为 1 ,反向为 2。

**HTYPE:**硬件类别,Ethernet 为 1。

**HLEN:**硬件地址长度, Ethernet 为 6。

**HOPS:**若封包需经过 router 传送,每站加 1 ,若在同一网内,为 0。

第二行:

**TRANSACTION ID:**DHCP REQUEST 时产生的数值,以作 DHCPREPLY 时的依据。

第三行:

**SECONDS:**Client 端启动时间(秒)。

**FLAGS:**从 0 到 15 共 16 bits ,最左一 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。

第四行:

**ciaddr:**要是 client 端想继续使用之前取得之 IP 地址,则列于这里。

第五行:

**yiaddr:**从 server 送回 client 之 DHCP OFFER 与 DHCPACK封包中,此栏填写分配给 client 的 IP 地址。

第六行:

**siaddr:**若 client 需要透过网络开机,从 server 送出之 DHCP OFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程序代码所在 server 之地址。

第七行:

**giaddr:**若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为 0。

第八行:

**chaddr:**Client 之硬件地址。

第九行:

**sname:**Server 之名称字符串,以 0x00 结尾。

第十行:

**file:**若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。

3.DHCP工作原理:

DHCP discover(DHCP发现) DHCP offer(DHCP应答) DHCP request(DHCP请求) DHCP ACK(DHCP确认)

在这里插入图片描述

1、客户端发Discover

DHCP Client以广播的方式发出DHCP Discover报文。

DHCP Discover数据包 :

(1)Client端使用IP地址0.0.0.0发送了一个广播包,可以看到此时的目的IP为255.255.255.255。Client想通过这个数据包发现可以给它提供服务的DHCP服务器。

(2)从下图可以看出,DHCP属于应用层协议,它在传输层使用UDP协议,目的端口是67。

在这里插入图片描述

2、服务器端发Offer

所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。

DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便DHCP Client区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。

DHCP Offer包 :

当DHCP服务器收到一条DHCP Discover数据包时,用一个DHCP Offerr包给予客户端响应。

在这里插入图片描述

(1)DHCP服务器仍然使用广播地址作为目的地址,因为此时请求分配IP的Client并没有自己ip,而可能有多个Client在使用0.0.0.0这个IP作为源IP向DHCP服务器发出IP分配请求,DHCP也不能使用0.0.0.0这个IP作为目的IP地址,于是依然采用广播的方式,告诉正在请求的Client们,这是一台可以使用的DHCP服务器。

(2)DHCP服务器提供了一个可用的IP,在数据包的Your (client) IP Address字段可以看到DHCP服务器提供的可用IP。

(3)除此之外,如图中红色矩形框的内容所示,服务器还发送了子网掩码,路由器,DNS,域名,IP地址租用期等信息。

3、客户端发Request

DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。

此时的源IP和目的IP依然是0.0.0.0和255.255.255.255。

**4、**服务器端发ACK

DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。

DHCP ACK包 :
服务器用DHCP ACK包对DHCP请求进行响应。
在这里插入图片描述

在数据包中包含以下信息,表示将这些资源信息分配给Client.
Your(client) IP address:分配给Client的可用IP。
后面有许多项option信息,前两项是DHCP服务器发送的消息类型(ACK)和服务器的身份标识,后面几项是:
Subnet Mask:Client端分配到的IP的子网掩码;
Router:路由器
Domain Name Server:DNS,域名服务器
Domain Name:域名
IP Address Lease Time:IP租用期。

5、客户端收到ACK后检查IP地址是否可用

DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。

6、客户端发Request(renew)

如果DHCP客户端收到的的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息,同时客户端发Request(renew)重新请求地址,等待DHCP服务器端的重新确认ACK(renew)

7、客户端可随时发Release释放当前地址

客户端发Release DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。

8、关于租期:

在使用租期超过50%时刻处,DHCP Client会以单播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址。

在使用租期超过87.5%时刻处,DHCP Client会以广播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址,直到IP地址使用租期到期时,DHCP Client才会向DHCP Server发送DHCP Release报文来释放这个IP地址,并开始新的IP地址申请过程。

在租期协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户端,让客户端重新发起地址请求过程。

4.Huawei DHCP配置:

1、接口配置模式

启用DHCP功能:[Huawei]dhcp enable

进入接口:[Huawei]interface Ethernet 0/0/0

选择DHCP 获取方式为接口:[Huawei-Ethernet0/0/0]dhcp select interface

指定DNS服务器地址:[Huawei-Ethernet0/0/0]dhcp server dns-list 114.114.114.114 8.8.8.8

定义排除地址(可选):[Huawei-Ethernet0/0/0]dhcp server excluded-ip-address 192.1.1.1 192.1.1.50(区间,也可定义排除单个)

定义租约:[Huawei-Ethernet0/0/0]dhcp server lease day 天数 hour 小时数 minute 分钟数

2、全局模式配置

启用DHCP服务:[Huawei]dhcp enable

全局模式创建DHCP地址池:[Huawei]ip pool dizhichi(地址池名称)

定义下方地址的网段(范围):[Huawei-ip-pool-dizhichi(地址池名称)]network 200.1.1.0 mask 255.255.255.0

定义网关:[Huawei-ip-pool-dizhichi(地址池名称)]gateway-list 200.1.1.254

指定DNS服务器地址:[Huawei-ip-pool-dizhichi(地址池名称)]dns-list 8.8.8.8 8.8.4.4

定义排除地址(可选):[Huawei-ip-pool-dizhichi(地址池名称)]excluded-ip-address 200.1.1.100 200.1.1.253(区间范围,也可定义排除单个)

定义租约:[Huawei-ip-pool-dizhichi(地址池名称)]lease day 天数 hour 小时数 minute 分钟数

进入对应的接口:[Huawei]interface Ethernet 0/0/1

选择接口支持同全局模式配置的DHCP服务功能:[Huawei-Ethernet0/0/1]dhcp select global

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页