TCP/IP详解 第六章 DHCP协议

1、DHCP简介

1DHCP Dynamic Host Configuration Protocol)即动态主机设置协议。

2前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的端口67(DHCPv4 server),68(DHCPv4 client) 547 (DHCPv6 server) , 546 (DHCPv6 client)DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率

3DHCP协议属于应用层协议

DHCP SERVER负责接收客户端的DHCP请求,管理LAN端所有的IP网络设定资料,相比于BOOTPDHCP通过“租约”来实现动态分配IP的功能,实现IP的时分复用,从而解决IP资源短缺的问题。其地址分配方式有三种,分别是人工配置(由管理员对每台具体的计算机指定一个地址),自动配置(服务器为第一次连接网络的计算机分配一个永久地址),动态配置(在一定的期限内将地址租给计算机,租期结束后客户必须续租或者停用该地址),而对于路由器,经常使用的地址分配方式是动态配置。

1.1、DHCP简介BOOTP

BOOTPBootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。BOOTP用于无盘工作站的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址。通过BOOTP协议可以为局域网中的无盘工作站分配动态IP地址,这样就不需要管理员去为每个用户去设置静态IP地址

BOOTP可以看成是简单版的DHCP,是对主机的静态配置,而DHCP可以依据一些策略对主机进行动态配置。BOOTP用于无盘工作站的启动和配置,而DHCP更适用于客户端接入变化的网络,即客户端接入时间、接入地点不固定。

2DHCP协议封装

TCP/IP详解 第六章 DHCP协议

OP:操作类型,0-请求,1-应答

HWtype1 为以太网

Hwlen:       6

Hops:    中继次数,每中继一次加1

Transaction id:事务ID

Second elapsed:从第一次请求开始过去的时间

Flag0-单播,1只能处理广播(不能或者不愿意处理单播)

ciaddr:客户端IP地址,如果没有,填全0

yiaddr:由于服务器填写,分配给客户端的IP地址

siaddr:    下一服务器地址(用于bootp引导过程)

giaddr: 中继网关服务器地址(跨子网进行DHCP地址分配的场景)

chaddr:客户端MAC地址

snamedhcp服务器名称

bootfilename:引导文件名称

magic cookiedhcp为了兼容BOOTP增加的魔数( 63.82.53.63

option:拓展选项

2.1、DHCP协议封装:拓展选项

TCP/IP详解 第六章 DHCP协议

常用tag

0 :填充   1:子网掩码   3:路由器地址  6:域名服务器

15:域名  50:请求的IP地址   51:地址租用期  

53DHCP消息类型  54:服务器标识符   55:参数请求列表

56DHCP错误消息  58:租约更新时间   59:租约重新绑定时间

61:客户机标识符  119:域搜索列表   255 结束

2.2、DHCP协议封装:DHCP消息类型(53)

TCP/IP详解 第六章 DHCP协议

DHCP常用消息类型:

DHCPDISCOVER(1), DHCPOFFER (2), DHCPREQUEST (3), DHCPDECLINE (4), DHCPACK (5),DHCPNAK (6), DHCPRELEASE (7), DHCPINFORM (8), DHCPFORCERENEW(9) , DHCPLEASEQUERY (10), DHCPLEASEUNASSIGNED (11), DHCPLEASEUNKNOWN (12), DHCPLEASEACTIVE (13).

3、DHCP工作原理

TCP/IP详解 第六章 DHCP协议

3.1、DHCP协议通信过程

TCP/IP详解 第六章 DHCP协议

DHCPDISCOVER(1):

广播消息,src 0.0.0.068  dst 255.255.255.25567

DHCPOFFER (2)

携带,租期T,更新时间T1(通常为1/2*T),重新绑定时间T2(通常为7/8*T

DHCPREQUEST (3):

包含一个服务器标识符,选定的IP地址

DHCPACK (5)

服务器确认可以绑定该IP地址

DHCPNAK (6)

服务器无法分配该IP地址

DHCPDECLINE (4):

客户端使用ACD检测冲突,发现该IP地址被占用,发送此消息放弃该IP地址

DHCPRELEASE (7)

客户端在租期内主动放弃一个IP地址

DHCPINFORM (8)

客户端已经有IP地址的情况下,需要其他配置信息,发送此信息

3.2、DHCP状态机

TCP/IP详解 第六章 DHCP协议

4、DHCPv6 DHCPv4的区别

1DHCPv6使用组播地址:ff02::1:2

      DHCPv4使用广播

2 DHCPv6中没有保留BOOTP协议

3DHCPv6中重要概念:

     客服端标识符,服务端标识符

      身份关联(IA),DUID

4.1、DHCPv6 :消息格式

TCP/IP详解 第六章 DHCP协议

4.2、DHCPv6 消息类型对比

TCP/IP详解 第六章 DHCP协议

4.3、DHCPv6 IA(身份关联)

TCP/IP详解 第六章 DHCP协议

IAID32位随机数

T1:更新时间

T2:重新绑定时间

IA_NA:  NA选项

IA_TA:  TA选项

4.4、DHCPv6 DUID(DHCP唯一标识符)

三种生成方式:

DUID-LLT:基于链路层地址和时间DUID

DUID-EN:基于企业编号和供应商分配的DUID

DUID-LL:仅基于链路层地址的DUID

4.5、DHCPv6:有状态和无状态

有状态的地址配置:

类似DHCPv4,通过使用如 DHCP 的配置协议,用来配置非链接本地地址,以及其他额外信息(DNS等)

 

无状态的地址配置:

使用无状态地址自动配置,在无状态下客户机认为能够自己配置IPv6地址,当需要DHCPv6获取额外信息(DNS服务等),另外一种选择是使用ICMPv6路由器通告消息来获得一台DNS服务器的地址

4.5、DHCPv6:生命周期

TCP/IP详解 第六章 DHCP协议

4.6、DHCPv6ICMPv6路由器通告消息

两个重要字段

M位:可管理地址配置标志   O位:其他配置标志

M0 O0:表示不使用DHCPv6,采用无状态地址自动分配

M1 O1DHCPv6 有状态DHCPv6 将分配有状态地址,同时分配其他配置

M0 O1DHCPv6 状态:DHCPv6 不为 IPv6 主机分配有状态地址,但分配无状态配置设置

M1 O0DHCPv6 用于地址配置,但不用于其他配置,这是一种最不可能的组合

4.7、DHCPv6:通信过程

TCP/IP详解 第六章 DHCP协议

4.8、DHCPv6:消息介绍

ROUTER SOLICIT:路由器发现消息

ROUTER ADVERTISE:路由器通知消息

SOLICIT(1):DHCPv6发现消息

ADVERTISE(2): DHCPv6通知消息

REQUEST(3): DHCPv6请求消息

REPLY(7):DHCPv6应答消息

DECLINE(9): DHCPv6放弃

INFORMATION-REQUEST(11):已有IP的情况下,使用此消息申请其他配置

4、DHCPv6:前缀委托

一台路由器向另一台路由器委托一个地址空间范围,这个地址可以描述为一个IPv6地址前缀,使得该路由器可以像一个DHCPv6服务器那样工作

5、DHCP中继

TCP/IP详解 第六章 DHCP协议

5.1、DHCP中继:重要概念

1、中继服务在第3层,只负责DHCP中的广播或者组播数据

2、中继代理选项

 DHCPv4 RAIO:元选项,很多子选项用于ISP标识请求来自于哪个用户,哪个链路或网络,安全认证子选项(SHA-1算法)

3、中继代理远程ID子选项

        用于标识远程客户机(呼叫方ID,用户名,调制解调器ID,点对点链路的远程IP地址),DHCPv6版本中还包含了DUID

4、服务器标识符覆盖

5、租约查询,批量租约查询

62层中继代理 IPv4 LDRA

6、DHCPDNS交互

组合DNS /DHCP服务器:

能够在给客户机分配IP地址的同时,根据DHCPREQUEST中的客户机标识符或者域名,进行域名和IP地址绑定,并更新到DNS数据库中,这样后续的DNS请求,都能相应最新的IP和域名绑定信息

7DCHP安全:DHCP认证

1、认证消息:下发一个共享配置令牌,客户端和服务端配置令牌信息匹配则可以接受该消息,有令牌信息能够被截获,所以这种保护方式很弱

2、延期认证:假设客户端和服务端有一个共享秘钥,当客户端发送DHCPDISCOVERDHCPINFORM时,包含一个认证选项,则DHCPINFORMDHCPACK中包含一个认证码(MAC加密后的数据),

客户端检测认证码是否正确。核心算法采用MD5签名校验

3DHCP认证机制没有被广泛应用

7.1、DHCP安全:攻击手段

1、未授权客户机或者未授权服务器对DHCP通信过程的干扰

2、耗尽配置资源的Dos攻击

 

感谢xuj