2009年1月7日星期三

DHCP简介

DHCP:Dynamic Host Configuration Protocol 动态主机配置协议。DHCP是由RFC2131来进行定义的。DHCP为网络主机提供配置参数。DHCP包括两个要素:一个是用来将每个主机的配置属性从DHCP服务器传递到主机的协议;一个是将IP地址分配给主机的机制。DHCP采用的是客户端/服务器的模式,指定的DHCP服务器提供网络地址并将配置属性提供给动态配置的主机。默认情况下,运行思科IOS的路由器包括DHCP服务器和中继代理的功能。
DHCP支持三种IP地址的分配机制:
1、自动分配:DHCP将一个IP地址永久的分配给一个主机
2、动态分配:DHCP将一个IP地址分配给一个主机,但是这个分配是有时间限制的(或者直到主机释放这个IP)。
3、手动分配:网络管理员将一个IP地址分配给一个主机,DHCP仅仅用于简单的将IP地址传递给主机。
DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息的格式的,这保证了DHCP消息可以被BOOTP中继代理支持,从而可以使BOOTP客户端和DHCP服务器之间进行交互。BOOTP中继代理可以使得我们不必为每个物理网段配置一个DHCP服务器。BOOTP在RFC951(Bootstrap Protocol)和RFC1542(Clarifications and Extensions for the Bootstrap Protocol BooTP的澄清和扩展)中被解释。
一、DHCP服务器
Cisco IOS DHCP服务器具有DHCP服务器的全部功能。可以将路由器中指定的地址池中IP地址分配给DHCP客户端,并且能够管理这些IP地址。如果Cisco IOS DHCP服务器自己的数据库无法满足一个DHCP请求,那么它会将这个请求转发给一个或多个网络管理员定义的DHCP服务器。
当一个DHCP客户端从一个DHCP服务器哪里请求IP地址时基本的步骤:
1、客户端发送DHCPDISCOVER广播信息来发现一个Cisco DHCP 服务器。
2、DHCP服务器使用DHCPOFFER单播信息,将配置属性,比如IP地址、MAC地址、域名、以及租期,发送给客户端。
3、客户端使用DHCPREQUEST广播消息,作为正式的请求,来请求前面DHCP服务器分配的IP地址等。
4、DHCP服务器返回一个DHCPACK单播信息给客户端,确认分配给客户端的IP地址信息。
注:DHCP客户端可以从多个DHCP服务器哪里接收回复,并且可以接收其中任意一个回复。但是,客户端通常接受它收到的第一个回复。此外,从DHCP服务器哪里收到回复,并不保证这个IP地址就被分配给了这个客户端,服务器通常会保留这个地址,直到客户端正式地请求这个地址。
注:对DHCP服务器提供的IP地址的正式请求(即DHCPREQUEST信息)通常被客户端以广播的形式发送,这样网络上的所有其他DHCP服务器都能将它们提供给客户端的IP地址回收(这些其他服务器就是先前收到了客户端的DHCPDISCOVER消息的服务器,这些服务器给客户端提供了IP地址,但是没有被客户端采用)。
如果在DHCP服务器发送给客户端的DHCPOFFER单播消息中存在错误的配置属性,从而导致该配置不可用,那么这个客户端就会将一个DHCPDECLINE广播消息返回给DHCP客户端。
如果在属性协商的过程中发生了错误,或者客户端对DHCP服务器的DHCPOFFER消息反应很慢,从而导致DHCP服务器已经将这些属性分配给了另一个客户端,这个时候DHCP服务器就会给客户端发送一个DHCPNAK否认广播消息,这个消息意味着先前提供的配置属性还没有被分派。
DHCP还定义了一个进程,通过这个进程,DHCP服务器能够知道DHCP客户端所在的IP子网。并且能够从由那个子网中可用IP地址组成的池中,选取一个IP地址,分配给客户端。
DHCP服务器使用下面的步骤,来确定使用那个DHCP地址池,来响应客户端请求:
1、如果客户端不是直接与DHCP服务器连接(即,DHCPDISCOVER广播消息的giaddr区域是非零的。giaddr为gateway ip address),DHCP服务器会根据在DHCPDISCOVER消息的giaddr区域中包含的IP地址,来选择一个地址池(这个地址池包含giaddr包含的IP地址所在的子网),DHCP会从这个地址池中选择一个IP地址,并将这个地址包含在DHCPOFFER中,分配给这个客户端。
2、如果客户端是直接连到DHCP服务器上的(即giaddr区域是0),DHCP服务器会使用接收到DHCPDISCOVER消息的端口,用这个端口所在的子网,来匹配DHCP地址池。如果这个端口有备用IP地址,那么只会在这个端口上的主要IP地址所在的子网耗尽的情况下,才会使用这个备用IP地址所在的子网,用于分配IP地址。
Cisco IOS DHCP服务器功能提供了以下的好处:
1、降低了网络访问花费:在每个远端站点使用自动IP地址分配本质上来说缩减了网络访问花费。静态IP地址是更加昂贵的,比动态分配IP地址来说。
2、减少了客户端配置的任务和花费:因为DHCP很容易配置,它减少了设备配置的任务和花费,甚至可以让非技术用户都可以轻松配置。
3、便于集中管理:因为DHCP服务器可以管理多个子网。当配置属性改变的时候,管理员只需要更新一个中心服务器。
在配置Cisco IOS DHCP服务器以前,要完成下面的任务:
1、确定一个外部的FTP(File Transport Protocol)、TFTP(Trivial File Transport Protocol)或者RCP(Remote Copy Protocol)服务器,用于存储DHCP捆绑数据库(这个捆绑数据库用于DHCP 监控,DHCP snoop,用于存储IP地址、MAC地址等信息)。
2、确定DHCP服务器可以分配的IP地址,以及那些你想要排除的IP地址。
3、为需要的设备确定DHCP选项,包括:默认引导镜像名、默认路由器、DNS服务器、NetBIOS服务器
4、决定NetBIOS节点类型(b、p、m、or h)(节点类型决定客户端使用何种方式,来将NetBIOS名解析为IP地址)
5、决定DNS域名
二、DHCP客户端
Cisco IOS DHCP客户端(可以使用DHCP协议给运行Cisco IOS的设备分配IP地址,在路由器上可以支持到端口的IP地址分配?)可以使你从DHCP服务器哪里动态获取一个IP地址。在Cisco IOS Release 12.2中,只有ethernet端口能够支持DHCP客户端,随着改进,现在所有的端口类型都能支持DHCP客户端。Cisco IOS DHCP客户端有以下优点:
1、减少了配置和部署(deploy)时间
2、减少了配置错误的数量
3、可以使用户集中管理分配给Cisco IOS 路由器的IP地址
三、DHCP中继代理
DHCP中继代理可以是任何能够在DHCP服务器和客户端之间转发DHCP包的主机。当DHCP服务器和客户端不在一个物理网段的时候,DHCP中继代理被用于转发DHCP请求和回复。DHCP中继代理的转发与IP路由器的转发是明显不同的。IP路由器在网络之间透明的转发IP数据报。而中继代理接收DHCP消息然后重新生成一个新的DHCP消息,再将DHCP消息从另一个端口发送出去。
Cisco IOS DHCP中继代理支持未编号端口的使用,DHCP中继代理可以自动将未编号端口标记为外部端口,并增加一个静态主机路由。
注:未编号端口:主要是为了减少IP的占用,将两个端口使用同一个IP地址。例如:在端口e1的端口配置模式下使用命令ip unnumbered ethernet 0,那么e1会同时使用e0的IP地址。两个端口共享e0的IP地址。

没有评论:

发表评论