zoukankan      html  css  js  c++  java
  • DHCP(动态主机配置协议)

    DHCP(动态主机配置协议)

    在大型企业网络中,一般会有大量的主机等终端设备。每个终端都需要配置IP地址等网络参数才能接入网络。在小型网络中,终端数量很少,可以手动配置IP地址。但是在大中型网络中,终端数量很多,手动配置IP地址工作量大,而且配置时容易导致IP地址冲突等错误。

    DHCP可以为网络终端动态分配IP地址,解决了手工配置IP地址时的各种问题。

    DHCP报文类型:

    动态描述:DHCP客户端初次接入网络时,会发送DHCP发现报文(DHCP Discover),用于查找和定位DHCP服务器。DHCP服务器在收到DHCP发现报文后,发送DHCP提供报文(DHCP Offer),此报文中包含IP地址等配置信息(IP、DNS等)。在DHCP客户端收到服务器发送的DHCP提供报文后,会发送DHCP请求报文(DHCP Request),另外在DHCP客户端获取IP地址并重启后,同样也会发送DHCP请求报文,用于确认分配的IP地址等配置信息。DHCP客户端获取的IP地址租期快要到期时,也发送DHCP请求报文向服务器申请延长IP地址租期。收到DHCP客户端发送的DHCP请求报文后,DHCP服务器会回复DHCP确认报文(DHCP ACK)。客户端收到DHCP确认报文后,会将获取的IP地址等信息进行配置和使用。如果DHCP服务器收到DHCP-REQUEST报文后,没有找到相应的租约记录,则发送DHCP-NAK报文作为应答,告知DHCP客户端无法分配合适IP地址。DHCP客户端通过发送DHCP释放报文(DHCP Release)来释放IP地址。收到DHCP释放报文后,DHCP服务器可以把该IP地址分配给其他DHCP客户端。

    工作原理:

    为了获取IP地址等配置信息,DHCP客户端需要和DHCP服务器进行报文交互。首先,DHCP客户端发送DHCP发现报文来发现DHCP服务器。DHCP服务器会选取一个未分配的IP地址,向DHCP客户端发送DHCP提供报文。此报文中包含分配给客户端的IP地址和其他配置信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应。如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文,然后发送DHCP请求报文,报文中包含请求的IP地址。收到DHCP请求报文后,提供该IP地址的DHCP服务器会向DHCP客户端发送一个DHCP确认报文,包含提供的IP地址和其他配置信息。DHCP客户端收到DHCP确认报文后,会发送免费ARP报文,检查网络中是否有其他主机使用分配的IP地址。如果指定时间内没有收到ARP应答,DHCP客户端会使用这个IP地址。如果有主机使用该IP地址,DHCP客户端会向DHCP服务器发送DHCP拒绝报文,通知服务器该IP地址已被占用。然后DHCP客户端会向服务器重新申请一个IP地址。

    租期更新:申请到IP地址后,DHCP客户端中会保存三个定时器,分别用来控制租期更新,租期重绑定和租期失效。DHCP服务器为DHCP客户端分配IP地址时会指定三个定时器的值。如果DHCP服务器没有指定定时器的值,DHCP客户端会使用缺省值,缺省租期为1天。默认情况下,还剩下50%的租期时,DHCP客户端开始租约更新过程,DHCP客户端向分配IP地址的服务器发送DHCP请求报文来申请延长IP地址的租期。DHCP服务器向客户端发送DHCP确认报文,给予DHCP客户端一个新的租期。

    重绑定:DHCP客户端发送DHCP请求报文续租时,如果DHCP客户端没有收到DHCP服务器的DHCP应答报文。默认情况下,重绑定定时器在租期剩余12.5%的时候超时,超时后,DHCP客户端会认为原DHCP服务器不可用,开始重新发送DHCP请求报文。网络上任何一台DHCP服务器都可以应答DHCP确认或DHCP非确认报文。如果收到DHCP确认报文,DHCP客户端重新进入绑定状态,复位租期更新定时器和重绑定定时器。如果收到DHCP非确认报文,DHCP客户端进入初始化状态。此时,DHCP客户端必须立刻停止使用现有IP地址,重新申请IP地址。

    IP地址释放:租期定时器是地址失效进程中的最后一个定时器,超时时间为IP地址的租期时间。如果DHCP客户端在租期失效定时器超时前没有收到服务器的任何回应,DHCP客户端必须立刻停止使用现有IP地址,发送DHCP Release报文,并进入初始化状态。然后,DHCP客户端重新发送DHCP发现报文,申请IP地址。

    注意:当在DHCP服务器上都启用了全局地址和接口地址的配置时,接口地址的配置是生效的。即接口地址池优先级大于全局地址池。

  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/tianyao2020/p/12790032.html
Copyright © 2011-2022 走看看