1、简介
动态主机配置协议。TCP/IP协议想要运行正常的话,网络中的主机和路由器不可避免地需要配置一些信息(如接口的IP地址等)。有了这些配置信息主机/路由器才能提供/使用特定的网络服务。
主机信息的必要元素有:IP地址、子网掩码、DNS服务器IP地址
TCP/IP协议配置主机信息主要有三种方法:
1. 手动配置
2. 动态获取
3. 根据特定算法计算。
在网络中,我们把主机分为两大类,服务器主机和客户端主机,
+ 服务器主机: 一般采用手动配置
+ 客户端主机: 一般采用动态获取
服务器一般采用手动配置,而客户端一般动态获取。主要基于以下原因:
1. 客户主机比服务主机移动更频繁
2. 服务主机需要提供更可靠的服务,其配置信息应该减少对其他系统/主机的依赖
3. 客户主机比服务主机的数量要多得多。
4. 客户主机使用者的网络配置知识比服务主机的使用者低
DHCP有Bootp协议发展而来。Bootp协议提供了有限的主机信息配置,且主机信息已经配置就很难被修改。DHCP提供 几乎所有的主机信息的配置,且引入了租约等概念,使得主机信息能够动态发生变化。 DHCP向后兼容Bootp。DHCP基于UDP/IP传输。DHCP服务器使用端口号67,DHCP 客户端使用端口号68.
1.1、DHCP 协议内容
DHCP 主要分为两部分:地址的管理和配置信息的传递
+ 地址管理: 地址管理处理IP地址的动态分配、向客户端提供地址租约 。并使用key-value的格式保存IP地址与mac地址
+ 配置信息的传递: 包含DHCP报文格式、状态机
1.2、DHCP 地址管理
地址池与地址租约:
在IP地址的动态分配中,DHCP客户端向DHCP服务器发送IP地址请求。DHCP服务器会维护一个 IP地址池,DHCP从地址池从取出一个IP回应给DHCP客户端。在地址分配时,DHCP服务器也会指定回应给DHCP客户端的IP地址的租约期,该地址只有在该租约期内可用,不过DHCP客户端可用在租约期内请求延长租约(更新租约期)。
2、DHCP报文
2.1、DHCP 报文格式
Op: 报文类型,分为 两大类: Request(1) 和 Reply(2)
HW Type: 硬件类型,一般是以太网:1
HW Len: 硬件地址长度,单位字节。对应以太网:6(mac地址长度为6字节48bit)
hops:client设置为0,当通过relay agent时,relay agent可以考虑使用该值
Transaction ID(Xid):事务ID,随机数,有客户端生成,服务器Reply时,会把Req