为了支持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如果是Windows系统的话按下面的做:
开始菜单---控制面板--添加删除程序----选择网络服务(可双击或点详细信息进去)--选择动态主机配置协议。。然后等待安装即可,安装完成后在管理工具里面就可以看到DHCP了!!
如果是Linux系统的话就按下面 *** 作:
1、先挂载光盘 #mount /dev/cdrom /media
2、然后安装DHCP服务器安装包 #rpm -ivh /media/Server/dhcp-305-3el5i386rpm
3、复制dhcp服务器配置示例文件到/etc下并改名为dhcpdconf
#cd /usr/share/doc/dhcp-305/
#cp dhcpdconfsample /etc/dhcpdconf这一步会有一个是否覆盖,写y就行了
4、修改dhcp服务器的配置文件:#vim /etc/dhcpdconf
此步骤我不能插入,就和你说明几点里面要修改的意思:
(1)option routers IP地址
作用:为客户端指定默认网关
(2)option subnet-mask 子网掩码
作用:设置客户端的子网掩码
(3)option domain-name-servers IP地址
作用:为客户端指定DNS服务器地址
5、启动dhcp服务器: #service dhcpd restart
如果可以的话还可以进行这一步:
#iptables -F 清掉防火墙规则
好了,到客户端自动获取IP地址就可以了!!
傻瓜路由的话启动DHCP服务就可以了,没什么要 *** 作的
如果还是有点不懂的话找我,我给你资料QQ--651750543
拜托加点分啊,花了好多心血的!!谢了哈!!
启动WIN server,用管理员帐号登录并确保已安装活动目录,如未安装活动目录先行安装;查看该服务器IP地址和子网掩码;
单击”开始”-”程序”-”管理工具”-”DHCP”,按如下要求配置DHCP服务器;
(1) 地址池:19216812100至19216812254,(2) 排除地址19216812200至19216812220;子网掩码为25525500;
(3) 地址租约:1天;
(4) 网关/路由器地址:19216802 ;
(5) DNS服(6) 务器地址:2021021523和2021021543;
(7) WINS服(8) 务器地址:19216801;
激活该作用域并对DHCP服务器授权;
以相邻另一台微机作工作站,启动W2K Professional,完成以下 *** 作
(9) 设置为”自动获取IP地址”;
(10) 依次单击”开始”-(11) ”运行”-(12) ”command”(Windows 98)或”cmd”(W2K),(13) 进入命令行界面;
(14) 输入命令IPCONFIG /all,(15) 记录IP地址及相关配置,(16) 并观察是否与DHCP服(17) 务配置一致.
(18) 输入ipconfig/ renew,再输入ipconfig/all 查看IP是否改变1装入关盘,将其挂载到/mnt
mount /dev/cdrom /mnt
2安装器软件包
rmp -ivh dhcp-305-3e15i386rpm
(前提是必须进入/mnt/Server)
3复制配置文件
cp -a /usr/share/doc/dhcp-305/dhcpconfsample /etc/dhcpconf
(命令可以tab键补全)
4修改配置文件
subnet(网络号)、网关、地址范围、主机保留等
5重启服务
service dhcpd restart
更多服务器部分的学习,请查阅书籍《Linux就该这么学》安装并启动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键。安装IPv4 DHCP服务器一般来说,DHCP服务器往往都需要安装在有Windows 2000 Server以上版本的计算机系统中;并且,作为DHCP服务器的计算机系统必须安装使用TCP/IP协议,同时需要设置静态的IP地址、子网掩码,指定好默认网关地址以及DNS服务器地址等。对于Windows 2008 Server系统来说,在默认状态下DHCP服务器并没有被安装,为此我们可以先按照如下步骤来将DHCP服务器安装成功:
首先以超级管理员权限进入Windows 2008 Server系统,打开该系统的“开始”菜单,从中依次选择“程序”/“管理工具”/“服务器管理器”命令,在d出的服务器管理器窗口中,单击左侧显示区域的“角色”选项,在对应该选项的右侧显示区域中,单击“添加角色”按钮,打开如图1所示的服务器角色列表窗口。
选中该列表窗口中的“DHCP服务器”选项,当然,要是Windows 2008 Server系统没有使用静态IP地址时,系统将会在选中“DHCP服务器”选项之后自动d出提示窗口,告诉我们本地系统没有使用静态IP地址,并询问我们是否要继续安装DHCP服务器;此时,我们必须重新对Windows 2008 Server系统设置一个合适的静态IP地址,而不建议使用动态IP地址,因为DHCP服务器的IP地址要是发生变化时,那么局域网中的普通工作站将无法连接到DHCP服务器上。
选中“DHCP服务器”选项后,单击“下一步”按钮,屏幕上将会d出DHCP服务器简介窗口(如图2所示);在这里,我们不但能够了解到DHCP服务器的作用,而且还能知道在安装DHCP服务器之前需要做好哪些准备工作;在确认自己的准备工作已经完成后,继续单击“下一步”按钮,在其后d出的向导提示界面中,我们会看到系统要求指定好IPv4协议下的DNS服务器地址,这里设置的DNS服务器地址将会被集成到DHCP服务器中,日后当DHCP服务器更新IP地址信息的时候,相应的DNS更新会将计算机的名称到IP地址的关联进行同步。此外,在这里我们还需要设置好局域网客户端将用于名称解析的父域名,这个域将用于我们在这台DHCP服务器上创建的所有作用域。
接着向导提示窗口会询问我们是否要设置WINS服务器地址参数,如果设置了该参数,那么该参数同样也会自动适用于局域网中的所有客户端,在默认状态下,DHCP服务器的安装向导程序会选中“此网络上的应用程序不需要WINS”选项(如图3所示);当然,要是本地局域网中确实存在WINS服务器时,那我们就可以选中这里的“此网络上的应用程序需要WINS”选项,之后正确设置好目标WINS服务器的IP地址。
下面,再单击向导提示窗口中的“下一步”按钮,在其后出现的设置窗口中,我们可以根据本地局域网的IP地址分配情况,合适设置好DHCP服务器的作用区域,也就是说设置好DHCP服务器的适用范围,因为只有创建好合适的作用域之后,DHCP服务器才能有效地将IP地址自动分配给局域网中的普通工作站;在进行这项设置 *** 作时,我们可以单击该向导设置窗口中的“添加”按钮,打开如图4所示的添加作用域设置窗口,在该设置窗口的作用域名处指定好具体的DHCP作用域名称,在起始IP地址文本框中输入局域网网络的开始IP地址,在结束IP地址文本框中输入局域网网络的末尾IP地址,再将子网掩码地址、默认网关地址等参数设置成与Windows 2008 Server系统的相关参数相同就可以了,最后再设置好子网类型,同时选中“激活此作用域”选项,并单击“确定”按钮结束DHCP作用域的添加设置 *** 作。DHCP服务在linux下算是最简单的服务了。
DHCP服务的配置。
DHCP简介:
DHCP动态主机配置协议,在一个小型局域网里可以通过手工指定ip地址的方式,但如有大量的主机,如果还是手工指定,那是一个很大的工作量,而且也容易出错,这时,就可以通过配置一台DHCP服务器来解决,为每台主机分配一个ip地址。DHCP作用域是指DHCP服务器可分配给DHCP客户端的IP地址范围,一个DHCP服务器至少要一个作用域,如有多个作用域,作用域之间的IP地址不能重叠。
DHCP的工作原理:
DHCP工作过程分为四个步骤:
第一步(DHCPDISCOVER):客户端发送广播查找可以给自己提供IP地址的DHCP服务器,
第二步(DHCPOFFER):DHCP服务器发送广播提供一个可用的IP地址,并在地址池中将该地址打上标记,以防再次分配。
第三步(DHCPREQUEST):客户端收到广播后再次发送一个广播请求该地址,如果有多台DHCP响应,则第一个收到的优先。
第四步(DHCPACK):DHCP服务器收到广播后再发送一个广播,确认该地址分配给这台主机使用,并在地址池中将该地址打上标记,以防再次分配。
DHCP的基本配置:
第一步:安装软件:
[root@localhost ~]# rpm -ivh /misc/cd/Server/dhcp-305-18el5i386rpm
第二步:编辑配置文件:
[root@localhost ~]# vi /etc/dhcpdconf
# see /usr/share/doc/dhcp/dhcpdconfsample
当进入到配置文件里面时,这里是空的,有如上一行的提示,说可以参考这个文件来编写配置文件,那就复制一份再编辑。
[root@localhost ~]# cp -rvf /usr/share/doc/dhcp-305/dhcpdconfsample /etc/dhcpdconf
[root@localhost ~]# vi /etc/dhcpdconf
ddns-update-style interim; //配置DHCP和DNS为互动更新模式,
ignore client-updates; //忽略客户端的更新。
subnet 1921681000 netmask 2552552550 { //定义作用域
option routers 1921681001; //默认路由
option subnet-mask 2552552550; //子网掩码
option nis-domain "rhelcom"; //NIS域名
option domain-name "rhelcom"; //DNS域名
option domain-name-servers 19216810010; //DNS服务器地址
option time-offset -18000; # Eastern Standard Time //为客户端设置与格林威治的时间偏移
option ntp-servers 19216811; //网络时间服务器地址
option netbios-name-servers 19216811; //指定WINS服务器地址
range dynamic-bootp 192168100128 192168100254; //动态分配的地址范围
default-lease-time 21600; //默认租约时间
max-lease-time 43200; //最大租约时间
host abc { //指定特定主机
hardware ethernet 00:0C:29:FD:44:C8; //硬件地址
fixed-address 19216810030; //IP地址
}
}
如有多个要绑定的主机时可以把所有主机信息用group{ }包括起来,这样更方便管理。格式如下 :
group {
……这里不可以添加一些佤全局选项,这样就不用在每个里面写了。
host abc {
……
……
}
host xyz {
……
……
}
}
[root@localhost ~]# service dhcpd restart
测试:
在linux下:
首先让地址从DHCP获取:
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
[root@localhost ~]# service network restart //重启一下网络服务,这里不能使用ifdown和ifup,因为要配置路由信息。
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:FD:44:C8
inet addr:19216810030 Bcast:192168100255 Mask:2552552550
这就是绑定的IP地址。
[root@localhost ~]# cat /etc/resolvconf
; generated by /sbin/dhclient-script
search rhelcom
nameserver 19216810010
这里的DNS服务器地址也获取到了。
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
1921681000 0000 2552552550 U 0 0 0 eth0
16925400 0000 25525500 U 0 0 0 eth0
0000 1921681001 0000 UG 0 0 0 eth0
默认路由也获取到了。查看一下端口:
[root@localhost ~]# netstat -tlunp | grep 68
udp 0 0 0000:68 0000 16150/dhclient
查看客户端的租约文件:
lease {
interface "eth0";
fixed-address 19216810030; //固定地址
option subnet-mask 2552552550; //子网掩码
option time-offset -18000; //时间偏移
option routers 1921681001; //默认路由
option dhcp-lease-time 21600; //租约时间
option dhcp-message-type 5;
option domain-name-servers 19216810010;
option dhcp-server-identifier 19216810020;
option nis-domain "rhelcom";
option domain-name "rhelcom";
renew 5 2010/4/9 09:01:40;
rebind 5 2010/4/9 11:34:53;
expire 5 2010/4/9 12:19:53;
}
windows下:
把IP地址设成自动获取。
C:\Documents and Settings\Administrator>ipconfig /all
Connection-specific DNS Suffix : rhelcom
Physical Address : 00-0C-29-D3-C6-B3
Dhcp Enabled : Yes
Autoconfiguration Enabled : Yes
IP Address : 192168100253
Subnet Mask : 2552552550
Default Gateway : 1921681001
DHCP Server : 19216810020
DNS Servers : 19216810010
Lease Obtained : 2010年4月9日 14:44:12
Lease Expires : 2010年4月9日 20:44:12
基本配置完成。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)