Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1642126
  • 博文数量: 268
  • 博客积分: 8708
  • 博客等级: 中将
  • 技术积分: 3764
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-06 15:58
文章分类

全部博文(268)

文章存档

2014年(1)

2013年(15)

2012年(23)

2011年(60)

2010年(51)

2009年(12)

2008年(59)

2007年(47)

分类: 系统运维

2010-09-20 11:54:36

动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或供应商自动分配给用户给内部网络管理员作为对所有计算机作中央管理的手段。
DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端(客户端不用安装,windows 9x/2000/xp 在默认情况下都启动DHCP Client服务)。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。比较起 BOOTP ,DHCP 透过 "租约" 的概念,有效且动态的分配客户端的 TCP/IP 设定,而且,作为兼容考虑,DHCP 也完全照顾了 BOOTP Client 的需求。 DHCP 的分配形式 首先,必须至少有一台 DHCP 工作在网络上面,它会监听网络的 DHCP 请求,并与客户端磋商 TCP/IP 的设定环境。它提供三种 IP 定位方式:
Manual Allocation  网络管理员为某些少数特定的Host绑定固定IP地址,且地址不会过期
Automatic Allocation  自动分配,其情形是:一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。
Dynamic Allocation   动态分配,当 DHCP 第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。 动态分配显然比自动分 配更加灵活,尤其是当您的实际 IP 地址不足的时候,例如:您是一家 ISP ,只能提供 200 个IP地址用来给拨接客户,但并不意味着您的客户最多只能有 200 个。因为要知道,您的客户们不可能全部同一时间上网的,除了他们各自的行为习惯的不同,也有可能是电话线路的限制。这样,您就可以将这 200 个地址,轮流的租用给拨接上来的客户使用了。这也是为什么当您查看 IP 地址的时候,会因每次拨接而不同的原因了(除非您申请的是一个固定 IP ,通常的 ISP 都可以满足这样的要求,这或许要另外收费)。当然,ISP 不一定使用 DHCP 来分配地址,但这个概念和使用 IP Pool 的原理是一样的。 DHCP 除了能动态的设定 IP 地址之外,还可以将一些 IP 保留下来给一些特殊用途的机器使用,它可以按照硬件地址来固定的分配 IP 地址,这样可以给您更大的设计空间。同时,DHCP 还可以帮客户端指定 router、netmask、DNS Server、WINS Server、等等项目,您在客户端上面,除了将 DHCP 选项打勾之外,几乎无需做任何的 IP 环境设定。

工作原理

根据客户端是否第一次登录网络,DHCP 的工作形式会有所不同。   
第一次登录的时候:寻找 Server   
当 DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 IP 数据设定,它会向网络发出一个 DHCP DISCOVER 封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为 0.0.0.0 ,而目的地址则为 255.255.255.255 ,然后再附上 DHCP discover 的信息,向网络进行广播。 在 Windows 的预设情形下,DHCP discover 的等待时间预设为 1 秒,也就是当客户端将第一个 DHCP discover 封包送出去之后,在 1 秒之内没有得到响应的话,就会进行第二次 DHCP discover 广播。若一直得不到响应的情况下,客户端一共会有四次 DHCP discover 广播(包括第一次在内),除了第一次会等待 1 秒之外,其余三次的等待时间分别是 9、13、16 秒。如果都没有得到 DHCP 服务器的响应,客户端则会显示错误信息,宣告 DHCP discover 的失败。之后,基于使用者的选择,系统会继续在 5 分钟之后再重复一次 DHCP discover 的过程。

提供 IP 租用地址

  当 DHCP 服务器监听到客户端发出的 DHCP discover 广播后,它会从那些还没有租出的地址范围内,选择最前面的空置 IP ,连同其它 TCP/IP 设定,响应给客户端一个 DHCP OFFER 封包。 由于客户端在开始的时候还没有 IP 地址,所以在其 DHCP discover 封包内会带有其 MAC 地址信息,并且有一个 XID 编号来辨别该封包,DHCP 服务器响应的 DHCP offer 封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCP offer 封包会包含一个租约期限的信息。

接受 IP 租约

  如果客户端收到网络上多台 DHCP 服务器的响应,只会挑选其中一个 DHCP offer 而已(通常是最先抵达的那个),并且会向网络发送一个DHCP request广播封包,告诉所有 DHCP 服务器它将指定接受哪一台服务器提供的 IP 地址。 同时,客户端还会向网络发送一个 ARP 封包,查询网络上面有没有其它机器使用该 IP 地址;如果发现该 IP 已经被占用,客户端则会送出一个 DHCPDECLIENT 封包给 DHCP 服务器,拒绝接受其 DHCP offer ,并重新发送 DHCP discover 信息。 事实上,并不是所有 DHCP 客户端都会无条件接受 DHCP 服务器的 offer ,尤其这些主机安装有其它 TCP/IP 相关的客户软件。客户端也可以用 DHCP request 向服务器提出 DHCP 选择,而这些选择会以不同的号码填写在 DHCP Option Field 里面:   换一句话说,在 DHCP 服务器上面的设定,未必是客户端全都接受,客户端可以保留自己的一些 TCP/IP 设定。而主动权永远在客户端这边。

租约确认

  当 DHCP 服务器接收到客户端的 DHCP request 之后,会向客户端发出一个   DHCPACK 响应,以确认 IP 租约的正式生效,也就结束了一个完整的 DHCP 工作过程。   DHCP 发放流程第一次登录之后: 一旦 DHCP 客户端成功地从服务器哪里取得 DHCP 租约之后,除非其租约已经失效并且 IP 地址也重新设定回 0.0.0.0 ,否则就无需再发送 DHCP discover 信息了,而会直接使用已经租用到的 IP 地址向之前之 DHCP 服务器发出 DHCP request 信息,DHCP 服务器会尽量让客户端使用原来的 IP 地址,如果没问题的话,直接响应 DHCPack 来确认则可。如果该地址已经失效或已经被其它机器使用了,服务器则会响应一个 DHCPNACK 封包给客户端,要求其从新执行 DHCP discover。 至于 IP 的租约期限却是非常考究的,并非如我们租房子那样简单, 以 NT 为例子:DHCP 工作站除了在开机的时候发出 DHCP request 请求之外,在租约期限一半的时候也会发出 DHCP request ,如果此时得不到 DHCP 服务器的确认的话,工作站还可以继续使用该 IP ;当租约期过了87.5%时,如果客户机仍然无法与当初的联 系上,它将与其它DHCP服务器通信。如果网络上再没有任何DHCP服务器在运行时,该客户机必须停止使用该IP地址,并从发送一个 Dhcpdiscover数据包开始,再一次重复整个过程。要是您想退租,可以随时送出 DHCPRELEASE 命令解约,就算您的租约在前一秒钟才获得的。


如何设置DHCP服务器

  目前很多的宽带路由器都具有设置DHCP服务器的功能(或者用主机配置单独的DHCP Server),TP-LINK推出的TL-410是一款面向家庭用户的宽带路由器,其外观小巧,时尚。而且价格便宜,非常适合家庭用户学生一族的使用。TL-R410宽带路由器也具有支持DHCP服务器的功能,具有手动分配(静态IP地址分配)和动态分配两种分配方式。下面我们就简单介绍一下,如何利用TP-link的TL-R410宽带路由器为例,设置DHCP服务器的功能。

  首先进入路由器的设置界面,选择DHCP服务器,可以看到有三个子文件,DHCP服务、客户端列表和静态地址分配。选择DHCP服务,将进入如下的设置画面

  首先选择启用DHCP服务器,这样就可以利用自动分配地址功能。地址池开始地址:DHCP服务器所自动分配的IP的起始地址。地址池结束地址:DHCP服务器所自动分配的IP的结束地址。网关:可选项,建议填入路由器LAN口的IP地址,缺省是192.168.1.1。缺省域名:可选项,填入本地网域名。主DNS服务器:可选项,填入ISP提供给您的DNS服务器,不清楚可以向ISP询问。备用DNS服务器:可选项,如果ISP提供给您了两个DNS服务器,则您可以把另一个DNS服务器的IP地址填于此处。

  注意:为了使用该路由器的DHCP服务器功能,局域网中各计算机的TCP/IP协议必须设置为“自动获得IP地址”。此功能需要重启路由器才能生效。

    选择客户端的列表就可以看到本地局域网中通过该路由器连接到因特网的客户端主机的信息,包括客户端主机名,客户端的MAC地址,已经分配的IP地址和剩余的租期。从上图中我们可以看出通过该路由器的有三台主机连接到因特网。

  租期是一个重要的概念,当客户机采用动态地址分配时,DHCP服务器会动态地给客户机分配IP地址,但分配的IP地址并不是一直给某个客户机使用的,当DHCP服务器分配给客户机IP地址时,同时会通知客户机可以使用此地址的期限(即租期),到期限后如果客户机没有申请延长租期,那么DHCP服务器就会收回此IP地址,而剩余租期就是DHCP服务器将要收回IP地址的剩余时间。因此,客户机会在租期未到前(比如还剩一半时)向CHCP服务器申请延长租期,当然,当客户机不在使用此IP时会通知DHCP服务器收回此IP,以后这个IP就可以分配给其他客户机使用了。

  利用TL-R410还可以设置DHCP服务器的静态地址分配功能。选择静态地址分配就出现如下的设置画面。

  如上图所显示,知道主机的MAC地址,静态的分配IP地址给主机就可以。这样路由器的DHCP服务器功能就完全设置好了。在网络中的每台主机,只需要在TCP/IP协议选项中设置为“自动获得IP地址”,此功能需要重启路由器才能生效。免去每台主机都要要进行烦琐的TCP/IP协议设置的麻烦。


阅读(1096) | 评论(0) | 转发(0) |
0

上一篇:路由器

下一篇:NS2分裂对象模型

给主人留下些什么吧!~~