动态主机配置协议:DHCP 用来集中管理、分配IP地址,使网络环境中的主机能够动态获取IP地址、网关地址、DNS服务器地址等信息;DHCP采用客户端+服务器模式,端口号:客户端为68(中继模式下67),服务器端为67
版本一:RARP(反向ARP,适用于无盘工作站中,主机可以根据自身的MAC地址请求相对应的IP地址)
版本二:Bootstrap(自举协议)
注:以上两种协议的缺陷是需要根据主机自身的配置文件才能请求相对应的IP地址,不够灵活;只能请求到IP+子网掩码/网关+DNS信息,内容太少;效率低
版本三:DHCP(动态主机配置协议)
相比较以上两种协议,DHCP协议能够实现即插即用,很灵活;通过在TLV字段中添加多种option字段,能够获取更多的信息;延时低,效率高(低于30S)
支持手工配置和动态获取:
手工配置:配置量大;容易出现重复地址,且不易检测;移动性差;不安全
自动获取:即插即用;配置量小;集中管理,保证地址的唯一性;移动性强
报文封装:Ethernet 2/IPv4/UDP/Bootstrap/DHCP/FCS
1、OP字段:Client 送给Server发包,设为 1,反向为 2
2、HTYPE字段:硬件类别,Ethernet为 1
3、HLEN字段:硬件地址长度,Ethernet为 6
4、HOPS字段:跳数,若发包需经过路由器每站加1,在同一个网络内为 0
5、Xid字段:事务ID,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。
6、SECONDS字段:客户端开始获得IP地址或IP地址续借后所使用了的秒数。
7、FLAGS字段:标志字段,0到15,最左1 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。
8、Ciaddr字段:客户端的IP地址。
9、Yiaddr字段:"你自己的"或客户端的IP地址。
10、Siaddr字段:DHCP协议流程的下一个阶段要使用的服务器的IP地址。
11、Giaddr字段:DHCP中继器的IP地址。
12、Chaddr字段:客户端硬件地址。
13、Sname字段:可选的服务器主机名。
14、File字段:启动文件名,指出开机程序名称,稍后以 TFTP 传送。
15、Options字段:可选项字段。
报文类型:
1、DHCP Discover 客户端用来寻找DHCP服务器(由客户端发起的,发送广播报文,源IP:0.0.0.0 目的IP:255.255.255.255 ;包含一个flag字段,共2byte,俗称广播位,最高位置0代表支持接收单播报文,置1代表支持接收广播报文)
2、DHCP Offer DHCP服务器用来响应Discover报文,报文携带了各种配置信息(由服务器端发起的;思科/微软支持广播,华为/IETF支持单播)
3、DHCP Request 客户端请求配置确认、续借租期、主机重启后向DHCP服务器请求上次使用的IP地址(广播发送)。
4、DHCP ACK DHCP服务器对Request报文的确认(内容同offer报文)
5、DHCP NAK DHCP服务器对Request报文的拒绝(使用255.255.255.255回应)
6、DHCP Release 客户端要释放地址时用来通知DHCP服务器
7、DHCP Decline 客户端将冲突的IP地址信息反馈给DHCP服务器
8、DHCP Inform 客户端向DHCP服务器单独请求DNS服务器地址信息
DHCP工作原理
DHCP租期更新
DHCP地址池:包含了IP地址段、子网掩码、网关地址、DNS服务器地址、域名、地址租期(默认24小时)。
1、全局池:接收Discover广播报文和单播报文,支持DHCP中继转发;在DHCP服务器的全局模式下开启;需要配置IP、子网掩码、网关、DNS、域名、租期。
2、主机池:用来给服务器、打印机等设备配置固定的IP地址;主机池中通常只配置一个IP地址;通过验证Discover报文中的Client ID(01+主机的MAC地址)来确定是否可以分配主机池中的地址;
注:分配顺序:主机池地址---网段池地址(优先分配之前使用的IP地址)--分配曾经标记过冲突的地址。
Client ID:01AA.AABB.BBCC.CC(MAC地址:AAAA.BBBB.CCCC)
更多相关问题欢迎评论留言
或关注公众号【网络工程师集中营】
现在关注公众号,后台回复关键词:太阁
即可获得7天免费课程