DHCP服务在网络中的应用

简介:
我们知道在TCP/IP网络应用中,网络用户PC只有在获取了一个网络地址,才可以和其他的网络用户进行通讯,在实际应用中,我们经常会遇到一些问题:比如IP地址发生冲突、由于网关或DNS服务器地址的设置出现错误而无法访问网络中的其他主机、由于机器的经常变动位置而不得不频繁地修改IP地址。基于这些在网络管理中所存在的种种问题,解决的方法是引入DHCP服务,以动态的方式实现客户机器的信息配置。下面从DHCP原理出发并结合本人在授课过程的实际经验为依据,对DHCP的应用以及在实际应用中我们会遇到的各类问题和相应的解决方法做深入的探讨。
一、DHCP服务是什么
 
DHCP称为动态主机配置协议。DHCP服务允许工作站连接到网络并且自动获取一个IP地址。配置DHCP服务的服务器可以为每一个网络客户提供一个IP地址、子网掩码、缺省网关、一个WINS服务器的IP地址,以及一个DNS服务器的IP地址。
二、DHCP服务在实际应用中的常见问题
1、在一个子网内是否可以存在多台DHCP服务器,如果存在的话,那么该子网中的客户机能否正确获取地址,将会获取哪个DHCP服务器所分配的地址,是否能控制客户机器能从管理人员所设置的DHCP服务器中获取地址而不会从一些非法用户自建的DHCP服务器中取得非法得IP?
2、如果网络中存在多个子网,而子网的客户机需要DHCP服务器提供地址配置,那么是采取在各个子网都安装一台DHCP服务器,还是只在某一个子网中安装DHCP服务器,让它为多个子网的客户机分配IP地址,应该如何实现?
3、如果采取在一个子网中安装DHCP服务器,让它为多个子网的客户机分配IP地址,那么应该需要在一台DHCP服务器中创建多个不同范围的作用域,而我们如何可以准确地保证相应范围的地址分配给相应子网地主机呢?
4、如果客户机器无法从DHCP服务器中获取IP地址,那么Windows2000客户机器将会如何处理自己的TCP/IP设置?
三、DHCP的工作原理
要解析第二点中所提的问题,首先要搞清楚DHCP的实际的工作过程及原理,下面就对此做简单介绍:DHCP是一个基于广播的协议,它的操作可以归结为四个阶段,这些阶段是IP租用请求、IP租用提供、IP租用选择、IP租用确认。
1、IP租用请求:在任何时候,客户计算机如果设置为自动获取IP地址,那么在它开机时,就会检查自己当前是否租用了一个IP地址,如果没有,它就向DCHP请求一个租用,由于该客户计算机并不知道DHCP服务器的地址,所以会用255.255.255.255作为目标地址,源地址使用0.0.0.0,在网络上广播一个DHCPDISCOVER消息,消息包含客户计算机的媒体访问控制(MAC)地址(网卡上内建的硬件地址)以及它的NetBIOS名字。
2、IP租用提供:当DHCP服务器接收到一个来自客户的IP租用请求时,它会根据自己的作用域地址池为该客户保留一个IP地址并且在网络上广播一个来实现,该消息包含客户的MAC地址、服务器所能提供的IP地址、子网掩码、租用期限,以及提供该租用的DHCP服务器本身的IP地址。
3、IP租用选择:如果子网还存在其它DHCP服务器,那么客户机在接受了某个DHCP服务器的DHCPOFFER消息后,它会广播一条包含提供租用的服务器的IP地址的DHCPREQUEST消息,在该子网中通告所有其它DHCP服务器它已经接受了一个地址的提供,其他DHCP服务器在接收到这条消息后,就会撤销为该客户提供的租用。然后把为该客户分配的租用地址返回到地址池中,该地址将可以重新作为一个有效地址提供给别的计算机使用。
4、IP租用确认: DHCP服务器接收到来自客户的DHCPREQUEST消息,它就开始配置过程的最后一个阶段,这个确认阶段由DHCP服务器发送一个DHCPACK包给客户,该包包括一个租用期限和客户所请求的所有其它配置信息,至此,完成TCP/IP配置。
四、DHCP服务常见问题的解决方案
本文第二点中我们所提出的问题有四点,以下就此4个问题做相应的分析并给出我个人的一些解决方案,相信可以对学习DHCP服务的自学者会有一定的帮助,这些问题也是在实际教学中学生提出疑问最多的知识难点。
1、根据客户计算机的IP租用原理可以知道,在一个子网内,如果存在多台DHCP服务器来提供地址配置信息,这是不违反请求、分配原则的,因为只要中有一台客户计算机在该子网中提出IP地址租约请求,由于请求是广播形式的,所以在子网中可以有任意数量的特定DHCP服务器响应一个IP租用请求,而客户请求后选中的是这些任意特定DHCP服务器中的某一台,这个选择具有随机性,但有一点要注意的是客户只能为每一张网络接口卡接受一个租用提供,上面所谓特定的DHCP服务器是指那些经过系统授权的DHCP服务器,而非授权的DHCP服务器将无法在网络中提供正常的地址分配服务,这一点非常重要,因为这样一来客户机器将只会在管理员设定的地址范围中取得地址,Windows 2000操作系统的这一新增功能,通过对DHCP服务器进行认证避免了非法DHCP服务器分配非法IP地址造成的IP地址冲突,在实际应用中,客户机器获取非法的地址经常是造成网络瘫痪和无法正常通讯的一大原因。综合上面的分析可以做出第一个问题的结论:在一个子网中可以存在多台DHCP服务器来提供地址分配,但能够作为地址提供的不是任意的DHCP服务器,而应该是经过系统认证的那些,客户机请求地址时最终从那一台经过认证机器中获取时随机的。此外,从另一个角度看,在相同子网上使用多个 DHCP 服务器,将为它所服务的 DHCP 客户机提供更强的容错能力,如下图所示,在一个子网内(网络号为192.168.1.0 掩码为255.255.255.0)共用两个 DHCP 服务器,其中的DHCP服务器1不可用的话,DHCP服务器2可以取代它并继续租用新的地址或续订现有客户机。可以建议采用的解决方案是使用 80/20 规则来划分两个 DHCP 服务器之间的作用域地址,具体做法可以是将服务器 1 配置成可使用大多数地址(约 80%),服务器 2 可以配置成让客户机使用其他地址(约 20%)。
2、如果在一个网络中存在多个子网,而多个子网的主机都需要DHCP服务器来提供地址配置信息,那么我们可以采用的方法是在每一个子网中安装一台DHCP服务器,让它们来为各个子网分配IP地址,但从节约资源利用出发,我们一般情况下不这样做,可以采取在一个子网中安装DHCP服务器,让它来为多个子网分配IP地址,实现多子网地址分配可以借助DHCP的中继代理功能实现,而作为中继代理的设备可以是一台提供中继代理程序的Windows2000服务器或是一个符合RFC1542规定的路由器,具备 DHCP/ BOOTP Relay Agent 的功能(DHCP relay agent能够把 DHCP/BOOTP 广播信息从一个网段转播到另一个网段上)。以管理的局域网分为三个子网,用Win2000服务器连接。
下面是实现跨子网使用DHCP服务器的具体解决方案:
(1)安装DHCP中继代理程序:在Windows2000服务器的“路由和远程访问”窗口中,依次展开“本地服务器→IP路由选择→常规”选项,右键点击“常规”选项,在弹出的菜单中选择“新增路由协议”,然后在“新路由协议”窗口中选择“DHCP中继代理程序”,接着点击“确定”按钮。
(2)指定DHCP服务器:右键点击刚刚添加的“DHCP中继代理程序”选项,在弹出菜单中选择“属性”,进入“DHCP中继代理程序属性”对话框,在“常规”标签页的“服务器地址”栏中输入子网1中DHCP服务器的IP地址:192.168.1.2,然后点击“添加”按钮,最后点击“确定”按钮关闭该对话框。
(3)配置访问接口:右键点击“DHCP中继代理程序”选项,在弹出菜单中选择“新增接口”,然后在“DHCP中继代理程序的新接口”对话框中的“接口”列表框中选中可以访问子网1中的DHCP服务器的接口,这里新增的接口应该是接口二和接口三,接着点击“确定”按钮。然后在弹出的“DHCP中继站属性”对话框中,选中“中继DHCP数据包”选项,这样就启用了它的中继功能,最后点击“确定”按钮。
(4)DHCP服务器中配置一个超级作用域,其中包含三个普通作用域,作用域地址范围可以分别设置为192.168.1.10~192.168.1.254(分配给子网1的PC使用);192.168.2.10~192.168.2.254(分配给子网2的PC使用);192.168.3.10~192.168.3.254(分配给子网3的PC使用),必须记住DHCP只能为每一个子网分配一个范围。
完成以上配置后,子网2和子网3中的DHCP客户机PC2及PC3就可以通过主机A的DHCP中继代理程序访问子网1中的DHCP服务器。
3、解决了单台DHCP服务器为多个子网分配IP地址后,我们还要搞清楚的一个问题是,如果某一个子网的PC如子网2中的PC2或子网3中的PC3发出地址请求信息后,主机A可以作为中继代理对他们的请求传达子网1中的DHCP服务器,但该DHCP服务器如何可以确定并准确地将作用域192.168.2.0网段的地址分给PC2而把作用域192.168.3.0网段的地址分给PC3呢?这个是多数学生可能存在的疑问,要搞清楚这个问题,可以参考以下的原理分析来找答案:以子网2中的主机PC2为例,DHCP 客户机PC2在子网2 上广播 DHCP/BOOTP discover 消息 (DHCPDISCOVER),广播是将消息以 UDP (User Datagram Protocol)数据包的形式通过 67 端口发出,当中继代理(relay agent)主机A接收到这个消息后,它检查包含在这个消息报头中的网关IP 地址,如果网关IP 地址为 0.0.0.0 ,则用 relay agent主机A的接口二的IP地址192.168.2.1替换它,然后将其转发到 DHCP 服务器所在的子网1上(主机A还担任路由器功能)。当在子网1中的 DHCP服务器收到这个消息后,它开始检查消息中的网关IP地址,然后判断该网关地址是否包含在DHCP的某一个作用域范围内,从而决定它是否可以使用相应的作用域的地址来提供IP地址租约,当然,本例中DHCP服务器将会从作用域192.168.2.10~192.168.2.254选取一个地址来配置PC2;也就是说DHCP客户机的请求地址消息中的网关IP地址 (GIADDR) 将是DHCP服务器用来确定从那个DHCP 范围中挑选IP地址来配置客户机的依据。
4、如果DHCP客户机无法找到DHCP服务器,则它从微软保留的 B 类网段 169.254.0.0 中挑选一个 IP 地址作为自己的 IP 地址,子网掩码为 255.255.0.0 ,所挑选的地址由DHCP客户机利用ARP 广播来确定自己所挑选的 IP 地址是否已被网络上的其它设备使用,如果该 IP 地址已被使用,那么客户机会再挑选另一个IP地址重新进行测试,而且最多可以重试十个IP 地址,直到成功获取配置。在此之后,客户机会在后台继续每隔 5 分钟尝试与DHCP服务器进行通信,一旦与服务器取得联络,则客户机放弃自动设置的 IP 地址,而使用服务器分配的 IP 地址和其它配制信息。所以当你在某一天发现你的PC的IP地址是个B类的地址169.254.0.0/16网段的地址时,你就应该知道那是怎么一回事了吧。
至此,我们分析了几个关于DHCP服务的应用方面的疑难问题,并且给出了相应的解决方案,对于DHCP服务在教学中我们还遇到许多一些其他问题,比如说DHCP服务器本身的地址是否一定要由管理员静态指定,设置为自动获取将会有什么后果?为什么把客户机器向DHCP服务器请求地址称为地址租用,租用时间的长短对网络中IP地址的管理与应用有哪些帮助?如何可以使用DHCP服务让一个自动获取IP的主机能在任何时候都能取得指定的一个固定地址?这些问题都要求教师在教学当中要认真地去探究该服务的每一个细节的知识点,才可以对该知识点的原理以及在实际中的应用进行透彻的讲授,也是我们熟练掌握和使用DHCP服务的前提。



本文转自 goldwinner 51CTO博客,原文链接:http://blog.51cto.com/355665/237018,如需转载请自行联系原作者
相关文章
|
1天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
13 6
|
2天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
13 4
|
1天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
7 2
|
2天前
|
运维 安全 5G
|
3天前
|
机器学习/深度学习 存储 运维
图神经网络在复杂系统中的应用
图神经网络(Graph Neural Networks, GNNs)是一类专门处理图结构数据的深度学习模型,近年来在复杂系统的研究和应用中展现了强大的潜力。复杂系统通常涉及多个相互关联的组件,其行为和特性难以通过传统方法进行建模和分析。
17 3
|
2天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
20天前
|
安全 网络协议 网络安全
Cisco-DHCP配置
Cisco-DHCP配置
|
20天前
|
安全 小程序 网络安全
Cisco-DHCP中继配置
Cisco-DHCP中继配置
|
2月前
|
Linux
kickstart自动安装系统 --DHCP 配置及测试
PXE+Kickstart自动安装系统需配置DHCP服务器分配IP。dhcpd.conf示例:设置更新样式、忽略客户端更新、指定下一服务器及启动文件。定义子网、网关、掩码、动态地址池并预留特定MAC地址。重启xinetd、NFS、DHCP服务,确保新服务器与Kickstart服务器在同一网络,避免误装其他机器。注意隔离测试网络以防干扰生产环境。
77 18