签到天数: 2090 天 连续签到: 2 天 [LV.Master]伴坛终老IIII
|
楼主 |
发表于 2009-5-11 14:10
|
显示全部楼层
Linux下DHCP服务器配置
Linux下DHCP服务器配置
DHCP的全称是动态主机配置协议,它的目的就是为了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。DHCP分为两个部分:一个是服务器端,而另一个则是客户端。所有的IP网络设定资料都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的IP环境资料。DHCP协议通过“租约” 的概念,有效且动态的分配客户端的TCP/IP设定。
一、DHCPD进程
dhcpd进程为了向网络提供服务,需要知道网络的地址和掩码,并且还要知道地址分配的范围,这与Windows系统下的DHCP服务所需要条件是一样的。在dhcpd.conf文件中指定网络地址和掩码的语句如下:
subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.10 192.168.1.253
# dhcpd服务器将给192.168.1.0网络,分配从192.168.1.10到192.168.1.253这个范围的IP地址。
我们从Windows Server 2003系统DHCP服务器配置过程中知道,还需要配置IP地址的租约期,在Linux系统也一样。配置IP租期时间只需简单的两个语句:
default-lease-time # 配置默认租期时间
max-lease-time # 配置用户可以获得的最长租期时间
租期可以从0秒到无限长,可以根据需要来定(以秒为单位)。缺省的租期时间为一天,即86400秒。下面的配置将缺省的租期时间设置为30分钟,最长租用时间为8小时:
default-lease-time 1800;
max-lease-time 28800;
在Windows系统的DHCP服务器配置中,还可以一起配置一些选项,如路由、DNS服务器等,在Linux系统中也可以。它是用option参数来指定的,例如:
option routers 192.168.1.10 # 配置默认路由为192.168.1.10
option domain-name-servers 192.168.1.1 # 配置DNS服务器地址为192.168.1.1
二、dhcpd.conf配置文件主要语句
dhcpd.conf是个递归下降格式的配置文件,有点象C的源程序风格,由参数和声明两大类语句构成,参数类语句主要告诉DHCPd网络参数,如租约的时间、网关、DNS等,而声明语句则是描述网络的拓扑,用来表明网络上的客户、要提供给客户的IP地址、提供一个参数组给一组声明等。
描述网络拓扑的声明语句有shared-network和subnet声明。如果要给一个子网里的客户动态指定IP地址,那么在subnet语句中必须有一个range参数配置,说明地址范围。如果要给DHCP客户静态指定IP地址,那么每个这样客户都要有一个host参数配置。对于每个要提供服务的与DHCP服务器连接的子网,则都要有一个subnet参数配置,即使这是个没有IP地址要动态分配的子网。
1、典型语句
#examples
default-lease-time 28800 # 定义缺省租约时间
max-lease-time 43200 # 指定最大租约时间
option subnet-mask 255.255.255.0 # 指定子网掩码选项
option broadcast-address 192.168.0.255 # 指定广播地址选项
option routers 192.168.0.1 # 指定路由器地址选项
option domain-name-servers 192.168.0.1 # 指定DNS地址选项
option domain-name \"netreslab.org\" # 指定域名选项
# 以上都是全局参数,以下是子网和掩码声明。
subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.10 192.168.0.100;range 192.168.0.150 192.168.0.200}
# 这段配置文件将允许DHCP服务器分配两段地址范围给DHCP客户,192.168.0.10-100 和192.168.0.150-200。
以上整个dhcpd.conf配置文件定义了以下内容:如果DHCP客户在申请租约时不请求一个特定租约失效时间,则以default-lease-time(28800秒)为租约时间,如果有请求一个特定的租约失效时间,则采用max-lease-time语句指定为432000秒。DHCP客户机从DHCP服务器中可以获取的IP地址参数如下:子网掩码是255.255.255.0 ,广播地址是192.168.1.255,默认网关是192.168.0.1,DNS是192.168.0.1。
2、Options语句
在dhcpd.conf配置文件中有一类语句应用非常多,它就是选项(Options)类语句。这类语句均是以Option开头,后面跟一个选项名,选项名后是选项数据,选项非常的多,这里列出一些常用的选项供参考。
option routers ip-address[, ip-address] # 指明在客户子网内的路由器的地址,可以有多个;
option time-servers ip-address[, ip-address...] # 指明时间服务器的地址
option domain-name-servers ip-address[, ip-address...] # 指明DNS的地址
option host-anme string # 给客户指定主机名,string是个字符串。
option domain-name string # 指定域名
option interface-mtu mtu # 指明网络界面的MTU,这里mtu是个正整数,如option interface-mtu 1500;
option broadcast-address ip-address # 指定广播地址
Linux中的DHCP服务器与Windows系统中的DHCP服务器一样,dhcpd进程也可以把主机的MAC地址和IP捆绑在一起,实现在动态IP地址分配中的静态IP地址分配。具体方法是,在/etc/dhcpd.conf中加上一句:
host pc1{ hardware ethernet xx.xx.xx.xx.xx.xx fixed-address 192.168.0.9;}
pc1是指定的主机名字;hardware ethernet后面的xx.xx.xx.xx.xx.xx指的是要与IP地址绑定的MAC地址;fixed-address 指捆绑后的IP地址。
三、DHCP服务器的启动
现在配置文件已经有了,但还是如果我们执行“系统配置”、“服务器配置”等。在打开的“服务”窗口中启动“dhcpd”服务,或者通过命令方式输入#/etc/rc.d/init.d/dhcpd start时会发现还是不能成功启动dhcpd进程,那是因为我们还没有创建关于dhcpd进程的租用文件。
现在我们创建dhcpd.leases文件,输入以下命令:
#touch /var/state/dhcp/dhcpd.leases
然后就可以启动dhcpd进程了。如果希望在每次启动系统的时候也启动dhcpd进程,则执行命令:#/sbin/chkconfig --level 3 dhcpd on,当然也可在“服务”窗口中选中该进程前面的复选框,然后提升进程启动的等级。
chkconfig命令是检查设置系统的各种服务的。参数—level <等级代号>指定该系统服务要在哪一个执行等级中开启或关闭,范围是0-7。然后,在Linux客户端的netconf网络设置中把IP地址的获得设置为DHCP。 这样,我们DHCP服务器的配置就完成了 |
|