DHCP协议详解

发布 2019-08-05 20:24:17 阅读 6824

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

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服务器都将收回曾提供的ip地址(如图4)。

5.重新登录。以后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地址。

6.更新租约。dhcp服务器向dhcp客户机出租的ip地址一般都有一个租借期限,期满后dhcp服务器便会收回出租的ip地址。

如果dhcp客户机要延长其ip租约,则必须更新其ip租约。dhcp客户机启动时和ip租约期限过一半时,dhcp客户机都会自动向dhcp服务器发送更新其ip租约的信息。

为了便于理解,我们把dhcp客户机比做餐馆里的客人,dhcp服务器比做服务员(一个餐馆里也可以有多个服务员),ip地址比做客户需要的食物。那么可以这样描述整个过程:客人走进餐馆,问:

“有没有服务员啊?”(dhcp discover),多个服务员同时回答:“有,我这有鸡翅”“有,我这有汉堡”(dhcp offer)。

客人说:“好吧,我要一份汉堡”(dhcp request,这个客人比较死板,总是选择第一次听到的食物),端着汉堡的服务员回应了一声:“来啦”(dhcp ack),并把食物端到客人面前,供其享用(将网卡和ip地址绑定)。

客人下次来的时候,就直接找上次那个服务员点自己喜欢的汉堡了(dhcp request),如果还有汉堡,服务员会再次确认并上菜(dhcp ack),而如果已经卖完了,服务员则会告诉客人:“不好意思,已经卖完了”(dhcp nack)。当然,服务员隔一段时间会来收拾一次桌子,除非客人特别说明这菜还要继续吃的,服务员会将剩菜端走。

我们就向大家说明如何在服务器上配置dhcp服务,我们选取了两种最为常见的服务器操作系统 windows 2000 server和linux作为讲解实例,另外我们还会介绍如何在常见的网络设备上配置dhcp。

windows 2000 server

windows 2000 server在dhcp上下了很大的功夫,不仅解决了nt 4.0中的种种问题,而且还增加了许多新的特性。例如和dns的集成,加强的dhcp监视和管理,dhcp集群服务器,dhcp目录授权等等。

下面是在windows2000中配置dhcp服务的实例。

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

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

小知识:授权(authorize),这个功能非常实用和必要,因为在旧版本的dhcp服务器中任何用户都可以创建一台dhcp服务器,该服务器也可以为用户分配ip地址,这样就可能造成地址冲突,在windows 2000 server中这个问题得到了有效的解决:任何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地址范围。

redhat linux

在linux上配置dhcp需要的文件有/etc/

相关工具有/etc/下面是在redhat linux上配置dhcp的实例:

1.设置dhcp服务器的fqdn名。

option domain-name ""

2.设置dns的服务器地址。

option domain-name-servers 10.1.1.1;

3.设置子网掩码。

option subnet-mask 255.255.0.0;

4.设置租约时间。

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

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

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

subnet 10.0.0.0 netmask 255.0.0.0;

6.给客户绑定静态ip

host clinet

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

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

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

ip dhcp excluded-address 10.1.1.1 10.1.1.19 //指定从10.1.1.1到10.1.1.19的ip地址是手工分配的。

2. 设置dhcp地址池。

ip dhcp pool global //这条命令指定了dhcp地址池的名称。

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

3. 设置dhcp附加信息。

domain-name 为客户机配置域后缀。

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

netbios-name-server 10.1.1.5 10.1.1.6//为客户机配置wins服务器地址,这里是10.1.1.5和10.1.1.6

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

default-router 10.1.0.100 10.1.0.101//为客户机配置默认网关。

4. 设置租约期限。

lease 8//设置租约时间为8天。

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

ip dhcp pool subglobal

network 10.1.1.0 255.255.255.0// global的子地址池,将从global继承域名等选项。

default-router 10.1.1.100 10.1.1.101 //为客户机配置默认网关。

6. 相关的dhcp调试命令。

no service dhcp //停止dhcp服务。

show ip dhcp binding//显示地址分配情况。

show ip dhcp conflict //显示地址冲突情况。

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

课程名称网络协议工程 设计题目 dhcp协议分析以及以下各层协议的工作机制。院系信息技术学院 班级 级计算机科学与技术2班 设计者。学号。指导教师洪孙焱。设计时间 2014.1.2 2014.1.6 信息技术学院。姓名院 系 信息技术学院。专业 计算机科学与技术学号 任务起止日期 2014.1.2 ...

DHCP协议和dhcpcd源码分析

dhcp协议介绍与dhcpcd源码分析。一 dhcp协议的几种报文 1 dhcpdiscover 此为client开始dhcp过程中的第一个请求报文。2 dhcpoffer 此为server 对dhcpdiscover 报文的响应。3 dhcprequst 此为client 对dihcpoffer ...

DHCP协议 Cisco路由配置实例 命令详解

某单位使用 3620作为ios dhcp server,它和内网相连的fastethernet0端口的ip地址为192.168.1.4,二层机采用两台 2950,三层机采用一台cisco 3550。在整个网络中有二个vlan,为简化描述,假设每个vlan都采用24位网络地址,其中vlan1的ip地址...

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

1 主机发送 dhcp discover广播包在网络上寻找 dhcp 服务器 2 dhcp 服务器向中继 发送 dhcp offer 单播数据包,中继 向主机发送dhcp offer广播数据包,包含 ip 地址 mac 地址 域名信息以及地址租期 3 主机发送 dhcp request 广播包,正式...

c指针详解

9.5 指针的应用 二 指针可以方便地用来操作数组。例题 写一程序,通过函数对一个int类型元素组成的数组按照插入法进行排序,然后输出。插入法排序的基本思想是,把数据一个个地插入到一个有序的数组中。具体的实现可以用下面描述的方法进行。首先数组被分为两个部分,已经排好序的部分和待插入的部分。显然只有一...

div css详解 实例

通过上一章的学习,读者了解到了css强大的表现控制功能,特别是在布局方面有很大的优势。相对于 条理混乱 样式杂糅在结构中的 布局,css将带来全新的布局方法,让网页设计师更轻松 更自由。本章通过多个示例展示css布局网页的方法,并对css的 盒模型 作详细阐述。相信读者在深入理解 盒模型 后,布局网...

FTP命令详解

ftp命令是internet用户使用最频繁的命令之一,不论是在dos还是unix操作系统下使用ftp,都会遇到大量的ftp内部命令。熟悉并灵活应用ftp的内部命令,可以大大方便使用者,并收到事半功倍之效。ftp的命令行格式为 ftp v d i n g 主机名 其中。v显示远程服务器的所有响应信息 ...

VLAN技术深度详解

vlan 技术详解。什么是vlan?vlan virtual lan 翻译成中文是 虚拟局域网 lan可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。vlan所指的lan特指使用路由器分割的网络 也就是广播域。在此让我们先复习一下广播域的概念。广播域,指的是广播帧 目标...