Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103695090
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-05 16:52:03

 

DHCP是Dynamic Host Configuration Protocol(动态主机分配协议)缩写,它可以自动给本网络上的所有TCP/IP计算机提供它们进行通信所需要的信息。这些信息包括那些路由器、DNS服务器、其他名称类型服务器及基本的IP地址信息。
DHCP的前身是 BOOTP。BOOTP原本是用于无磁盘主机连接的网络上面的﹕网络主机使用BOOT ROM而不是磁盘起动并连接上网络﹐BOOTP则可以自动地为那些主机设定TCP/IP环境。但BOOTP有一个缺点:在设定前须事先获得客户端的硬件地址,而且,IP的对应是静态的。换而言之,BOOTP非常缺乏 “动态性” ,若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。
DHCP可以说是BOOTP的增强版本﹐它分为两个部份﹕一个是服务器端﹐而另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理﹐并负责处理客户端的DHCP要求﹔而客户端则会使用从服务器分配下来的IP环境数据。比较起BOOTP ,DHCP透过”租约” 的概念,有效且动态的分配客户端的 TCP/IP设定,而且,作为兼容考虑,DHCP也完全照顾了BOOTP Client的需求。

即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的发送DHCP discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应(如图1)。

图1

即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息(如图2)。

图2

即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址(如图3)。

图3

即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址(如图4)。

图4

以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。

从安装光盘中找到dhcp-3.0.5-5.i386.rpm包并安装。

#rpm -Uvh dhcp-3.0.5-5.i386.rpm    

默认的配置为/etc/dhcpd.conf,里面内容基本为空,只有这样两句话:

[root@ts3-142 ~]# cat /etc/dhcpd.conf                       
#                                                           
# DHCP Server Configuration file.                           
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample 

我们可以这样来获得一个基本的DHCP服务配置文件:

#cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf

它的内容及解释如下:

                                                
#[root@ts3-142 ~]# cat /etc/dhcpd.conf                      
ddns-update-style interim;                                  
ignore client-updates;   
                                   
subnet 192.168.0.0 netmask 255.255.255.0 {    
               
# --- default gateway                                       
        option routers                  192.168.0.1;        
        option subnet-mask              255.255.255.0;   
   
        option nis-domain               "domain.org";       
        option domain-name              "domain.org";       
        option domain-name-servers      192.168.1.1;        

        option time-offset              -18000; # Eastern Standard Time  
#       option ntp-servers              192.168.1.1;        
#       option netbios-name-servers     192.168.1.1;        
# --- Selects point-to-point node (default is hybrid). Don't change this unless 
# -- you understand Netbios very well                                            
#       option netbios-node-type 2;        
                                      
        range dynamic-bootp 192.168.0.128 192.168.0.254;                         
        default-lease-time 21600;                                                  
        max-lease-time 43200;       
                                                
        # we want the nameserver to appear at a fixed address                      
        host ns {                                                                   
                next-server marvin.redhat.com;                                     
                hardware ethernet 12:34:56:78:AB:CD;                               
                fixed-address 207.175.42.254;                                      
        }                                                                           
}                                                                                   

dhcpd.conf通常包括三部分:parameters、declarations 、option。

ddns-update-style

配置DHCP-

shared-network 

用来告知是否一些子网络分享相同网络。

subnet 

描述一个IP地址是否属于该子网。

range 

起始IP 终止IP 提供动态分配IP 的范围。

host 

主机名称 参考特别的主机。

group 

为一组参数提供声明。

allow unknown-clients ﹔deny unknown-client 

是否动态分配IP给未知的使用者。

allow bootp;deny bootp 

是否响应激活查询。

allow booting﹔deny booting 

是否响应使用者查询。

filename 

开始启动文件的名称,应用于无盘工作站。

next-server 

设置服务器从引导文件中装如主机名,应用于无盘工作站。

subnet-mask 

为客户端设定子网掩码。

domain-name 

为客户端指明DNS名字。

domain-name-servers 

为客户端指明DNS服务器IP地址。

host-name 

为客户端指定主机名称。

routers 

为客户端设定默认网关。

broadcast-address 

为客户端设定广播地址。

ntp-server 

为客户端设定网络时间服务器IP地址。

time-offset 

为客户端设定和格林威治时间的偏移时间,单位是秒。

下面是一个的DHCP配置文件,这是一个C类网络,共126个IP地址可以分配的例子。

    ddns-update-style interim; 
  ignore client-updates;
  subnet 192.168.1.0 netmask 255.255.255.0 {
  option routers     192.168.1.254;
  option subnet-mask   255.255.255.0;
  option broadcast-address    192.168.1.255;
  option domain-name-servers   192.168.1.1;
  option domain-name          "turbolinux.com"
  option time-offset            -18000;
  range dynamic-bootp 192.168.1.128 192.168.1.253;
  default-lease-time 21600;
  max-lease-time 43200;
  host ns {
  hardware ethernet 00:40:45:27:A7:11;  #运行DHCP的网络接口的MAC地址#
  fixed-address 192.168.1.10;
  }
  }

1)图形方式

#netconfig      (不加参数,默认是对eth0的配置;如果要对其它网卡配置,需要加-d参数。\\
                 如:netconfig –d eth1),选中[使用动态IP配置(BOOTP/DHCP)],确定即可。


2)直接修改文件
首先要确保网络已启用,查看/etc/sysconfig/network是否包含下列一行。

NETWORK=yes

然后修改网卡配置文件。文件位于/etc/sysconfig/network-scripts/目录下,如果网卡是eth0,文件名则是ifcfg-eth0,而且该文件中应该含有下列几行。

DEVICE=eth0                                                     
ONBOOT=yes                                                      
BOOTPROTO=dhcp  

DHCP服务优点不少:网络管理员可以验证IP地址和其它配置参数,而不用去检查每个主机;DHCP不会同时租借相同的IP地址给两台主机;DHCP管理员可以约束特定的计算机使用特定的IP地址;可以为每个DHCP作用域设置很多选项;客户机在不同子网间移动时不需要重新设置IP地址。

但同时也存在不少缺点:DHCP不能发现网络上非DHCP客户机已经在使用的IP地址;当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP转发。

阅读(380) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~