当前位置:
文档之家› DHCP原理(含DHCP-snooping)
DHCP原理(含DHCP-snooping)
主要字段解释: Sname 客户端希望启动后使用的hostname file file为空时,表示客户端只需要获得服务器分配的IP信息, 或者由服务器来统一指定程序的加载; file可以填入指定的名字“unix”“gateway”,用以控 制启动时需要加载的程序
DHCP原理
BOOTP简要处理流程
T2 expires Send Request Renewing ACK ACK
Sellect Offer Send Request Start2 Requesting
T1 expires Send Request Bound
ACK
DHCP原理
DHCP的协议流程(续)
INIT 客户机第一次启动之后,进入Init初始化状态,此时通过发 送DHCP Discover,用于探测和发现服务器,同时状态切 换到Selecting状态 该报文承载于UDP:67中,通过IP广播发送
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION Requested IP Address,DHCP客户端曾请求并使用 过的IP地址,通常出现在请求报文中。 Tag=50, Len=4,Data=ip.addr
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION IP Address Lease Time,用户请求分配IP地址的使用 时间(租约期),在DHCP客户端的请求报文和服务器的 回应报文中都有,但以服务器分配为准 Tag=51,Len=4,Data=time
DHCP原理
DHCP报文介绍
DHCP原理
DHCP报文介绍(续)
DHCP报文直接借用了BOOTP的报文格式,其中的核心内 容是OPTION DHCP OPTION格式 每个Option都由Tag、Len、Data三大部分组成:1、 Tag表示本Option的作用 2、Len表明后续Data的长度(Tag=0、255的option比 较特殊,没有对应Data,当然也不需要Len长度) 3、Data内容作为Tag的补充详细说明
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION End,Tag=255时,是一个特殊的Option,表示所有 的Options字段已经填充完毕,后面没有了。
DHCP原理
DHCP的协议流程
下面以DHCP客户端的角度来描述DHCP整个协议流程转 换机制
Start1 Discover Collect Offers Selecting NAK/ Timeout Init NAK NAK/ Timeout Rebinding
DHCP原理
BOOTP简要处理流程
Reply Received 客户端收到Reply回应之后,会进行判断: Ciadr、Chaddr、Xid是否和自己发送时的值相等,如 果不等,则丢弃 如果上述匹配关系正确,则读取Yiaddr地址给网卡设臵, 并进行后续的引导文件/程序的传输
DHCP原理
DHCP原理
BOOTP报文介绍
BOOTP协议承载在于OSI七层模型的传输层之上,使用 UDP协议 BOOTP客户端发起的报文,UDP:68 UDP:67 BOOTP服务器发起的报文, UDP:67 UDP:68
DHCP UDP:67/68 IP Ethernet
DHCP原理
DHCP原理
DHCP的协议流程(续)
Discover报文常见Option构成: Requested IP addr=MAY IP Addr Lease Time=MAY Client Ientifier=MAY Server Identifier=Must NOT Parameter Request List=MAY
BOOTP的缺点
BOOTP协议过程非常的简单,中间缺乏必要的安全控制机 制 BOOTP给每个用户分配的IP地址是“永久”的,不利于IP 地址资源的合理高效利用
随着网络的逐步发展,BOOTP逐渐被DHCP所取代
DHCP原理
DHCP和BOOTP的关系
BOOTP给客户端分配的IP地址是永久的,而DHCP分配的 IP地址资源则具有时效性、是动态的,有利于提高IP资源 的利用率 DHCP和BOOTP使用相同的UDP协议报头,服务器端口67, 客户端端口68,以至于很多程序对两者不做区分 DHCP和BOOTP使用几乎完全相同的Request和Reply消 息格式,只是DHCP的功能是依赖于报文的OPTION字段 来进行实现的;BOOTP也有自己的“OPTION”字段,称 之为Vend,DHCP Option兼容BOOTP Vend
DHCP原理
BOOTP简要处理流程(续)
BOOTP Reply 服务器收到Request请求之后,进行判断: 如果Client没有Ciaddr,且自己有可用IP,给对方分配 一个,填入Yiaddr;如果没有IP资源,丢弃 将Server自己的IP地址填入Siaddr Xid值与Request中完全相等 OP=2 将上述关键信息填写并封装到UDP报文中,目的UDP端 口号为68,源端口为67 将UDP封装到IP报文中,单播给客户端
Serv1 Serv2
DHCP Discover
Client
Client
Client
DHCP原理
DHCP的协议流程(续)
Discover报文常见参数构成: OP=1,BOOT Request Xid=Random,由Client确定 Ciaddr=0.0.0.0 Yiaddr=Siaddr=Giaddr=0.0.0.0 Chaddr=Client MAC Addr
课程内容
DHCP简介
DHCP原理
DHCP扩展介绍
实验与练习
本章小结
DHCP原理
DHCP要解决的问题
问题: DHCP目的是为了方便使用者,无需手工配臵IP等相关信 息,而DHCP又是一种基于IP运行的协议,在没有IP地址 的情况下,DHCP又如何交互呢? 我们先介绍一下BOOTP协议,即Bootstrap,它是DHCP 协议的前身,在早期常使用在无盘工作站组建的网络中
P原理
DHCP的协议流程(续)
INIT 由于该请求为广播形式,通常在发送时会设臵一个随机的 实验延迟(≤10秒),以避免各个DHCP Client同时发送 广播报文,对局域网造成不必要的影响
DHCP原理
DHCP的协议流程(续)
BOOTP报文介绍(续)
DHCP原理
BOOTP报文介绍(续)
主要字段解释: OP 消息类型,=1时表示BootRequest;=2时表示BootReply Htype和Hlen 硬件地址类型和地址长度,实际上表示物理层网络的类型, 一般为以太网,长度为6bytes Hops 跳数,通常为0;中继时会修改,一般不用。 Xid 会话id,随机数,用于确定Serv和Client的对应关系
BOOTP Requet 客户端发送请求前首先需要确定如下几个参数: Ciaddr,通常启动时没有IP,臵为0.0.0.0 Chaddr,本机网卡硬件地址,按实填写 Yiaddr、Siaddr、Giaddr均设为0.0.0.0 随机生成一个Xid值 OP=1 将上述关键信息填写并封装到UDP报文中,目的UDP端 口号为67,源端口为68 将UDP封装到IP报文中,其目的IP为全网广播,源地址 为0.0.0.0(未知,待分配)
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION DHCP Message Type,DHCP协议交互的控制报文类 型 Tag=53,Len=1,Data=1~7(只用了3bit)
DHCP原理
DHCP报文介绍(续)
DHCP Message Type是本文的一个重点,Data Value 取值如下: Value=1,标示DHCP Discover Value=2,标示DHCP Offer Value=3,标示DHCP Request Value=4,标示DHCP Decline Value=5,标示DHCP ACK Value=6,标示DHCP NAK Value=7,标示DHCP Release
DHCP原理
BOOTP报文介绍(续)
主要字段解释: Giaddr Gateway IP Addr,网关IP地址,通常只在BOOTP中继 时才会用到 Chaddr Client Hardware Addr,客户端硬件地址,通常在以太 网中就是MAC地址,由客户端自己填写
DHCP原理
BOOTP报文介绍(续)
DHCP原理
BOOTP报文介绍(续)
主要字段解释: Ciaddr Client IP Addr,客户端IP地址,由客户端在发送请求时填 写(如果有的话) Yiaddr Your IP Addr,客户端的IP地址;如果Ciaddr值为全0时, 由服务器在Reply报文中填写 Siaddr Server IP Addr,服务器IP地址
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION Server Identifier,服务器身份,通常在DHCP报文中 指定与哪个服务器进行交互通信 Tag=54,Len=4,Data=ip.adr
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION Parameter Request List,请求参数列表,标示客户端 需要服务器分配的内容 Tag=55,Len=n(n≥1),Data=parameters 其中,具体的参数内容使用代码来标示,如: 1为子网掩码、6为DNS-Server等等,有兴趣的可以查找 rfc获得更详细的内容
DHCP原理
课程内容
DHCP简介
DHCP原理