DHCP

    动态主机设置协议Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:

  • 用于内部网络或网络服务供应商自动分配IP地址给用户
  • 用于内部网络管理员作为对所有电脑作中央管理的手段

    DHCP用一台或一组DHCP服务器来管理网络参数的分配,这种方案具有容错性。即使在一个仅拥有少量机器的网络中,DHCP仍然是有用的,因为一台机器可以几乎不造成任何影响地被增加到本地网络中。

    甚至对于那些很少改变地址的服务器来说,DHCP仍然被建议用来设置它们的地址。如果服务器需要被重新分配地址的时候,就可以在尽可能少的地方去做这些改动。对于一些设备,如路由器和防火墙,则不应使用DHCP。把TFTP或 SSH服务器放在同一台运行DHCP的机器上也是有用的,目的是为了集中管理。

    DHCP也可用于直接为服务器和桌面计算机分配地址,并且通过一个PPP代理,也可为拨号及宽带主机,以及住宅NAT网关和路由器分配地址。DHCP一般不适用于使用在无边际路由器和服务器上。

    DHCP统一使用两个IANA分配的端口作为BOOTP:服务器端使用67/udp,客户端使用68/udp。

    DHCP运行分为四个基本过程,分别为请求IP租约、提供IP租约、选择IP租约和确认IP租约。

客户在获得了一个IP地址以后,就可以发送一个ARP请求来避免由于DHCP服务器地址池重叠而引发的IP冲突。

DHCP

DHCP发现(DISCOVER)

    客户在物理子网上发送广播来寻找可用的服务器。网络管理员可以配置一个本地路由来转发DHCP包给另一个子网上的DHCP服务器。该客户实现生成一个目的地址为255.255.255.255或者一个子网广播地址的UDP包。

    客户也可以申请它使用的最后一个IP地址(在下面的例子里为192.168.1.100)。如果该客户所在的网络中此IP仍然可用,服务器就可以准许该申请。否则,就要看该服务器是授权的还是非授权的。授权服务器会拒绝请求,使得客户立刻申请一个新的IP。非授权服务器仅仅忽略掉请求,导致一个客户端请求的超时,于是客户端就会放弃此请求而去申请一个新的IP地址。

DHCP提供(OFFER)

    当DHCP服务器收到一个来自客户的IP租约请求时,它会提供一个IP租约。DHCP为客户保留一个IP地址,然后通过网络单播一个DHCPOFFER消息给客户。该消息包含客户的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供IP的DHCP服务器的IP。

    服务器基于在CHADDR字段指定的客户硬件地址来检查配置。这里的服务器,192.168.1.1,将IP地址指定于YIADDR字段。

DHCP请求(REQUEST)

    当客户PC收到一个IP租约提供时,它必须告诉所有其他的DHCP服务器它已经接受了一个租约提供。因此,该客户会发送一个DHCPREQUEST消息,其中包含提供租约的服务器的IP。当其他DHCP服务器收到了该消息后,它们会收回所有可能已提供给客户的租约。然后它们把曾经给客户保留的那个地址重新放回到可用地址池中,这样,它们就可以为其他计算机分配这个地址。任意数量的DHCP服务器都可以响应同一个IP租约请求,但是每一个客户网卡只能接受一个租约提供。

DHCP确认(Acknowledge,ACK)

    当DHCP服务器收到来自客户的REQUEST消息后,它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息。这时候,TCP/IP配置过程就完成了。

该服务器响应请求并发送响应给客户。整个系统期望客户来根据选项来配置其网卡。

原创文章,作者:HGG,如若转载,请注明出处:http://www.178linux.com/82631

(0)
HGGHGG
上一篇 2017-07-24
下一篇 2017-07-24

相关推荐

  • vim 编辑器介绍

         vi: Visual Interface ,文本编辑器  文本:ASCII, Unicode  文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim – Vi Improved  其他编辑器: gedit 一个简单的图形编辑器 gvim 一个 Vim 编辑器…

    2017-06-03
  • 计算机组成及各部分功能

    计算机组成及各部分功能 计算机组成 区别于利用机械原理对数据进行处理的机械计算机,计算机现在一般都指电子计算机,即电脑。计算机是一种利用电子学原理,根据一些列指令对数据进行处理的工具。 不管是机械计算机还是电子计算机其主要目的还是代替人来完成一系列的数据计算。1941年夏天诞生的阿塔纳索夫-贝瑞计算机是世界上第一部电子计算机,使用了真空管计算器,二进制数值,…

    Linux干货 2016-10-27
  • shell脚本编程之运算

    一、数学运算   1、expr命令     此命令可以在命令行执行数学运算操作。     由于此命令使用时过于麻烦,所以不推荐使用。   2、方括号和双圆括号      $[ EXPRESSION ]      $((&…

    Linux干货 2015-12-31
  • sed与vim

    sed工具 简介 Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Se…

    Linux干货 2016-08-15
  • M20用户和组练习题和作业

    1、创建用户gentoo ,附加组为bin 和root ,默认shell为/bin/csh ,注释信息为"Gentoo Distribution"  useradd gentoo -G bin,boot -s /bin/csh -c "Gentoo Distribution" 2 、创建下面的用户、组和组成员…

    Linux干货 2016-08-03
  • 基于LNMP网站平台,测试增加memcached缓存系统后网站访问效果

    LNMP安装教程链接:22-love cat 17周博客作业第2部分-构建一个LVS-DR模型的高性能集群 memcached 安装及测试效果 一、概念     memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态…

    Linux干货 2016-08-22