DHCP服务器的做用

DHCPhtml

         DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工做, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员做为对全部计算机做中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别做为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是须要特别开启的服务,DHCP failover是用来作“双机热备”的。api

DHCP功能概述服务器

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)为互联网上主机提供地址和配置参数。DHCP是基于Client/Server工做模式,DHCP服务器为须要为主机分配IP地址和提供主机配置参数。DHCP具备如下功能:网络

1.保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。ide

2.DHCP应当能够给用户分配永久固定的IP地址。编码

3.DHCP应当能够同用其余方法得到IP地址的主机共存(如手工配置IP地址的主机)spa

4.DHCP服务器应当向现有的BOOTP客户端提供服务。代理

DHCP有三种机制分配IP地址:router

1) 自动分配(Automatic Allocation),DHCP给客户端分配永久性的IP地址;server

相关图片链接:http://baike.baidu.com/picture/7992/7992/0/fcbbb1511e6f3bef8d543037?fr=lemma&ct=single#aid=0&pic=fcbbb1511e6f3bef8d543037

2) 动态分配(Dynamic Allocation), DHCP给客户端分配过一段时间会过时的IP地址(或者客户端能够主动释放该地址);

3) 手工配置(Manual Allocation),由网络管理员给客户端指定IP地址。管理员能够经过DHCP将指定的IP地址发给客户端。

三种地址分配方式中,只有动态分配能够重复使用客户端再也不须要的地址。

DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具备BOOTP中继代理的功能,并可以与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每一个物理网络都部署一个DHCP服务器。RFC 951和RFC 1542对BOOTP协议进行了详细描述。

DHCP封包格式

DHCP的封包格式如http://baike.baidu.com/picture/7992/7992/0/fcbbb1511e6f3bef8d543037?fr=lemma&ct=single#aid=0&pic=fcbbb1511e6f3bef8d543037所示,各字段定义以下:

FIELD OCTETS DESCRIPTION

----- ------ -----------

  DHCP报文格式

OP:

如果 client 送给 server 的封包,设为 1 ,反向为 2。HTYPE

硬件类别,Ethernet 为 1。

HLEN:

硬件地址长度, Ethernet 为 6。

HOPS:

若封包需通过 router 传送,每站加 1 ,若在同一网内,为 0。

TRANSACTION ID:

DHCP REQUEST 时产生的数值,以做 DHCPREPLY 时的依据。

SECONDS:

Client 端启动时间(秒)。

FLAGS:

从 0 到 15 共 16 bits ,最左一 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其他还没有使用。

ciaddr:

要是 client 端想继续使用以前取得之 IP 地址,则列于这里。

yiaddr:

从 server 送回 client 之 DHCP OFFER 与 DHCPACK封包中,此栏填写分配给 client 的 IP 地址。

siaddr:

若 client 须要透过网络开机,从 server 送出之 DHCP OFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程序代码所在 server 之地址。

giaddr:

若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,不然为 0。

chaddr:

Client 之硬件地址。

sname:

Server 之名称字符串,以 0x00 结尾。

file:

若 client 须要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。

options:

容许厂商定议选项(Vendor-Specific Area),以提供更多的设定信息(如:Netmask、Gateway、DNS、等等)。其长度可变,同时可携带多个选项,每一选项之第一个 byte 为信息代码,其后一个 byte 为该项数据长度,最后为项目内容。CODE LEN VALUE 此字段彻底兼容 BOOTP ,同时扩充了更多选项。其中,DHCP封包可利用编码为 0x53 之选项来设定封包类别:

项值类别:

1 DHCP DISCOVER

2 DHCP OFFER

3 DHCP REQUEST

4 DHCPDECLINE

5 DHCPACK

6 DHCPNACK

7 DHCPRELEASE

DHCP 的选项很是多,有空请查阅 RFC 或相关文献,并好好理解,这里再也不叙述了。


DHCP相关介绍

DHCP客户端

DHCP客户端可让设备自动地从DHCP服务器得到IP地址以及其余配置参数。DHCP客户端能够带来以下好处:

  • 下降了配置和部署设备时间。

  • 下降了发生配置错误的可能性。

  • 能够集中化管理设备的IP地址分配。

DHCP服务器

DHCP服务器指的是由服务器控制一段IP地址范围,客户端登陆服务器时就能够自动得到服务器分配的IP地址和子网掩码。

DHCP中继代理

DHCPRelay(DHCPR)DHCP中继 也叫作DHCP中继代理。DHCP中继代理,就是在DHCP服务器和客户端

http://baike.baidu.com/picture/7992/7992/0/58c3acb76e1e91b430add15a?fr=lemma&ct=single#aid=0&pic=58c3acb76e1e91b430add15a

  相关链接

之间转发DHCP数据包。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与一般路由转发是不一样的,一般的路由转发相对来讲是透明传输的,设备通常不会修改IP包内容。而DHCP中继代理接收到DHCP消息后,从新生成一个DHCP消息,而后转发出去。

在DHCP客户端看来,DHCP中继代理就像DHCP服务器;在DHCP服务器看来,DHCP中继代理就像DHCP客户端。

DHCP工做原理

DHCP工做的基本流程

DHCP请求IP地址的过程以下:

1) 主机发送DHCPDISCOVER广播包在网络上寻找DHCP服务器;

2) DHCP服务器向主机发送DHCPOFFER广播数据包,包含IP地址、MAC地址、域名信息以及地址租期;

3) 主机发送DHCPREQUEST广播包,正式向服务器请求分配已提供的IP地址;

4) DHCP服务器向主机发送DHCPACK单播包,确认主机的请求

须要说明的是:DHCP客户端能够接收到多个DHCP服务器的DHCPOFFER数据包,而后可能接受任何一个DHCPOFFER数据包,但客户端一般只接受收到的第一个DHCPOFFER数据包。另外,DHCP服务器DHCPOFFER中指定的地址不必定为最终分配的地址,一般状况下,DHCP服务器会保留该地址直到客户端发出正式请求。

正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它全部发送DHCPOFFER数据包的DHCP服务器也可以接收到该数据包,而后释放已经OFFER(预分配)给客户端的IP地址。

若是发送给DHCP客户端的地址已经被其余DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息。

在协商过程当中,若是DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已通过期,DHCP服务器会发送DHCPNAK消息给DHCP客户 端,让客户端从新发起地址请求过程。

相关文章
相关标签/搜索