DHCP解析

目录

主机获取IP地址的方式通常有两种:手动配置和DHCP协议配置

DHCP报文结构:

八种DHCP报文: 

DHCP中继 (通常是路由器或三层交换机)

DHCP中继配置命令:

ip申请到后会开启三个计时器

3个计时器原理:

DHCP Snooping(动态主机配置协议安全过滤)


主机获取IP地址的方式通常有两种:手动配置和DHCP协议配置

手动配置:

自己规划好地址手动配置到主机网卡上;适用规模小,安全要求高的网络。

DHCP协议配置:

部署DHCP服务器,由服务器分发,主机自动获取IP地址;

DHCP报文结构:

DHCP报文的封装格式通常使用UDP(User Datagram Protocol)来传输,在IPv4中,目标端口号为67服务器端口),源端口号为68客户端端口)。在IPv6中,DHCPv6使用目标端口号为547,源端口号为546。在UDP报头前面封装的是二层以太网帧,最后还有一个FCS帧校验序列。

(了解~~~(●'◡'●)~~~)

操作码(OpCode)[1]:表示消息类型。

硬件地址类型(Hardware Type)[1]:表示客户端硬件地址的类型,通常为1(以太网)。
硬件地址长度(Hardware Address Length)[1]:表示客户端硬件地址的长度,通常为6(以太网地址的字节数)。
跳数(Hops)[1]:用于在大型网络中限制广播的范围。
事务ID(Transaction ID)[4]:由客户端生成,用于与DHCP回复消息相匹配。
租期(Seconds Elapsed)[2]:表示客户端从请求开始到现在已经过去的秒数。
标志(Flags)[2]:包含广播标志等信息。
客户端IP地址(Client IP Address)[4]:表示客户端当前的IP地址,当客户端尚未被分配地址时为0.0.0.0。
分配的IP地址(Your IP Address)[4]:表示服务器分配给客户端的IP地址。
服务器IP地址(Next Server IP Address)[4]:表示下一个服务器的IP地址,用于引导过程中使用。
客户端硬件地址(Client Hardware Address)[16]:表示客户端的硬件地址。
服务器主机名(Server Host Name)[64]:表示服务器的主机名。
引导文件名(Boot File Name)[128]:表示引导文件的路径名。

八种DHCP报文: 

DHCP Discover(发现报文):
        由客户端广播形式发送,以寻找可用的DHCP服务器。即客户端在询问网络内“谁是服务器,谁能提供我IP地址?”

        这个报文三层报头中的目的IP地址段255.255.255.255(全向广播地址);源地址段0.0.0.0(未知地址)[因为此时客户端还没有IP地址];源MACF

        在Discover报文的DHCP载荷中会包含源mac地址,这样服务器接收后会记录此地址并且通过该地址判断客户端曾经是否申请过IP地址,继而形成一个租约。


DHCP Offer(提供报文):
        服务器响应Discover报文后单播广播形式发送。源IP地址服务器地址目的IP地址服务器为客户端准备的地址单播)/255.255.255.255广播)。

        单播(Broadcast位,置0)、广播(Broadcast位,置1),具体由厂商决定,例:华为单播、思科微软广播。

        报文中包含IP地址和其他相关一切配置信息(如子网掩码、默认网关、DNS服务器、租期、域名等)。通常情况下,多个DHCP服务器可能会发送不同的Offer报文,客户端会选择其中一个Offer作为其配置。


DHCP Request(请求报文):
        客户端在收到Offer报文后,选择其中一个DHCP服务器的配置,再以广播形式发送。

(广播:向选中的服务器发送确认请求,向未选中的服务器发出告知撤回将分配来的资源

具体选择的服务器地址会在报文中的option(54)字段显示。


DHCP Acknowledgment(确认报文):
        服务器在收到Request报文后,单播广播形式发送,报文包含信息与Offer(提供报文)一致(唯一区别在于option(53)字段中一个是描述offer一个描述ack)单播、广播依旧取决于报文中的Broadcast位(0;1)

        用于确认并正式分配IP地址和配置给客户端。


DHCP NAK(否定报文):(不常用)
        服务器在无法为客户端提供请求的IP地址或配置时以广播形式发送。

        即服务器收到客户端的Reques报文,查找报文里客户端的MAC地址,发现本地没有找到对应的租约记录(或者有租约记录但是租期已到限制),就会拒绝提供所请求的配置。


DHCP Release(释放报文):
        由客户端 单播发送给DHCP服务器,用于告知服务器先前分配来的IP地址因为某种原因,现在已经不用了,请释放先前分配的IP地址和配置。


DHCP Decline(拒绝报文):(不常见)
        客户端发现分配的IP地址已经被其他设备使用或其他冲突情况下,会发送Decline报文来拒绝从DHCP服务器接收到的IP地址。(免费arp检测)


DHCP Inform(信息报文):(不常见)
        客户端请求服务器其他配置信息,例如客户端自己手动配置了IP地址、掩码、网关等等,但缺少DNS、域名等信息,这时就可以通过这个报文请求获取信息。


  • 如果是一个广播域:首先客户端discover报文广播寻找服务器,目的IP地址段为255.255.255.255,源地址段为0.0.0.0,源MAC全F,服务器响应Discover报文后以单播/广播形式发送offer报文,目的IP地址为服务器为客户端准备的地址/255.255.255.255,客户端收到Offer报文后,选择其中一个DHCP服务器的配置,再广播发送ack报文确认请求,至此IP成功分配。(服务器核对租期正常,IP地址未冲突)
  • 【因为同广播域,故而服务器就知道客户端与它同网段,分配的IP地址前缀即与自己一样】

DHCP中继 (通常是路由器或三层交换机)

  • 如果不在一个广播域客户端discover报文的广播更为单播,通过查找路由表发送码,由此来穿过广播域。这其中便用到了DHCP中继代理即DHCP中继让网关作为中间人,将收到的DHCP广播消息转换为单播消息,并把报文发给服务器,服务器收到后再以offer形式回复offer报文给网关,网关再转发给客户端。
  • 【届时,因为有的厂家源地址设置的还是0.0.0.0,为了确定vlan在哪个网段,于是在报文中添加了一个Relay Agent IP address(中继代理IP地址)字段——一般是客户端网关地址,网关又与客户端同网段,分配的IP地址前缀即与网关一样

DHCP中继配置命令:

1.服务器配置静态IP地址,并部署地址池

        int e0/0

        ip add 10.3.0.254 255.255.255.0

        ip dhcp pool DHCP

        network 192.168.1.0 /24

        发现,地址池中的网段和服务器的静态IP地址不处于同一网段中。

        二层广播的Discover报文无法直接发送给DHCP服务器,因而需要使用到DHCP中继

2.部署DHCP中继

        int vlan 1

        ip add 192.168.1.254 255.255.255.0

        no shutdown

        前提:保证DHCP服务器到代理设备的连通性。

        ip helper-address 10.3.0.254 # 将二层广播数据包转换成三层数据包进行转发。

DHCP中继的问题:

        1.三层连通性的问题

        2.ip helper-address 后面写的地址必须是DHCP服务器地址

ip申请到后会开启三个计时器

1.租期更新计时器;2.租期重绑定计时器;3.租期失效计时器

3个计时器原理:

在默认情况下,还剩50%租期时,客户端的第一个计时器租期更新计时器超时了 。这时,客户端就会发送一个单播的request向服务器请求延长租期。

▲如果服务器收到了并同意延长,就会返还客户端一个ACK报文,客户端即会得到一个新的租期。

▲如果服务器没有回复ACK,而客户端的租期一直拖到达到了87.5%,到这份上,租期重绑定计时器超时了。这时,客户端就会认为之前的DHCP服务器挂了,所以他会再次以广播的形式发送request的报文向整个广播域内请求帮忙续租。

        ✿在这种情况下,客户端如果收到了ACK,那租期依然会自动延长。

        ✿如果收到的不是ACK(肯定确认)而是NAK(否定确认)的话,客户端就会直接宣告地址过期超时,剩下的12.5%时间也不会用了,继而发送一个Release(释放)报文把分配的地址退回去。

        ✿如果客户端既没有收到ACK,也没有收到NAK,那他就会把剩下的12.5%的时光继续过完,直到租期失效计时器超时。随后在超时的瞬间,客户端也会发送Release(释放)报文将分配的地址还回去。

DHCP Snooping(动态主机配置协议安全过滤)

作用:保护DHCP服务器,并抑制掉不合法的DHCP服务器。

它在交换机上工作,通过监视和过滤网络中的DHCP交互流量,防止未经授权的DHCP服务器发送虚假的DHCP响应,从而提高网络的安全性。

一旦开启了DHCP Snooping功能,则交换机上的所有端口都会变为非信任端口。这些端口不可以响应来自客户端的DHCP Discover(发现)数据包。这意味着DHCP Snooping会阻止DHCP服务器在非信任端口上分配IP地址,以防止不合法的DHCP服务器干扰合法的DHCP过程。只有管理员明确信任后设置的信任端口才能正常工作,为客户端提供IP地址。

1.开启DHCP Snooping功能

        (config)# ip dhcp snooping

2.指定DHCP Snooping在哪个VLAN生效

        (config)# ip dhcp snooping vlan x

3.进入需要被信任的端口

        (config)# int e0/0

        (config-if)# ip dhcp snooping trust

只有被设置为信任端口才可以回应Discover数据包

4.思科的路由器不认识Option 82,而交换机在发送的时候会加上Option 82。

(1)交换机不发送Option 82

        (config)# no ip dhcp snooping information option # 删除Option 82

(2)思科的路由器识别Option 82

a.全局下承认Option 82

        (config)# ip dhcp relay information option

b.接口下信任Option 82

        (config)# int e0/0

        (config-if)# ip dhcp relay information trusted

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DHCP Discovery报文是DHCP协议中的一种消息类型,用于在网络中寻找可用的DHCP服务器。当客户端设备启动时,它会发送一个DHCP Discovery报文,该报文包含客户端的MAC地址和其他相关信息。DHCP服务器收到该报文后,会向客户端发送DHCP Offer报文,其中包含可用的IP地址和其他配置信息。客户端可以选择接受其中一个DHCP Offer,并向DHCP服务器发送DHCP Request报文,以请求分配该IP地址。最后,DHCP服务器会向客户端发送DHCP Acknowledge报文,确认IP地址的分配。 ### 回答2: DHCP(动态主机配置协议)是一个TCP/IP协议族中的一项技术。它使用UDP协议来向网络中的设备提供IP地址配置和其他相关网络配置。DHCP协议中,DHCP discovery报文是设备在网络中向DHCP服务器发送的第一份请求。因此,它是DHCP协议中非常重要的一个环节。下面将对DHCP discovery报文进行解析DHCP discovery报文分为四个部分: 1. 操作码 DHCP discovery报文中的操作码设置为1,表示这是一个启动请求报文。 2. 硬件类型 DHCP discovery报文中的硬件类型表示设备的物理硬件类型。根据不同的设备,硬件类型可能有所不同。例如,对于以太网设备,硬件类型为1;对于WiFi设备,硬件类型为6。 3. 事务ID DHCP discovery报文中的事务ID是一个随机生成的32位数,用于标识该DHCP交互。在后续的DHCP流程中,该事务ID将用于协调客户端和服务器之间的通信。 4. Options字段 DHCP discovery报文中的Options字段是一个可选的字段,用于传递DHCP客户端的配置选项。该字段包含多个选项,并以结束(End)标识符作为结尾。 在具体的实现中,DHCP discovery报文可以被DHCP客户端发送到广播地址,以便找到DHCP服务器DHCP服务器在接收到DHCP discovery报文后,会回复DHCP offer报文,告知DHCP客户端可用的IP地址和配置选项。DHCP客户端在接收到DHCP offer报文后,会选择其中一份报文,并回复DHCP request报文,请求所选的IP地址和配置选项。最后,DHCP服务器收到DHCP request报文后,发送DHCP acknowledgement报文,向DHCP客户端确认IP地址分配和其他配置选项。 总之,DHCP discovery报文是DHCP协议中非常重要的一个环节,它标志着DHCP流程的开始。只有通过DHCP discovery报文,DHCP客户端才能寻找DHCP服务器,并获取所需的网络配置信息。 ### 回答3: DHCP是指动态主机配置协议,是一项用于内部网络网络协议。DHCP discovery报文也就是DHCP请求发现报文,它是广播报文,用于向DHCP服务器请求可用的IP地址。 DHCP discovery报文的格式如下: • OP: 报文类型,请求参数为1 • Hardware Type:硬件类型,值为1代表以太网 • Hardware Length:硬件地址长度,通常为6 • Hops:在转发中使用的跳数,通常置0 • Transaction ID:事务ID,为了识别相同的广播请求 • Number of Seconds:客户端从开始请求到现在已经过去的时间 • Flags:用于配置是否需要进行广播 • Client IP Address:客户端IP地址 • Your IP Address:分配给客户端的IP地址 • Server IP Address:提供DHCP服务的服务器的IP地址 • Gateway IP Address:DHCP服务器的网关IP地址 • Client Hardware Address:客户的MAC地址 • Server Hostname:DHCP服务器名称 • Bootfile Name:引导文件名 • Options:报文选项信息 当DHCP客户端启动时,它会发送DHCP discovery报文,用于发现可用的DHCP服务器DHCP discovery报文将在网络中广播,所有接收到该广播的DHCP服务器都将返回给客户端DCHP offer报文,其中包含可用的IP地址资源。当客户端接收到其中一份DCHP offer报文后,它将选择其中一个报文,根据其中包含的IP地址和相关参数,向DHCP服务器发送DHCP request报文进行IP地址分配请求。DHCP request报文由DHCP服务器响应,其中包含分配给该客户端的IP地址和配置参数。 综上所述,DHCP Discovery 报文是DHCP部署中非常重要的一份报文,因为它作为DHCP客户端与DHCP服务器建立通信的第一步,DHCP Discovery 报文可以广播请求,获取可用IP地址资源,并向DHCP服务器发送解析请求。只有成功解析,才可以实现DHCP的动态IP地址分配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值