第一篇:DHCP服务器配置的实验报告
信息科学与技术学院实验报告
一、实验目的及要求
目的:
1.了解DHCP 服务的基本概念,工作原理 2.学会安装DHCP服务器; 3.配置与管理DHCP服务器。要求:
理解DHCP服务器和客户端的工作原理。 按照步骤完成DHCP服务器的配置。 理解每一步的实验的作用。
二、实验仪器、设备或软件
安装了Windows Server 2003的PC机或者是虚拟机
三、实验内容及原理
DHCP是Dynamic Host Configuration Protocol(动态主机配置协议)的缩写,DHCP是一个简化主机IP地址分配管理的TCP/IP 标准协议。用户可以利用DHCP服务器管理动态的IP地址分配及其他相关的环境配置工作(如:DNS、WINS、Gateway的设置)。在使用TCP/IP协议的网络上,每一台计算机都拥有唯一的计算机名和IP地址。IP地址(及其子网掩码)用于鉴别它所连接的主机和子网,当用户将计算机从一个子网移动到另一个子网的时候,一定要改变该计算机的IP地址。如采用静态IP 地址的分配方法将增加网络管理员的负担,而DHCP是计算机向DHCP服务器临时申请一个IP 地址,并且在一定时期内租用该号码,这就大大减少了在管理上所耗费的时间。
DHCP提供了安全、可靠且简单的TCP/IP网络配置,确保不会发生地址冲突,并且通过地址分配的集中管理预留IP地址。DHCP提供了计算机IP地址的动态配置,系统管理员通过限定租用时间来控制IP地址的分配。
在使用DHCP时,整个网络至少有一台服务器上安装了DHCP服务,其他要使用DHCP功能的工作站也必须设置成利用DHCP获得IP地址
DHCP 的实现机理
DHCP使用客户/服务器模式,在系统启动时,DHCP 客户机在本地子网中先发送 discover mesasge(显示信息),此信息以广播的形式发送,且可能传播到本地网络的所有DHCP服务器,每个DHCP 服务器收到这一信息后,就向提出申请的客户机发送一个offer mesasge(提供信息),其中包括一个可租用的 IP 地址和合法的配置信息。DHCP 客户机收集各个服务器提供的配置信息,从中选择一个,然后发送一个标识着被选中的DHCP服务器的请求信息(Request mesasge),被选中的DHCP服务器就发送一个DHCP确认信息(Acknowledgment message),它包含着在显示(Discovery)期间第一次发送的地址、对该地址的合法租用及该用户的TCP/IP网络配置参数。客户机收到确认信息后,就进行地址绑定(Bind),这样它就加入了TCP/IP网络,且完成了其系统初始化。
具有本地存储器的客户机保存着接收到的地址以供系统启动时使用,因为当租用时间到期时,它就试图向DHCP服务器申请继续租用,而一旦当前的IP地址不能再被使用时,服务器就给它分配一个新地址。
四、实验步骤(或过程)
(1)选择“开始”→“程序”→“管理工具”选项,然后在“管理工具”中单击“DHCP”图标,进入DHCP管理窗口。图1-1
图1-1 DHCP管理窗口
(2)在DHCP管理窗口中,选中DHCP树,按鼠标右键,在弹出的菜单中选择“新建作用域”命令,出现如图2的对话框时,单击“下一步”按钮,出现如图3的对话框时,为该作用域设置一个名称,即bx409。图1-2,1-3,1-4
图1-2
图1-3 新建作用域向导
图1-4 设置作用域的名称
(3)单击“下一步”按钮,当出现图4所示的对话框时,对作用域可供使用的IP地址与子网掩码进行设置。图1-5
图1-5 设置可供使用的IP地址与子网掩码
(4)单击“下一步”按钮,当出现图5所示的对话框时,在“添加排除”对话中输入需要排除的IP地址。图1-6
图1-6 添加排除的IP地址
添加排除的IP地址成功,结果显示如所图1-7。
图1-7 添加排除的IP地址成功添加
(5)单击“下一步”按钮,出现图7所示的对话框时,请设置IP地址的租用期限,默认为 8 天,通常对于拨号网络来说,租用期限应设置较短期限。图1-8
图1-8 设置租约期限
(6)单击“下一步”按钮,出现图1-8所示的选择配置 DHCP 选项对话框时,选择“是,我想现在配置这些选项”。图1-9
图1-9 选择是否配置DHCP的选项
(7)单击“下一步”按钮,出现图9所示的对话框时输入默认网关的IP地址,单击“添加”按钮,然后再单击“下一步”按钮,如果网络目前还没有IP路由器,可不输入任何数据,直接单击“下一步”按钮。图1-10
图1-10 设置客户端使用的网关地址
(8)出现图11所示的对话框时,输入DNS服务器的名称与其IP地址,然后单击“解析”按钮让其自动查询这台DNS服务器的IP地址,如果网络目前还没有DNS服务器,可直接单击“下一步”按钮。图1-11
图1-11 设置客户端使用的DNS地址
(9)出现图12所示的对话框时,请输入WINS服务器的名称与其IP地址,单击“解析”按钮让它自动查询这台WINS服务器的IP地址,如果网络目前还没有WINS服务器,可直接单击“下一步”按钮,激活此作用域,结束作用域向导。如图1-12,1-13
图1-12 设置客户端使用的WINS地址
图1-13 作用域新建完成
(10)单击“虚拟机”,出现如图1-14所示的虚拟机设置界面。
图1-14 虚拟机设置界面
(11)选择“网络适配器”选项,对其网络连接进行自定义设置。如图1-15和1-16
图1-15 虚拟机网络连接设置1
图1-16 虚拟机网络连接设置2(12)在Windows 2000 Professional/xp 客户机桌面上,打开“集成网卡属性”对话框,如图1-17所示。
图1-17 集成网卡属性
(13)在“集成网卡属性”对话框中选择“Internet 协议(TCP/IP)”,再选择“属性”,在打开的“Internet 协议(TCP/IP)属性”对话框中,选择“自动获取IP地址”选项和“自动获得DNS服务器地址”选项,如图1-18所示。
图1-18 TCP/IP属性
(14)打开客户机的网络连接,对虚拟机的网络进行“启用”的操作。如图1-19
图1-19 网络连接界面
图1-20 虚拟机网络链接启动
(15)虚拟机网络连接启动之后,单击右键选择“状态”选项,显示如图1-21所示,DHCP服务器配置完成并成功。如图1-21
图1-21 虚拟机网络连接状态
五、实验结论
1、实验结果
本次实验结果显示DHCP服务器配置成功完成。
2、分析讨论
本次实验注意事项:
1.客户机的操作系统为:XP系统。
2.服务器端的操作系统为:server 2003系统(即虚拟机系统)。注:其他的操作系统没有试过,不知道可不可以完成实验
六、指导教师评语及成绩
第二篇:DHCP服务器建立和设置实验报告
DHCP 服务器 建立 与设置 实 验 报告 告 实验室名称:
成绩:
姓名
学号
班级
试验台号
试 验组号
实验日期
实验名称
实验四 DHCP 服务器建立 实验五 多宿主 DHCP 服务器设置 实验目的 1.理解 DHCP 的工作原理 2.掌握 DHCP 服务器的安装、配置方法 3.掌握 DHCP 客户端的配置 4.掌握复杂网络下的 DHCP 服务器的配置和使用方法
实验原理
DHCP(动态主机配置协议)动态主机配置协议)是一个局域网的网络协议,使用 UDP 协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配 IP 地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在 RFC 2131 中有详细的描述。
实
验
步
骤 本机 IP 为 192.168.44.22 1.安装 DHCP 服务器的计算机应使用静态 IP 地址,给该机设置静态 IP地址。
2.安装 DHCP 组建,通过‘开始’>‘设置’>‘控制面板’>‘添加/删除 window 组件’>‘网络服务’>‘详细信息’,选择‘动态主机配置协议(DHCP)’
3.配置 DHCP 服务器:通过‘开始’>‘程序’>‘管理工具’>‘DHCP’,选择新建工作域
4.设置作用域
5.安装完成后要激活作用域
6.测试 DHCP 服务,将与服务器相连的另一台机作为 DHCP 的客户机 7.对客户机进行设置,设置客户机‘本地连接’的‘TCP/IP 属性’将IP 地址设置为自动获取,DNS 地址不设,DHCP 服务器配置完成后就可以在客户机启用 DHCP 服务功能。
8.Ipconfig /all
9ipconfig /renew
10.设置 DHCP 服务器,添加作用域设置
激活作用域
新建超级作用域
同组电脑当客户机设置自动获取 IP,ping 通
实验结果与体会
可为 DHCP 用户提供 IP 地址限时租用,默认网关,避免应手工设置 IP产生错误,同时还可以避免将一个 IP 分配给多个用户,造成地址冲突。
通过本次实验让我了解了 DHCP(动态主机配置协议)的理论知识以及电脑如何配置。在实验过程中还是遇到了很多问题。
第三篇:WWW服务器配置实验报告
信息科学与技术学院实验报告
课程名称: 计算机网络应用技术教程 实验项目: WWW服务器配置 实验地点: 指导教师: 日期: 2013/10/29
实验类型: 验证性实验(验证性实验 综合性实验 设计性实验)专业: 班级: 11级 姓名: 学号:
一、实验目的及要求
1.实验目的:
1.正确理解WWW服务的运行机制,了解常用的wed服务器软件。
2.掌握IIS服务器的安装和管理,创建wed站点利用IIS在一台服务器上运行多个网站。
3.掌握虚拟机主机和虚拟目录的创建删除。2.实验要求:
1.理解IIS服务的概念及其所具有的功能。2.掌握IIS服务的安装方法。
3.掌握WWW服务的配置包括IP地址、端口号、默认文档、安全等设定,以及如何应用WWW服务的方法。
4.了解虚拟目录服务的作用。
二、实验仪器、设备或软件
1.实验仪器:电脑一台
三、实验内容及原理
1.实验内容:
(1).学会安装IIS。
(2).掌握www服务器的配置和使用。
(3).创建虚拟目录。2.实验原理:
万维网WWW(World Wide Web)服务,又称为Web服务,是目前TCP/IP互联网上最方便和最受欢迎的信息服务类型,是因特网上发展最快同时又使用最多的一项服务,目前已经进入广告、新闻、销售、电子商务与信息服务等诸多领域,它的出现是TCP/IP互联网发展中的一个里程碑。
WWW服务采用客户/服务器工作模式,客户机即浏览器(Browser),服务器即Web服务器,它以超文本标记语言(HTML)和超文本传输协议(HTTP)为基础,为用户提供界面一致的信息浏览系统。信息资源以页面(也称网页或Web页面)的形式存储在Web服务器上(通常称为Web站点),这些页面采用超文本方式对信息进行组织,页面之间通过超链接连接起来。这些通过超链接连接的页面信息既可以放置在同一主机上,也可放置在不同的主机上。超链接采用统一资源定位符(URL)的形式。WWW服务原理是用户在客户机通过浏览器向Web服务器发出请求,Web服务器根据客户机的请求内容将保存在服务器中的某个页面发回给客户机,浏览器接收到页面后对其进行解释,最终将图、文、声等并茂的画面呈现给用户。
四、实验步骤(或过程)
1.首先在电脑上,右击网上邻居,点击属性,启动虚拟机网卡(如图1-1所示)
图1-1 启动虚拟机网卡
2.右击虚拟机网卡,选择属性,配置IP地址(如图1-2所示)
图1-2 配置IP地址
3.首先在电脑上安装虚拟机,然后启动虚拟机登录到Windows 200(如图1-3所示)
图1-3 虚拟机登录界面
4.单击开始菜单,依次点击程序—>管理工具—>Internet服务管理器,打开Internet信息服务窗口(如图1-4所示)
图 1-4 Internet 信息服务窗口
5.右击“默认web站点”,选择“属性”,出现默认web站点属性对话框。单击web站点选项卡,设置IP地址(如图1-5所示),接着设置主目录(如图1-6所示),最后设置文档(如图1-7所示),其他的选择默认。
图1-5 设置IP地址
图1-6 设置主目录
图1-7 设置文档
6右击默认Web站点,选择新建——虚拟目录,出现虚拟目录创建对话框(如图1-8所示).点击下一步,设置该站点的别名(如图1-9所示)
图1-8 虚拟目录创建1
图1-9 虚拟目录创建2 7.点击下一步,在目录路径下输入本地目录(如图1-10所示)。
图1-10 虚拟目录创建3 8.点击下一步,设置对虚拟目录的访问权限(如图1-11所示)。
图1-11 虚拟目录创建4 10.点击下一步,完成虚拟目录的创建(如图1-12所示)。
图1-12 完成虚拟目录创建
11.使用浏览器进行浏览,确定www服务器配置成功。(如图1-15所示)
图1-13 C盘下的web目录
图1-4 创建网页格式的文件
图1-15 浏览器浏览结果
12.由此可知成功配置www服务器。
五、实验结论
1、实验结果
成功配置www服务器
2、分析讨论
通过这次试验,我学到了许多东西,我学会了如何去配置www服务器,而且在配置的过程中也遇到了许多问题,通过一一解决这些问题,我对www服务器的配置也有了更加深刻的理解。
六、指导教师评语及成绩
第四篇:DNS-服务器的配置实验报告
实验名称:
Win server 2003下管理配置DNS服务器
一.环境
运行环境:Microsoft Virtual PC 操作系统:TomatoWin2003_ENTv1.0 二.实验目的
1.掌握DNS服务器的概念
DNS是域名服务器(Domain Name Server)的缩写,在TCP/IP网络中是一种很重要的网络服务,它用于将易于记忆的域名和不易记忆的IP地址进行转化。
2.掌握DNS服务器工作原理及功能
DNS通过在网络中创建不同的区域(一个区域代表该网络中要命名的资源的管理集合),并采用一个分布式数据系统进行主机名和地址的查询。当在客服机的浏览器中键入要访问的主机名时就会触发一个IP地址的查询请求,请求会自动发送到默认的DNS服务器,DNS服务器就会从数据库中查询该主机所对应的IP地址,并将找到IP地址作为查询结果返回。浏览器得到IP地址后,就根据IP地址在Internet中定位所要访问的资源。
3.掌握DNS的组成及查询
①域名空间
②域名服务器 ③解析器
4.DNS服务器的类型
1、主域名服务器(master server)
2、辅助域名服务器(slave server)
3、缓存域名服务器(caching only server)
三.实验内容及步骤
要想成功部署DNS服务,运行Windows Serve 2003的计算机中必须拥有一个静态IP地址,只有这样才能让DNS客户端定位DNS服务器。另外如果希望该DNS服务器能够解析Internet上的域名,还需保证该DNS服务器能正常连接至Internet。
(一)安装DNS服务器
默认情况下Windows Server 2003系统中没有安装DNS服务器,第一件工作就是安装DNS服务器。
第1步,依次单击“开始/管理工具/配置您的服务器向导”,在打开的向导页中依次单击
下一步”按钮。配置向导自动检测所有网络连接的设置情况,若没有发现问题则进入“服务器角色”向导页。
第2步,在“服务器角色”列表中单击“DNS服务器”选项,并单击“下一步”按钮。打开“选择总结”向导页,如果列表中出现“安装DNS服务器”和“运行配置 DNS 服务器向导来配置DNS”,则直接单击“下一步”按钮。否则单击“上一步”按钮重新配置(如图1)。
图1 选择“DNS服务器”角色
第3步,向导开始安装DNS服务器,并且可能会提示插入Windows Server 2003的安装光盘或指定安装源文件(如图2)。
如果该服务器当前配置为自动获取IP地址,则“Windows 组件向导”的“正在配置组件”页面就会出现,提示用户使用静态IP地址配置DNS服务器。
(二).创建区域
DNS服务器安装完成以后会自动打开“配置DNS服务器向导”对话框。用户可以在该向导的指引下创建区域。
第1步,在“配置DNS服务器向导”的欢迎页面中单击“下一步”按钮,打开“选择配置操作”向导页。在默认情况下适合小型网络使用的“创建正向查找区域”单选框处于选中状态,保持默认选项并单击“下一步”按钮(如图3)。
图3 选择配置操作
第2步,打开“主服务器位置”向导页,如果所部署的DNS服务器是网络中的第一台DNS服务器,则应该保持“这台服务器维护该区域”单选框的选中状态,将该DNS服务器作为主DNS服务器使用,并单击“下一步”按钮(如图4)。
图4 确定主服务器的位置
第3步,打开“区域名称”向导页,在“区域名称”编辑框中键入一个能反映公司信息的区域名称(如“yesky.com”),单击“下一步”按钮(如图5)。
图5 填写区域名称
第4步,在打开的“区域文件”向导页中已经根据区域名称默认填入了一个文件名。该文件是一个ASCII文本文件,里面保存着该区域的信息,默认情况下保存在“windowssystem32dns”文件夹中。保持默认值不变,单击“下一步”按钮(如图6)。
图6 创建区域文件
第5步,在打开的“动态更新”向导页中指定该DNS区域能够接受的注册信息更新类型。允许动态更新可以让系统自动地在DNS中注册有关信息,在实际应用中比较有用,因此点选“允许非安全和安全动态更新”单选框,单击“下一步”按钮(如图7)。
图7 选择允许动态更新
第6步,打开“转发器”向导页,保持“是,应当将查询转送到有下列IP地址的DNS服务器上”单选框的选中状态。在IP地址编辑框中键入ISP(或上级DNS服务器)提供的DNS服务器IP地址,单击“下一步”按钮(如图8)。
图8 配置DNS转发
通过配置“转发器”可以使内部用户在访问Internet上的站点时使用当地的ISP提供的DNS服务器进行域名解析。
第7步,依次单击“完成/完成”按钮结束“yesky.com”区域的创建过程和DNS服务器的安装配置过程。
(三)创建域名
利用向导成功创建了“yesky.com”区域,可是内部用户还不能使用这个名称来访问内部站点,因为它还不是一个合格的域名。接着还需要在其基础上创建指向不同主机的域名才能提供域名解析服务。创建一个用以访问Web站点的域名“www.xiexiebang.com”,具体操作步骤如下:
第1步,依次单击“开始”→“管理工具”→“DNS”菜单命令,打开“dnsmagt”控制台窗口。
第2步,在左窗格中依次展开“ServerName”→“正向查找区域”目录。然后用鼠标右键单击“yesky.com”区域,执行快捷菜单中的“新建主机”命令(如图9)。
图9 执行“新建主机”命令
第3步,打开“新建主机”对话框,在“名称”编辑框中键入一个能代表该主机所提供服务的名称(本例键入“www.xiexiebang.com”这样的域名访问网站。这是因为虽然已经有了DNS服务器,但客户机并不知道DNS服务器在哪里,因此不能识别用户输入的域名。用户必须手动设置DNS服务器的IP地址才行。在客户机“Internet协议(TCP/IP)属性”对话框中的“首选DMS服务器”编辑框中设置刚刚部署的DNS服务器的IP地址(本例为“192.168.0.1”,如图11)。
图11 设置客户端DNS服务器地址
然后再次使用域名访问网站,你会发现已经可以正常访问了。
四.实验结果
验证实验是否成功:(1)虚拟机中的DNS的IP:192.168.2.2(2)物理机本地IP:192.168.2.5 区域名称为:www.xiexiebang.com 正向检查:在命令提示符中ping www.xiexiebang.com
得到的结果如下图:
反向检查:在物理机的命令提示符中输入nslookup 192.168.2.2 得到的结果如下图所示:
所以DNS服务器配置成功。
五.报告总结
通过以上学习,基本掌握了DNS服务器的配置。学习使用Windows Server 2003虚拟机配置DNS服务器的方法。
第五篇:Linux下配置完整安全的DHCP服务器详解
名称
dhcpd.conf-dhcpd 配置文件
描述
dhcpd.conf 文件包括ISC DHCP的dhcpd的配置信息。
dhcpd.conf文件是一个普通格式的ASCII码文档,它由内置的递归解析器解释。
dhcpd.conf文件可能会包含许多额外的tab和空格、空行,它们的目的是让文件更容易阅读。其中的关键字对大小写不敏感。注释语句可以放在任何位置(除了引号中)注释语句用# 开头,这一行结束时注释语句自然结束。
文件包括一组语句,语句在一对大括号中,包含参数和声明。
参数语句说明如何做一件事(例如,租期是多长时间),或者是否做一件事情。(例如,dhcpd 是否为未知客户提供地址),或者给客户提供哪种参数(例如,使用网关220.177.244.7)。
声明用来描述网络的拓扑结构、网络上的客户,提供可以为客户端分配的地址,或者对某个客户端组应用组(group)参数。在任何组参数中,所有的这些组参数必须比使用这些组参数的语句先出现。
网络声明包含多子网的网络(有些地方译为:超网,但超网太难理解了,这里叫“多子网网络”)和子网的拓扑声明。对于有地址被动态分配给客户端的子网,子网声明中必须有一个range声明语句。对于静态分配的地址,或者是已知客户的安装,每个客户端都必须使用一个host声明语句。如果一个参数应用到一组声明中,这些声明并不只与某个子网相关,可以定义一个“组参数”。
对每一个要服务的子网,每个dhcp服务器连接的子网,都必须有一个子网声明,用来告诉dhcpd如何处理那个子网上的地址。即使一个子网不需要分配任何地址,也需要一个子网声明。
一些物理网络上不只有一个IP子网存在,例如,如果一个网络需要一个8位的子网,但是当业务发展使总的节点数超过了254台,就需要增加一个8位的子网。这时,就增加了一个新的物理网络,这种情况下,2个网络的子网声明必须包含在一个“多子网网络声明(超级作用域)”中。
有些网络的客户端不只有一个子网,可能会为同一子网中一些客户端分配的一些参数与其它的客户端不同。这样的用户可以使用host语句来定义,一些参数也可以定义在“组参数”语句中,它被这些客户端共同调用。对于需要根据不同情况获得不同地址的客户端,可能会使用“类声明(class declarations)”和“条件声明(conditional declarations)”语句,这样可以根据客户端发送的信息来决定分配给客户端的参数。
当一个客户端启动时,服务器先查看是否有匹配客户端的host语句,如果没有,再看是否有匹配的“类声明(class declarations)”语句,接着查看是否有“池pool”匹配,“子网subnet”匹配和“多子网网络(超级作用域)shared-net-work”匹配。(根据这些匹配,)将符合这个客户端的参数提供给它。每种参数都不会被分析第2次,如果它们出现了2次或2次以上,那么会使用那个最精确出现的地方。
dhcpd首先查找客户端是否有包含固定IP地址的host语句,这个地址要在客户端启动的那个子网中,或者“多子网网络”中,如果没有对应的host语句匹配,那就查找非固定地址的声明。
例如:
一个典型的dhcpd.conf 文件将会象下面这样:
global parameters...subnet 204.254.239.0 netmask 255.255.255.224 {
subnet-specific parameters...range 204.254.239.10 204.254.239.30;
}
subnet 204.254.239.32 netmask 255.255.255.224 {
subnet-specific parameters...range 204.254.239.42 204.254.239.62;
}
subnet 204.254.239.64 netmask 255.255.255.224 {
subnet-specific parameters...range 204.254.239.74 204.254.239.94;
}
group {
group-specific parameters...host zappo.test.isc.org {
host-specific parameters...}
host beppo.test.isc.org {
host-specific parameters...}
host harpo.test.isc.org {
host-specific parameters...}
}
图 1
注意文件的开始,它是全局参数放置的地方,可能会是:
组织的域名,DNS服务器的地址(如果这个服务器对整个网络都是一样的)和其它一些。比如:
option domain-name “isc.org”;
option domain-name-servers ns1.isc.org, ns2.isc.org;
图 2
如图2中所示,可以使用DNS服务器的名称而不使用它的IP地址,如果指定不只一个DNS服务器地址,那么只要有可能,所有地址都会提供给客户端。
每个子网都要指明的最可能必须的参数是router,如图1所示。因此对于第一个子网,它就应该是这个样子的 option routers 204.254.239.1;
注意这里的地址是数字形式的,如果每个网关都有域名,这就不是必须的,使用域名也是合法的。然而,很多情况下,多个网关只有一个域名,这样就不能使用域名了。
在图1中,有一个group 语句,它为一组host语句zappo,beppo和harpo提供了通用的参数。如你所见,这些主机都在test.isc.org这个域里,这样它在“组参数”中指明就会覆盖全局设置的参数:
option domain-name “test.isc.org”;
而且,指明它们的域,可能用在测试机器中,如果我们要测试DHCP的租约机制,可以在这里设置比默认值更短的租约:
max-lease-time 120;
default-lease-time 120;
你可能注意到有些参数以option 关键字开头,有些不。以option 关键字开头的语句对应实际的DHCP选项,不以option关键字开头的选项控制服务端(例如,租期)或客户端的选项不在DHCP协议中(例如,服务器名或文件名)
在图1中,每个host 都有指定的参数,它会包含象hostname选项,要上传的文件名(filename 参数),还有要上传的服务器的地址(next-server 参数)。通常,任何参数都可以在任何可以出现的地方出现,并且按照参数出现位置确定应用范围。
假设你的环境中有许多没有CD的X终端,这些终端有不同的型号,你想为每种型号确定一个启动文件,一种方法是给每个服务器和组都使用host语句:
group {
filename “Xncd19r”;
next-server ncd-booter;
host ncd1 { hardware ethernet 0:c0:c3:49:2b:57;}
host ncd4 { hardware ethernet 0:c0:c3:80:fc:32;}
host ncd8 { hardware ethernet 0:c0:c3:22:46:81;}
}
group {
filename “Xncd19c”;
next-server ncd-booter;
host ncd2 { hardware ethernet 0:c0:c3:88:2d:81;}
host ncd3 { hardware ethernet 0:c0:c3:00:14:11;}
}
group {
filename “XncdHMX”;
next-server ncd-booter;
host ncd1 { hardware ethernet 0:c0:c3:11:90:23;}
host ncd4 { hardware ethernet 0:c0:c3:91:a7:8;}
host ncd8 { hardware ethernet 0:c0:c3:cc:a:8f;}
}
地址池
“池”语句(pool)用来定义一个地址池,即便是在同一个网段或者子网,也可以定义几个池,系统将通过“池”来区分它们。例如,你可能想提供一大段地址分配给DHCP客户端时同时提供很短的租约的一小段地址,用来给未知客户。如果有防火墙,你可能会安排一段地址池能上网,另一个地址池不能上网,这可以鼓励用户注册到DHCP系统中来,也就需要建立两个地址池:
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.254;
# Unknown clients get this pool.pool {
option domain-name-servers bogus.example.com;
max-lease-time 300;
range 10.0.0.200 10.0.0.253;
allow unknown-clients;
}
# Known clients get this pool.pool {
option domain-name-servers ns1.example.com, ns2.example.com;
max-lease-time 28800;
range 10.0.0.5 10.0.0.199;
deny unknown-clients;
}
}
上面这个例子中,已知客户和未知客户在相同的子网中,也可能将已知和未知客户分配在不同的子网中,或者在“多子网层次(超级作用域)”,这样地址池的范围可能跨越不同的子网。正如前面的例子,地址池可以允许或拒绝一个控制用户存取的组,这个组名前面要有allow或 deny 关键字。
如果一个池有一个允许列表,只有匹配的客户端才可以获得地址池的地址,如果这个池有一个拒绝列表,只有不匹配的客户端才可以获得池中的地址,如果同时存在允许和拒绝列表,那么只有在允许列表并且不在拒绝列表中的客户端才可以获得池中的地址。
动态地址分配
地址分配实际只在客户端在初始状态并且发送一个 DHCPDISCOVER信息时完成。如果客户端认为它有一个有效的租约并且发送了一个DHCPREQUEST信息来初始化或者更新租约,服务器就只有3个选择:(1)它可以忽略DHCPREQUEST信息,并且返回一个DHCPNAK 信息来告诉客户端,要求客户端停止使用这个地址,(2)或者发送一个DHCPACK信息,告诉客户端继续再使用这个地址一段时间,如果服务器找到客户端要求的地址,并且这个地址对于这个客户也是可用的,服务器会发送一个DHCPACK信息,如果这个地址已经不能用了,客户端就不能使用它,此时服务器将会发送一个DHCPNAK信息,(3)如果服务器不知道这个地址,它会先保持沉默,除非这个地址对于客户端依附的地址段是不正确的,这种情况下服务器会发送一个DHCPNAK,即便它完全不知道这个地址。
如果有一个host语句定义了客户端,同时host语句中包含了固定地址(fixed-address),这个IP地址对于客户端实际连接的网段也是合法的,此时DHCP服务器不动态分配地址,而是发送host语句指明的地址。如果此时用户发送了DHCPREQUEST信息来获得其它地址,服务器会回应一个DHCPNAK信息,来拒绝为用户分配其它地址。
当一个DHCP服务器为客户端分配一个新的地址时(记住,这只发生在客户端发送DHCPDISCOVER信息时),它首先查找lease文件,看客户机是否存在一个有效的地址租约,或者此客户机原来是否有一个地址(这个地址已经过期),如果有,服务器就会检查那个地址,看客户端是否被允许使用这个地址,如果客户端已经不被允许使用这个地址(通常是客户机从另外一个子网登录了,或者此地址被其它客户端占用),并且服务器lease文件中显示原来的租约还存在,服务器就释放这个租约,事实上,此时是客户端发送的DHCPDISCOVER信息,它已经证明客户端实际并没有使用这个租约。如果没有找到存在的租约,或者客户端被强迫接收一个已经存在的租约,那么服务器就会查找客户端所在网段的地址池,找一个允许客户端使用而又没有使用的地址,它会按顺序遍历每个地址池(所有地址池外的“范围”range定义语句都组成一个没有允许列表的单独的池)。如果地址池的允许列表允许客户端得到一个池中的地址,这个地址池会被检查是否有可用的地址,如果有,客户端将会得到这个地址;否则,会检查下一个地址池。如果一直都没有找到可用的地址,服务器就不发送回应。如果找到一个地址,这个地址以前从未被任何客户端使用过,这个地址将立即分配给这个客户,如果这个地址曾经分配给另一个客户端,服务器会尝试查找一个从未分配的地址给客户端。
DHCP服务器使用哈希表(hash table)来产生一组可用的IP地址,这意味着地址不以任何特定的顺序存放,这样也就不能预测DHCP服务器下一个要分配的地址。前一个版本的ISC DHCP服务器使用降序来分配地址,现在不是了,并且在这个版本里也没有办法配置服务器分发地址的顺序(ISC DHCP 3)。
防止IP地址冲突
DHCP服务器在分配IP地址前检查它们是否被使用来防止冲突。它通过向准备分配的IP地址发送ICMP Echo 请求信息来完成,如果1秒内没有接收到ICMP Echo reply信息,就假定这个地址是可用的。这只对在range语句中指明的租约,并且租约被DHCP服务器认为可用时有效。例如,DHCP服务器或者它的热备机没有列出这个租约在使用中。如果收到ICMP Echo回应,DHCP服务器会假定出现了配置错误――IP地址被网络上的主机使用了,然后它标记这个地址为“废弃地址”,不再把它分配给客户端。如果DHCP客户端试图得到一个地址,但是却没有可用的地址,服务器会(随机)标记一个“废弃地址”为“可用”,然后向这个地址发送同样的ICMP Echo 请求,如果没有得到 ICMP Echo reply回应,这个地址就会分配给这个客户。
如果要收回的第一个IP地址是可用的,DHCP服务器不会去循环使用“废弃地址”。而且,当下一个客户的DHCPDISCOVER信息到达时,它会用相同的方法开始一个新的分配,并且尝试分配一个新的IP地址。
在Linux中配置DHCP服务器 安装DHCP服务器
DHCP配置文件
可以使用RHEL 5.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。
1.DHCP配置文件中的parameters
parameters表明如何执行任务,以及是否要执行任务或将哪些网络配置选项发送给客户端,主要参数如表8-1所示。
DHCP配置文件中的主要参数
参 数
解 释
ddns-update-style
配置DHCP-DNS互动更新模式
default-lease-time
指定默认租赁时间的长度,单位是秒
max-lease-time
指定最大租赁时间长度,单位是秒
hardware
指定网卡接口类型和MAC地址
server-name
通知DHCP客户端服务器名称
get-lease-hostnames flag
检查客户端使用的IP地址
fixed-address ip 分配给客户端一个固定的地址
authritative 拒绝不正确的IP地址的要求
2.DHCP配置文件中的declarations declarations用来描述网络布局及提供客户的IP地址等,主要声明 声 明 解 释
shared-network 用来告知是否一些子网络共享相同网络 subnet 描述一个IP地址是否属于该子网 range起始IP终止IP 提供动态分配IP的范围 host主机名称 参考特别的主机 group 为一组参数提供声明 续表 声 明
解 释
allow unknown-clients﹔deny unknown-client 是否动态分配IP给未知的使用者
allow bootp;deny bootp 是否响应激活查询
allow booting﹔deny booting 是否响应使用者查询
filename 开始启动文件的名称,应用于无盘工作站
next-server
设置服务器从引导文件中装入主机名,应用于无盘工作站
DHCP配置文件中的option
option用来配置DHCP可选参数,全部用option关键字作为开始,主要选项如表8-3所示。表8-3 DHCP配置文件中option关键字的主要选项 选 项
解 释
subnet-mask
为客户端设定子网掩码
domain-name
为客户端指明DNS名字
domain-name-servers
为客户端指明DNS服务器的IP地址
host-name
为客户端指定主机名称
routers
为客户端设定默认网关
broadcast-address
为客户端设定广播地址
ntp-server
为客户端设定网络时间服务器的IP地址
time-offset
为客户端设定格林威治时间的偏移时间,单位是秒
配置实例
在下面的实例中使用一个example.com的虚拟域名,用户需要修改其中的内容以满足网络的需求。/etc/dhcpd.conf文件的内容如下:
# The options outside a subnet directive are global unless
# over-ridden by the same setting inside the subnet directive.option domain-name-servers 192.0.34.43,193.0.0.236;
default-lease-time 6000;max-lease-time 7200;# If this DHCP server is the official DHCP server for the local
# network,the authoritative directive should be uncommented.authoritative;
# Use this to send dhcp log messages to a different log file(you also
# have to hack syslog.conf to complete the redirection).log-facility local7;
# Handle client dynamic dns updates
ddns-update-style none;# Example Network 1(on eth0)
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name “corp.example.com”;
range 192.168.200.100 192.168.200.200;
option routers 192.168.200.254;
}
上面的实例配置文件分为两个部分,即子网配置信息和全局配置信息。可以有多个子网,这里为了简化,只指定了一个子网。
(1)Subnet。
在上面的例子中,一个子网声明以“subset”关键字开始,所以子网信息包括在{}中。{}中的配置信息只对该子网有效,会覆盖全局配置。
(2)Global。
所有子网以外的配置都是全局配置,如果同一个全局配置没有被子网配置覆盖,则其将对所有子网生效。
(3)Configuration Options。
下面是上例中配置指令的解释说明。
option domain-name-servers 192.0.34.43,193.0.0.236;
这一行指定客户端应该使用的DNS服务器,该选项可以用于全局参数或者子网参数。
default-lease-time 6000;max-lease-time 7200;
这两行是相关的,default-lease-time指定客户端需要刷新配置信息的时间间隔(秒),max-lease-time为客户端用于无法从服务器获得任何信息的时间,超过该时间则会丢弃之前从该DHCP服务器获得的所有信息,而转向使用OS的默认设置。
authoritative;
指定当一个客户端试图获得一个不是该DHCP服务器分配的IP信息,DHCP将发送一个拒绝消息,而不会等待请求超时。当请求被拒绝,客户端会重新向当前DHCP发送IP请求获得新地址。
log-facility daemon;
指定DHCP服务器发送的日志信息的日志级别。
ddns-update-style none;
该配置可以指定一个方法,客户端用该方法来更新IP对应的域名信息,本例中禁用了该特性。
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name “corp.example.com”;
range 192.168.200.100 192.168.200.200;
option routers 192.168.200.254;
}
上面内容为子网配置,第1行指定该子网地址和掩码。DHCP服务器必须拥有该子网的一个IP,domain-name设置该客户端的域名。DHCP服务器可以负责整个子网的信息,也可以只负责子网的一段。
option routers配置默认网关IP。
启动DHCP服务器
1.建立客户端租约文件
运行DHCP服务器还需要一个名为“dhcpd.leases”的文件,其中保存所有已经分发的IP地址。在Red Hat Linux发行版本中,该文件位于/var/lib/dhcp/目录中。如果通过RPM安装ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:
Leases address {statement}
一个典型的文件内容如下:
lease 192.168.1.255 { #DHCP服务器分配的IP地址#
starts 1 2005/05/02 03:02:26;# lease 开始租约时间#
ends 1 2005/05/02 09:02:26;# lease 结束租约时间#
binding state active;
next binding state free;
hardware ethernet 00:00:e8:a0:25:86;#客户机网卡MAC地址#
uid “ 01 00 00350240%206”;#用来验证客户机的UID标志#
client-hostname “cjh1”;#客户机名称#
}
注意:lease开始租约时间和lease结束租约时间是格林威治标准时间(GMT),不是本地时间。
第1次运行DHCP服务器时,dhcpd.leases是一个空文件,也不用手工建立。如果不是通过RPM安装ISC DHCP,或者dhcpd已经安装,那么应该试着确定dhcpd将其lease文件写到何处并确保该文件存在。也可以手工建立一个空文件:
#touch /var/lib/dhcp/dhcpd.leases
2.启动和检查DHCP服务器
使用命令启动DHCP服务器:
#service dhcpd start
使用ps命令检查dhcpd进程:
#ps-ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
使用netstat检查dhcpd运行的端口:
# netstat-nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
3.设置DHCP转发代理
DHCP的转发代理(dhcrelay)允许把无DHCP服务器子网内的DHCP和BOOTP请求转发给其他子网内的一台或多台DHCP服务器。当某个DHCP客户端请求信息时,DHCP转发代理把该请求转发给DHCP转发代理启动时所指定的一台DHCP服务器。当某台DHCP服务器返回一个回应时,该回应被广播或单播给发送最初请求的网络。除非使用INTERFACES指令在/etc/sysconfig/dhcrelay文件中指定了接口,否则DHCP转发代理监听所有接口上的DHCP请求。要启动DHCP转发代理,使用命令:
service dhcrelay start
4.从指定端口启动DHCP服务器
如果系统连接不止一个网络接口,但是只想让DHCP服务器启动其中之一,则可以配置DHCP服务器只在相应设备上启动。在/etc/sysconfig/dhcpd中,把接口的名称添加到DHCPDARGS的列表中:
# Command line options here
DHCPDARGS=eth0
如果有一个带有两块网卡的防火墙机器,这种方法就会大派用场。一块网卡可以被配置成DHCP客户端从互联网上检索IP地址;另一块网卡可以被用做防火墙之后的内部网络的DHCP服务器。仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接其守护进程。
其他可在/etc/sysconfig/dhcpd中指定的命令行选项如下。
(1)-p
:指定dhcpd应该监听的UDP端口号码,默认值为67。DHCP服务器在比指定的UDP端口大一位的端口号上把回应传输给DHCP客户端。例如,如果使用默认端口67,服务器就会在端口67上监听请求,然后在端口68上回应客户。如果在此处指定了一个端口号,并且使用了DHCP转发代理,所指定的DHCP转发代理所监听的端口必须是同一端口。
(2)-f:把守护进程作为前台进程运行,在调试时最常用。
(3)-d:把DCHP服务器守护进程记录到标准错误描述器中,在调试时最常用。如果未指定,日志将被写入/var/log/messages中。
(4)-cf
(5)-lf
(6)-q:在启动该守护进程时,不要显示整篇版权信息。
5.管理DHCP服务器端口
常见的DHCP服务器是dhcpd,可以通过命令行设定其监听端口。例如,使用以下命令:
#dhcpd eth0
该命令允许dhcpd进程只在eth0网络端口上工作,默认为监听所有端口。由于DHCP同样使用67和68端口通信,所以更改该端口将造成DHCP服务无法正常使用。
设置DHCP客户端
1.在Linux下配置DHCP客户端
配置DHCP客户端的第1步是确定内核能够识别网卡,多数网卡会在安装过程中被识别,系统会为该网卡配置恰当的内核模块。如果在安装后添加了一块网卡,Kudzu应该会识别它,并提示为其配置相应的内核模块。通常网管员选择手工配置DHCP客户端,需要修改/etc/sysconfig/network文件来启用联网;修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件,在该目录中的每种设备都有一个叫做“ifcfg-eth?”的配置文件。eth?是网络设备的名称,如eth0等。如果想在引导时启动联网,NETWORKING变量必须被设为yes。除此之外,/etc/sysconfig/network文件应该包含以下行:
NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
每种需要配置使用DHCP的设备都需要一个配置文件。其他网络脚本包括的选项如下。
(1)DHCP_HOSTNAME:只有当DHCP服务器在接收IP地址前需要客户端指定主机名时才使用该选项。
(2)PEERDNS=
yes:使用来自服务器的信息来修改/etc/resolv.conf。若使用DHCP,那么yes是默认值。
no:不要修改/etc/resolv.conf。
(3)SRCADDR=
:是用于输出包的指定源IP地址。(4)USERCTL=
yes:允许非根用户控制该设备。
no:不允许非根用户控制该设备。
2.在Windows下设置DHCP客户端
Windows 2000和Windows XP的配置方法相同,DHCP客户端的配置很简单。只需要在“控制面板”中双击“网络连接”图标,然后在如图8-1所示的“本地连接属性”对话框中选择“Internet协议(TCP/IP)”属性。
“常规”选项卡中选择“自动获取IP地址”和“自动获取DNS服务器地址”单选按钮。
3.测试端口监督程序
现在应该已经可以将一个客户机接入到网络中,并通过DHCP请求一个IP地址。要通过Windows客户端测试,在DOS提示符下执行以下操作。(1)清除适配器可能已经拥有的IP地址信息,执行命令:
ipconfig /release
(2)向DHCP服务器请求一个新的IP地址,执行命令:
ipconfig /renew
显示从DHCP服务器获得的信息,应该会看到Primary WINS Server、DNS Servers和Connection-specific DNS Suffix域都获得了dhcpd.conf文件中提供的数据
DHCP简介
DHCP的前身是BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取配置信息的自举协议。DHCP使用客户端/服务器模式,请求配置信息的计算机叫做“DHCP客户端”,而提供信息的叫做“DHCP服务器”。DHCP为客户端分配地址的方法有3种,即手工配置、自动配置和动态配置。DHCP最重要的功能就是动态分配,除了IP地址,DHCP还为客户端提供其他的配置信息,如子网掩码,从而使得客户端无须用户动手即可自动配置并连接网络。
为什么使用DHCP
DHCP在快速发送客户网络配置方面很有用,当配置客户端系统时,若管理员选择DHCP,则不必输入IP地址、子网掩码、网关或DNS服务器,客户端从DHCP服务器中检索这些信息。DHCP在网络管理员想改变大量系统的IP地址时也有用,与其重新配置所有系统,不如编辑服务器中的一个用于新IP地址集合的DHCP配置文件。如果某机构的DNS服务器改变,这种改变只须在DHCP服务器中,而不必在DHCP客户端上进行。一旦客户端的网络被重新启动(或客户端重新引导系统),改变就会生效。除此之外,如果便携电脑或任何类型的可移动计算机被配置使用DHCP,只要每个办公室都有一个允许其联网的DHCP服务器,它就可以不必重新配置而在办公室间自由移动。
DHCP的工作流程
1.发现阶段
即DHCP客户端查找DHCP服务器的阶段。客户机以广播方式(因为DHCP服务器的IP地址对于客户端来说是未知的)发送DHCP discover信息来查找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
2.提供阶段
即DHCP服务器提供IP地址的阶段,在网络中接收到DHCP discover信息的DHCP服务器都会做出响应。它从尚未出租的IP地址中挑选一个分配给DHCP客户端,向其发送一个包含出租的IP地址和其他设置的DHCP offer信息。
3.选择阶段
即DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户端发送DHCP offer信息,则DHCP客户端只接受第1个收到的DHCP offer信息。然后它就以广播方式回答一个DHCP request信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。
4.确认阶段
即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCP request信息之后,它向DHCP客户端发送一个包含其所提供的IP地址和其他设置的DHCP ACK信息,告诉DHCP客户端可以使用该IP地址,然后DHCP客户端便将其TCP/IP与网卡绑定。另外,除DHCP客户端选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
5.重新登录
以后DHCP客户端每次重新登录网络时,不需要发送DHCP discover信息,而是直接发送包含前一次所分配的IP地址的DHCP request信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCP ACK信息。如果此IP地址已无法再分配给原来的DHCP客户端使用(比如此IP地址已分配给其他DHCP客户端使用),则DHCP服务器给DHCP客户端回答一个DHCP NACK信息。当原来的DHCP客户端收到此信息后,必须重新发送DHCP discover信息来请求新的IP地址。
6.更新租约
DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回该IP地址。如果DHCP客户端要延长其IP租约,则必须更新其IP租约。DHCP客户端启动时和IP租约期限过一半时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。
DHCP的设计目标
(1)DHCP应该是一种机制而不是策略,它必须允许本地系统管理员控制配置参数,本地系统管理员应该能够对所希望管理的资源进行有效的管理。
(2)客户端不需要手工配置,而应该在不参与的情况下发现合适于本地机的配置参数,并利用这些参数加以配置。
(3)不需要为单个客户端配置网络,在通常情况下,网络管理员没有必要输入任何预先设计好的用户配置参数。
(4)DHCP不需要在每个子网上配置一台服务器,出于经济原因,DHCP服务器必须可以和路由器或BOOTP转发代理一起工作。
(5)DHCP客户端必须能对多个DHCP服务器提供的服务做出响应,出于网络稳定与安全的考虑,有时需要在网络中添加多台DHCP服务器。
(6)DHCP必须静态配置,而且必须用现存的网络协议实现。
(7)DHCP必须能够和BOOTP转发代理互操作。
(8)DHCP必须能够为现有的BOOTP客户端提供服务。
(9)不允许有多个客户端同时使用一个网络地址。
(10)在DHCP客户端重新启动后仍然能够保留其原先的配置参数,如果可能,客户端应该被指定为相同的配置参数。
(11)在DHCP服务器重新启动后仍然能够保留客户端的配置参数,如果可能,即使DHCP机制重新启动,也应该能够为客户端分配原有的配置参数。
(12)能够为新加入的客户端自动提供配置参数。
(13)支持对特定客户端永久固定分配网络地址。
上面(9)~(13)的设计目标是对于网络层参数的设计而言的,在网络层参数上,DHCP必须做到这几点。
安装DHCP服务器
DHCP配置文件
可以使用RHEL 5.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。
1.DHCP配置文件中的parameters
parameters表明如何执行任务,以及是否要执行任务或将哪些网络配置选项发送给客户端,主要参数如表8-1所示。
DHCP配置文件中的主要参数
参
数
解
释
ddns-update-style 配置DHCP-DNS互动更新模式
default-lease-time 指定默认租赁时间的长度,单位是秒
max-lease-time 指定最大租赁时间长度,单位是秒
hardware 指定网卡接口类型和MAC地址
server-name 通知DHCP客户端服务器名称
get-lease-hostnames flag 检查客户端使用的IP地址
fixed-address ip 分配给客户端一个固定的地址
authritative 拒绝不正确的IP地址的要求
2.DHCP配置文件中的declarations
declarations用来描述网络布局及提供客户的IP地址等,主要声明
声明 声
明
解
释
shared-network 用来告知是否一些子网络共享相同网络
subnet 描述一个IP地址是否属于该子网
range起始IP终止IP 提供动态分配IP的范围
host主机名称
参考特别的主机
group 为一组参数提供声明
续表
声
明
解
释
allow unknown-clients﹔deny unknown-client 是否动态分配IP给未知的使用者 allow bootp;deny bootp 是否响应激活查询
allow booting﹔deny booting 是否响应使用者查询 filename 开始启动文件的名称,应用于无盘工作站
next-server 设置服务器从引导文件中装入主机名,应用于无盘工作站 DHCP配置文件中的option
option用来配置DHCP可选参数,全部用option关键字作为开始,主要选项如表8-3所示。表8-3 DHCP配置文件中option关键字的主要选项 选
项
解
释
subnet-mask 为客户端设定子网掩码
domain-name 为客户端指明DNS名字
domain-name-servers 为客户端指明DNS服务器的IP地址
host-name 为客户端指定主机名称
routers 为客户端设定默认网关
broadcast-address 为客户端设定广播地址
ntp-server 为客户端设定网络时间服务器的IP地址
time-offset 为客户端设定格林威治时间的偏移时间,单位是秒
配置实例
在下面的实例中使用一个example.com的虚拟域名,用户需要修改其中的内容以满足网络的需求。/etc/dhcpd.conf文件的内容如下:
# The options outside a subnet directive are global unless
# over-ridden by the same setting inside the subnet directive.option domain-name-servers 192.0.34.43, 193.0.0.236;
default-lease-time 6000;max-lease-time 7200;# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.authoritative;
# Use this to send dhcp log messages to a different log file(you also
# have to hack syslog.conf to complete the redirection).log-facility local7;
# Handle client dynamic dns updates
ddns-update-style none;# Example Network 1(on eth0)
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name “corp.example.com”;
range 192.168.200.100 192.168.200.200;
option routers 192.168.200.254;}
上面的实例配置文件分为两个部分,即子网配置信息和全局配置信息。可以有多个子网,这里为了简化,只指定了一个子网。
(1)Subnet。
在上面的例子中,一个子网声明以“subset”关键字开始,所以子网信息包括在{}中。{}中的配置信息只对该子网有效,会覆盖全局配置。
(2)Global。
所有子网以外的配置都是全局配置,如果同一个全局配置没有被子网配置覆盖,则其将对所有子网生效。
(3)Configuration Options。
下面是上例中配置指令的解释说明。
option domain-name-servers 192.0.34.43, 193.0.0.236;
这一行指定客户端应该使用的DNS服务器,该选项可以用于全局参数或者子网参数。
default-lease-time 6000;max-lease-time 7200;
这两行是相关的,default-lease-time指定客户端需要刷新配置信息的时间间隔(秒),max-lease-time为客户端用于无法从服务器获得任何信息的时间,超过该时间则会丢弃之前从该DHCP服务器获得的所有信息,而转向使用OS的默认设置。
authoritative;
指定当一个客户端试图获得一个不是该DHCP服务器分配的IP信息,DHCP将发送一个拒绝消息,而不会等待请求超时。当请求被拒绝,客户端会重新向当前DHCP发送IP请求获得新地址。
log-facility daemon;
指定DHCP服务器发送的日志信息的日志级别。
ddns-update-style none;
该配置可以指定一个方法,客户端用该方法来更新IP对应的域名信息,本例中禁用了该特性。
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name “corp.example.com”;
range 192.168.200.100 192.168.200.200;option routers 192.168.200.254;}
上面内容为子网配置,第1行指定该子网地址和掩码。DHCP服务器必须拥有该子网的一个IP,domain-name设置该客户端的域名。DHCP服务器可以负责整个子网的信息,也可以只负责子网的一段。
option routers配置默认网关IP。
启动DHCP服务器
1.建立客户端租约文件
运行DHCP服务器还需要一个名为“dhcpd.leases”的文件,其中保存所有已经分发的IP地址。在Red Hat Linux发行版本中,该文件位于/var/lib/dhcp/目录中。如果通过RPM安装ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:
Leases address {statement}
一个典型的文件内容如下:
lease 192.168.1.255 { #DHCP服务器分配的IP地址#
starts 1 2005/05/02 03:02:26;# lease 开始租约时间#
ends 1 2005/05/02 09:02:26;# lease 结束租约时间#
binding state active;
next binding state free;
hardware ethernet 00:00:e8:a0:25:86;#客户机网卡MAC地址#
uid “010000350240%206”;#用来验证客户机的UID标志#
client-hostname “cjh1”;#客户机名称# }
注意:lease开始租约时间和lease结束租约时间是格林威治标准时间(GMT),不是本地时间。第1次运行DHCP服务器时,dhcpd.leases是一个空文件,也不用手工建立。如果不是通过RPM安装ISC DHCP,或者dhcpd已经安装,那么应该试着确定dhcpd将其lease文件写到何处并确保该文件存在。也可以手工建立一个空文件:
#touch /var/lib/dhcp/dhcpd.leases
2.启动和检查DHCP服务器
使用命令启动DHCP服务器:
#service dhcpd start
使用ps命令检查dhcpd进程:
#ps-ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
使用netstat检查dhcpd运行的端口:
# netstat-nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
3.设置DHCP转发代理
DHCP的转发代理(dhcrelay)允许把无DHCP服务器子网内的DHCP和BOOTP请求转发给其他子网内的一台或多台DHCP服务器。当某个DHCP客户端请求信息时,DHCP转发代理把该请求转发给DHCP转发代理启动时所指定的一台DHCP服务器。当某台DHCP服务器返回一个回应时,该回应被广播或单播给发送最初请求的网络。除非使用INTERFACES指令在/etc/sysconfig/dhcrelay文件中指定了接口,否则DHCP转发代理监听所有接口上的DHCP请求。要启动DHCP转发代理,使用命令:
service dhcrelay start
4.从指定端口启动DHCP服务器
如果系统连接不止一个网络接口,但是只想让DHCP服务器启动其中之一,则可以配置DHCP服务器只在相应设备上启动。在/etc/sysconfig/dhcpd中,把接口的名称添加到DHCPDARGS的列表中: # Command line options here
DHCPDARGS=eth0
如果有一个带有两块网卡的防火墙机器,这种方法就会大派用场。一块网卡可以被配置成DHCP客户端从互联网上检索IP地址;另一块网卡可以被用做防火墙之后的内部网络的DHCP服务器。仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接其守护进程。
其他可在/etc/sysconfig/dhcpd中指定的命令行选项如下。
(1)-p
:指定dhcpd应该监听的UDP端口号码,默认值为67。DHCP服务器在比指定的UDP端口大一位的端口号上把回应传输给DHCP客户端。例如,如果使用默认端口67,服务器就会在端口67上监听请求,然后在端口68上回应客户。如果在此处指定了一个端口号,并且使用了DHCP转发代理,所指定的DHCP转发代理所监听的端口必须是同一端口。
(2)-f:把守护进程作为前台进程运行,在调试时最常用。
(3)-d:把DCHP服务器守护进程记录到标准错误描述器中,在调试时最常用。如果未指定,日志将被写入/var/log/messages中。
(4)-cf
(5)-lf
(6)-q:在启动该守护进程时,不要显示整篇版权信息 5.管理DHCP服务器端口
常见的DHCP服务器是dhcpd,可以通过命令行设定其监听端口。例如,使用以下命令:
#dhcpd eth0
该命令允许dhcpd进程只在eth0网络端口上工作,默认为监听所有端口。由于DHCP同样使用67和68端口通信,所以更改该端口将造成DHCP服务无法正常使用。
设置DHCP客户端
1.在Linux下配置DHCP客户端 配置DHCP客户端的第1步是确定内核能够识别网卡,多数网卡会在安装过程中被识别,系统会为该网卡配置恰当的内核模块。如果在安装后添加了一块网卡,Kudzu应该会识别它,并提示为其配置相应的内核模块。通常网管员选择手工配置DHCP客户端,需要修改/etc/sysconfig/network文件来启用联网;修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件,在该目录中的每种设备都有一个叫做“ifcfg-eth?”的配置文件。eth?是网络设备的名称,如eth0等。如果想在引导时启动联网,NETWORKING变量必须被设为yes。除此之外,/etc/sysconfig/network文件应该包含以下行:
NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
每种需要配置使用DHCP的设备都需要一个配置文件。其他网络脚本包括的选项如下。
(1)DHCP_HOSTNAME:只有当DHCP服务器在接收IP地址前需要客户端指定主机名时才使用该选项。
(2)PEERDNS=
yes:使用来自服务器的信息来修改/etc/resolv.conf。若使用DHCP,那么yes是默认值。
no:不要修改/etc/resolv.conf。
(3)SRCADDR=
:是用于输出包的指定源IP地址。(4)USERCTL=
yes:允许非根用户控制该设备。
no:不允许非根用户控制该设备。
2.在Windows下设置DHCP客户端
Windows 2000和Windows XP的配置方法相同,DHCP客户端的配置很简单。只需要在“控制面板”中双击“网络连接”图标,然后在如图8-1所示的“本地连接属性”对话框中选择“Internet协议(TCP/IP)”属性。“常规”选项卡中选择“自动获取IP地址”和“自动获取DNS服务器地址”单选按钮。
3.测试端口监督程序
现在应该已经可以将一个客户机接入到网络中,并通过DHCP请求一个IP地址。要通过Windows客户端测试,在DOS提示符下执行以下操作。
(1)清除适配器可能已经拥有的IP地址信息,执行命令:
ipconfig /release
(2)向DHCP服务器请求一个新的IP地址,执行命令:
ipconfig /renew
显示从DHCP服务器获得的信息,应该会看到Primary WINS Server、DNS Servers和Connection-specific DNS Suffix域都获得了dhcpd.conf文件中提供的数据:
ipconfig /all
DHCP服务器的故障排除
通常配置DHCP服务器很容易,有一些技巧可以帮助避免出现问题。对服务器而言,要确保网卡正常工作并具备广播功能;对客户端而言,要确保网卡正常工作。最后,要考虑网络的拓扑,以及客户端向DHCP服务器发出的广播消息是否会受到阻碍。另外,如果dhcpd进程没有启动,那么可以浏览syslog消息文件来确定是哪里出了问题,这个消息文件通常是/var/ log/messages。
客户端无法获取IP地址
DHCP服务器配置完成且没有语法错误,但是网络中的客户端却无法取得IP地址。这通常是由于Linux DHCP服务器无法接收来自255.255.255.255的DHCP客户端的request封包造成的,一般是Linux DHCP服务器的网卡没有设置MULTICAST功能。为了让dhcpd(dhcp程序的守护进程)能够正常地和DHCP客户端沟通,dhcpd必须传送封包到255.255.255.255这个IP地址。但是在有些Linux系统中,255.255.255.255这个IP地址被用来作为监听区域子网域(local subnet)广播的IP地址。所以需要在路由表(routing table)中加入255.255.255.255以激活MULTICAST功能,执行命令:
route add-host 255.255.255.255 dev eth0
如果报告错误消息:
255.255.255.255:Unkown host
那么修改/etc/hosts,加入如下行:
255.255.255.255 dhcp
DHCP客户端程序和DHCP服务器不兼容
由于Linux有许多发行版本,不同版本使用的DHCP客户端和DHCP服务器程序也不相同。Linux提供了4种DHCP客户端程序,即pump、dhclient、dhcpxd和dhcpcd。了解不同Linux发行版本的服务器端和客户端程序对于排除常见错误是必要的,如果使用SuSE Linux 9.1 DHCP服务器和使用Mandrake Linux 9.0客户端不兼容的情况,则必须更换客户端程序。方法是停止客户端的网络服务,卸载原程序,然后安装和服务器端兼容的程序。表8-4所示为主要Linux发行版本使用的DHCP客户端。
主要Linux发行版本使用的DHCP客户端
发行版本
默认DHCP客户端
可选DHCP客户端
DHCP客户端启动脚本
附加配置文件
RHEL 4.0 dhclient
无
/sbin/ifup
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 Debian Linux 3.0 dhclient
无
/sbin/ifup /etc/network/interfaces /etc/dhclient.conf Mandrake Linux 9.1 dhclient
dhcpcd、dhcpxd和pump /sbin/ifup
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/dhclient-eth0.conf SuSE Linux 9.1 dhcpcd dhclient
/sbin/ifup-dhcp
/etc/sysconfig/network/dhcp /etc/sysconfig/network/ifcfg-eth0 管理监控DHCP服务器
/etc/dhcpd.conf通常包括3个部分,即parameters、declarations和option,共40多个参数,可以使用Gdhcpd管理监控DHCP服务器。
Gdhcpd是一个在GNOME及KDE桌面环境下的DHCP管理工具,基本上能实现命令行模式下的所有功能。由于DHCP是一个非常复杂的协议,所以配置工作也是比较麻烦的。
Gdhcpd是一套在GTK+图形界面下开发并用于帮助管理员在桌面环境下完成DHCP设置工作的DHCP前端程序。通过Gdhcpd,网络管理员可以管理DHCP,包括启动及停止DHCP服务器的服务。也可以直接修改配置文件,或决定系统重新启动的时间。几乎所有与DHCP相关的功能都能使用Gdhcpd直接完成。1.下载安装 #Wget linux/gdhcpd/gdhcpd-0.2.9.tar.gz">http://mange.dynalias.org/linux/gdhcpd/gdhcpd-0.2.9.tar.gz 2.系统要求
硬件要求为中央处理器兼容Intel X86处理器,PentiumII 400以上,64 MB(推荐128 MB)内存,150 MB以上硬盘空间,显示内存4 MB。软件要求为内核版本基于2.4或以上,GNOME 1.2以上。桌面分辨率至少为640×480,桌面颜色至少65 000色(16位元)。3.安装前的准备工作
安装过程中需要编译,因此需要GCC(2.96以上)、Qt(2.0以上)和GTK+2.0支持,需要使用RPM来确认:
rpm-qa | grep gcc;rpm-qa | grep qt;rpm-qa | grep gtk+ 4.在命令行下安装软件 命令如下:
gunzip gdhcpd-0.2.9.tar.gz tar vxf gdhcpd-0.2.9.tar cd gdhcpd-0.2.9./configure;make;make install 5.运行软件
执行一个终端运行命令“/usr/sbin/gdhcpd”,显示Scopes设置界面,如图所示。Scopes设置界面
在这个界面中可以设置/etc/dhcpd.conf的parameters、declarations及option。在Single hosts界面中可以设置Hostname和Hardware address等,Single hosts设置界面
在中型网络中,数百台计算机的IP地址的管理是一个大问题。为了解决这个问题,相信许多校园网网管会使用DHCP来动态地为客户端分配IP地址。但是这同样意味着如果DHCP服务器因为某种原因瘫痪,DHCP服务自然也就无法使用。客户端也就无法获得正确的IP地址,从而影响整个网络的运行。为解决这个问题,配置两台以上的DHCP服务器即可。如果其中的一台DHCP服务器故障,另外一台DHCP服务器就会自动承担分配IP地址的任务。对于用户来说,这个过程是透明的,他们并不知道DHCP服务器的变化。
另外,在一个具备多个子网的网络中,提供冗余是一个非常重要的方法。由于DHCP中DHCP服务器负责分配IP地址,一旦DHCP服务器出现故障,那么所有的客户端就无法正确获得IP地址,从而不能访问网络。
可以同时设置多台DHCP服务器来提供冗余,然而Linux的DHCP服务器本身不提供备份。它们占用的IP地址资源也不能重叠,以免发生客户端IP地址冲突的现象。提供容错能力即通过分割可用的IP地址到不同的DHCP服务器上,多台DHCP服务器同时为一个网络服务,从而使得一台服务器发生故障还能正常执行操作。通常为了进一步增强可靠性,还可以将不同的DHCP服务器放置在不同子网中,互相使用中转提供服务。
例如,在两个子网中各自有一台DHCP服务器。标准的做法可以不使用DHCP中转,各子网中的服务器为各个子网服务。然而为了达到容错的目的,可以互相为另一个子网提供服务,通过设置中转或路由器转发广播以达到互为服务的目的。
例如,位于192.168.3.0网络上的srv1的配置文件片段为: subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.199;
}
subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.200 192.168.4.220;} 位于192.168.4.0网络上的srv2的配置文件片段可能为: subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.10 192.168.4.199;}subnet 192.168.3.0 netmask 255.255.255.0 { range 192.168.3.200 192.168.3.220;} 注意:上述设置都是设置样例,标准情况下还需分别指定各option,用于设置IP地址及其相关设置。
可以看出两台服务器都能为两个网络上的客户端分配IP地址,而各自又有一个主要服务的网络。每个网络上的IP地址主要放在本地的服务器上,但也有少部分地址放在另一台子网中的服务器中(地址资源不能冲突),这样提供了一定的容错能力。实际上在多子网网络中,没有必要每个子网设置一台服务器,并使用另外的服务器备份。一般网络中有2台~3台DHCP服务器即可。其他子网可以通过DHCP中转的方式,为该子网提供DHCP服务。以debug模式运行DHCP服务器 执行命令如下: #dhcpd-d 该命令指明dhcpd将出错信息记录到标准的错误描述器,记录的信息将根据/etc/syslog.conf文件的配置保存在指定的文件中。例如,在/etc/syslog.conf文件中要指定记录debug信息:
logalldebuginformationinto/var/log/dameon.log dameon.=debug/var/log/dameon.log
小结
DHCP服务器是Linux下比较简单的服务器。DHCP在快速发送客户网络配置方面很有用,当配置客户端系统时,若管理员选择DHCP,则不必输入IP地址、子网掩码、网关或DNS服务器,客户端从DHCP服务器中检索这些信息。DHCP在管理员想改变大量系统的IP地址时也有用,与其重新配置所有系统,不如编辑服务器中的一个用于新IP地址集合的DHCP配置文件即可。本章首先介绍DHCP服务器的工作原理,安装DHCP服务器和设置DHCP客户端的方法以及DHCP服务器的故障排除。