怎样搭建DHCP服务器

怎样搭建DHCP服务器,第1张

安装并启动DHCP服务以后,您必须创建一个作用域,一个可用来租用给DHCP客户机的有效IP地址范围。环境中的每个DHCP服务器至少都应该有一个,不与环境中其他DHCP服务器的作用域相重叠的作用域。在Windows 2000中,必须对Active Directory域环境中的DHCP服务器进行授权,以防恶意DHCP服务器联机侵入,并对DHCP服务器进行授权。 在域控制器上安装并配置完DHCP服务以后,服务器通常会在第一次被添加到DHCP控制台时被授权。但是,当您在一个成员服务器或独立的服务器上安装并配置完DHCP服务以后,您需要授权该DHCP服务器。 若要授权DHCP服务器,请按照下列步骤 *** 作: 单击开始—>单击程序—>单击管理工具,然后单击DHCP。 在DHCP管理单元的控制台树中,选择这个新的DHCP服务器。如果在服务器对象的右下角有一个红色箭头,说明该服务器尚未被授权。右键单击该服务器—>单击授权,过一会,再次右键单击该服务器,然后单击刷新,该服务器将在右下角显示一个绿色箭头以表明该服务器已被授权。 若要新建作用域,请按照下列步骤 *** 作:单击开始—>单击程序,指向管理工具,然后单击DHCP。右键单击该服务器—>单击新建作用域。在新建作用域向导中,单击下一步,然后为该作用域键入名称和说明。这可以是您选择的任何名称,但是它应该具有足够的描述性,以便标识该作用域在网络上的用途。 键入这些可作为作用域一部分进行租用的地址范围,例如起始IP地址为1921681001,结束地址为192168100100。因为这些地址都要提供给客户机,所以它们对于您的网络来说必须是有效的,并且当前未在使用。如果您想使用不同的子网掩码,请键入新的子网掩码。单击下一步。 键入要从输入的范围中排除的IP地址。这包括已经静态分配给组织中各计算机的任何地址。单击下一步。 键入从该作用域中租用的IP地址到期前的天数、小时数和分钟数。这决定了客户机在不更新的情况下可以保留一个租用的地址多长时间。单击下一步,选择是,我想现在配置这些选项,然后继续使用向导,为最常用的DHCP选项进行设置。单击下一步。 键入从该作用域获取IP地址的客户机应使用的默认网关的IP地址,单击添加将默认网关地址放入列表中,然后单击下一步。 注意:如果网络中已经存在DNS服务器,请在父域中键入您的组织的域名。键入您的DNS服务器名称,然后单击解析,确保DHCP服务器可以与DNS服务器联系,并确定它的地址。然后单击添加,将该服务器,包括在分配给DHCP客户机的DNS服务器列表中。单击下一步。单击是,我想现在激活此作用域,激活该作用域,使得客户机可以从中获得租用地址,然后单击下一步。单击完成。 三、可能遇到的问题 1、客户机无法获得IP地址 如果DHCP客户机没有已配置的IP地址,通常表明该客户机未能与DHCP服务器取得联系。这可能是因为网络问题,也可能是因为DHCP服务器不可用。如果DHCP服务器已经启动,其他客户机已经能够获得有效地址,请验证该客户机的网络连接是否有效,所有相关的客户机硬件设备(包括电缆和网络适配器)是否运行正常。 2、DHCP服务器不可用 如果DHCP服务器不能向客户机提供租用地址,通常是因为DHCP服务未能启动。如果是这种情况,该服务器可能还未被授权在该网络运行。如果您以前能够启动DHCP服务,但是现在一直停止,请使用事件查看器检查系统日志中可能找出其原因的所有条目。 注意:若要启动DHCP服务,单击启动—>单击运行,键入cmd,然后按ENTER键。键入net start dhcpserver,然后按ENTER键。

在FreeBSD的Packages Collection中,有两个不同的DHCP客户机和服务器软件,一 个为ISC-DHCP,另一个为WIDE-DHCP,两个软件都包括了DHCP客户软件和服务器软件,其中ISC-DHCP 更为常用一些,这里就以ISC-DHCP为例介绍在FreeBSD上安装和设置DHCP。
为了支持DHCP,首先要确认系统内核支持伪设备bpfilter,如果没有,就需要重新编译内核。伪设备bpfilter 是一个允许应用程序接收网络的原始数据包的界面,这样应用程序就能接收目的地址非本机IP地址的数据包 了。DHCP使用bpfilter的原因是在DHCP设置好计算机的TCP/IP之前,由于计算机本身没有定义IP地 址,而TCP/IP堆栈本身不会接收不具备本机IP地址的数据包。要接收DHCP服务器发送回客户的数据包,就需要绕 过TCP/IP堆栈,而必须使用伪设备bpfilter。
1 pseudo-device bpfilter 4
定制内核之后,还要保证/dev/目录下具有对应bpfilter的设备文件。
1 # cd /dev
2 # sh MAKEDEV bpf0 bpf1 bpf2 bpf3 
从Packages Collecion中安装DHCP软件,这将DHCP软件中的dhcpd,dhclient和dhcprelay 安装到/usr/local/sbin目录下。
1 $ ls /usr/local/sbin/dhc
2 /usr/local/sbin/dhclient
3 /usr/local/sbin/dhcpd
4 /usr/local/sbin/dhcrelay
设置服务器
为了设置DHCP服务器dhcpd,首先就要设置其配置文件/etc/dhcpdconf。这个配置文件 语法简单,比较容易理解。
1 server-identifier 19216831;
2
3 subnet 19216830 netmask 2552552550 {
4 range 192168310 192168320;
5 default-lease-time 600;
6 max-lease-time 7200;
7 option subnet-mask 2552552550;
8 option broadcast-address 1921683255;
9 option routers 19216831;
10 option domain-name-servers 19216831;
11 option domain-name "exampleorgorgcn";
12 }
13
14 host a1 {
15 hardware ethernet 00:90:27:4e:92:09;
16 fixed-address 192168332;
17 option subnet-mask 2552552550;
18 option broadcast-address 1921683255;
19 option routers 19216831;
20 option domain-name-servers 19216831;
21 option domain-name "exampleorgorgcn";
22 } 
基本的dhcpdconf首先使用server-identifier定义了本服务器的IP地址,这对于有 多个IP地址的服务器系统十分重要,一般不必设置这个参数,dhcpd能自动侦测。然后定义要分配IP地址的客户机组 ,每组拥有一个可用的IP地址范围。有两种客户机组的划分方式,一种为指定子网段来区分,一种为指定主机来区分。
这个例子中的第一组定义了一个子网19216830/24,这个子网段内,可供DHCP服务器分配的I P地址范围为192168310到192168320,这个地址范围也可以不是连续的,不连续的地址可以 使用多个range设置参数来设置。此外,还设置了这一组内分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用缺省值,而不必改动。后面的option参数设置DHCP的附加功能 ,例如设置DHCP客户的网络掩码、广播地址、DNS服务器、域名等等。事实上这些option设置选项也可以被用作 全局选项设置,即放置在server-identifier之后,对所有的客户机组起作用。
例子的第二组是针对某个特定主机a1进行的设置,这个主机被限定为以太网地址为hardware ethernet 参数值的计算机,将给这个计算机分配一个固定地址。这种分配方式实际等价于固定地址分配方式,唯一的好处就是能够对IP地址进行集中管理,不必每个计算机分别设置了。这里同样也可以使用option参数,设置TCP/IP的参数 。
dhcpdconf中还能有更多的组,包括对非本网段的子网上的客户机指定的组。
当设置了dhcpdconf之后,就能启动dhcpd守护进程了,由于计算机会有多个网络界面,需要指定dhcpd 服务器的网络界面,以便回应相应界面上的DHCP请求。
1 # /usr/local/sbin/dhcpd fxp0 
在调试阶段,可以使用-d参数,这样dhcpd就不会进入后台运行,而一直保留在前台,并显示各个与客户计算机通信的过程。当一切都调试完毕之后,就能去除-d参数,并将执行命令放入rclocal启动脚本中,以便系统能够自动执行。
此后,dhcpd正常运行的时候,会将每一次客户请求及其回应的IP地址分配的记录,都记录在/var/run/dhcpdleases 文件中。为了使dhcpd能正常进行日志记录,应该在启动dhcpd之前使用touch 命令,生成一个新的日志文件。以后就可以查看这个日志文件的内容,以得到当前DHCP服务器的状态和客户机IP地址分 配的情况。以下是一个日志文件的部分内容。
1 lease 192168311 {
2 starts 3 1998/11/26 05:46:28;
3 ends 4 1998/11/27 05:46:28;
4 hardware ethernet 0:80:c2:12:fd:d;
5 uid 1:0:80:c2:12:fd:d;
6 } 
 
touch命令的优点是在存在相关的文件时,不删除或更改文件内容,只更新其访问时间设置,只有在文 件不存在时才生成新文件。
然后就能设置网络中的客户计算机使用DHCP协议,获取合法的IP地址了。通常Windows计算机的TCP/IP设置 中能直接设置支持DHCP协议,如果为Unix(包括FreeBSD)设置DHCP客户软件,就需要dhclient的支持。
设置客户软件
ISC-DHCP中同样也提供了一个客户程序dhclient,用于FreeBSD系统从DHCP服务器上动态获取一个IP地 址。这个程序同样也要求内核支持bpfilter伪设备。
dhclient使用的配置文件为/etc/dhclientconf,然而最一般的情况下可以不使用它,软件本身的缺省配置就满足一般情况下请求IP地址的需要了。缺省设置下dhclient在获得了IP地址之后,会自动执行/etc/dhclient-script 这个脚本程序,以针对刚获取的动态IP地址进行必要的设置。很多依赖于IP地址的网络服务,就可以在这个脚 本中启动,或者针对重新分配的动态IP地址对已有的网络服务进行修正。虽然使用者也许不希望使用这个脚本 设置网络,但如果不存在这个脚本程序,或者这个程序不可执行,那么dhclient就不能正常执行。
因此对于最一般的客户机,一般只连接到一个网络上,仅具备一个网络界面,可以使用一个空的dhclientconf 和空的declient-script文件,就能完成设置IP地址和其他TCP/IP参数的任务了。
1 # touch /etc/dhclientconf
2 # touch /etc/dhclient-script
3 # chmod +x /etc/dhclient-script
4 # /usr/local/sbin/dhclient fxp0
5
6 Listening on BPF/fxp0/00:90:27:4e:92:09/unattached
7 Sending on BPF/fxp0/00:90:27:4e:92:09/unattached
8 Sending on Socket/fallback/fallback-net
9 DHCPDISCOVER on fxp0 to 255255255255 port 67 interval 22
10 DHCPOFFER from 19216831
11 DHCPREQUEST on fxp0 to 255255255255 port 67
12 DHCPACK from 19216831
13 bound to 192168332 -- renewal in 3600 seconds
在更复杂的情况下,就要指定更多的内容,例如当系统有多个网卡时,要指定dhclient应该从哪个子网中获 得IP地址设置,就需要使用设置文件dhclientconf。一般除非有多个局域网网络界面,都应该使用空设置文件, 避免产生配置错误。以下为一个简单的dhclientconf的例子,可以用于多网络界面的情况:
1 # Defaults
2 timeout 60;
3 reboot 10;
4 retry 60;
5 select-timeout 5;
6 initial-interval 2;
7 script "/etc/dhclient-script";
8 interface "fxp0" {
9 request subnet-mask, broadcast-address, routers, domain-name-servers,
10 domain-name, host-name;
11 require domain-name-servers;
12 }
 
这个设置文件主要用于重新定义一些参数,比较容易理解,更改也比较容易。
成功的手工执行dhclient之后,就可以考虑将其和系统启动文件相结合了。因为很多网络服务是依赖于网络 配置的,应该在启动这些网络服务之前使用DHCP配置好TCP/IP。使用dhclient-script启动服务的想法虽然也能解决问题,然而这就不能使用系统的启动rc文件中的相关设置启动网络服务,而在这个dhclient-script 中重新启动,因此比较麻烦。更简便的做法是仅仅在dhclient-script中设置hostname, 而让系统启动文件完成其他网络服务的启动。这样就要求将dhclient与系统rc文件结合起来。
1 #hostname="mydomainname"
2 network_interfaces="fxp0 lo0"
3 # List of network interfaces (lo0 is loopback)
4 ifconfig_lo0="inet 127001"
5 # default loopback device configuration
6 #ifconfig_fxp0="inet 192168312 netmask 2552552550"
7 defaultrouter="NO"
8 # Set to default gateway (or NO)
这样就需要更改rcconf文件,更改一些设置语句。首先要注释hostname设置,而在dhclientscript中进行设置,也不必设置defaultrouter,它通过DHCP协议自动设置。同时要保证netwo

打开系统,挂载光盘。(小白可在桌面模式下,建议在命令行界面 *** 作)
设置IP地址,主机与服务器相互ping通
安装DHCP服务器(我的是用yum安装的,也可以用rpm),yum install -y dhcp
将范本配置文件复制到/etc/dhcp目录下替换掉空白的dhcpdconf的主配置文件
dhcpdconf配置文件:常用参数
ddns-update-style (none|interim|ad-hoc):定义所支持的DNS动态更新类型
ignore client-updates:忽略客户端更新
default-less-time number(数字):定义默认IP租约时间
max-lease-time number(数字):定义客户端IP租约时间的最大值
subnet 1921681000 netmask 2552552550{(定义作用域)
range 19216810010 192168100100;(指定动态IP地址范围)
option routers 192168100254;(网关)
option subnet-mask 2552552550;(子网掩码)
option domain-name"liunx65com";(客户端名称)
option domain-name-servers 19216810032;(DNS服务器地址)
option broadcast-address 192168100255;(广播地址)
}
配置完成后保存退出并重启DHCP服务,测试
设置DHCP自启动(chkconfig --level 3 dhcp on)

1安装DHCP服务器软件包
先检查RPM命令检查系统中是否已经安装DHCP软件包,如果没有安装,则挂载RHEL5系统光盘,并安装其中的dhcp- 305el5i386rpm软件包即可
查看dhcp软件包安装的主要文件
使用vi打开dhcp服务器的主配置文件/etc/dhcpdconf,但是该文件中默认并不包含任何有效配置,需要手动建立。
为各客户机动态分配的ip地址,默认租约时间为21600秒,最大租约时间为43200秒,对应于三个物理网段,用于动态分配的ip地址范围:192168110~1921681100、192168210~1921682100、192168310~1921683100
启动dhcpd服务。
打开命令参数配置文件/etc/sysconfig/dhcpd,设置dhcpd服务仅面向eth0、eth1、eth2网卡提供动态地址分配服务。
配置dhcp中继服务器。
在RHEL5系统中,安装dhcp软件包,安装完之后,就已经包含了dhcp中继相关的程序和脚本等文件。配置dhcp中继服务器时,只需修改配置文件/etc/sysconfig/dhcrelay服务即可,作为路由器使用时,还需要开启服务器的路由转发功能。
编辑/etc/sysctlconf文件,将netipv4ip_forward配置项的值修改为1,并执行sysctl -p命令使之生效。
打开dhcp中继服务器的配置文件,设置允许dhcp中继数据的接口及dhcp服务器的ip地址。
启动dhcrelay中继服务程序。
验证dhcp结果。
修改测试客户机的虚拟网卡连接方式,分别使用不同的网卡进行测试。确保能够通过dhcp方式获取正确的网络地址配置(两种方法)。
1 如果测试客户机使用Linux系统,则进行dhclient eth0命令获取地址,或者修改eth0网卡的配置文件,设置BOOTPROTO=dhcp,然后重启network服务。
2 如果测试客户机使用windows系统,则打开cmd命令窗口,执行ipconfig/release命令释放租约,执行ipconfig/renew命令重新获取地址。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10725917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存