DHCP 怎样设置
设置和使用DHCP
在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。
pseudo-device bpfilter 4
定制内核之后,还要保证/dev/目录下具有对应bpfilter的设备文件。
# cd /dev
# sh MAKEDEV bpf0 bpf1 bpf2 bpf3
从Packages Collecion中安装DHCP软件,这将DHCP软件中的dhcpd,dhclient和dhcprelay 安装到/usr/local/sbin目录下。
$ ls /usr/local/sbin/dhc
/usr/local/sbin/dhclient /usr/local/sbin/dhcpd
/usr/local/sbin/dhcrelay
设置服务器
为了设置DHCP服务器dhcpd,首先就要设置其配置文件/etc/dhcpdconf。这个配置文件语法简单,比较容易理解。
server-identifier 19216831;
subnet 19216830 netmask 2552552550 {
range 192168310 192168320;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 2552552550;
option broadcast-address 1921683255;
option routers 19216831;
option domain-name-servers 19216831;
option domain-name "exampleorgorgcn";
}
host a1 {
hardware ethernet 00:90:27:4e:92:09;
fixed-address 192168332;
option subnet-mask 2552552550;
option broadcast-address 1921683255;
option routers 19216831;
option domain-name-servers 19216831;
option domain-name "exampleorgorgcn";
}
基本的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请求。
# /usr/local/sbin/dhcpd fxp0
在调试阶段,可以使用-d参数,这样dhcpd就不会进入后台运行,而一直保留在前台,并显示各个与客户计算机通信的过程。当一切都调试完毕之后,就能去除-d参数,并将执行命令放入rclocal启动脚本中,以便系统能够自动执行。
此后,dhcpd正常运行的时候,会将每一次客户请求及其回应的IP地址分配的记录,都记录在/var/run/dhcpdleases 文件中。为了使dhcpd能正常进行日志记录,应该在启动dhcpd之前使用touch 命令,生成一个新的日志文件。以后就可以查看这个日志文件的内容,以得到当前DHCP服务器的状态和客户机IP地址分配的情况。以下是一个日志文件的部分内容。
lease 192168311 {
starts 3 1998/11/26 05:46:28;
ends 4 1998/11/27 05:46:28;
hardware ethernet 0:80:c2:12:fd:d;
uid 1:0:80:c2:12:fd:d;
}
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参数的任务了。
# touch /etc/dhclientconf
# touch /etc/dhclient-script
# chmod +x /etc/dhclient-script
# /usr/local/sbin/dhclient fxp0
Listening on BPF/fxp0/00:90:27:4e:92:09/unattached
Sending on BPF/fxp0/00:90:27:4e:92:09/unattached
Sending on Socket/fallback/fallback-net
DHCPDISCOVER on fxp0 to 255255255255 port 67 interval 22
DHCPOFFER from 19216831
DHCPREQUEST on fxp0 to 255255255255 port 67
DHCPACK from 19216831
bound to 192168332 -- renewal in 3600 seconds
在更复杂的情况下,就要指定更多的内容,例如当系统有多个网卡时,要指定dhclient应该从哪个子网中获得IP地址设置,就需要使用设置文件dhclientconf。一般除非有多个局域网网络界面,都应该使用空设置文件,避免产生配置错误。以下为一个简单的dhclientconf的例子,可以用于多网络界面的情况:
# Defaults
timeout 60;
reboot 10;
retry 60;
select-timeout 5;
initial-interval 2;
script "/etc/dhclient-script";
interface "fxp0" {
request subnet-mask, broadcast-address, routers, domain-name-servers,
domain-name, host-name;
require domain-name-servers;
}
这个设置文件主要用于重新定义一些参数,比较容易理解,更改也比较容易。
成功的手工执行dhclient之后,就可以考虑将其和系统启动文件相结合了。因为很多网络服务是依赖于网络配置的,应该在启动这些网络服务之前使用DHCP配置好TCP/IP。使用dhclient-script启动服务的想法虽然也能解决问题,然而这就不能使用系统的启动rc文件中的相关设置启动网络服务,而在这个dhclient-script 中重新启动,因此比较麻烦。更简便的做法是仅仅在dhclient-script中设置hostname,而让系统启动文件完成其他网络服务的启动。这样就要求将dhclient与系统rc文件结合起来。
#hostname="mydomainname"
network_interfaces="fxp0 lo0" # List of network interfaces (lo0 is
loopback)
ifconfig_lo0="inet 127001" # default loopback device configuration
#ifconfig_fxp0="inet 192168312 netmask 2552552550"
defaultrouter="NO" # Set to default gateway (or NO)
这样就需要更改rcconf文件,更改一些设置语句。首先要注释hostname设置,而在dhclientscript中进行设置,也不必设置defaultrouter,它通过DHCP协议自动设置。同时要保证network_interfaces参数中,设置了要通过dhclient来获取IP地址的网络界面fxp0,以允许rc系统文件能启动该与该界面相关的设置文件,然而却必须注释设置该界面的参数ifconfig_fxp0,因为这个设置参数是用于设置静态IP地址的选项,因此要屏蔽它,而使用start_iffxp0配置脚本来设置网络界面。
缺省情况下,不存在start_iffxp0等start_if设置网络脚本,但是这些脚本在rcnetwork已经做好了设置,针对每个网络界面启动,而不需要在rcconf中做特别设定。对于dhclient,可以创建一个简单的启动脚本start_iffxp0为:
#! /bin/sh
/usr/local/sbin/dhclient fxp0
这样,dhclient就和系统启动文件结合起来了,在系统启动的时候会自动设置好TCP/IP,此后再启动相关的网络服务。此时需要注意的是删除原来可能在rclocal或者在/usr/local/etc/rcd目录中的dhclient启动命令,以避免冲突。
在FreeBSD系统上不推荐使用动态IP地址,因为FreeBSD能提供大量有用的网络服务,都会与IP地址或域名有关,不适合使用动态IP地址。如果必须要作为DHCP客户以保持IP地址的统一管理,建议使用dhcpd针对硬件地址的设置方式,在DHCP服务器上为FreeBSD系统设定一个固定IP地址。
设置DHCP中转
当网络中存在多个子网的时候,由于客户计算机只能通过广播发送DHCP请求,这些请求一般不能跨越路由器。为了在DHCP服务器存在的子网之外的DHCP客户分配IP地址,可以设置路由器转发DHCP请求,即转发相应的UDP 端口67和68的广播数据包。但这样设置就增加了网络广播,不利于减少网络流量。
此外,还有另外一种方法来使得DHCP客户计算机能使用子网之外的DHCP服务器来分配IP地址。这就是使用 DHCP中转计算机来转发DHCP的请求。DHCP中转计算机能听取DHCP广播,由于它了解DHCP服务器的IP地址,因此能通过正常的IP数据包将原广播包转发到服务器中,然后再将服务器的回应信息回复客户机。这样DHCP客户机就以为本子网中也存在一个DHCP服务器。
在ISC-DHCP软件中,提供的中转程序为dhcrelay,这是一个简单的程序,不需要额外的设置。启动 dhcrelay的标准方式为使用命令行指定将DHCP服务请求中转到的目的DHCP服务器,由于DHCP中允许多个 DHCP服务器同时为客户提供地址,而不会产生冲突,就可以使用多个DHCP服务器进行中转。
# dhcrelay dhcpsrv1 dhcpsrv2
如果这台中转服务器为多网络界面计算机,那么dhcrelay将侦听所有网络界面的DHCP请求,有时不希望 dhcrelay中转某些界面上的请求,就可以设置dhcrelay侦听的网络界面,这需要指定-i参数。
# dhcrelay -i xl0 dhcpsrv1
提供备份的DHCP设置
在一个具备多个子网的大型网络中,提供冗余是一个非常重要的问题。由于DHCP协议中DHCP服务器负责分配 IP地址,一旦DHCP服务器出现故障,那么所有的客户就无法正确获得IP地址,从而不能访问网络。
但可以同时设置多个DHCP服务器来提供一个冗余能力。然而DHCP服务器本身是不提供备份能力的,不能互为备份。他们占用的IP地址资源也不能重叠,以免发生客户机IP地址冲突的现象。提供容错能力是通过分割可用的IP地址到不同的DHCP服务器上,通过多个DHCP服务器同时为一个网络服务,从而使得一个服务器发生故障还能正常执行操作。通常为了进一步增强可靠性,还可以将不同的DHCP服务器放置在不同子网中,互相使用中转提供服务。
例如在两个子网上各自有一个DHCP服务器,标准的做法可以不使用DHCP中转,各个子网上的服务器为各个子网服务就行了。然而为了达到容错的目的,可以互相为另一个子网提供服务,通过设置中转或路由器转发广播以达到互为服务的目的。
例如位于19216830网络上的srv1的配置可能为:
subnet 19216830 netmask 2552552550 {
range 192168310 1921683199;
}
subnet 19216840 netmask 2552552550 {
range 1921684200 1921684220;
}
位于19216840网络上的srv2的配置可能为:
subnet 19216840 netmask 2552552550 {
range 192168410 1921684199;
}
subnet 19216830 netmask 2552552550 {
range 1921683200 1921683220;
}
注意,上述设置都是设置样例,标准情况下还需分别指定各个option,用于设置IP地址及其相关设置。
可以看出两个服务器都能对两个网络上的客户机分配IP地址,而各自又有一个主要服务的网络。每个网络上的IP 地址主要放在本地的服务器上,但也有少部分地址放在另一个子网中的服务器上(地址资源不能冲突),这样提供了一定的容错能力。
实际的多子网网络中,并不必要每个子网都设置一个服务器,并使用另外的服务器备份,一般网络中有2-3个DH CP服务器就够用了。其他子网可以通过DHCP中转的方式,给该子网提供DHCP服务。
第一步:硬件连接
计算机通过双绞线与路由器或者交换机连接;
第二步:网络配置
1、点击开始,点击运行,输入ncpacpl,点击确定;
2、右击本地连接,点属性;
3、双击internet协议版本4;
4、如果本地连接到有路由器的网络,路由器已开启dhcp服务,那么点击自动获得ip地址、自动获得dns服务器地址;
5、如果本地连接到普通交换机无dhcp服务器的网络,那么点击使用下面的ip地址,输入网络管理员分配的ip地址、子网掩码,点击确定即可。
电脑启用dhcp
1、在键盘上按下“WIN+R”键,在运行框里输入“cmd”,点击 确定 按钮。
2、在命令框里输入“servicesmsc”,并按回车键。
3、等待几秒钟之后会弹出一个服务窗口,滚动鼠标滚轮或者是向下拖动右边滑条。
4、找到名称为“DHCP Client”项,双击鼠标左键。
5、在弹出的窗口点击“确定”按钮,这时候dhcp服务器便设置成功了。
通常在我们将电脑连接路由器时,我们可能会忘了设置,只要我们把电脑上的IP地址设置为自动获得(动态IP),也是可以解决本地连接未启用dhcp的问题的。而导致出现本地连接未启用dhcp的提示的原因,往往有很多种。
交换机配置dhcp第一步:创建VLAN
Switch>Vlan Database
Switch(Vlan)>Vlan 2 Name server
Switch(Vlan)>Vlan 3 Name work01
Switch(vlan)>Vlan 4 Name work02
交换机配置dhcp第二步:启用交换机配置dhcp中继代理
要害一步,若缺少以下两条命令,在VLAN中使用“IP HELPER-ADDRESS DHCP服务器地址”指定DHCP服务器,客户机仍然不能获得IP地址
Switch>Enable
Switch#Config t
Switch(Config)Service Dhcp
Switch(Config)Ip Dhcp Relay Information Option
交换机配置dhcp第三步:设置VLAN IP地址
Switch(Config)>Int Vlan 2
Switch(Config-vlan)Ip Address 19216821 2552552550
Switch(Config-vlan)No Shut
Switch(Config-vlan)>Int Vlan 3
Switch(Config-vlan)Ip Address 19216831 2552552550
Switch(Config-vlan)No Shut
Switch(Config-vlan)>Int Vlan 4
Switch(Config-vlan)Ip Address 19216841
2552552550
Switch(Config-vlan)No Shut
Switch(Config-vlan)Exit
注重:由于此时没有将端口分配置到VLAN2,3,4,所以各VLAN会DOWN掉,待将端口分配到各VLAN后,VLAN会起来
交换机配置dhcp第四步:设置端口全局参数
Switch(Config)Interface Range Fa 0/1 - 24
Switch(Config-if-range)Switchport Mode Access
Switch(Config-if-range)Spanning-tree Portfast
交换机配置dhcp第五步:将端口添加到VLAN2,3,4中
/将端口1-8添加到VLAN 2/
Switch(Config)Interface Range Fa 0/1 - 8
Switch(Config-if-range)Switchport Access Vlan 2
/将端口9-16添加到VLAN 3/
Switch(Config)Interface Range Fa 0/9 - 16
Switch(Config-if-range)Switchport Access Vlan 3
/将端口17-24添加到VLAN 4/
Switch(Config)Interface Range Fa 0/17 - 24
Switch(Config-if-range)Switchport Access Vlan 4
Switch(Config-if-range)Exit
/经过这一步后,各VLAN会起来/
交换机配置dhcp第六步:在VLAN3和4中设定DHCP服务器地址
/VLAN 2中不须指定DHCP服务器地址/
Switch(Config)Int Vlan 3
Switch(Config-vlan)Ip Helper-address 192168210
Switch(Config)Int Vlan 4
Switch(Config-vlan)Ip Helper-address 192168210
交换机配置dhcp第七步:启用路由
/路由启用后,各VLAN间主机可互相访问,若需进一步控制访问权限,则需应用到访问控制列表/
Switch(Config)Ip Routing
交换机配置dhcp第八步:结束并保存配置
Switch(Config-vlan)End
Switch#Copy Run Start
动态主机配置协议(Dynamic Host Configuration Protocol),简称DHCP,是一个应用于局域网的网络协议,该协议允许服务器向客户端动态分配IP地址和配置信息。
该协议位于OSI模型的应用层,使用UDP协议工作,主要有两个用途,一个是用于内部网或网络服务供应商自动分配IP地址给用户,另一个是用于内部网管理员作为对所有电脑作中央管理的手段。
扩展资料:
DHCP具有以下功能:
1 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2 DHCP应当可以给用户分配永久固定的IP地址。
3 DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
4 DHCP服务器应当向现有的BOOTP客户端提供服务。
-动态主机配置协议
-网络协议
在一个使用TCP/IP协议的网络中,每一台计算机都必须至少有一个IP地址,才能与其他计算机连接通信。为了便于统一规划和管理网络中的IP地址,DHCP(Dynamic Host Configure Protocol,动态主机配置协议)应运而生了。这种网络服务有利于对校园网络中的客户机IP地址进行有效管理,而不需要一个一个手动指定IP地址。
DHCP服务的安装
DHCP指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。首先,DHCP服务器必须是一台安装有Windows 2000 Server/Advanced Server系统的计算机;其次,担任DHCP服务器的计算机需要安装TCP/IP协议,并为其设置静态IP地址、子网掩码、默认网关等内容。默认情况下,DHCP作为Windows 2000 Server的一个服务组件不会被系统自动安装,必须把它添加进来:
1 依次点击“开始→设置→控制面板→添加/删除程序→添加/删除Windows组件”,打开相应的对话框。
添加IP地址范围
当DHCP服务器被授权后,还需要对它设置IP地址范围。通过给DHCP服务器设置IP地址范围后,当DHCP客户机在向DHCP服务器申请IP地址时,DHCP服务器就会从所设置的IP地址范围中选择一个还没有被使用的IP地址进行动态分配。添加IP地址范围的操作如下:
1 点击“开始→程序→管理工具→DHCP”,打开DHCP控制台窗口。
2 选中DHCP服务器名,在服务器名上点击鼠标右键,在出现的快捷菜单中选择“新建作用域”,在出现的窗口中单击[下一步]按钮,在出现的对话框中输入相关信息,单击[下一步]按钮,如图1所示。
3 在图1所示的窗口中,根据自己网络的实际情况,对各项进行设置,然后单击[下一步]按钮,出现如图2所示的窗口。
4 在图2所示的窗口中,输入需要排除的IP地址范围。由于校园网络中有很多网络设备需要指定静态IP地址(即固定的IP地址),如服务器、交换机、路由器等,此时必须把这些已经分配的IP地址从DHCP服务器的IP地址范围中排除,否则会引起IP地址的冲突,导致网络故障。
5 单击[下一步]按钮,在出现的“租约期限”窗口中可以设置IP地址租期的时间值。一般情况下,如果校园网络中的IP地址比较紧张的时候,可以把租期设置短一些,而IP地址比较宽松时,可以把租期设置长一些。设置完后,单击[下一步]按钮,出现“配置DHCP选项”窗口。
6 在“配置DHCP选项”窗口中,如果选择“是,我想现在配置这些选项”,此时可以对DNS服务器、默认网关、WINS服务器地址等内容进行设置;如果选择“否,我想稍后配置这些选项”,可以在需要这些功能时再进行配置。此处,我们选择前者,单击[下一步]按钮。
7 在出现的窗口中,常常输入网络中路由器的IP地址(即默认网关的IP地址)或是NAT服务器(网络地址转换服务器)的IP地址,如WinRoute、SyGate等。这样,客户机从DHCP服务器那里得到的IP信息中就包含了默认网关的设定了,从而可以接入Internet。
8 单击[下一步]按钮,在此对话框中设置有关客户机DNS域的名称,同时输入DNS服务器的名称和IP地址。,然后单击[添加]按钮进行确认。单击[下一步]按钮,在出现的窗口中进行WINS服务器的相关设置,设置完后单击[下一步]按钮。
9 在出现的窗口中,选择“是,我想现在激活此作用域”后,单击[下一步]按钮,在出现的窗口中单击[完成]按钮,设置结束。此时,就可以在DHCP管理器中看到我们刚刚建好的作用域。
注意:如果您的校园网络是以工作组的形式存在的,可以在第6步的“配置DHCP选项”窗口中选择“否,我想稍后配置这些选项”,此时设置过程跳过第7、8步。如果您的校园网络是以域的形式存在的,建议您的网络配置顺序为:活动目录的建立→WINS的建立→DNS的建立→DHCP的建立,这样可以减少很多麻烦。
DHCP服务的测试
经过上述设置,DHCP服务已经正式启动,我们需要在客户机上进行测试。只需把客户机的IP地址选项设为“自动获取IP地址”,随后重新启动客户机。在客户机的“运行”对话框中键入“Ipconfig/all”,即可看到客户机分配到的动态IP地址。
2 用鼠标左键点击选中对话框的“组件”列表框中的“网络服务”一项,单击[详细信息]按钮,出现带有具体内容的对话框。
3 在对话框“网络服务的子组件”列表框中勾选“动态主机配置协议(DHCP)”,单击[确定]按钮,根据屏幕提示放入Windows 2000安装光盘,复制所需要的程序。
4 重新启动计算机后,在“开始→程序→管理工具”下就会出现“DHCP”一项,说明DHCP服务安装成功。
DHCP服务器的授权
出于对网络安全管理的考虑,并不是在Windows 2000 Server中安装了DHCP功能后就能直接使用,还必须进行授权操作,未经授权操作的服务器无法提供DHCP服务。对DHCP服务器授权操作的过程如下:
1 依次点击“开始→程序→管理工具→DHCP”,打开DHCP控制台窗口。
2 在控制台窗口中,用鼠标左键点击选中服务器名,然后单击右键,在快捷菜单中选中“授权”,此时需要几分钟的等待时间。注意:如果系统长时间没有反应,可以按F5键或选择菜单工具中的“操作”下的“刷新”进行屏幕刷新,或先关闭DHCP控制台,在服务器名上用鼠标右键点击。如果快捷菜单中的“授权”已经变为“撤消授权”,则表示对DHCP服务器授权成功。此时,最明显的标记是服务器名前面红色向上的箭头变成了绿色向下的箭头。这样,这台被授权的DHCP服务器就有分配IP的权利了。
希望对你有帮助!
0条评论