‘壹’ 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。
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/dhcpd.conf。这个配置文件 语法简单,比较容易理解。
1. server-identifier 192.168.3.1;
2.
3. subnet 192.168.3.0 netmask 255.255.255.0 {
4. range 192.168.3.10 192.168.3.20;
5. default-lease-time 600;
6. max-lease-time 7200;
7. option subnet-mask 255.255.255.0;
8. option broadcast-address 192.168.3.255;
9. option routers 192.168.3.1;
10. option domain-name-servers 192.168.3.1;
11. option domain-name "exampleorg.org.cn";
12. }
13.
14. host a1 {
15. hardware ethernet 00:90:27:4e:92:09;
16. fixed-address 192.168.3.32;
17. option subnet-mask 255.255.255.0;
18. option broadcast-address 192.168.3.255;
19. option routers 192.168.3.1;
20. option domain-name-servers 192.168.3.1;
21. option domain-name "exampleorg.org.cn";
22. }
基本的dhcpd.conf首先使用server-identifier定义了本服务器的IP地址,这对于有 多个IP地址的服务器系统十分重要,一般不必设置这个参数,dhcpd能自动侦测。然后定义要分配IP地址的客户机组 ,每组拥有一个可用的IP地址范围。有两种客户机组的划分方式,一种为指定子网段来区分,一种为指定主机来区分。
这个例子中的第一组定义了一个子网192.168.3.0/24,这个子网段内,可供DHCP服务器分配的I P地址范围为192.168.3.10到192.168.3.20,这个地址范围也可以不是连续的,不连续的地址可以 使用多个range设置参数来设置。此外,还设置了这一组内分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用缺省值,而不必改动。后面的option参数设置DHCP的附加功能 ,例如设置DHCP客户的网络掩码、广播地址、DNS服务器、域名等等。事实上这些option设置选项也可以被用作 全局选项设置,即放置在server-identifier之后,对所有的客户机组起作用。
例子的第二组是针对某个特定主机a1进行的设置,这个主机被限定为以太网地址为hardware ethernet 参数值的计算机,将给这个计算机分配一个固定地址。这种分配方式实际等价于固定地址分配方式,唯一的好处就是能够对IP地址进行集中管理,不必每个计算机分别设置了。这里同样也可以使用option参数,设置TCP/IP的参数 。
dhcpd.conf中还能有更多的组,包括对非本网段的子网上的客户机指定的组。
当设置了dhcpd.conf之后,就能启动dhcpd守护进程了,由于计算机会有多个网络界面,需要指定dhcpd 服务器的网络界面,以便回应相应界面上的DHCP请求。
1. # /usr/local/sbin/dhcpd fxp0
在调试阶段,可以使用-d参数,这样dhcpd就不会进入后台运行,而一直保留在前台,并显示各个与客户计算机通信的过程。当一切都调试完毕之后,就能去除-d参数,并将执行命令放入rc.local启动脚本中,以便系统能够自动执行。
此后,dhcpd正常运行的时候,会将每一次客户请求及其回应的IP地址分配的记录,都记录在/var/run/dhcpd.leases 文件中。为了使dhcpd能正常进行日志记录,应该在启动dhcpd之前使用touch 命令,生成一个新的日志文件。以后就可以查看这个日志文件的内容,以得到当前DHCP服务器的状态和客户机IP地址分 配的情况。以下是一个日志文件的部分内容。
1. lease 192.168.3.11 {
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/dhclient.conf,然而最一般的情况下可以不使用它,软件本身的缺省配置就满足一般情况下请求IP地址的需要了。缺省设置下dhclient在获得了IP地址之后,会自动执行/etc/dhclient-script 这个脚本程序,以针对刚获取的动态IP地址进行必要的设置。很多依赖于IP地址的网络服务,就可以在这个脚 本中启动,或者针对重新分配的动态IP地址对已有的网络服务进行修正。虽然使用者也许不希望使用这个脚本 设置网络,但如果不存在这个脚本程序,或者这个程序不可执行,那么dhclient就不能正常执行。
因此对于最一般的客户机,一般只连接到一个网络上,仅具备一个网络界面,可以使用一个空的dhclient.conf 和空的declient-script文件,就能完成设置IP地址和其他TCP/IP参数的任务了。
1. # touch /etc/dhclient.conf
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 255.255.255.255 port 67 interval 22
10. DHCPOFFER from 192.168.3.1
11. DHCPREQUEST on fxp0 to 255.255.255.255 port 67
12. DHCPACK from 192.168.3.1
13. bound to 192.168.3.32 -- renewal in 3600 seconds.
在更复杂的情况下,就要指定更多的内容,例如当系统有多个网卡时,要指定dhclient应该从哪个子网中获 得IP地址设置,就需要使用设置文件dhclient.conf。一般除非有多个局域网网络界面,都应该使用空设置文件, 避免产生配置错误。以下为一个简单的dhclient.conf的例子,可以用于多网络界面的情况:
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="my.domain.name"
2. network_interfaces="fxp0 lo0"
3. # List of network interfaces (lo0 is loopback).
4. ifconfig_lo0="inet 127.0.0.1"
5. # default loopback device configuration.
6. #ifconfig_fxp0="inet 192.168.3.12 netmask 255.255.255.0"
7. defaultrouter="NO"
8. # Set to default gateway (or NO).
这样就需要更改rc.conf文件,更改一些设置语句。首先要注释hostname设置,而在dhclient.script中进行设置,也不必设置defaultrouter,它通过DHCP协议自动设置。同时要保证netwo
‘贰’ 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/dhcpd.conf。这个配置文件语法简单,比较容易理解。
server-identifier 192.168.3.1;
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.20;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option domain-name "exampleorg.org.cn";
}
host a1 {
hardware ethernet 00:90:27:4e:92:09;
fixed-address 192.168.3.32;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option domain-name "exampleorg.org.cn";
}
基本的dhcpd.conf首先使用server-identifier定义了本服务器的IP地址,这对于有多个IP地址的服务器系统十分重要,一般不必设置这个参数,dhcpd能自动侦测。然后定义要分配IP地址的客户机组,每组拥有一个可用的IP地址范围。有两种客户机组的划分方式,一种为指定子网段来区分,一种为指定主机来区分。
这个例子中的第一组定义了一个子网192.168.3.0/24,这个子网段内,可供DHCP服务器分配的I P地址范围为192.168.3.10到192.168.3.20,这个地址范围也可以不是连续的,不连续的地址可以使用多个range设置参数来设置。此外,还设置了这一组内分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用缺省值,而不必改动。后面的option参数设置DHCP的附加功能,例如设置DHCP客户的网络掩码、广播地址、DNS服务器、域名等等。事实上这些option设置选项也可以被用作全局选项设置,即放置在server-identifier之后,对所有的客户机组起作用。
例子的第二组是针对某个特定主机a1进行的设置,这个主机被限定为以太网地址为hardware ethernet 参数值的计算机,将给这个计算机分配一个固定地址。这种分配方式实际等价于固定地址分配方式,唯一的好处就是能够对IP地址进行集中管理,不必每个计算机分别设置了。这里同样也可以使用option参数,设置TCP/IP的参数。
dhcpd.conf中还能有更多的组,包括对非本网段的子网上的客户机指定的组。
当设置了dhcpd.conf之后,就能启动dhcpd守护进程了,由于计算机会有多个网络界面,需要指定dhcpd 服务器的网络界面,以便回应相应界面上的DHCP请求。
# /usr/local/sbin/dhcpd fxp0
在调试阶段,可以使用-d参数,这样dhcpd就不会进入后台运行,而一直保留在前台,并显示各个与客户计算机通信的过程。当一切都调试完毕之后,就能去除-d参数,并将执行命令放入rc.local启动脚本中,以便系统能够自动执行。
此后,dhcpd正常运行的时候,会将每一次客户请求及其回应的IP地址分配的记录,都记录在/var/run/dhcpd.leases 文件中。为了使dhcpd能正常进行日志记录,应该在启动dhcpd之前使用touch 命令,生成一个新的日志文件。以后就可以查看这个日志文件的内容,以得到当前DHCP服务器的状态和客户机IP地址分配的情况。以下是一个日志文件的部分内容。
lease 192.168.3.11 {
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/dhclient.conf,然而最一般的情况下可以不使用它,软件本身的缺省配置就满足一般情况下请求IP地址的需要了。缺省设置下dhclient在获得了IP地址之后,会自动执行/etc/dhclient-script 这个脚本程序,以针对刚获取的动态IP地址进行必要的设置。很多依赖于IP地址的网络服务,就可以在这个脚本中启动,或者针对重新分配的动态IP地址对已有的网络服务进行修正。虽然使用者也许不希望使用这个脚本设置网络,但如果不存在这个脚本程序,或者这个程序不可执行,那么dhclient就不能正常执行。
因此对于最一般的客户机,一般只连接到一个网络上,仅具备一个网络界面,可以使用一个空的dhclient.conf 和空的declient-script文件,就能完成设置IP地址和其他TCP/IP参数的任务了。
# touch /etc/dhclient.conf
# 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 255.255.255.255 port 67 interval 22
DHCPOFFER from 192.168.3.1
DHCPREQUEST on fxp0 to 255.255.255.255 port 67
DHCPACK from 192.168.3.1
bound to 192.168.3.32 -- renewal in 3600 seconds.
在更复杂的情况下,就要指定更多的内容,例如当系统有多个网卡时,要指定dhclient应该从哪个子网中获得IP地址设置,就需要使用设置文件dhclient.conf。一般除非有多个局域网网络界面,都应该使用空设置文件,避免产生配置错误。以下为一个简单的dhclient.conf的例子,可以用于多网络界面的情况:
# 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="my.domain.name"
network_interfaces="fxp0 lo0" # List of network interfaces (lo0 is
loopback).
ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.
#ifconfig_fxp0="inet 192.168.3.12 netmask 255.255.255.0"
defaultrouter="NO" # Set to default gateway (or NO).
这样就需要更改rc.conf文件,更改一些设置语句。首先要注释hostname设置,而在dhclient.script中进行设置,也不必设置defaultrouter,它通过DHCP协议自动设置。同时要保证network_interfaces参数中,设置了要通过dhclient来获取IP地址的网络界面fxp0,以允许rc系统文件能启动该与该界面相关的设置文件,然而却必须注释设置该界面的参数ifconfig_fxp0,因为这个设置参数是用于设置静态IP地址的选项,因此要屏蔽它,而使用start_if.fxp0配置脚本来设置网络界面。
缺省情况下,不存在start_if.fxp0等start_if设置网络脚本,但是这些脚本在rc.network已经做好了设置,针对每个网络界面启动,而不需要在rc.conf中做特别设定。对于dhclient,可以创建一个简单的启动脚本start_if.fxp0为:
#! /bin/sh
/usr/local/sbin/dhclient fxp0
这样,dhclient就和系统启动文件结合起来了,在系统启动的时候会自动设置好TCP/IP,此后再启动相关的网络服务。此时需要注意的是删除原来可能在rc.local或者在/usr/local/etc/rc.d目录中的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中转,各个子网上的服务器为各个子网服务就行了。然而为了达到容错的目的,可以互相为另一个子网提供服务,通过设置中转或路由器转发广播以达到互为服务的目的。
例如位于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个DH CP服务器就够用了。其他子网可以通过DHCP中转的方式,给该子网提供DHCP服务。
‘叁’ linux下如何安装DHCP服务和使用
DHCP基于客户/服务器模式。当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端供给自动分配IP地址的服务。
当然高等的DHCP,不光只是分配地址这么简单,今天我们的课程只是架设一个普通的DHCP的服务器, client端能获取到上网必须的网络配置信息
安装了DHCP服务软件的服务器称为DHCP服务器,而启用了DHCP功效的客户机称为DHCP客户端,DHCP服务器是以地址租约的方法为DHCP客户端供给服务的,它有以下两种方法:
限定租期 和 永久租用
学DHCP服务器,就一定要知道DHCP服务器的工作原理:
DHCPDISCOVER(DHCP发明)
DHCPOFFER(DHCP供给)
DHCPREQUEST(DHCP请求)
DHCPACK(DHCP确认)
这个4个步骤,是client获取IP地址必经的步骤
DHCP供给的时候,服务器已经给client分配了IP地址,第二部分分给client的IP地址是临时的,client得到这个IP地址后,会发出DHCP请求,请求租用这个地址,服务器收到请求后,就会正式把这个地址分配给client,继而向client发送DHCP确认。
这个四步主要是应对同一网络多个DHCP服务器
后台过程:dhcpd
脚本:/etc/rc.d/init.d/dhcpd
使用端口:67
所需RPM包:dhcp
相关RPM包:
dhcp-devel-3.0.5-7.el5.i386.rpm
dhcpv6-0.10-33.el5.i386.rpm
dhcpv6_client-0.10-33.el5.i386.rpm
配置文件:/etc/dhcpd.conf
日志:/var/log/xferlog
再提示一点吧,网络启动方法也叫bootpc,这样获取的IP地址是不会受服务器的租期111ttt.com的,它永远有效
好了,我们先安装DHCP服务器
一、下载或从光盘上找到DHCP服务安装包。
二、安装(dhcp*代表其安装包名称):
# rpm -ivh dhcp*
三、配置DHCP文件:
复制/usr/share/doc/dhcp*/dhcpd.conf.sample 到/etc目录下,更名为:dhcpd.conf
# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf
当然,也可以先vi /etc/dhcpd.conf,然后在末行模式运行以下命令:
r /usr/share/doc/dhcp*/dhcpd.conf.sample
这样这个dhcpd.conf.sample文件的内容就导进来了。
打开dhcpd.conf,要修改的几个地方:
subnet 后面接的是你所定义的网段,要与本机的IP地址同网段,
每一语句以分号“;”结尾,不要忘记。
例如:我的IP是“192.168.2.11”,下面是我的配置文件:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.2.1;
option time-offset -18000;
range dynamic-bootp 192.168.2.100 192.168.2.254
default-lease-time 21600;
max-lease-time 43200;
filename "/pxelinux.0";
next-server 192.168.2.11;
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
四、详细注解:
ddns-update-style interim; #定义所支持的DNS动态更新类型(必选),一般我们设置成关闭,
#interim和none都是关闭的意思
allow/ignore client-updates; #允许/疏忽客户机更新DNS记载
allow/deny unknown-clients; #是否动态分配IP给未知的使用者
allow/deny bootp; #是否响应激活查询
allow/deny booting; #是否响应使用者查询
subnet 192.168.2.0 netmask 255.255.255.0 { #设置子网声明
# --- default gateway
option routers 192.168.2.1; #设置缺省网关为192.168.2.1
option subnet-mask 255.255.255.0; #设置客户端的子网掩码
option nis-domain "domain.org"; #为客户设置NIS域
option domain-name "domain.org"; #为客户设置域名
option domain-name-servers 192.168.2.1; #为客户设置域名服务器
option time-offset -18000; # Eastern Standard Time #为客户端指定格林威治时间偏移时间,单位秒,
# 该选项可以在全局配置、局部配置均可使用
# option ntp-servers 192.168.2.1; #NTP是时间服务器
# option netbios-name-servers 192.168.2.1; 设置wins服务器
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2; #设置netbios节点类型 我不清楚这个netbios节点是什么东西
range dynamic-bootp 192.168.2.28 192.168.2.254; #设置动态的地址池
default-lease-time 21600; #设置缺省的地址租期
max-lease-time 43200; #设置客户端最长的地址租期
# we want the nameserver to appear at a fixed address
filename "/pxelinux.0"; #开始启动文件的名称,应用于无盘安装,可以是tftp的相对或绝对路径
next-server 192.168.2.11; #This is the name of the server they should get it from
#tftp服务器,可以和dhcp服务器不在同一机器上,一般是PXE网络使用此参数
#设置主机声明
host ns {
next-server marvin.redhat.com; #设置由于定义服务器从引导文件中装入的主机名,用于无盘站
hardware ethernet 12:34:56:78:AB:CD; #指定dhcp客户的mac地址
fixed-address 207.175.42.254; #给指定的mac地址分配ip
}
}
五、配置好dhcpd.conf文件后就可以启动dhcp服务了:
# service dhcpd restart
这时可以用“netstat -nlutp”命令查看dhcp服务是否有启动。
六、其它相关文件:
1、这个文件/var/lib/dhcpd/dhcpd.leases,可以看到被租出去的IP地址和相关信息。
2、这个文件/etc/sysconfig/dhcpd是指定DHCP服务器111ttt.com的网卡,如果只有一个网卡,一般不用设置
DHCPDARGS=eth0 或者是eth1 ,如果全部111ttt.com就不用管。
3、这个文件/etc/sysconfig/dhcrelay就是设置DHCP中继的文件,大家打开瞧一下吧。
interfaces 就是来自这个端口的dhcpdiscover(请求)都会转发到后面的DHCPSERVERS服务器。
设置了DHCP中继,需要启动中继服务:service dhcrelay start
七、在linux客户机下面,你可以手动配置你的dhcp:
观察你的网络配置文件,如果你没有设置为自动启动联网,则要修改你的网络配置文件。
# vi /etc/sysconfig/network
添加“NETWORKING=yes”(让引导的时候启动联网)
或者使用
# @echo “NETWORKING=yes”> /etc/sysconfig/network
然后再修改你的网卡配置文件
/etc/sysconfig/network-scriptes/ifcfg-eth0 文件应该包括这几行:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
‘肆’ 如何搭建DHCP及DHCP中继服务器
1.安装DHCP服务器软件包
先检查RPM命令检查系统中是否已经安装DHCP软件包,如果没有安装,则挂载RHEL5系统光盘,并安装其中的dhcp- 3.0.5.el5.i386.rpm软件包即可
查看dhcp软件包安装的主要文件
使用vi打开dhcp服务器的主配置文件/etc/dhcpd.conf,但是该文件中默认并不包含任何有效配置,需要手动建立。
为各客户机动态分配的ip地址,默认租约时间为21600秒,最大租约时间为43200秒,对应于三个物理网段,用于动态分配的ip地址范围:192.168.1.10~192.168.1.100、192.168.2.10~192.168.2.100、192.168.3.10~192.168.3.100
启动dhcpd服务。
打开命令参数配置文件/etc/sysconfig/dhcpd,设置dhcpd服务仅面向eth0、eth1、eth2网卡提供动态地址分配服务。
配置dhcp中继服务器。
在RHEL5系统中,安装dhcp软件包,安装完之后,就已经包含了dhcp中继相关的程序和脚本等文件。配置dhcp中继服务器时,只需修改配置文件/etc/sysconfig/dhcrelay服务即可,作为路由器使用时,还需要开启服务器的路由转发功能。
编辑/etc/sysctl.conf文件,将net.ipv4.ip_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命令重新获取地址。
‘伍’ 在rhel里配置dhcp服务器,结果只有两个包,没有要安装的包
在RHEL中配置DHCP
一、 所需软件包可在rhel第四张光盘中找到 Dhcp-3.0.1-12_EL.i386.rpm Dhcp-devel-3.0.1-12_EL.i386.rpm 二、 相关配置文件
1、/etc/dhcpd.conf #此文件默认不存在,可手工填写或复制模板
2、/usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample #此文件为模板可复制为配置文件 3、/var/lib/dhcp/dhcpd.leases #此文件为租约文件,记录客户机租约信息
4、/etc/sysconfig/dhcpd #如果服务器有多块网卡此文件中的DHCPDARGS=eth0配置行可设定在eth0这块网卡上监听请求,默认为全部监听 5、/etc/sysconfig/dhcrelay #中继配置文件
三、主配置文件/etc/dhcpd.conf中常用声明、参数及选项 1、常用声明
subnet 1.1.1.0 netmask 255.255.255.0 { range 1.1.1.100 1.1.1.110; }
此声明类似windows环境中的作用域,表示在1.1.1.0/24这个网段中发 IP地址,注意声明后的一对大括号左边的需和声明在同一行。 range 1.1.1.100 1.1.1.110; #是指在此声明中可为DHCP客户端动态发 放IP地址的范围,由起始IP 和结束IP 定义范围,本行必须以分号结 尾。
host client {
hardware ethernet 00:11:22:33:44:55; fixed-address 1.1.1.222; }
此声明类似windows环境中的保留,此声明多设置在subnet 声明中,表示在subnet声明的网段中为特定的DHCP客户端保留IP地址,其中client表示此子声明的名字,常用的做法是以客户机的主机名为host声明命名, hardware ethernet 00:11:22:33:44:55; 表示客户机的MAC地址,fixed-address 1.1.1.222; 表示当此MAC地址申请IP时所发放的IP地址。 shared-network test { }
此声明类似于windows环境中超级作用域,可以将多个subnet声明包括在其中,test为声明的名字。
2、常用参数
dns-update-style (none|interim|ad-hoc);
定义所支持的DNS动态更新类型,该参数必选且必须放在第一行且只能在全局配置中使用(所谓全局配置是指不包含在任何声明中)。 可选值:None;不支持。interim;DNS互动更新模式。ad-hoc;特殊DNS更新模式。
ignore client-updates;忽略客户端更新,该参数只能在全局配配置中使用。
default-lease-time 21600;默认IP租约时间,单位秒,该参数可以在全局配置、局部配置均可使用。(所谓局部是指在声明中使用,作用范围只是此声明)
max-lesase-time 43200;客户端IP租约时间的最大值,单位秒,该参数可以在全局配置、局部配置均可使用。
天互数据 为您解答,希望能帮到你
‘陆’ Linux下"中继"的主配置文件格式
dhcp中继代理?
不是改dhcpd.conf,假设你已经有一台dhcp服务器了,ip地址是192.168.0.1,在中继代理上修改这个文件:/etc/sysconfig/dhcrealy.conf,在里面添上两行:
INTERFACES="eth0"
DHCPSERVERS="192.168.0.1"
启动中继代理命令:dhcrelay -i eth0 192.168.0.1
以上为rhel4测试通过,如果你想为不同网段配置中继代理,路由器、交换机自己配置路由。
‘柒’ linux安装dhcp服务器步骤
安装DHCP包
[root@miner-k ~]# yum -y install dhcp
[root@miner-k ~]# rpm -ql dhcp.x86_64
/etc/dhcp
/etc/dhcp/dhcpd.conf # DHCP的配置文件
/etc/dhcp/dhcpd6.conf
.......
/usr/sbin/dhcpd # DHCP的服务器端的主进程
/usr/sbin/dhcrelay # DHCP的中继服务器的进程
/var/lib/dhcpd/dhcpd.leases #DHCP的租约记录
修改配置文件
option domain-name "isc.org"; # 指定/etc/resolv.conf 中search后的参数
option domain-name-servers 114.114.115.115, 114.114.114.114; # DNS服务器的地址
subnet 10.254.239.0 netmask 255.255.255.224 {
option routers 204.254.239.1; #指定网关
range 10.254.239.10 10.254.239.20; # 指定DHCP的地址池,Linux分配IP地址是由大到小的分配,windows中分配是由小到大分配
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}
# 通过MAC地址指定IP对应的主机
host fantasia {
hardware ethernet 08:00:07:26:c0:a5; #网卡的mac地址
fixed-address 10.254.239.30; # 指定不在Range范围内的地址
DHCP 对应端口
服务器端 UDP 67
客户端 UDP 68
实例部署DHCP服务器
修改配置文件
[root@miner-k ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.200 192.168.100.210;
option domain-name-servers 114.114.114.114,114.114.115.115;
option domain-name "miner.example.org";
option routers 192.168.100.1;
default-lease-time 600;
max-lease-time 7200;
}
启动DHCP服务器
[root@miner-k ~]# service dhcpd restart
Starting dhcpd: [ OK ]
检查DHCP的监听端口
[root@miner-k ~]# netstat -anlp | grep 67
udp 0 0 0.0.0.0:67 0.0.0.0:* 4841/dhcpd
‘捌’ 求救,熟悉在linux中配置dhcp服务器的进!!
LINUX dhcp服务器
一.dhcp介绍:
* dhcp称为 动态主机配置协议.
* 运行dhcp服务的计算机或设备,称为dhcp服务器,该服务器可以为网络中的工作站自动分配
IP地址,子网掩码,网关,DNS等参数.
* dhcp,可应用于网吧,机房,办公室以及网络管理中.
* dhcp服务器为客户机分配IP,是有相应的时间限制的,计算机可能每次启动所获取的地址均不一样.
把这种地址获取称为动态地址获取.
二.使用DHCP原因:
* 初学者以及在某种网络环境下不了解IP设定情况
* 用户在输入网络参数时,手误造成参数出错
* 在经常发生IP冲突的环境.
* 网络中有大量计算机需要更改网络参数.
三.dhcp服务器的条件:
* 服务器必须有相应的dhcp软件,在linux计算机中,要求已经安装了dhcp软件包
* 服务器必须要求具有静态的IP地址
* 服务器为工作站分配IP地址,前提是服务器必须有可用的空闲IP地址.
四.linux中dhcp服务器安装及启动:
1.dhcp服务器软件包安装:
rpm -qa | grep dhcp
软件包名为 dhcp-3.0pl1-23
2.dhcp服务器主进程名称为 dhcpd
控制脚本为 /etc/rc.d/init.d/dhcpd
3. dhcp服务器启动:
默认情况下,无法启动dhcp服务器,原因在于 /etc目录下不存在dhcp服务器的配置文件dhcpd.conf
从目录 /usr/share/doc/dhcp-3.0pl1 下,将文件 dhcpd.conf.sample 复制到 /etc 目录下,并
改名为 dhcpd.conf
复制完成后,通过对 dhcpd.conf 文件做配置,再由命令 service dhcpd start 启动服务器即可
4.使每次启动计算机后,dhcp服务器自动启动
chkconfig --level 35 dhcpd on
五.配置dhcp服务器,使得服务器为网络中其它计算机分配IP:
在配置dhcp服务器之前,首先确定服务器IP地址,以及网络号等信息
如服务器IP为 10.0.0.219 ,则网络号为 255.0.0.0
打开 /etc/dhcpd.conf 文件,做如下项目设定
subnet 10.0.0.0 netmask 255.0.0.0 { =>指定dhcp服务器的作用域范围在10.0.0.0网络
[服务器IP所在的网络应与上述网络一致]
option subnet-mask 255.0.0.0; =>指定分配IP地址时所使用的掩码
range dynamic-bootp 10.0.0.240 10.0.0.249; =>指定分配的IP地址范围[地址1 小于 地址2]
完成后,保存退出,并重启dhcpd进程 [ service dhcpd restart ]
六.配置计算机从dhcp服务器获取IP地址等:
[以windows为例]
将tcp/ip协议中的IP地址,更改为自动获取
完成后,可以通过命令
ipconfig /all -->查看网络信息
ipconfig /release -->丢弃所获取的IP
ipconfig /renew -->重新获取IP
七.为dhcp服务器做进一步配置:
1.配置IP地址的租用期限:
[默认租用期限为 6 小时]
在配置文件中
default-lease-time 21600; -->21600秒,即六小时
max-lease-time 43200; -->续约地址最大使用 十二小时
2. 在服务器配置为工作站分配的网关与dns参数.
option routers 10.0.0.1; ->网关选项,工作站获取IP同时,也
获取了网关地址.
option domain-name-servers 202.103.224.68; ->dns选项,工作站获取IP同时,也
获取了dns服务器地址.
3. 为网络中特定的计算机添加地址保留;
为网络中特定的计算机绑定IP,使其无论在何时,均从服务器获取同一个IP地址,而且不会
受租用期限的限制.
配置文件中有如下配置
host ns { =>ns 为本次绑定的名称标识,可任意,最好填写对方
计算机名称
next-server marvin.redhat.com; =>当前服务器无IP时,用下一服务器分配.通常可省略 hardware ethernet 12:34:56:78:AB:CD; =>对方计算机的网卡卡号,注意格式
fixed-address 207.175.42.254; =>要分配给对方计算机的IP地址
}
完成后,重启dhcp服务器即可.
工作站可以采用命令刷新,或者重启计算机
八. 工作站向服务器请求分配IP地址的过程:
* dhcp discovery[搜索:工作站向整个网络发送广播,搜索dhcp服务器]
* dhcp offer[回应:dhcp服务器收到广播后,检测自身IP地址池是否有空闲IP,有则分配一个地址给
工作站]
* dhcp request[请求:工作站收到服务器分配的地址后,立刻应用,并发一确认信息给服务器,请求
服务器确认所使用的IP地址]
* dhcp pack [确定:服务器收到请求信息,将分配的地址标识为已用,完成地址分配]
九. dhcp中继:
计算机x ,y ,z 发送广播请求分配地址,此时服务器s 收到请求
但服务器S并不是dhcp服务器,由于配置了dhcp中继,则服务器S会向网络其它dhcp服务器
发送请求分配IP, dhcp服务器收到请求后,立刻分配IP地址给服务器S,而服务器S再将
所得到的地址分配给计算机 x, y, z
在linux中配置dhcp中继方法如下:
采用vi 打开 /etc/sysconfig/dhcrelay 文件
INTERFACES ="" -->填写上采用哪个接口接收工作站的广播
DHCPSERVERS="" -->填写网络中dhcp服务器IP地址
如 INTERFACES="eth1"
DHCPSERVERS="10.0.0.219"
完成以后保存,并启动独立进程 dhcrealy 即可
祝你好运.
‘玖’ linux里dhcp中继怎么配置,具体命令
1. 安装DHCP:rpm –ivh dhcp-2.0pl5-8.i386.rpm
2. 配置服务器:
l 为服务器自身设置静态IP地址。编辑/etc/sysconfig/network-scripts目录下脚本文件ifcfg-eth0,内容形式如下:
DEVICE=”eth0”
IPADDR=”192.168.xx.10”
NETMASK=“255.255.255.0”
ONBOOT =”yes”
BOOTPROTO=”none”
l 编辑/etc/sysconfig/network文件,内容如下:
NETWORKING=yes
HOSTNAME=”dhcpserver.ncie.org”
GATEWAY=”192.168.xx.254”
GATEWAYDEV=”eth0”
l 启动TCP/IP网络:service network restart
l 为广播地址设置主机名称为dhcp。在/etc/hosts文件中加入如下一行:
255.255.255.255 dhcp
l 把广播地址加入路由表:route add –host dhcp dev eth0
l 编辑/etc/dhcpd.conf文件,内容如下:
subnet 192.168.xx.0 netmask 255.255.255.0
default-lease-time 86400;
max-lease-time 259200;
option routers 192.168.xx.254;
option subnet-mask 255.255.255.0;
option domain-name “ncie.org”;
option domain-name-servers 192.168.0.1;
{
range 192.168.xx.101 192.168.xx.200;
}
l 建立租约数据库文件:touch /var/lib/dhcp/dhcpd.leases
l 启动dhcp服务器:service dhcpd start
l 检测dhcp服务器是否启动正常: netstat -utl
3. 配置客户端:
l 登录到局域网中的一台Linux客户机,检测客户机上是否安装有DHCP客户端软件dhcpcd,如果没有则安装该软件包。
l 配置客户机使用DHCP获取网络参数。编辑/etc/sysconfig/network-scripts下的ifcfg-eth0文件,内容形式如下:
DEVICE=”eth0”
ONBOOT=”yes”
BOOTPROTO=”dhcp”
l 启动网络接口eth0: ifup eth0
l 利用ifconfig命令查看一下客户机的网络接口启动状况,确认网络接口已经被启动。
任务二 配置DHCP中继代理
实验要求:
配置DHCP服务器和中继代理,使子网A内的DHCP服务器能够同时为子网A和子网B提供DHCP服务。为子网A内的客户机分配的网络参数同上,为子网B内的主机分配的网络参数如下:
l IP地址段:192.168.10.101-192.168.10.200
l 子网掩码:255.255.255.0
l 网关地址:192.168.10.254
l 域名服务器:192.168.0.5
l 子网所属域的名称:ncie.org
l 默认租约有效期:1天
l 最大租约有效期:3天
实验步骤:
l 配置DHCP中继代理
1. 登录到子网A和子网B的路由器,安装DHCP服务器端软件包。
2. 启动DHCP中继代理: dhcprelay –I eth2 192.168.xx.10(其中eth2连接B子网,192.168.xx.10是子网A内的DHCP服务器的IP地址。在实验中视具体情况而定。)
3. 用netstat命令检测中继代理是否成功启动,以及监听的网络接口是否是连接子网B的网络接口:netstat –utl|grep bootps
l 配置DHCP服务器
1. 编辑DHCP服务器/etc目录下的dhcpd.conf文件,内容形式如下:
share-network ncie.org{
default-lease-time 86400;
max-lease-time 259200;
option domain-name “ncie.org”
subnet 192.168.xx.0 netmask 255.255.255.0{
option routers 192.168.xx.254;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.1
range 192.168.xx.101 192.168.xx.200;
}
subnet 192.168.10.0 netmask 255.255.255.0{
option routers 192.168.10.254;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.5
range 192.168.10.100 192.168.10.200;
}
}
2. 重新启动DHCP服务: service dhcpd restart
l 客户端配置与检测
1. 配置子网B内的客户机使用DHCP服务器获取网络参数,步骤和配置子网A的客户机相同。
2. 查看网络B内的客户机上/etc/dhcpcd目录下的dhcpcd-eth0.info文件,检测所作的配置。