精通DHCP协议

精通DHCP协议

1.DHCP(动态主机配置协议)基本信息

2.DHCP协议概述

3.关于VLAN中DHCP域的问题

4.DHCP简介

5. DHCP协议

6. 如何建立DHCP服务器

7. DHCP协议详解(上)

8. DHCP协议详解(下)

1. DHCP(动态主机配置协议)基本信息

■概要

动态主机配置协议(DHCP)是RFC1541(由RFC2131替代)定义的标准协议,该协议允许服务器向客户端动态分配IP地址和配置信息。通常,DHCP服务器至少给客户端提供以下基本信息:

IP地址

子网掩码

默认网关

它还可以提供其它信息,如域名服务(DNS)服务器地址和WindowsInternet命名服务(WINS)服务器地址。系统管理员配置DHCP服务器分配给客户端的选项。

■更多信息

以下Microsoft产品提供DHCP客户端功能:

WindowsNTServer3.5、3.51和4.0

WindowsNTWorkstation3.5、3.51和4.0

Windows95

MicrosoftNetworkClient3.0forMS-DOS

MicrosoftLANManagerClient2.2cforMS-DOS

MicrosoftTCP/IP-32forWindowsforWorkgroups3.11、3.11a和3.11b

DHCP客户端可以接收来自DHCP服务器的选项,而不同的DHCP客户端支持不同的这些选项。有关MicrosoftDHCP客户端所支持的特定DHCP选项的信息,请参见MicrosoftKnowledgeBase中以下文章:

Q121005受客户端支持的DHCP选项

以下Microsoft服务器操作系统提供DHCP服务器功能:

WindowsNTServer3.5

WindowsNTServer3.51

WindowsNTServer4.0

当客户端被配置为接收DHCP信息后首次初始化时,它将启动一个与服务器的对话。

以下是客户端和服务器之间对话的汇总表,后面是数据包级的过程说明:

SourceDestSourceDestPacket

MACaddrMACaddrIPaddrIPaddrDescription

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

ClientBroadcast0.0.0.0255.255.255.255DHCPDiscover

DHCPsrvrBroadcastDHCPsrvr255.255.255.255DHCPOffer

ClientBroadcast0.0.0.0255.255.255.255DHCPRequest

DHCPsrvrBroadcastDHCPsrvr255.255.255.255DHCPACK

DHCP客户端和DHCP服务器之间的详细对话如下:

DHCPDISCOVER

客户端发送DHCPDISCOVER数据包。以下内容摘自网络监视器的捕获信息,显示了DHCPDISCOVER 数据包中的IP和DHCP部分。在IP部分,可以看到Destination地址是255.255.255.255,而Source地址是0.0.0.0。DHCP部分将数据包标识为Discover数据包,并使用网卡的物理地址在两处标识客户端。注意CHADDR字段和DHCP的值:ClientIdentifier字段是相同的。

IP:ID=0x0;Proto=UDP;Len:328

IP:Version=4(0x4)

IP:HeaderLength=20(0x14)

IP:ServiceType=0(0x0)

IP:Precedence=Routine

IP:...0....=NormalDelay

IP:....0...=NormalThroughput

IP:.....0..=NormalReliability

IP:TotalLength=328(0x148)

IP:Identification=0(0x0)

IP:FlagsSummary=0(0x0)

IP:.......0=Lastfragmentindatagram

IP:......0.=Mayfragmentdatagramifnecessary

IP:FragmentOffset=0(0x0)bytes

IP:TimetoLive=128(0x80)

IP:Protocol=UDP-UserDatagram

IP:Checksum=0x39A6

IP:SourceAddress=0.0.0.0

IP:DestinationAddress=255.255.255.255

IP:Data:Numberofdatabytesremaining=308(0x0134)

DHCP:Discover(xid=21274A1D)

DHCP:OpCode(op)=1(0x1)

DHCP:HardwareType(htype)=1(0x1)10MbEthernet

DHCP

2. DHCP协议概述

来源:中国协议分析网 稿件提供: 编辑:电脑农民

经过了前面的学习,相信您不再认为设定与管理TCP/IP网路是件轻松的事情。要成功的将您的网路用TCP/IP连接起来,您就得为每台电脑设定IP、mask、gateway、等等繁琐的事情。要是您想管理好一

个比较大的网路﹐或是电脑节点经常改变(如手提电脑或拨接)﹐这样的工作可以说是非常令人讨厌的

﹐而且出错的机会也比较多。要是,万一日后要进行IP重新规划﹐其工作量也是相当惊人的。

面对这些情形﹐DHCP可以说您的菩萨了﹕它不但救苦救难﹐而且神通广大。

什么是DHCP?

DHCP是DynamicHostConfigurationProtocol之缩写﹐它的前身是BOOTP。BOOTP原本是用于无磁碟主

机连接的网路上面的﹕网路主机使用BOOTROM而不是磁碟起动并连接上网路﹐BOOTP则可以自动地为那

些主机设定TCP/IP环境。但BOOTP有一个缺点:您在设定前须事先获得客户端的硬体位址,而且,与IP的对应是静态的。换而言之,BOOTP非常缺乏"动态性",若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。

DHCP可以说是BOOTP的增强版本﹐它分为两个部份﹕一个是伺服器端﹐而另一个是客户端。所有的IP 网路设定资料都由DHCP伺服器集中管理﹐并负责处理客户端的DHCP要求﹔而客户端则会使用从伺服器分配下来的IP环境资料。比较起BOOTP,DHCP透过"租约"的概念,有效且动态的分配客户端的TCP/ IP设定,而且,作为兼容考量,DHCP也完全照顾了BOOTPClient的需求。

DHCP的分配形式

首先﹐必须至少有一台DHCP工作在网路上面﹐它会监听网路的DHCP请求﹐并与客户端搓商TCP/IP的设定环境。它提供两种IP定位方式﹕

AutomaticAllocation

自动分配﹐其情形是﹕一旦DHCP客户端第一次成功的从DHCP伺服器端租用到IP位址之后﹐就永远使用这个位址。

DynamicAllocation

动态分配﹐当DHCP第一次从HDCP伺服器端租用到IP位址之后﹐并非永久的使用该位址﹐只要租约到期﹐客户端就得释放(release)这个IP位址﹐以给其它工作站使用。当然﹐客户端可以比其它主机更优先的延续(renew)租约﹐或是租用其它的IP位址。

动态分配显然比自动分配更加灵活﹐尤其是当您的实际IP位址不足的时候﹐例如﹕您是一家ISP﹐只能提供200个IP位址用来给拨接客户﹐但并不意味着您的客户最多只能有200个。因为要知道﹐您的客户们不可能全部同一时间上网的﹐除了他们各自的行为习惯的不同﹐也有可能是电话线路的限制。这样﹐您就可以将这200个位址﹐轮流的租用给拨接上来的客户使用了。这也是为什么当您查看IP位址的时候﹐会因每次拨接而不同的原因了(除非您申请的是一个固定IP﹐通常的ISP都可以满足这样的要求﹐这或许要另外收费)。当然﹐ISP不一定使用DHCP来分配位址﹐但这个概念和使用IPPool的原理是一样的。

DHCP除了能动态的设定IP位址之外﹐还可以将一些IP保留下来给一些特殊用途的机器使用﹐它可以按照硬体位址来固定的分配IP位址﹐这样可以给您更大的设计空间。同时﹐DHCP还可以帮客户端指定router﹑netmask﹑DNSServer﹑WINSServer﹑等等项目﹐您在客户端上面﹐除了将DHCP选项打勾之外﹐几乎无需做任何的IP环境设定。

DHCP的工作原理

视乎客户端是否第一次登录网路﹐DHCP的工作形式会有所不同。

第一次登录的时候﹕

1.寻找Server。当DHCP客户端第一次登录网路的时候﹐也就是客户发现本机上没有任何IP资料设定﹐它会向网路发出一个DHCPDISCOVER封包。因为客户端还不知道自己属于哪一个网路﹐所以封包的来源位址会为0.0.0.0﹐而目的位址则为255.255.255.255﹐然后再附上Dhcpdiscover的信息﹐向网路进行广播。

在Windows的预设情形下,Dhcpdiscover的等待时间预设为1秒﹐也就是当客户端将第一个Dhcpdisc over封包送出去之后﹐在1秒之内没有得到回应的话﹐就会进行第二次Dhcpdiscover广播。若一直得不到回应的情况下﹐客户端一共会有四次Dhcpdiscover广播(包括第一次在内)﹐除了第一次会等待1秒之外﹐其余三次的等待时间分别是9﹑13﹑16秒。如果都没有得到DHCP伺服器的回应﹐客户端则会显示错误信息﹐宣告Dhcpdiscover的失败。之后﹐基于使用者的选择﹐系统会继续在5分钟之后再重复一次Dhcpdiscover的过程。

2.提供IP租用位址。当DHCP伺服器监听到客户端发出的Dhcpdiscover广播后﹐它会从那些还没有租出的位址范围内﹐选择最前面的的空置IP,连同其它TCP/IP设定,回应给客户端一个DHCPOFFER封包。

由于客户端在开始的时候还没有IP位址﹐所以在其Dhcpdiscover封包内会带有其MAC位址信息﹐并且有一个XID编号来辨别该封包﹐DHCP伺服器回应的Dhcpoffer封包则会根据这些资料传递给要求租约的客户。根据伺服器端的设定﹐Dhcpoffer封包会包含一个租约期限的信息。

3.接受IP租约。如果客户端收到网路上多台DHCP伺服器的回应﹐只会挑选其中一个Dhcpoffer而已(通常是最先抵达的那个)﹐并且会向网路发送一个Dhcprequest广播封包﹐告诉所有DHCP伺服器它将指定接受哪一台伺服器提供的IP位址。

同时﹐客户端还会向网路发送一个ARP封包﹐查询网路上面有没有其它机器使用该IP位址﹔如果发现该IP已经被占用﹐客户端则会送出一个DHCPDECLINE封包给DHCP伺服器﹐拒绝接受其Dhcpoffer﹐并重新发送Dhcpdiscover信息。

事实上﹐并不是所有DHCP客户端都会无条件接受DHCP伺服器的offer﹐尤其这些主机安装有其它TCP /IP相关的客户软体。客户端也可以用Dhcprequest向伺服器提出DHCP选择﹐而这些选择会以不同的号码填写在DHCPOptionField里面﹕

换一句话说﹐在DHCP伺服器上面的设定﹐未必是客户端全都接受﹐客户端可以保留自己的一些TCP/IP 设定。而主动权永远在客户端这边。

4.租约确认。当DHCP伺服器接收到客户端的Dhcprequest之后﹐会向客户端发出一个DHCPACK回应﹐以确认IP租约的正式生效﹐也就结束了一个完整的DHCP工作过程。

如上的工作流程如下图:

DHCP发放流程

第一次登录之后﹕

一旦DHCP客户端成功地从伺服器哪里取得DHCP租约之后﹐除非其租约已经失效并且IP位址也重新设定回0.0.0.0﹐否则就无需再发送Dhcpdiscover信息了﹐而会直接使用已经租用到的IP位址向之前之DHCP伺服器发出Dhcprequest信息﹐DHCP伺服器会尽量让客户端使用原来的IP位址﹐如果没问题的话﹐直接回应Dhcpack来确认则可。如果该位址已经失效或已经被其它机器使用了﹐伺服器则会回应一个DHCPNACK封包给客户端﹐要求其从新执行Dhcpdiscover。

至于IP的租约期限却是非常考究的﹐并非如我们租房子那样简单﹐以NT为例子﹕DHCP工作站除了在开机的时候发出dhcprequest请求之外﹐在租约期限一半的时候也会发出dhcprequest﹐如果此时得不

到DHCP伺服器的确认的话﹐工作站还可以继续使用该IP﹔然后在剩下的租约期限的再一半的时候(即租约的75%)﹐还得不到确认的话﹐那么工作站就不能拥有这个IP了。至于为什么不是到租约期限完全结束才放弃IP呢﹖﹐对不起﹐小弟也是不学无术之人﹐没有去深究了﹐只知道要回答MCSE题目的时候﹐您一定要记得NT是这么工作的就是了。

要是您想退租,可以随时送出DHCPLEREASE命令解约﹐就算您的租约在前一秒钟才获得的。

跨网路的DHCP运作

从前面描述的过程中,我们不难发现:DHCDISCOVER是以广播方式进行的,其情形只能在同一网路之内进行﹐因为router是不会将广播传送出去的。但如果DHCP伺服器安设在其它的网路上面呢﹖由于DHC P客户端还没有IP环境设定﹐所以也不知道Router位址﹐而且有些Router也不会将DHCP广播封包传递出去﹐因此这情形下DHCPDISCOVER是永远没办法抵达DHCP伺服器那端的,当然也不会发生OFFER 及其他动作了。要解决这个问题,我们可以用DHCPAgent(或DHCPProxy)主机来接管客户的DHCP请求﹐然后将此请求传递给真正的DHCP伺服器﹐然后将伺服器的回复传给客户。这里﹐Proxy主机必须自己具有路由能力,且能将双方的封包互传对方。

若不使用Proxy,您也可以在每一个网路之中安装DHCP伺服器﹐但这样的话﹐一来设备成本会增加﹐而且﹐管理上面也比较分散。当然啰﹐如果在一个十分大型的网路中﹐这样的均衡式架构还是可取的。端视您的实际情况而定了。

DHCP封包格式

以下为各栏位的简要说明:

OP

若是client送给server的封包,设为1,反向为2。

HTYPE

硬体类别,Ethernet为1。

HLEN

硬体位址长度,Ethernet为6。

HOPS

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

TRANSACTIONID

DHCPREQUEST时产生的数值,以作DHCPREPLY时的依据。

SECONDS

Client端启动时间(秒)。

FLAGS

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

ciaddr

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

yiaddr

从server送回client之DHCPOFFER与DHCPACK封包中,此栏填写分配给client的IP位址。 siaddr

若client需要透过网路开机,从server送出之DHCPOFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程式码所在server之位址。

giaddr

若需跨网域进行DHCP发放,此栏为relayagent的位址,否则为0。

chaddr

Client之硬体位址。

sname

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

file

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

options

允许厂商定议选项(Vendor-SpecificArea),以提供更多的设定资讯(如:Netmask、Gateway、DNS、等等)。其长度可变,同时可携带多个选项,每一选项之第一个byte为资讯代码,其后一个byte为该项资料长度,最后为项目内容。

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

DHCP协定之RFC文件

RFC-951﹑RFC-1084﹑RFC-1123﹑RFC-1533﹑RFC-1534﹑RFC-1497﹑RFC-1541

习题﹕

1.请问DHCP的前身是甚么?还有,DHCP是做甚么用的?

2.请列举DHCP的分配形式,并加以说明。

3.请详述DHCP的发放流程,并留意不同阶段所用的封包类型。

4.请用图画出DHCP的简单发放流程。

5.请问跨网路的DHCP是如何运作的?

6.请绘DHCP的封包结构,并尝试简述每一栏位的意思。

7.请说明编码为0x53至DHCPOptions有哪些值,及其代表含意。

3. 关于VLAN 中DHCP 域的问题

我的问题就是如何给每个VLAN 指定各自的DHCP 域。比如vlan 2 对应dhcp test2 vlan3 对应dhcp test3. 假如:

情况1: 现在有一个router 上做了多个DHCP 域.

然后在switch 上划VLAN 。那么那个交换机上的ip help-address 的IP 是什么呢?是router 上哪个口的I P 呢? 如:在router 上的配制:

ip dhcp excluded-address 10.0.199.200 10.0.199.254 ! ip dhcp pool test 1 network 10.0.199.0 255.255.255.0 default-router 10.0.199.1 dns-server 10.0.199.252 lease 0 0 5

ip dhcp pool test 2 network 10.0.200.0 255.255.255.0 default-router 10.0.200.1 dns-server 10.

0.199.252 lease 0 0 5

在交换机上:

interface Vlan199 ip address 10.0.199.1 255.255.255.0 ip helper-address ???????????????

int vlan 200

ip address 10.0.200.1 255.255.255.0 ip helper-address ??????????? 这时在这里指定的helper-add ress 是什么呢?才能把vlan199 和vlan200 里的电脑取得相

应DHCP scope???

第二种情况:利用局域网中的win2000’s DHCP server 假如dhcp server 的ip 192.168.10.1 在DHCP 上划分两个scope.

第一个scope 192.168.10.10 -----192.168.10.255 第二个scope 192.16.20.10 ------192.16.20.255. 交换机划分VLAN 之后,如何保证DHCP 服务器使用仍然在其它区域起作用。即VLAN10 里的机器取得第一

个scope 里的ip: 即从192.168.10.10 -----192.168.10.255 同样,vlan20 取得相应第二个scope 里的IP. 这时在这里指定的helper-address 是什么呢? 才能把vlan199 和vlan200 里的电脑取得相应DHCP sc ope???

第三种情况:假如在一个3550emi 上划分多个DHCP 域。由于它本身就可路由。并能划VLAN。那么这时在这里指定的helper-address 是什么呢?才能把vlan199 和vlan200 里的电脑取得相应DHCP scope??? FW:ip dhcp pool valn x

network x.x.x.x x.x.x.x

default-router x.x.x.x

其中vlan x 这个pool 是全局pool 的子集

interface vlan x

ip helper-address x.x.x.x

The helper address can be a specific DHCP server address, or it can be the network address if other DHCP servers are on the destination network segment. Using the network address enab les other servers to respond to DHCP requests.

If you have multiple servers, you can configure one helper address for each server.

DHCP relay:

https://www.360docs.net/doc/c89036088.html,/en/US/products...00800c6ed2.html

FW: 以一个配置案例来做总结吧:

router1 的int fa0/0 上接有dhcp server 。和router2 通过s0/0 连接IP 地址方案如下:

route1:

int fa0/0 10.1.1.254/24 int fa0/1 10.1.2.254/24 int s0/0 192.168.0.1/30 route2:

int fa0/0 10.2.1.254/24 int fa0/1 10.2.2.254/24 int s0/0 192.168.0.2/30 dhcp server adders s:10.1.1.1

配置:

router1: ! ip forward-protocol udp

! int fa0/0 ip addr 10.1.1.254 255.255.255.0

no shutdown ! int fa0/1 ip addr 10.1.2.254 255.255.255.0

ip helper-address 10.1.1.1 no shut !

int s0/0 ip addr 192.168.0.1 255.255.255.252 no shut

encap ppp

!

ip route 10.2.0.0 255.255.0.0 192.168.0.2

! router2: !

ip forward-protocol udp ! int fa0/0 ip addr 10.2.1.254 255.255.255.0

ip helper-address 10.1.1.1 no shutdown !

int fa0/1 ip addr 10.2.2.254 255.255.255.0 ip helper-address 10.1.1.1 no shut

! int s0/0 ip addr 192.168.0.2 255.255.255.252

no shut encap ppp ! ip route 10.1.0.0 255.255.0.0 192.168.0.1 ! dhcp server: scope 11: route r:10.1.1.254

scope 12: router:10.1.2.254 scope 21: router:10.2.1.254

scope 22:

router:10.2.2.254

使用VLAN 的情况配置与此相同。只不过把int fa 换成int vlan 而已。

转:

你只需要将VLAN 当做是第N 个SCOPE 的ROUTE 选项就行了。

在你的交换机上按常规划分好VLAN:

假设有:VLAN20 和VLAN30, 你先在交换机上划分好(这步应该都会做), 然后

在路由器上设置VLAN 网关(假设是FA0/0.1:192.168.20.254/24 和FA0/0.2:

192.168.30.254/24), 在VLAN20 接口和VLAN30 接口下分别设置

ip help-address DHCP_SERVER_ADD,IP FORWARD UDP 等,其实DHCP_SERVER 接

在哪里无所谓,只要能够ROUTE 通,就行。关键是DHCP_SERVER 上设置SCOPE 时,

你分两个,其中一个为192.168.20.0 网段的,它的相应ROUTE 选项为

192.168.20.254, 另一个SCOPE 为192.168.30.0 网段的,它的相应ROUTE 选

项为192.168.30.254 。上述设置完成后,记得在两个网段都要能和DHCP_SERVER 通。

4. DHCP简介

来源:中国协议分析网 编辑:电脑农民

DHCP是BOOTP的扩展,是基于C/S模式的,它提供了一种动态指定IP地址和配置参数的机制。这主要

用于大型网络环境和配置比较困难的地方。DHCP服务器自动为客户机指定IP地址,指定的配置参数

有些和IP协议并不相关,但这必没有关系,它的配置参数使得网络上的计算机通信变得方便而容易

实现了。DHCP使IP地址的可以租用,对于许多拥有许多台计算机的大型网络来说,每台计算机拥有

一个IP地址有时候可能是不必要的。租期从1分钟到100年不定,当租期到了的时候,服务器可以

把这个IP地址分配给别的机器使用。客户也可以请求使用自己喜欢的网络地址及相应的配置参数。

DHCP是对BOOTP的扩展,它的包格式和BOOTP也一样,这样它就可以使用BOOTP的中转发代理来发送D HCP包了,这使得BOOTP和DHCP之间可以实现互操作。对于BOOTP转发代理来说,发的是DHCP包还是B OOTP包,它根本分不清楚。它们使用的服务器端口号是67和68,但是有些地方还有些不同:

DHCP定义了一种可以使IP地址使用一段有限时间的机制,在客户期限到了的时候可以重新分配这个

IP地址。

DHCP为用户提供所有IP配置参数。

DHCP包长度比BOOTP包长度稍长。既然包比BOOTP的长,那也不是白带的,这多出的长度里包括了网

络配置参数。

DHCP的包都比BOOTP的长,那协议也复杂了。DHCP有七种消息类型,而BOOTP只有两种。

下图中我们可以清楚地看到客户机请求获得网络地址和配置参数的最初几个步骤:

第一步的时候客户发出包的名称叫DHCPDISCOVER,而服务器返回包的名称叫DHCPOFFER。

1.BOOTP转发代理接收到请求包,并负责向DHCP其它网络内的DHCP服务器转发。

2.DHCP服务器以DHCPOFFER响应客户的要求,这个包内包括可用的IP地址和参数。

3.BOOTP转发代理接收包,并对它进行检查。如果它觉得没有问题,就向客户转发。

4.如果客户在发出DHCPOFFER包后一段时间内没有接收到回应,它有机会重新发送请求10次,否则就通知用户。客户机可以同时接收到许多个服务器的应答,它可以自己决定用哪一个。下图是客户决定了以后,向服务器发送应答时的情况。

5.当客户选定了某个目标服务器后,它会广播DHCPREQUEST包,用以通知选定的服务器和未选定的服务器。

6.转发工作仍然由BOOTP转发担任。

7.收到DHCPREQUEST包服务器会检查收到的包,如果包内的地址和提供的地址一致,证明现在客户机选择的是这台服务器提供的地址,如果不是,自己提供的地址被拒绝了。

8.被选定的服务器在接收到DHCPREQUEST包以后,因为某些原因可能不能向客户提供这个网络地址或参数,它可以向客户发送DHCPNAK包,如果可以提供则可以发送DHCPACK包。

客户在收到包后,检查内部的网络地址和租用时间,如果客户觉得这个包有问题,它可以发送DHCP DECLINE包拒绝这个地址,然后重新发送DHCPDISCOVER包。如果觉得没有问题,就可以接受这个配置参数。同样当客户接收到DHCPNAK包时,它也可以发送DHCPDISCOVER包。客户可以在租期到期之前释放网络地址,这通过发送DHCPRELEASE包来实现。

用户下一次可以再次获得相同的IP地址。在这一过程中,许多步骤就可以不用麻烦了,老客户当然要方便一点了。

1.客户在发送的DHCPREQUEST包内包括自己以前使用的IP地址。

2.此包由BOOTP转发代理转发。

3.DHCP服务器检查DHCPREQUEST包内包括的配置参数。

4.它如果是原来提供这个网络地址的参数的服务器,它会认出这些数来,并以DHCPACK包回应。

5.客户接收到DHCPACK包后,它可以接收或拒绝,如果拒绝它可以申请新的网络地址。

当然了,如果服务器觉得客户的请求是无效的,服务器会以DHCPNAK包响应,客户接收到这个包后,会重新会获得网络地址而发送DHCPDISCOVER包。

5. DHCP协议

来源:中国协议分析网 编辑:电脑农民

正如我们前面看到的当使用TCP/IP协定的时候如果要电脑之间能够直接传递信息就必须使用相同的NetID和不同的HostID。这样您就得为每台电脑设定IP以及管理好纪录。要是您想管理好一个比较大的网路或是电脑节点经常改变(如拨接网路)这样的工作可以说是非常令人烦厌的而且出错的机会也比较多。另外如果在进行IP重新规划的时候其工作量也是相当惊人的。

面对这些情形DHCP可以说您的菩萨了它不但救苦救难而且神通广大。下面就让我们一起揭开DHCP 的神秘面纱

什麽是DHCP

DHCP是DynamicHostConfigurationProtocol之缩写它的前身是BOOTP。BOOTP原本是用於无磁碟主机连接的网路上面的网路主机使用BOOTROM而不是磁碟起动并连接上网路BOOTP则可以自动地为那些主机设定TCP/IP环境。

DHCP可以说是BOOTP的增强版本它分为两个部份一个是伺服器端而另一个是客户端。所有的IP网路设定资料都由DHCP伺服器集中管理并负责处理客户端的HDCP要求而客户端则会使用从伺服器分配下来的IP环境资料。

DHCP的功能

首先必须有一台DHCP工作在网路上面它会监听网路的DHCP请求它提供两种IP定位方式

AutomaticAllocation

自动分配其情形是一旦DHCP客户端第一次成功的从DHCP伺服器端租用到IP位址之後就永远使用这个位址。

DynamicAllocation

动态分配当DHCP第一次从HDCP伺服器端租用到IP位址之後并非永久的使用该位址只要租约到期客户端就得释放(release)这个IP位址以给其它工作站使用。当然客户端也可以延续(renew)租约或是租用其它的IP位址。

动态分配显然比自动分配更加灵活尤其是当您的实际IP位址不足的时候例如您是一家ISP只能提供200个IP位址用来给拨接客户但并不意味着您的客户最多只能有200个。因为要知道您的客户们不可能全部同一时间上网的除了他们各自的行为习惯的不同也有可能是电话线路的限制。这样您就可以将这200个地址轮流的租用给拨接上来的客户使用了。这也是为什麽当您用winipcfg来查看您的IP地址的时候会因每次接拨而不同的原因了(除非您申请的是一个固定IP通常的ISP都可以满足这样的要求当然可能要另外收费啦)。当然ISP不一定使用DHCP来分配地址但和使用IPPool 的原理是一样的。

DHCP除了能动态的设定IP位址之外还可以将一些IP保留下来给一些特殊用途的机器使用也可以按照MAC地址来分配固定的IP地址这样可以给您更大的设计空间。同时DHCP还可以帮客户端指定网路网关routerNetMaskDNS伺服器WINS伺服器等等项目您在客户端上面除了将DHCP选项打勾之外几乎无需做任何的IP环境设定。

DHCP的工作形式

视乎客户端是否第一次登录网路DHCP的工作形式会有所不同。

第一次登录的时候

IP租用要求当DHCP客户端第一次登录网路的时候也就是客户发现本机上没有任何IP资料设定它会向网路发出一个Dhcpdiscover封包。因为客户端还不知道自己属於哪一个网路所以封包的来源地址会为0.0.0.0而目的地址则为255.255.255.255然後再附上Dhcpdiscover的信息向网路进行广播。

Dhcpdiscover的等待时间预设为1秒也就是当客户端将第一个Dhcpdiscover封包送出去之後在1秒之内没有得到回应的话就会进行第二次Dhcpdiscover广播。在得不到回应的情况下客户端一共会有四次Dhcpdiscover广播(包括第一次在内)除了第一次会等待1秒之外其余三次的等待时间分别是91316秒。如果都没有得到DHCP伺服器的回应客户端则会显示错误信息宣告Dhcpdiscover的

失败。之後基於使用者的选择系统会继续在5分钟之後再重一次Dhcpdiscover的要求。

提供IP租用位址当DHCP伺服器监听到客户端发出的Dhcpdiscover广播後它会从那些还没有租出的位址围内选择最前面的的空置IP回应给客户端一个Dhcpoffer封包。

由於客户端在开始的时候还没有IP地址所以在其Dhcpdiscover封包内会带有其MAC地址信息并且有一个XID编号来辨别该封包DHCP伺服器回应的Dhcpoffer封包则会根据这些资料传递给要求租约的客户。根据伺服器端的设定Dhcpoffer封包会包含一个租约期限的信息。

接受IP租约如果客户端收到网路上多台DHCP伺服器的回应只理会最先收到的Dhcpoffer并且会向网路发送一个Dhcprequest广播封包告诉所有DHCP伺服器它将指定接受哪一台伺服器提供的IP地址。

同时客户端还会向网路发送一个ARP(AddressResolutionProtocol我们将会在下面碰到)封包查询网路上面有没有其它机器使用该IP地址如果发现该IP已经被占用客户端则会送出一个Dhcpdeclie nt封包给DHCP伺服器拒绝接受其Dhcpoffer并重新发送Dhcpdiscover信息。

事实上并不是所有DHCP客户端都会无条件接受DHCP伺服器的offer尤其这些主机安装有其它TCP/ IP相关的客户软体。客户端也可以用Dhcprequest向伺服器提出DHCP选择而这些选择会以不同的号码填写在DHCPOptionField里面

号码代表意思

01Sub-netMask

03RouterAddress

06DNSServerAddress

0FDomainName

2CWINS/NBNSServerAddress

2EWINS/NBTNodeType

2FNetBIOSScopeID

换一句话说在DHCP伺服器上面的设定未必和所有客户端都一致客户端可以保留自己的一些TCP/IP 设定。

IP租约确认当DHCP伺服器接收到客户端的Dhcprequest之後会向客户端发出一个Dhcpack回应以确认IP租约的正式生效也就结束了一个完整的DHCP工作过程。

第一次登录之後

一旦DHCP客户端成功地从伺服器哪里取得DHCP租约之後除非其租约已经失效并且IP地址也重新设定回0.0.0.0否则就无需再发送Dhcpdiscover信息了而会直接使用已经租用到的IP地址向DHCP 伺服器发出Dhcprequest信息DHCP伺服器会量让客户端使用原来的IP地址如果没问题的话直接回应Dhcpack来确认则可。如果该地址已经失效或已经被其它机器使用了伺服器则会回应一个Dhcpna ck封包给客户端要求其从新执行Dhcpdiscover。

至於IP的租约期限却是非常考究的并非如我们租房子那样简单以NT为例子DHCP工作站除了在开机的时候发出dhcprequest请求之外在租约期限一半的时候也会发出dhcprequest如果此时得不到DHCP伺服器的确认的话工作站还可以继续使用该IP然後在剩下的租约期限的再一半的时候(即租约的75%)还得不到确认的话那麽工作站就不能拥有这个IP了。至於为什麽不是到租约期限完全结束

才放弃IP呢对不起小弟也是不学无术之人没有去深究了只知道要回答MCSE问题的时候您一定要记得NT是这麽工作的就是了。

当然您也可以随时使用命令将DHCP租约release掉啦就算您的租约在前一秒钟才获得的。

跨网路的DHCP运作

以上的情形是在同一网路之内进行的但如果DHCP伺服器安设在其它的网路上面呢由DHCP客户端还没有IP环境设定所以也不知道Router地址而且有些Router也不一定会将DHCP广播封包传递出去这时候我们可以用DHCPAgent(或DHCPProxy)主机来接管客户的DHCP请求然後将此请求传递给真正的DHCP伺服器然後将伺服器的回覆传给客户。这里Proxy主机必须自己具有routing能力。

当然您也可以在每一个网路之中安装DHCP伺服器但这样的话一来设备成本会增加而且管理上面也比较分散。当然如果在一个十分大型的网路中这样的均衡式架构还是可取的。

6. 如何建立DHCP服务器

来源:中国协议分析网 编辑:电脑农民

在一个使用TCP/IP协议的网络中,每一台计算机都必须至少有一个IP地址,才能与其他计算机连接通信。为了便于统一规划和管理网络中的IP地址,DHCP(DynamicHostConfigureProtocol,动态主机配置协议)应运而生了。这种网络服务有利于对校园网络中的客户机IP地址进行有效管理,而不需要一个一个手动指定IP地址。

DHCP服务的安装

DHCP指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。首先,DHCP服务器必须是一台安装有Windows2000Server/AdvancedServer系统的计算机;其次,担任DHCP服务器的计算机需要安装TCP/IP协议,并为其设置静态IP地址、子网掩码、默认网关等内容。默认情况下,DHCP作为Windows2000Server的一个服务组件不会被系统自动安装,必须把它添加进来:

1.依次点击“开始→设置→控制面板→添加/删除程序→添加/删除Windows组件”,打开相应的对话框。

2.用鼠标左键点击选中对话框的“组件”列表框中的“网络服务”一项,单击[详细信息]按钮,出现带有具体内容的对话框。

3.在对话框“网络服务的子组件”列表框中勾选“动态主机配置协议(DHCP)”,单击[确定]按钮,根据屏幕提示放入Windows2000安装光盘,复制所需要的程序。

4.重新启动计算机后,在“开始→程序→管理工具”下就会出现“DHCP”一项,说明DHCP服务安装成功。

DHCP服务器的授权

出于对网络安全管理的考虑,并不是在Windows2000Server中安装了DHCP功能后就能直接使用,还必须进行授权操作,未经授权操作的服务器无法提供DHCP服务。对DHCP服务器授权操作的过程如下:

1.依次点击“开始→程序→管理工具→DHCP”,打开DHCP控制台窗口。

2.在控制台窗口中,用鼠标左键点击选中服务器名,然后单击右键,在快捷菜单中选中“授权”,此时需要几分钟的等待时间。注意:如果系统长时间没有反应,可以按F5键或选择菜单工具中的“操作”下的“刷新”进行屏幕刷新,或先关闭DHCP控制台,在服务器名上用鼠标右键点击。如果快捷菜单中的“授权”已经变为“撤消授权”,则表示对DHCP服务器授权成功。此时,最明显的标记是服务器名前面红色向上的箭头变成了绿色向下的箭头。这样,这台被授权的DHCP服务器就有分配IP的权利了。

添加IP地址范围

当DHCP服务器被授权后,还需要对它设置IP地址范围。通过给DHCP服务器设置IP地址范围后,当DHCP客户机在向DHCP服务器申请IP地址时,DHCP服务器就会从所设置的IP地址范围中选择一个还没有被使用的IP地址进行动态分配。添加IP地址范围的操作如下:

1.点击“开始→程序→管理工具→DHCP”,打开DHCP控制台窗口。

2.选中DHCP服务器名,在服务器名上点击鼠标右键,在出现的快捷菜单中选择“新建作用域”,在出现的窗口中单击[下一步]按钮,在出现的对话框中输入相关信息,单击[下一步]按钮,如图1所示。

3.在图1所示的窗口中,根据自己网络的实际情况,对各项进行设置,然后单击[下一步]按钮,出现如图2所示的窗口。

4.在图2所示的窗口中,输入需要排除的IP地址范围。由于校园网络中有很多网络设备需要

指定静态IP地址(即固定的IP地址),如服务器、交换机、路由器等,此时必须把这些已经分配的

IP地址从DHCP服务器的IP地址范围中排除,否则会引起IP地址的冲突,导致网络故障。

5.单击[下一步]按钮,在出现的“租约期限”窗口中可以设置IP地址租期的时间值。一般情

况下,如果校园网络中的IP地址比较紧张的时候,可以把租期设置短一些,而IP地址比较宽松时,

可以把租期设置长一些。设置完后,单击[下一步]按钮,出现“配置DHCP选项”窗口。

6.在“配置DHCP选项”窗口中,如果选择“是,我想现在配置这些选项”,此时可以对DNS服

务器、默认网关、WINS服务器地址等内容进行设置;如果选择“否,我想稍后配置这些选项”,可

以在需要这些功能时再进行配置。此处,我们选择前者,单击[下一步]按钮。

7.在出现的窗口中,常常输入网络中路由器的IP地址(即默认网关的IP地址)或是NAT服务器

(网络地址转换服务器)的IP地址,如WinRoute、SyGate等。这样,客户机从DHCP服务器那里得到

的IP信息中就包含了默认网关的设定了,从而可以接入Internet。

8.单击[下一步]按钮,在此对话框中设置有关客户机DNS域的名称,同时输入DNS服务器的名

称和IP地址。,然后单击[添加]按钮进行确认。单击[下一步]按钮,在出现的窗口中进行WINS服务

器的相关设置,设置完后单击[下一步]按钮。

9.在出现的窗口中,选择“是,我想现在激活此作用域”后,单击[下一步]按钮,在出现的

窗口中单击[完成]按钮,设置结束。此时,就可以在DHCP管理器中看到我们刚刚建好的作用域。

注意:如果您的校园网络是以工作组的形式存在的,可以在第6步的“配置DHCP选项”窗口中

选择“否,我想稍后配置这些选项”,此时设置过程跳过第7、8步。如果您的校园网络是以域的

形式存在的,建议您的网络配置顺序为:活动目录的建立→WINS的建立→DNS的建立→DHCP的建

立,这样可以减少很多麻烦。

DHCP服务的测试

经过上述设置,DHCP服务已经正式启动,我们需要在客户机上进行测试。只需把客户机的IP地

址选项设为“自动获取IP地址”,随后重新启动客户机。在客户机的“运行”对话框中键入“Ipco

n fig/all”,即可看到客户机分配到的动态IP地址。

DHCP协议详解(上)

来源:中国协议分析网 编辑:电脑农民

在常见的小型网络中(例如家庭网络和学生宿舍网),网络管理员都是采用手工分配IP地址的方法,而到了中、大型网络,这种方法就不太适用了。在中、大型网络,特别是大型网络中,往往有超过100台的客户机,手动分配IP地址的方法就不太合适了。因此,我们必须引入一种高效的IP地址分配方法,幸好,DHCP(DynamicHostConfigurationProtocol)为我们解决了这一难题。

DHCP的优缺点

DHCP服务优点不少:网络管理员可以验证IP地址和其它配置参数,而不用去检查每个主机;DHCP不会同时租借相同的IP地址给两台主机;DHCP管理员可以约束特定的计算机使用特定的IP地址;可以为每个DHCP作用域设置很多选项;客户机在不同子网间移动时不需要重新设置IP地址。

但同时也存在不少缺点:DHCP不能发现网络上非DHCP客户机已经在使用的IP地址;当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;DHCP服务器不能跨路由器

与客户机通信,除非路由器允许BOOTP转发。

工作流程

DHCP服务的工作过程是这样的:

1.发现阶段,即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP 地址对于客户机来说是未知的)发送DHCPdiscover发现信息来寻找DHCP服务器,即向地址255.255.255. 255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHC P服务器才会做出响应(如图1)。

2.提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCPdiscover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCPoffer提供信息(如图2)。

3.选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DH CP客户机发来的DHCPoffer提供信息,则DHCP客户机只接受第一个收到的DHCPoffer提供信息,然后它就以广播方式回答一个DHCPrequest请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址(如图3)。

4.确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCPreque st请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHC P客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址(如图4)。

5.重新登录。以后DHCP客户机每次重新登录网络时,就不需要再发送DHCPdiscover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCPrequest请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCPack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DH

CP客户机回答一个DHCPnack否认信息。当原来的DHCP客户机收到此DHCPnack否认信息后,它就必须

重新发送DHCPdiscover发现信息来请求新的IP地址。

6.更新租约。DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务

器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启

动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。

为了便于理解,我们把DHCP客户机比做餐馆里的客人,DHCP服务器比做服务员(一个餐馆里也可

以有多个服务员),IP地址比做客户需要的食物。那么可以这样描述整个过程:客人走进餐馆,问:

“有没有服务员啊?”(DHCPdiscover),多个服务员同时回答:“有,我这有鸡翅”“有,我这有汉堡”(DHCPoffer)。客人说:“好吧,我要一份汉堡”(DHCPrequest,这个客人比较死板,总是选择

第一次听到的食物),端着汉堡的服务员回应了一声:“来啦”(DHCPack),并把食物端到客人面前,

供其享用(将网卡和IP地址绑定)。客人下次来的时候,就直接找上次那个服务员点自己喜欢的汉堡了(DHCPrequest),如果还有汉堡,服务员会再次确认并上菜(DHCPack),而如果已经卖完了,服务员

则会告诉客人:“不好意思,已经卖完了”(DHCPnack)。当然,服务员隔一段时间会来收拾一次桌

子,除非客人特别说明这菜还要继续吃的,服务员会将剩菜端走。

DHCP协议详解(下)

来源:中国协议分析网 编辑:电脑农民

上期我们详细介绍了DHCP的工作原理,接下来,我们就向大家说明如何在服务器上配置DHCP服务,我们选取了两种最为常见的服务器操作系统Windows2000Server和Linux作为讲解实例,另外我们还会介绍如何在常见的网络设备上配置DHCP。

Windows2000Server

Windows2000Server在DHCP上下了很大的功夫,不仅解决了NT4.0中的种种问题,而且还增加了许多新的特性。例如和DNS的集成,加强的DHCP监视和管理,DHCP集群服务器,DHCP目录授权等等。

下面是在Windows2000中配置DHCP服务的实例

1.安装DHCP服务。用管理员账号登录,在控制面板中双击“添加/删除程序”,选择“添加/删除Window s组件”,启动Windows组件向导,选中“网络服务”,单击“详细信息”,选中“动态主机分配协议”,单击“确定”,即可在该服务器上安装DHCP服务。

2.要想使刚安装的DHCP服务器能为客户机分配IP地址,必须首先在域中为该服务器授权。使用管理员账号登录计算机,在“管理工具”菜单中打开DHCP控制台;在控制树中,右键单击想要授权的服务器,在弹出菜单中,单击“授权”,即可完成对该服务器的授权。

小知识:授权(Authorize),这个功能非常实用和必要,因为在旧版本的DHCP服务器中任何用户都可以创建一台DHCP服务器,该服务器也可以为用户分配IP地址,这样就可能造成地址冲突,在Windows2000Ser ver中这个问题得到了有效的解决:任何DHCP服务器只有在目录服务中被授权之后才能为客户分配IP地址,否则即使该服务器收到租用请求,也不能为客户机分配IP地址。

3.创建并配置作用域。在控制树中,右键单击要用来分配地址的服务器,选中“新建作用域”,在接下来的向导中,依次设置作用域名、作用域的起始地址、输入子网掩码、排除的地址或地址范围、DHCP租约期限信息。名称项只是作提示用,可填任意内容。IP地址范围中有起始地址、结束地址和子网掩码的选项,我们可以分别填入10.0.0.1,10.255.255.254,255.0.0.0(如图1)。如果有必要,可在后面的选项中输入要保留的IP地址或IP地址范围。租约期限选项可设定DHCP服务器所分配的IP地址的有效期,比如设8天。最

后,分配好DNS、WINS服务器,并激活作用域。

设置IP地址范围

RedHatLinux

在Linux上配置DHCP需要的文件有/etc/dhcpd.conf,/var/state/dhcp/

dhcpd.leases,相关工具有/etc/rc.d/init.d/dhcpd。下面是在RedHatLinux上配置DHCP的实例:

1.设置DHCP服务器的FQDN名

optiondomain-name"https://www.360docs.net/doc/c89036088.html,"

2.设置DNS的服务器地址

optiondomain-name-servers10.1.1.1;

3.设置子网掩码

optionsubnet-mask255.255.0.0;

4.设置租约时间

如果客户端不能请求一个指定的租用期,就使用该参数来定义该地址租用的时间长度default-lease-t ime1200;

如果客户端可以请求一个制订的租用期,就使用该命令来定义最长的租用时间max-lease-time87600

5.设置子网的网段及相关范围配置

subnet10.0.0.0netmask255.0.0.0;

{

range10.0.0.210.10.10.10;//指定子网的IP范围

optionbroadcast-address10.0.0.255;//指定子网的广播地址

optionrouters10.0.0.1;//指定网关的IP

}

6.给客户绑定静态IP

hostclinet{

hardwareethernet00:50:BA:CA:2E:D2;

fixed-address10.10.10.10;

}

网络设备

有时候,在一些中高端的网络设备(路由器、交换机)上已经集成了DHCP服务,我们便可以在网络设备上实现DHCP服务,不使用专门的主机做DHCP服务器,以节省成本。

下面是在cisco路由器上配置DHCP的实例

1.指定不自动分配的IP地址范围

ipdhcpexcluded-address10.1.1.110.1.1.19//指定从10.1.1.1到10.1.1.19的IP地址是手工分配的

2.设置DHCP地址池

ipdhcppoolglobal//这条命令指定了DHCP地址池的名称

network10.1.0.0255.255.0.0//动态分配的IP地址范围,这里是10.1.0.0网段所有的IP地址(前面指定的非自动分配地址除外)

3.设置DHCP附加信息

https://www.360docs.net/doc/c89036088.html,//为客户机配置域后缀

dns-server10.1.1.110.1.1.2//为客户机配置DNS服务器的地址,这里是10.1.1.1和10.1.1.2

netbios-name-server10.1.1.510.1.1.6//为客户机配置WINS服务器地址,这里是10.1.1.5和1 0.1.1.6

netbios-node-typeh-node//为客户机配置节点模式(影响名称解释的顺利 如h-node是先通过wins 服务器解释)

default-router10.1.0.10010.1.0.101//为客户机配置默认网关

4.设置租约期限

lease8//设置租约时间为8天

5.有时候我们需要为DHCP服务器设置子地址池,例如我们希望10.1.1.0/24这个网段的客户机的网关为10.1.1.100,我们这样设置:

ipdhcppoolsubglobal

network10.1.1.0255.255.255.0//global的子地址池,将从global继承域名等选项

default-router10.1.1.10010.1.1.101//为客户机配置默认网关

6.相关的DHCP调试命令

noservicedhcp//停止DHCP服务

showipdhcpbinding//显示地址分配情况

showipdhcpconflict//显示地址冲突情况。

网络协议DHCP协议分析课程设计

课程设计(大作业)报告 课程名称:网络协议工程 设计题目:DHCP协议分析以及以下各层协议的工作机制院系:信息技术学院 班级:级计算机科学与技术2班设计者: 学号: 指导教师:洪孙焱 设计时间:2014.1.2—2014.1.6 信息技术学院

昆明学院课程设计(大作业)任务书

目录 一.题目分析 (1) 二.实验环境 (1) 三.实验原理 (2) DHCP 工作原理: (4) 四.实验流程 (5) 五.实验步骤 (6) 1、可能用到的网络协议有: (6) 2、划分VLAN (8) 3:用实验主机自动获取 IP 地址,捕获数据包并进行分析 (10) 六.协议分析 (13) 六.实验总结 (17) 七、参考文献 (17)

课程设计(大作业)报告 一.题目分析 用协议分析工具分析DHCP以及以下各层协议的工作机制: 1、理解DHCP协议的基本原理; 2、了解DHCP的工作过程; 3、了解DHCP的基本命令格式; 4、了解DHCP以及以下各层协议的工作机制 二.实验环境 本实验中需要有一台开启 DHCP 服务的主机。锐捷的三层交换机 RG-S3750-24 即可以配置 DHCP 服务,本实验中使用锐捷的三层交换机作为 DHCP 服务器。实验拓扑图如图 所示: 实验拓扑图

三.实验原理 DHCP 是动。态主机分配协议(Dynamic Host Configuration Protocol)的缩写,它的前身是 BOOTP 协议。BOOTP 原本是用于无盘工作站连接的网络上:网络主机使用BOOTROM 而不是磁盘起动并连接上网络,需要通过 BOOTP 协议自动地为那些主机设定TCP/IP环境。但是 BOOTP 协议有一个缺点:在设定前必须事先获得客户端的 MAC 地址,而且,与 IP 地址的对应是静态的。即,BOOTP 非常缺乏“动态性”,不但配置起来非常麻烦,而且在有限的 IP 地址资源环境中,BOOTP 协议要求的地址一一对应关系会造成非常可观的浪费。DHCP 协议可以说是 BOOTP 协议的增强版本,提供了一种动态指定 IP 地址和配置参数的机制,使网络管理员能够集中管理和自动分配 IP 网络地址。当某台计算机移到网络中的其它位置时,能自动收到新的 IP 地址。DHCP 由两个部份组成:一个是服务器端,而另一个是客户端。所有的 IP 网络设定参数都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 请求;而客户端则会使用从服务器分配下来的 IP 环境数据。相对于 BOOTP,DHCP 透过“租约”的概念,有效且动态的分配客户端的 TCP/IP 环境设定,而且,作为兼容考虑,DHCP 也完全照顾了 BOOTP Client的需求。 DHCP 主要用于大型网络环境和配置 IP 比较困难的地方。有些 DHCP 服务器指定的配置参数和 IP 协议并不相关,但这并没有关系,它的配置参数使得网络上的计算机通信变得方便而容易实现了。DHCP 分配 IP 地址的租期从 1 分钟到 100 年不定,当租期到了的时候,服务器可以把这个 IP 地址分配给别的机器使用。 DHCP 报文格式:

抓包工具Wireshark分析DHCP协议

Wireshark分析DHCP协议 一,动态主机配置协议DHCP 1,DHCP简介 DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP 协议给客户端分配IP,使得客户机能够利用这个IP上网。 DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。后面可以看到,在用Wireshark过滤显示DHCP包,需要输入过滤条件BOOTP,而不是DHCP,但或许是因为我使用的Wireshark版本是比较旧的1.12.9,没有在新版本中尝试过,也许可以输入DHCP让其只显示DHCP包。 2,DHCP的实现 DHCP的实现分为4步,分别是: 第一步:Client端在局域网内发起一个DHCP Discover包,目的是想发现能够给它提供IP的DHCP Server。 第二步:可用的DHCP Server接收到Discover包之后,通过发送DHCP Offer包给予Client端应答,意在告诉Client端它可以提供IP地址。

第三步:Client端接收到Offer包之后,发送DHCP Request包请求分配IP。 第四步:DHCP Server发送ACK数据包,确认信息。 二,利用Wireshark抓取DHCP包 1,分析 要想抓取到DHCP包,先要保证有可用的DHCP服务器,然后将主机IP地址获取方式设置为自动获取。如果主机在抓包之前已经联网,需要先断开主机的网络连接,然后再连接网络。在cmd下使用命令ipconfig来完成网络断开与连接的过程:ipconfig /release 断开主机当前的网络连接 ipconfig /renew 请求连接网络 在cmd中可以使用ipconfig /?查看各参数的含义: (1)ipconfig /release 断开当前的网络连接,主机IP变为0.0.0.0,主机与网络断开,不能访问网络。 (2)ipconfig /renew 更新适配器信息,请求连接网络,这条命令结束之后,主机会获得一个可用的IP,再次接入网络。 2,开始抓包 实验环境:Win10,Wireshark1.12.9,有线连接

DHCP协议报文

DHCP 协议概念 1.什么是DHCP DHCP是Dynamic Host Configuration Protoco的缩写,顾名思义就是动态主机地址配置协议,在一个完整的网络拓扑中应有DHCP CLIENT,DHCP SERVER两个端点。Client端存在与用户域中,通过DHCP协议,从server端获取动态的不固定的IP地址。DHCP server 通过租约概念负责给client端提供某一网段或多网段IP地址池中地址。当租约到期client 释放该地址以待server做再次分配,同时server端也担负分配DNS服务器地址,域名,网关地址的任务。 2.DHCP进行地址分配的四个阶段 1)第一个阶段寻找DHCP server。如果是DHCP客户端第一次登录该网络时,也就是客户端主机没有IP地址,等待分配。它会首先向网络以广播形式发送DHCP discover报文,目的是发现网络中存在的DHCP server,并请求给出回应。该报文的格式是:源mac是自身的mac地址,目的mac是ff:ff:ff:ff:ff:ff.源IP地址为0.0.0.0,而目的地址为255.255.255.255。经过测试windows操作系统环境中的DHCPdiscover等待时间为1秒,也就是当客户端将第一个DHCPdiscover报文送出去后,在等待1秒后没有得到网络中DHCPserver的回应,它就会进行第二次DHCP discover广播,若再次得不到回应,会进行三次广播,三次广播的间隔时间都不一样,分别是9秒、13秒、16秒。如果还是得不到服务端的回应,客户端会显示错误信息,宣告DHCPdiscover失败,在之后的动作中,系统会在5分钟后再次重复一次该过程。在该测试过程中,我抓取了相应的数据包以供参考。 2)端口源端68,目的端67 图1-DHCP discover数据包 该图中可以看出DHCP discover数据包二层源mac地址为源端口mac,目的mac为广播

实验四使用sniffer分析DNS协议和DHCP协议

实验四使用sniffer分析DNS协议和DHCP协议 一、实验目的和要求 通过本实验,学生可以使用Windows 2003提供的DNS服务功能,进行域名解析,将域名解析成IP地址。 利用Windows 2003提供的DNS服务功能,创建DNS服务器,进行域名解析。 二、实验主要仪器和设备 硬件:服务器1台、工作站2台、交换机1台。 软件:windows 2003 server操作系统1套、其它Windows操作系统1套。 三、实验方法与步骤(需求分析、算法设计思路、流程图等) 在网络中,每一台主机都有一个唯一的32位二进制IP地址来标识,这是网络中主机之间进行通信的基础。这个32位二进制IP地址用四段十进制数来表示,各段之间用来[?]“.”分隔开来,如218.22.182.219,这些IP地址都是毫无记忆规律的。如果要求人们记住这些IP地址,那将是不可想象的。为了既方便人们记忆,又能实现主机之间的通信,DNS(Domain Name System,域名系统)就应运而生了。DNS域名系统主要实现Internet上主机的符号域名与IP地址之间的转换服务,也称名字服务或域名服务。 1、DNS系统 DNS采用的是有层次的名字空间,实行了分布式数据库系统,并采用了基于域的命名机制。它的主要作用是把一个主机域名或E-mail地址映射成一个32位的IP地址。DNS服务采用的是客户机/服务器模式,在客户机端发出DNS请求的程序称为域名解析器,在服务器端完成DNS响应的程序称为域名服务器。域名解析器为应用程序向域名服务器发出DNS请求,即DNS查询,域名服务器采用迭代查询或递归查询,将查询结果返回给域名解析器。 2、 DNS域名结构 DNS域名系统是一个层次化、基于域命名机制的命名系统,它是一个树状结构,它的形状像是一棵倒画的树,并使用分布式数据库实现。整个树状结构称为域名空间,其中的节点称为域。在每个域中,任何一台主机的域名都是唯一的。 在DNS域名系统中,树状的最顶端是根域,根域没有名字,用“.”来表示。根域下面划分出

DHCP协议详解

DHCP协议详解 DHCP的优缺点 DHCP服务优点不少:网络管理员可以验证IP地址和其它配置参数,而不用去检查每个主机;DHCP不会同时租借相同的IP地址给两台主机;DHCP管理员可以约束特定的计算机使用特定的IP地址;可以为每个DHCP作用域设置很多选项;客户机在不同子网间移动时不需要重新设置IP地址 但同时也存在不少缺点:DHCP不能发现网络上非DHCP客户机已经在使用的IP地址;当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP转发 工作流程 DHCP服务的工作过程是这样的: 1.发现阶段,即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP discover 发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP 服务器才会做出响应(如图1) 2.提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover 发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP

offer提供信息(如图2)。 3.选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP 服务器所提供的IP地址(如图3) 4.确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的

DHCP协议的8种消息类型及功能

DHCP协议的8种消息类型及功能 1) 主机发送 DHCP Discover广播包在网络上寻找 DHCP 服务器; 2) DHCP 服务器向中继代理发送 DHCP Offer 单播数据包,中继代理向主机发送DHCP Offer广播数据包,包含 IP 地址、MAC 地址、域名信息以及地址租期; 3) 主机发送 DHCP Request 广播包,正式向服务器请求分配已提供的 IP 地址; 4) DHCP 服务器向中继代理发送 DHCP ACK 单播包,中继代理向主机发送DHCP ACK广播数据包,确认主机的请求。 说明:DHCP 客户端可以接收到多个 DHCP 服务器的 DHCP Offer 数据包,然后可能接受任何一个 DHCP Offer 数据包,但客户端通常只接受收到的第一个DHCP Offer 数据包。另外,DHCP 服务器 DHCP Offer中指定的地址不一定为最终分配的地址,通常情况下,DHCP 服务器会保留该地址直到客户端发出正式请求。 正式请求 DHCP 服务器分配地址 DHCP Request 采用广播包,是为了让其它所有发送 DHCP Offer数据包的 DHCP 服务器也能够接收到该数据包,然后释放已经 OFFER (预分配)给客户端的 IP 地址。 5)如果发送给 DHCP 客户端的 DHCP Offer信息包中包含无效的配置参数,客户端会向服务器发送 DHCP Decline信息包拒绝接受已经分配的配置信息。 6)当DHCP 客户端发送DHCP Request信息包,服务器拒绝响应DHCP ACK包时(DHCP服务器根据Request包中MAC地址查找IP地址分配表,未找到其分配的相应地址),DHCP 服务器会发送 DHCP NAK 消息给 DHCP 客户端,导致客户端重新发起地址请求过程。 7)DHCP客户机可向DHCP服务器发送DHCP Release消息放弃网络地址和取消现有租约 8)DHCP客户端可向DHCP服务器发送DHCP Inform消息只请求配置参数(客户机已经有了IP地址)

DHCP协议与配置

DHCP基本知识点 1 DHCP协议在RFC2131种定义,使用udp协议进行数据报传递,使用的端口是67以及68。 2 DHCP最常见的应用是,自动给终端设备分配ip地址,掩码,默认网关,但是DHCP 也同样可以给终端设备自动配置其他options,比如DNS se rver, 域名(比如 https://www.360docs.net/doc/c89036088.html,),time zones, NTP servers 以及其他的配置内容,更有些厂家,利用自己开发的第3放软件,把自己的一些配置信息,利用dhcp协议来实现对终端设备的自动配置。 3 DHCP服务的系统最基本的构架是 client/server模式,并且如果client 和server 不再同一个2层网络内(即广播可以到达的网络范围),则必须要有能够透过广播报文的中继设备,或者能把广播报文转化成单播报文的设备(cisco的ios就引经了这种功能) There are three distinct element types in a DHCP network. There must be a client and a server. If these two elements are not on the same Layer 2 network, there also must be a proxy, which usually runs on the router. The proxy is needed because the client device initially doesn't know its own IP address, so it must send out a Layer 2 broadcast to find a server that has this information. The router must relay these broadcasts to the DHCP server, then forward the responses back to the correct Layer 2 address so that the right end device gets the right configuration information. 4 CISCO的路由器(IOS12.0 T1以后),可以配置为dhcp的中继设备,DHCP的客户端设备,也可以配置为DHCP的服务器。 5 同一个网段DHCP服务器可以有多个,这不会影响终端设备从服务器获取配置信息,终端设备以接受到的第一组配置信息为准。以后又服务器段返回的DHCP配置信息被抛弃。 . Most DHCP networks of any size include two or more DHCP servers for redundancy. The end devices typically just need to talk to a DHCP server at startup time, but they will not work at all without it. So redundancy is important. This also means that it is not unusual for an end device to see several responses to a DHCP request. It will generally just use the first response. However, this also underscores the importance of ensuring that all of the DHCP servers distribute the same information. Their databases of end device configuration parameters must be synchronized. 6 DHCP 服务器往往遵守先来先服务的规则(first-come, first-served),或者说他能够建立一个IP地址和终端设备MAC地址之间的映射表(或者叫做database),由此可以保证特定的终端(也就是特定的MAC)每次开机后都能够获得此相同的ip地址。

DHCP协议的工作过程

DHCP协议的工作过程 首先,DHCP客户端发送DHCPDISCOVER消息(IP地址租用申请),这个消息是通过广播方式发送出去的,所有网络中的DHCP服务器都将接收到这个消息。 随后,网络中的DHCP服务器会回应一个DHCPOFFER消息(IP地址租用提供),由于这个时候客户端还没有网络地址,所以DHCPOFFER也是通过广播的方式发送出去的。需要注意的是,由于网络中可能存在不止一台的DHCP服务器,所以,如果不考虑网络丢包的话,客户端将接收到不止一条的DHCPOFFER 消息。那么客户端会选择它接收到的第一条DHCPOFFER作为获取配置的服务器。 然后,向该服务器发送DHCPREQUEST消息。虽然这个时候客户端已经明确知道选择的DHCP服务器的地址所在,但仍将采用广播的方式发送DHCPREQUEST消息,这样做不仅可以通知选中的服务器向客户端分配IP地址,同时也可以通知其他没有选中的DHCP服务器不需要再响应它的请求。在DHCPREQUEST消息中将包含客户端申请的IP地址。 最后,DHCP服务器将回送DHCPACK的响应消息来通知客户端可以使用该IP地址,该确认里面包含了分配的IP地址和该地址的一个稳定期限的租约(默认是8天),并同时更新DHCP数据库。 当租约过了一半时(即4天),客户端将和设置它的TCP/IP配置的DHCP服务器更新租约。当租约过了85.7%时,如果客户端仍然无法与当初的DHCP服务器联系上,他将与其他DHCP服务器通信,如果网络中再没有任何DHCP服务器在运行时,该客户端停止使用该IP地址,并重新发送一个DHCPDISCOVER 消息,再一次重复整个过程。 DHCP工作时要求客户机和服务器进行交互,由客户端通过广播向服务器发起申请IP地址的请求,然后由服务器分配一个IP地址以及其他的TCP/IP设置信息。DHCPACK整个工作过程如图所示,可以分为以下步骤。 (1)IP地址租用申请(DHCPDISCOVER):DHCP客户机通过UDP68端口发送DHCPDISCOVER广播信息来查找DHCP服务器。网络上每一台安装了TCP/IP协议的主机 都会接收到这种广播信息,但只有DHCP服务器才会做出响应。DHCP客户机发送的 DHCPDISCOVER数据包的源地址是0.0.0.0,目标地址是255.255.255.255。 (2)IP地址租用提供(DHCPOFFER):当网络中的DHCP服务器接收到DHCPDISCOVER广播时,将确定是否可以用自己的数据库来为该请求提供服务。如果可以为该请求提供服务, DHCP服务器就从尚未出租的IP地址范围中选择最前面的空置IP,连同其他TCP/IP设定, 通过UDP 67端口以单播DHCPOFFER的形式为客户端提供IP配置信息。可能有多台DHCP 服务器收到DHCPDISCOVER广播,并且向DHCP客户端响应DHCPOFFER。客户接收到 的DHCPOFFER数据包中包含客户的MAC地址,后面跟着服务器能提供的IP地址、子 网掩码、租约期限以及DHCP服务器的IP地址。 (3)IP地址租用选择(DHCPREQUEST):DHCP客户端通常是接收第一个收到的DHCPOFFER 所提供的信息,并且会向网络发送一个DHCPREQUEST广播风暴,告诉所有DHCP服务器 它将接收哪一台服务器提供的IP地址。

DHCP协议概述

DHCP协议概述 来源:中国协议分析网作者:编辑:电脑农民浏览: 人次 经过了前面的学习,相信您不再认为设定与管理TCP/IP网路是件轻松的事情。要成功的将您的网路用TCP/IP连接起来,您就得为每台电脑设定IP、mask、gateway、等等繁琐的事情。要是您想管理好一个比较大的网路﹐或是电脑节点经常改变(如手提电脑或拨接)﹐这样的工作可以说是非常令人讨厌的﹐而且出错的机会也比较多。要是,万一日后要进行IP重新规划﹐其工作量也是相当惊人的。 面对这些情形﹐DHCP可以说您的菩萨了﹕它不但救苦救难﹐而且神通广大。 什么是DHCP? DHCP是DynamicHostConfigurationProtocol之缩写﹐它的前身是BOOTP。BOOTP原本是用于无磁碟主机连接的网路上面的﹕网路主机使用BOOTROM而不是磁碟起动并连接上网路﹐BOOTP则可以自动地为那些主机设定TCP/IP环境。但BOOTP有一个缺点:您在设定前须事先获得客户端的硬体位址,而且,与IP的对应是静态的。换而言之,BOOTP非常缺乏"动态性",若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。 DHCP可以说是BOOTP的增强版本﹐它分为两个部份﹕一个是伺服器端﹐而另一个是客户端。所有的IP网路设定资料都由DHCP伺服器集中管理﹐并负责处理客户端的DHCP要求﹔而客户端则会使用从伺服器分配下来的IP环境资料。比较起BOOTP,DHCP透过"租约"的概念,有效且动态的分配客户端的TCP/IP设定,而且,作为兼容考量,DHCP也完全照顾了BOOTPClient的需求。 DHCP的分配形式 首先﹐必须至少有一台DHCP工作在网路上面﹐它会监听网路的DHCP请求﹐并与客户端搓商TCP/IP的设定环境。它提供两种IP定位方式﹕ AutomaticAllocation 自动分配﹐其情形是﹕一旦DHCP客户端第一次成功的从DHCP伺服器端租用到IP位址之后﹐就永远使用这个位址。 DynamicAllocation 动态分配﹐当DHCP第一次从HDCP伺服器端租用到IP位址之后﹐并非永久的使用该位址﹐只要租约到期﹐客户端就得释放(release)这个IP位址﹐以给其它工作站使用。当然﹐客户端可以比其它主机更优先的延续(renew)租约﹐或是租用其它的IP位址。 动态分配显然比自动分配更加灵活﹐尤其是当您的实际IP位址不足的时候﹐例如﹕您是一家ISP﹐只能提供200个IP位址用来给拨接客户﹐但并不意味着您的客户最多只能有200个。因为要知道﹐您的客户们不可能全部同一时间上网的﹐除了他们各自的行为习惯的不同﹐ 也有可能是电话线路的限制。这样﹐您就可以将这200个位址﹐轮流的租用给拨接上来的客户使用了。这也是为什么当您查看IP位址的时候﹐会因每次拨接而不同的原因了(除非您申请的是一个固定IP﹐通常的ISP都可以满足这样的要求﹐这或许要另外收费)。当然﹐ISP不一定使用DHCP来分配位址﹐但这个概念和使用IPPool的原理是一样的。 DHCP除了能动态的设定IP位址之外﹐还可以将一些IP保留下来给一些特殊用途的机器使用﹐它可以按照硬体位址来固定的分配IP位址﹐这样可以给您更大的设计空间。同时﹐DHCP还可以帮客户端指定router﹑netmask﹑DNS Server﹑WINS Server﹑等等项目﹐您在客

DHCP协议说明书

DHCP协议说明书 1 DHCP协议介绍 动态主机配置协议(Dynamic Host Configuration Protocol)属于应用层,是基于BOOTP(BOOTstrap Protocol)的,BOOTP和RARP类似,是用于相对静态的环境,其中每个主机都有一个永久的网络连接。管理人员创建一个BOOTP配置文件来定义每个主机的BOOTP参数。在计算机经常移动和实际计算机数目超过了可获得的IP主机地址时,这种只提供从主机标识到主机参数的静态映射就不适用了。为此制订了DHCP,它加入了自动分配可再利用的地址和附加的配置选项的能力。DHCP从两个方式上扩充了BOOTP,第一,DHCP可使计算机用一个消息获取它所需要的所有配置信息,即传送配置信息的协议;第二,DHCP允许计算机快速、动态的获取IP地址,即动态分配IP地址的机制。 DHCP建立在client-server模型上。其中指定的DHCP server分配网络地址并向动态配置的主机传送配置参数。只有当系统管理员明确的配置主机作为DHCP服务器时,主机才能作为服务器来工作。 DHCP支持三种类型的地址分配:自动分配方式中DHCP给主机指定一个永久的IP地址;动态分配方式中DHCP给主机指定一个有时间限制的IP地址,到时间或主机明确表示放弃这个地址时,这个地址可以被其他的主机使用;手工分配方式中主机的IP地址是由网络管理员指定的,DHCP只是把指定的IP地址告诉主机。在这三种方式中,只有动态分配的方式可以对已经分配给主机但现在此主机已经不用的IP地址重新加以利用。这样,在给一台临时连入网络的主机分配地址或者在一组不需要永久的IP地址的主机中共享一组有限的IP地址时,动态分配显得特别有用。当一台新主机要永久的接入一个网络时,而网络的IP地址非常有限,为了将来这台主机被淘汰时能回收IP地址,这种情况下动态分配也是一个很好的选择。 DHCP的消息格式是建立在BOOTP消息格式上的,这样可以利用BOOTP的中继代理功能来避免在每个物理网络都建立一个DHCP server,同时还允许现有的BOOTP client使用DHCP server。 2 DHCP的实现 2.1 客户机和服务器的报文交换 2.1.1动态分配地址 动态地址分配是DHCP的最重要和新颖的功能。不像BOOTP所用的静态地址分配,动态地址分配不是一对一的映射,而且服务器不需要预先知道客户机的身份。特别的,可配置DHCP服务器使得任意一个机器都可获取IP地址并开始通信。因此,DHCP使得设计自动配置的系统成为可能。一台计算机上网后,它使用

DHCP协议的功能及运行方式

姓名:XXX 学号:XXXX 班级:XXXX

DHCP(Dynamic Host Configuration Protocol)协议是在Bootstrap Protocol(BOOTP)的基础上提出,其作用是在TCP/IP网络中向Internet主机提供配置信息。DHCP采用客户端/服务器通信模式,由DHCP客户端向DHCP服务器提出配置申请(包括IP地址、子网掩码、缺省网关等参数),服务器根据路由策略返回相应配置信息,DHCP报文采用UDP进行封装,使用两个知名端口:服务器为67,客户端为68。 DHCP提供的服务 ●配置参数的存储 DHCP要提供的第一个服务就是能够为客户端的参数配置提供持久稳固的存储,该模型中,为每个客户端存储了一个key-value对,如IP子网号和客户端标识组成一个key,value 则包好了客户端要配置参数的内容。 ●动态分配网络参数 DHCP要提供的第二个功能就是为客户端分配一个暂时的或者永久的IP地址。客户端向服务器请求在一段时间内租用一个地址,服务器则分配给客户端一个地址,并规定了该地址的租用时间,我们称这个时间为“租期”(lease)。客户端可以通过与服务器的交互延长其租期,可以请求释放地址,结束与服务器的租约。 在某些环境中,由于地址的缺乏,需要重新分配网络地址,分配机制就是使用已经到租期的地址。服务器应该利用在配置信息库中的任何可用的信息来选择一个重新使用的地址,比如,选择最近分配过的地址。由于需要一致性检查,DHCP服务器在分配地址时需要保证要分配的地址没有被使用,一般可以在分配地址之前,发送一个ICMP ECHO报文,目的地址就是要分配的IP地址。这样,如果有客户端回应了该ICMP ECHO报文,则标识该地址已经被使用;但是,即使没有客户端回应,也不能代表该地址没有被分配,因为客户端可能开启了防火墙,防止ICMP包的进入。不仅服务器需要检查,客户端也应该检查该地址是否被使用,可以在收到分配的地址后,发送一个免费的ARP,如果有客户端回应这个ARP,则表示本地子网有已经分配了该IP的客户端,如果没有回应该ARP,则标识该地址本地子网未使用。一般来讲,开启了防火墙的客户端是不会阻挡ARP的,所以这种探测方法较好。 3 DHCP工作原理 DHCP IP地址分配策略 对于IP地址的占用时间,不同主机有不同的需求:对于服务器,可能需要长期使用确定的IP地址;对于某些主机,可能需要长期使用某个动态分配的IP地址;而某些个人则可能只

DHCP协议分析

DHCP协议分析 DHCP协议封装 DHCP协议是基于UDP层之上的应用,DHCP CLIENT将采用端口号68,DHCP SERVER采用端口号67,其报文内容的封装如下所示: 链路层头 IP头 UDP头 DHCP报文 其中: 链路层头:承载报文的链路层信息头。 IP头:标准IP协议头,IPV4中长度为20bytes,包括SrcIp,DstIp等信息。 UDP头:8个bytes,包括SrcPort,DstPort,报文长度及UDP校验和等信息。 DHCP报文:具体的DHCP报文内容。 由于DHCP协议是让终端获取IP 地址的协议,所以终端是没有IP地址的。为了能够正常的收发DHCP报文,采取了如下措施: a)、链路层的封装必须是广播形式,即让在同一物理子网中的所有主机都能够收到这个报文,在Ethernet_II格式的网络中,是DstMac为全1。 b)、由于终端没有IP地址,IP头中的SrcIp规定填为全0。 c)、当终端发出DHCP请求报文,并不知道DHCP SERVER的IP地址,因此IP头中的DstIp填为有限的子网广播IP——全1,保证DHCP SERVER的IP协议栈不丢弃这个报文。 d)、上面的措施保证了DHCP SERVER能够收到终端的请求报文,但仅凭链路层和IP层信息,DHCP SERVER无法区分出DHCP报文,因此终端发出的DHCP请求报文的UDP层中的SrcPort为68,DstPort为67,即DHCPSERVER通过端口号67来判断一个报文是否是DHCP报文。

DHCP报文格式 op:报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在option字段中标识。 htype:硬件地址类型。 hlen:硬件地址长度。系统目前只对以太网支持,硬件地址长度固定为6。 hops:DHCP 报文经过的DHCP 中继的数目。DHCP 请求报文每经过一个DHCP中继,该字段就会增加1。 xid:由客户端软件产生的随机数,用于匹配请求和应答报文。 secs:客户端进入IP 地址申请进程的时间或者更新IP 地址进程的时间;由客户端软件根据情况设定。目前没有使用,固定为0。 flags:标志字段。第一个比特为广播响应标识位,用来标识DHCP 服务器响应报文是采用单播还是广播方式发送,0 表示采用单播方式,1 表示采用广播方式。其余比特保留不用。 ciaddr:DHCP客户端的IP地址。 yiaddr:DHCP服务器分配给客户端的IP地址。 siaddr:DHCP客户端获取IP地址等信息的服务器IP地址。 giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。 chaddr:DHCP客户端的硬件地址。 sname:DHCP客户端获取IP地址等信息的服务器名称。 file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。 options:可选变长选项字段,包含报文的类型、有效租期、DNS 服务器的IP地址、WINS服务器的IP地址等配置信息。

精通DHCP协议

精通DHCP协议 1.DHCP(动态主机配置协议)基本信息 2.DHCP协议概述 3.关于VLAN中DHCP域的问题 4.DHCP简介 5. DHCP协议 6. 如何建立DHCP服务器 7. DHCP协议详解(上) 8. DHCP协议详解(下) 1. DHCP(动态主机配置协议)基本信息 ■概要 动态主机配置协议(DHCP)是RFC1541(由RFC2131替代)定义的标准协议,该协议允许服务器向客户端动态分配IP地址和配置信息。通常,DHCP服务器至少给客户端提供以下基本信息: IP地址 子网掩码 默认网关 它还可以提供其它信息,如域名服务(DNS)服务器地址和WindowsInternet命名服务(WINS)服务器地址。系统管理员配置DHCP服务器分配给客户端的选项。 ■更多信息 以下Microsoft产品提供DHCP客户端功能: WindowsNTServer3.5、3.51和4.0 WindowsNTWorkstation3.5、3.51和4.0 Windows95 MicrosoftNetworkClient3.0forMS-DOS MicrosoftLANManagerClient2.2cforMS-DOS MicrosoftTCP/IP-32forWindowsforWorkgroups3.11、3.11a和3.11b DHCP客户端可以接收来自DHCP服务器的选项,而不同的DHCP客户端支持不同的这些选项。有关MicrosoftDHCP客户端所支持的特定DHCP选项的信息,请参见MicrosoftKnowledgeBase中以下文章: Q121005受客户端支持的DHCP选项 以下Microsoft服务器操作系统提供DHCP服务器功能: WindowsNTServer3.5 WindowsNTServer3.51 WindowsNTServer4.0 当客户端被配置为接收DHCP信息后首次初始化时,它将启动一个与服务器的对话。 以下是客户端和服务器之间对话的汇总表,后面是数据包级的过程说明:

dhcp协议的ip地址动态获取过程

竭诚为您提供优质文档/双击可除dhcp协议的ip地址动态获取过程 篇一:dhcp协议的工作过程 dhcp协议的工作过程 首先,dhcp客户端发送dhcpdiscoVeR消息(ip地址租用申请),这个消息是通过广播方式发送出去的,所有网络中的dhcp服务器都将接收到这个消息。 随后,网络中的dhcp服务器会回应一个dhcpoFFeR消息(ip地址租用提供),由于这个时候客户端还没有网络地址,所以dhcpoFFeR也是通过广播的方式发送出去的。需要注意的是,由于网络中可能存在不止一台的dhcp服务器,所以,如果不考虑网络丢包的话,客户端将接收到不止一条的dhcpoFFeR消息。那么客户端会选择它接收到的第一条dhcpoFFeR作为获取配置的服务器。 然后,向该服务器发送dhcpRequest消息。虽然这个时候客户端已经明确知道选择的dhcp服务器的地址所在,但仍将采用广播的方式发送dhcpRequest消息,这样做不仅可以通知选中的服务器向客户端分配ip地址,同时也可以通知其他没有选中的dhcp服务器不需要再响应它的请求。在

dhcpRequest消息中将包含客户端申请的ip地址。 最后,dhcp服务器将回送dhcpack的响应消息来通知客户端可以使用该ip地址,该确认里面包含了分配的ip地址和该地址的一个稳定期限的租约(默认是8天),并同时更新dhcp数据库。 当租约过了一半时(即4天),客户端将和设置它的tcp/ip配置的dhcp服务器更新租约。当租约过了85.7%时,如果客户端仍然无法与当初的dhcp服务器联系上,他将与其他dhcp服务器通信,如果网络中再没有任何dhcp服务器在运行时,该客户端停止使用该ip地址,并重新发送一个dhcpdiscoVeR消息,再一次重复整个过程。 dhcp工作时要求客户机和服务器进行交互,由客户端通过广播向服务器发起申请ip地址的请求,然后由服务器分配一个ip地址以及其他的tcp/ip设置信息。dhcpack整个工作过程如图所示,可以分为以下步骤。 (1) (2) (3)ip地址租用申请(dhcpdiscoVeR):dhcp客户机通过udp68端口发送dhcpdiscoVeR广播信息来查找dhcp服务器。网络上每一台安装了tcp/ip协议的主机都会接收到这种广播信息,但只有dhcp服务器才会做出响应。dhcp客户机发送的dhcpdiscoVeR数据包的源地址是0.0.0.0,目标

实验7_使用Wireshark分析DHCP协议

实验七使用Wireshark分析DHCP协议 一、实验目的 分析DHCP协议 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。三、实验步骤 在有动态分配IP的实验环境下俘获分组,具体俘获步骤如下: 1、使用DHCP获取IP地址 (1)打开命令窗口,启动Wireshark。 (2)输入“ipconfig /release”。这条命令会释放主机目前的IP地址,此时,主机IP 地址会变为0.0.0.0 (3)然后输入“ipconfig /renew”命令。这条命令让主机获得一个网络配置,包括新的IP地址。 (4)等待,直到“ipconfig /renew”终止。然后再次输入“ipconfig /renew” 命令。 (5)当第二个命令“ipconfig /renew” 终止时,输入命令“ipconfig/release” 释放原来的已经分配的IP地址 (6)停止分组俘获。如图1所示: 图1:Wireshark俘获的分组

一个ipconfig renew 命令产生四个DHCP分组:a DHCP Discover packet, a DHCP Offer packet, a DHCP Request packet, and a DHCP ACK packet. 下面,对此分组进行分析: IPconfig 命令被用于显示机器的IP地址及修改IP地址的配置。当输入命ipconfig /release命令时,用来释放机器的当前IP地址。释放之后,该机没有有效的IP地址并在分组657中使用地址0.0.0.0作为源地址。 分组657是一个DHCP Discover(发现)报文,如图2所示。当一台没有IP地址的计算机申请IP地址时将发送该报文。DHCP Discovery报文被发送给特殊的广播地址:255.255.255.255,该地址将到达某个限定广播范围内所有在线的主机。理论上,255.255.255.255能够广播到整个因特网上,但实际上并不能实现,因为路由器为了阻止大量的请求淹没因特网,不会将这样的广播发送到本地网之外。 在DHCP Discover报文中,客户端包括自身的信息。特别是,它提供了自己的主机名和其以太网接口的物理地址。这些信息都被DHCP用来标识一个已知的客户端。DHCP 服务器可以使用这些信息实现一系列的策略,比如,分配与上次相同的IP地址,分配一个上次不同的IP地址,或要求客户端注册其物理层地址来获取IP地址。 图2 Discover报文

DHCP协议与抓包分析

1.DHCP协议简介:DHCP,全称是Dynamic Host Configuration Protocol,中文名为动态主 机配置协议,它的前身是BOOTP,他工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议【DHCP工作在三层,但是它也有二层协议的部分,使用udp协议,客户机使用端口为68,服务器使用端口为67】 DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器。DHCP为客户端分配地址的方法有三种:手工配置,自动配置,动态配置 DHCP最重要的功能就是动态分配,除了IP地址,DHCP分组还为客户端提供其他的配置信息,比如子网掩码,这使得客户端无需用户手动就能自动配置网络 2.DHCP的工作流程: (1)DHCP Discover阶段:DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP Discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应【广播】 (2)DHCP Offers阶段:在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息【单播】 (3)DHCP Request阶段:如果有多台DHCP服务器向DHCP客户机发来的DHCP offer 提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,它将选择某台DHCP服务器所提供的IP地址,并确认以网络中并没有其他客户机使用该IP地址【广播】 (4)DHCP ACK(NACK)阶段:当DHCP服务器收到DHCP客户机回答的DHCP request 请求信息之后,它便向DHCP客户机发送一个包含它提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址,然后DHCP 客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址【单播】 重新登录:以后DHCP客户机每次重新登陆网络时,就不需要再发送DHCP Discover 发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,他会尝试让DHCP客户机使用原来的IP地址,并回答一个DHCP ACK确认信息。如果此IP地址已无法在分配给原来的DHCP客户机使用时(比如此IP地址已分配给其他DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP NACK否认信息,当原来的DHCP客户机收到此DHCP NACK否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址

相关文档
最新文档