Chinaunix首页 | 论坛 | 博客
  • 博客访问: 41842
  • 博文数量: 28
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-26 20:08
文章分类

全部博文(28)

文章存档

2013年(28)

我的朋友

分类: 网络与安全

2013-02-27 17:56:15

简介

DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)是为客户端动态分配IP地址的方法,服务器能够从预先设置的IP地址池里自动给主机分配IP地址。它不仅能够保证IP地址不重复分配,也能及时回收IP地址以提高IP地址的利用率。DHCP具有可伸缩性,相对容易管理。DHCP包括3种不同的地址分配机制:

手动分配:管理员为客户端指定预分配的IP地址,DHCP只将该IP地址传送给设备。

自动分配:DHCP从可用地址池中选择静态IP地址,自动将它永久性地分配给设备,不存在租期问题。

动态分配:DHCP自动动态地从地址池中分配或出租IP地址,使用期限为服务器选择的租借期限,或者直到客户

  端告知DHCP服务器其不再需要该地址为止。

DHCP的工作过程:

①发现阶段:即DHCP客户端寻找DHCP服务器的阶段。DHCP客户端以广播方式(因为DHCP服务器的IP地址对于客户

  端来说是未知的)发送DHCPDISCOVER信息来寻找DHCP服务器。网络上每一台安装了TCP/IP协议的主机都会接收

  到这种广播信息,但只有DHCP服务器才会做出响应。

②提供阶段:DHCP服务器提供IP地址的阶段。在网络中,接收到DHCPDISCOVER信息的DHCP服务器都会做出响

  应,它从尚未分配的IP地址中挑选一个分配给DHCP客户端,向DHCP客户端发送一个包含分配的IP地址和其它设

  置的DHCPOFFER信息。

③选择阶段:DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户端发送

  DHCPOFFER信息,则DHCP客户端只接受第一个收到的DHCPOFFER信息,然后它以广播方式回答一个DHCPREQUEST

  信息,该信息中包含它所选定的DHCP服务器请求IP地址的内容,之所以要以广播方式回答,是为了通知所有的

  DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。

④确认阶段:即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCPREQUEST信息

  之后,他便向DHCP客户端发送一个包含它所提供的IP地址和其它设置的DHCPACK信息,告诉DHCP客户端可以使

  用它所提供的IP地址,然后DHCP客户端便将其TCP/IP协议与网卡绑定。另外,除DHCP客户端选中的服务器外,

  其它的DHCP服务器都将收回曾提供的IP地址。

⑤重新登录:以后DHCP客户端每次重新登录网络时,就不需要再发送DHCPDISCOVER信息了,而是直接发送包含

  前一次所分配的IP地址的DHCPREQUEST信息。当DHCP服务器收到这一信息后,它将尝试让DHCP客户端继续使用

  原来的IP地址,并回答一个DHCPACK信息。如果此IP地址已无法再分配原来的DHCP客户端使用时(比如IP地址已

  分配给其它DHCP客户端使用),则DHCP服务器给DHCP客户端回答一个DHCPNACK信息。当原来的DHCP客户端收到

  此DHCPNACK信息后,它将必须重新发送DHCPDISCOVER信息来请求新的IP地址。

⑥更新租约:DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租

  的IP地址。如果DHCP客户端要延长其IP租约,则必须更新其IP租约。DHCP客户端启动时间为租约期限的50%

  时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。如果DHCP服务器应答,则租用延期;如果

  DHCP服务器始终没有应答,在有效租借期的87.5%,客户应该与任何一个其它的DHCP服务器通信,并请求更新

  它的配置信息。如果客户端不能和所有的DHCP服务器取得联系,租借时间到后,它必须放弃当前的IP地址并重

  新发送一个DHCPDISCOVER信息开始上述的IP地址获得过程。当然,客户端可以主动向服务器发出DHCPRELEASE

  信息,将当前的IP地址释放。

DHCP数据包的格式

DHCP
OP 代码:1表示是Client的请求,2表示是Server的应答。

HTYPE 硬件类型:网络中使用的硬件类型,如:1表示以太网、15表示帧中继、20表示串行线路等。

HLEN 硬件地址长度:指硬件地址的长度。

HOPS 跳数:当前的DHCP数据包经过的DHCP RELAY(中继)的数目,每经过一个DHCP中继,此字段就会加1,此字

  段的作用是限制DHCP数据包不要经过太多的DHCP延时。

TRANSACTION ID 事物ID:由客户端产生的32位标识符,用来将请求与从DHCP服务器收到的回复进行匹配。

SECONDS 秒数:从客户端开始尝试获取或更新租用以来经过的秒数。当有多个客户端请求未得到处理时,繁忙

  的DHCP服务器使用此数值来排定回复的优先顺序。

FLAGS 标志:只使用16位中的左边的最高位,代表广播标志。

ciaddr 客户端IP地址:当且仅当客户端有一个有效地IP地址且处于绑定状态时,客户端才将自己的IP地址放

  在这个字段中,否则客户端设置此字段为0。

yiaddr 你的IP地址:服务器分配给客户端的IP地址。

siaddr 服务器IP地址:用于bootstrap过程中的IP地址。

giaddr 网关IP地址:当涉及DHCP中继代理时,路由DHCP消息的IP地址。网关地址可以帮助位于不同子网或网

  络的客户端与服务器之间传输DHCP请求和DHCP回复。
chaddr 客户端硬件地址:客户端的物理层地址。

sname 服务器名称:发送DHCPOFFER或DHCPACK消息的服务器可以选择性地将其名称放在此字段中。

file 启动文件名:客户端选择性地在DHCPDISCOVER消息中使用它来请求特定类型的启动文件。服务器在DHCP中

  使用它来完整指定启动文件目录和文件名。

Options DHCP选项:容纳DHCP选项,包括基本DHCP运作所需的几个参数。此字段的长度不定,最长312字节,

  客户端与服务器均可以使用此字段。

 

DHCP配置

路由器R1是DHCP服务器,负责向PC1和PC2所在网络的主机动态分配IP地址,所以在R1上需要定义了两个地址池,试验中定义的第三个地址池POOL_3为DHCP静态IP地址配置方法。整个网络运行RIPv2协议。

DHCP

配置IP地址及路由:

R1(config)#int s1/0
R1(config-if)#ip add 172.16.12.1 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#no sh
R1(config)#int f0/0
R1(config-if)#ip add 172.16.1.1 255.255.255.0
R1(config-if)#no sh
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 172.16.0.0

R2(config)#int s1/0
R2(config-if)#ip add 172.16.12.2 255.255.255.0
R2(config-if)#no sh
R2(config)#int f0/0
R2(config-if)#ip add 172.16.2.1 255.255.255.0
R2(config-if)#no sh
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#no auto-summary
R2(config-router)#network 172.16.0.0

配置DHCP:

配置DHCP服务器:

R1(config)#service dhcp        //启用DHCP服务,默认就是开启的
R1(config)#no ip dhcp conflict logging        //取消地址冲突记录日志
R1(config)#ip dhcp pool POOL_1        //定义一个名为POOL_1的地址池
R1(dhcp-config)#network 172.16.1.0 /24        //地址池的网络和掩码
R1(dhcp-config)#default-router 172.16.1.1        //默认网关,可以配置多个
R1(dhcp-config)#dns-server 172.16.1.2        //DNS服务器,可以配置多个
R1(dhcp-config)#netbios-name-server 172.16.1.3        //WINS服务器,可以配置多个
R1(dhcp-config)#domain-name yly1.com        //域名
R1(dhcp-config)#option 150 172.16.1.4        //TFTP服务器
R1(config)#ip dhcp excluded-address 172.16.1.1 172.16.1.4        //排除的地址

R1(config)#ip dhcp pool POOL_2
R1(dhcp-config)#network 172.16.2.0 /24
R1(dhcp-config)#default-router 172.16.2.1
R1(dhcp-config)#dns-server 172.16.1.2
R1(dhcp-config)#netbios-name-server 172.16.1.3

R1(dhcp-config)#domain-name yly2.com
R1(dhcp-config)#option 150 ip 172.16.1.4
R1(dhcp-config)#lease infinite
R1(config)#ip dhcp excluded-address 172.16.1.1

R1(config)#ip dhcp pool POOL_3
R1(dhcp-config)#host 172.16.1.158 255.255.255.0        //配置要分配的IP地址
R1(dhcp-config)#client-identifier 01CC.0012.3443.21        //配置客户端的标识符

说明:

①默认网关的地址要和相应网络所连接的路由器的以太口地址相同,可以配置多个;

②如果DHCP客户端为路由器,可以使用如下命令自动获取IP地址:

  Router(config)#int f0/0

  Router(config-if)#ip address dhcp        //配置客户端IP地址为DHCP获取

  Router(config-if)#no sh

③配置静态IP地址的2种方法:

  1)直接配置静态IP地址:

    1>客户端为主机时:IP地址设置为自动获取;

    2>客户端为路由器时:接口下使用“ip address”命令,手动配置IP地址。

  2)使用DHCP静态IP地址配置:试验中POOL_3即为DHCP Server的静态IP地址配置方法,DHCP Client配置如下:

    1>客户端为主机时:IP地址设置为自动获取;

    2>客户端为路由器时:配置命令如下:

      Router(config)#int f0/0

      Router(config-if)#ip address dhcp        //配置客户端IP地址为DHCP获取

      Router(config-if)#ip dhcp client client-id f0/0    //把F0/0接口的MAC地址作为客户端标识符

      Router(config-if)#no sh

④客户端标识符(client-identifier):前两位0x01为以太网网络类型,CC.0012.3443.21为以太网MAC地址。

配置DHCP Relay:

由于路由器不能转发“255.255.255.255”的广播,但是很多服务(如DHCP和TFTP等)的客户端请求都是以泛洪广播的方式发起的,我们不可能在每个网点都设置这样的服务器,但是Cisco可以通过使用帮助地址,路由器可以被配置为接受对UDP服务的广播请求,然后将之以单点传送的方式发给某个具体的IP地址,或者以定向广播的形式向某个网段转发这些请求,这就是Relay(中继)。

R2(config)#int f0/0
R2(config-if)#ip helper-address 172.16.12.1        //配置帮助地址,用于完成DHCP Relay

配置Windows客户端:

PC1:ipconfig /all

PC1:ipconfig /release

PC1:ipconfig /renew

DHCP

实验调试:

R1#show ip dhcp pool        //查看DHCP地址池的信息

DHCP
R1#show ip dhcp binding        //查看DHCP的IP地址绑定情况
DHCP
以上输出表明DHCP服务器自动分配给客户端的IP地址以及所对应的客户端的标识符(Client-identifier)其中标识符是DHCP客户端发给服务器的标识符,由硬件类型代码加上主机的MAC地址组成,在上面的输出中,我么看到以太网的硬件类型代码为0x01。

R1#debug ip dhcp server events        //查看DHCP服务器发生的事件

R1#clear ip dhcp binding *        //清除DHCP所有绑定条目

PC1:ipconfig /release

PC1:ipconfig /renew
DHCP
以上输出显示了DHCP动态分配IP地址的基本过程。

R2#show ip int f0/0
DHCP
R1#show ip dhcp server statistics        //显示DHCP服务器的统计信息
DHCP

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

上一篇:NAT

下一篇:GUI配置

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