Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226752
  • 博文数量: 36
  • 博客积分: 3044
  • 博客等级: 中校
  • 技术积分: 356
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-20 18:31
文章分类

全部博文(36)

文章存档

2010年(36)

分类: LINUX

2010-03-06 20:43:33

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任.http://U16.cublog.cn    
  
    DHCP(Dynamic  Host  Configuration  Protocol),全称"动态主机配置协议",是一个简化主机IP地址分配关了的TCP/IP协议...只要在网络中安装和配置了DHCP服务器,用户就不再需要输入IP地址和子网掩码,还有其他一些参数信息,主机会自动去DHCP服务器上获取地址等信息,大大减少了管理员的工作量,如果一个公司的机器上百台,配置个DHCP服务器再好不过了...
主配置文件  /etc/dhcpd.conf  
DHCP中继配置文件 /etc/sysconfig/dhcrelay
服务脚本    /etc/init.d/dhcpd      /etc/init.d/dhcrelay

1.限定租期..
当DHCP客户端向DHCP服务器租用到IP地址,客户端可以使用该IP地址一段时间,当租约快到期时,客户端必须向DHCP服务器提出续约请求,请求成功后可以继续使用该IP地址,如果客户端没有续约或续约不成功,服务器就会将该IP地址收回,分配给其他DHCP客户端使用...

2.永久租用..
当DHCP客户端的MAC地址被绑定到服务器之后,与该MAC地址绑定匹配的IP地址将会给该客户端,且永久租用,这个地址其他机器自动获取不到的,除非你配置静态的IP...

DHCP server工作的原理...
(1)DHCPDISCOVER 在DHCP发现的过程中,客户端使用0.0.0.0作为自己的IP地址,255.255.255.255作为服务器的IP地址,然后以UDP的方式,在67或68端口广播出一个DHCPDISCOVER信息,该信息含有客户端网卡MAC地址和计算机的NetBios名称,此过程为广播的形式.如果找不到DHCP服务器的话,客户机会
使用169.254.0.0网段的IP,临时使用..

(2)DHCPOFFER 当网络中任何一个DHCP服务器收到客户端的DHCPDISCOVER信息后,会对自己的IP段地址进行检查,如果该DHCP服务器有空闲的IP地址
的话,就会将自己地址池中的IP随机抽取一个然后以广播的形式给客户端...

(3)DHCPREQUEST 当客户端收到第一个由DHCP服务器提供的应答信息后,就以广播的形式发送一个DHCP请求信息给网络中所有的DHCP服务器.在DHCP请求信息中包含已选择的DHCP服务器返回的IP地址...

(4)DHCPACK 一旦被选择的DHCP服务器接收到DHCP客户端的DHCP请求信息后,就将已保留的这个IP地址标示为已租用,然后也以广播方式发送一个DHCPACK信息给DHCP客户端,该客户端接收信息后就完成获得IP地址整个过程..

当DHCP客户租期达到50%的时候,重新更新租约,发送DHCPrequest包.当DHCP客户机租期达到87.5%时,进入重新申请状态,客户机发送DHCPrequest包.
 

              下面我们进行DHCP SERVER的配置...

RedHat默认没有安装DHCP服务包,使用下面命令可查看本机已经安装的dhcp包...
[root@station195 ~]# rpm -qa |grep dhcp*
dhclient-3.0.5-21.el5

我们这只安装了dhcclient包,还需安装dhcp包.我们使用yum 安装,你也可以挂载光盘安装.效果一样...
[root@station195 ~]# yum -y install dhcp
 

先来说下dhcpd.conf配置文件常用的功能和说明...

share-network 名称 {...}  定义超级作用域..
subnet 网络号 netmask 子网掩码 {...} 定义作用域(或IP子网)
range  start-IP  end-IP   定义IP范围...
host  主机名 {...} 定义要保定的主机...
group {...} 定义一组参数...
ddns-update-style 类型  定义所支持的DNS动态更新类型(必选)
allow/ignore client-updates  允许/忽略客户机更新DNS记录...
default-lease-time 数字  指定默认的租约期限...
max-lease-time 数字  指定最大租约期限...
hardware                                   硬件类型 MAC 地址  指定网卡接口类型和MAC地址...
server-name  主机名                   通知DHCP客户端服务的的主机名...
fixed-address  IP 地址                  分配给客户端一个固定的IP地址...
其中ddns-update-style,allow/ignore client-update这两个参数只能用于全局...
subnet-mask                               为客户端指定子网掩码...
domain-name 域名                      为客户端指定DNS域名..
domain-name-servers IP 地址       为客户端指定DNS服务器的IP地址..
host-name                                  为客户端指定主机名...
routers   IP 地址                          为客户端指定默认网关...          
broadcast-address 广播地址          为客户端指定广播地址...
netbios-name-servers IP 地址        为客户端指定WINS服务器的IP地址...
netbios-node-type 节点类型          为客户端指定节点类型...
ntp-server  IP 地址                       为客户端指定网络时间服务器的IP地址...
nis-server   IP 地址                       为客户端指定NIS服务器IP地址..
nis-domain  名称                          为客户端指定所属的NIS域的名称...
如果不许DNS动态更新的话在网卡配置文件中写上PEERDNS = no即可...

     我们接着来配置DHCP SERVER ...服务器IP:192.168.0.195,单个作用域非常简单,我们来配置一个192.168.0.0/24和192.168.1.0/24网段的超级作用域.超级作用域的名字叫zzu

[root@station195 ~]# cp -p /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
cp: overwrite `/etc/dhcpd.conf'? y
拷贝此文件将/etc/dhcpd.conf覆盖...
[root@station195 ~]# vim  /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
shared-network zzu {
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               "zzu.com";
        option domain-name              "zzu.com";
        option domain-name-servers      202.104.226.68;
#       option ntp-servers              192.168.0.10;
#       option netbios-name-servers     192.168.0.11;
#       option netbios-node-type 2;
        range  192.168.0.2      192.168.0.2;
        default-lease-time 21600;
        max-lease-time 43200;
        host ns {
                next-server marvin.redhat.com;
                hardware ethernet 12:34:56:78:AB:CD;
                fixed-address 207.175.42.254;
        }
}
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
        option routers                  192.168.1.1;
        option subnet-mask              255.255.255.0;
        option nis-domain               "zzu.com";
        option domain-name              "zzu.com";
        option domain-name-servers      202.104.226.68;
#       option ntp-servers              192.168.0.10;
#       option netbios-name-servers     192.168.0.11;
#       option netbios-node-type 2;
  range  192.168.1.2    192.168.1.2;
        default-lease-time 21600;
        max-lease-time 43200;
        }
}
     写完后使用下面命令检测语法信息...

[root@station195 ~]# service  dhcpd  configtest (检测语法,如果报OK,证明语法正确)
[root@station195 ~]# service  dhcpd  restart  (或者将restart改为reload,效果一样,都是重新启动服务)
在你每次修改过配置文件后一定要重新启动服务,否则不生效...大家切记....

     我们这儿为了演示效果选了两个网段的地址,每个网段之选其中一个地址.当第一个网段的IP用完了,其他主机会自动去第二个网段去获取.还有救是
用Linux做DHCP服务器时,客户端获取地址都是从后往前一个个获取,而用windows做DHCP时,客户端获取IP是从前往后获取,这个大家注意一下...
我们使用windows2003进行测试...
client1:
C:\>ipconfig   /release (释放一下地址)
C:\>ipconfig   /renew  (重新获取一下地址)
C:\>ipconfig   /all
Windows IP Configuration
   Host Name . . . . . . . . . . . . : user1
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Unknown
   IP Routing Enabled. . . . . . . . : Yes
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : zzu.com
Ethernet adapter vm2:
   Connection-specific DNS Suffix  . : zzu.com
   Description . . . . . . . . . . . : VMware Accelerated AMD PCNet Adapter
   Physical Address. . . . . . . . . : 00-0C-29-B0-73-00
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IP Address. . . . . . . . . . . . : 192.168.1.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.0.195
   DNS Servers . . . . . . . . . . . : 202.104.226.68
   Lease Obtained. . . . . . . . . . : 2010年3月6日 18:54:55
   Lease Expires . . . . . . . . . . : 2010年3月7日 0:54:55
client2:
C:\>ipconfig   /release (释放一下地址)
C:\>ipconfig   /renew  (重新获取一下地址)
c:\>ipconfig  /all
Windows IP Configuration
   Host Name . . . . . . . . . . . . : user2
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Unknown
   IP Routing Enabled. . . . . . . . : Yes
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : zzu.com
Ethernet adapter vm2:
   Connection-specific DNS Suffix  . : zzu.com
   Description . . . . . . . . . . . : VMware Accelerated AMD PCNet Adapter
   Physical Address. . . . . . . . . : 00-0C-29-49-4D-66
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IP Address. . . . . . . . . . . . : 192.168.0.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1
   DHCP Server . . . . . . . . . . . : 192.168.0.195
   DNS Servers . . . . . . . . . . . : 202.104.226.68
   Lease Obtained. . . . . . . . . . : 2010年3月6日 18:55:34
   Lease Expires . . . . . . . . . . : 2010年3月7日 0:55:34

测试结果我们可以看见是成功的....这儿只是做个测试给大家看看,在实际工作当中,在做DHCP中继的时候,会用到超级作用域...做DHCP中继也很简单,先编辑/etc/sysctl.conf..具体步骤如下..
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1(此处默认是0,修改为1,表示允许转发..)
#sysctl  -p(修改完配置文件不会立即生效,使用此命令读取一下配置文件,使其生效..)
 
然后编辑/etc/syayconfig/dhcrelay文件..
#vim   /etc/sysconfig/dhcrelay
INTERFACES = "eth0 eth1" (将本机网卡的名字写上去)
DHCPSERVERS = "DHCP server IP" (写上DHCP server的IP地址)
#service  dhcrelay  restart(开启中继功能..)

这样DHCP中继就做好了,是不是很简单啊...
 
    如果想把一个IP绑定到某个主机只需将客户机的MAC和相应的IP写入host选项中即可,还可同时将多主机绑定,需要复制host那个选项,
多写几行就搞定了so easy.这儿就不再演示了.如果你用linux客户端进行测试使用下面的命令
[root@station195 ~]# dhclient   -d  eth0 (假如我们这网卡的名字是eth0的话.使用此命令可显示网卡获取IP地址时的详细信息.此命令执行后不会退出,因为我们使用了-d选项,去掉-d就会自动获取IP地址,无论获取到还是获取不到都会退出,并且显示详细信息...)

如果你的网路中有多种操作系统,并且希望不同的操作系统获取不同网段的IP的话我们得这么定义,在/etc/dhcpd.conf文件中写入.我这儿只写让
windows操作系统获取到的IP...
class  "windows" {
            match   if   substring  (option  vendor-class-identifer,0,4)="MSFT";
}
pool { allow  members  of  "windows";
        range   startIP   endIP;
}
 
关于DHCP服务就说这些,大家有什么疑问可以给我留言,我会在第一时间给你答复的...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
阅读(4137) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-04-17 23:04:16

你好,有个问题问下,我也是安装rpm包后,修改dhcpd.conf,dhcpd 也能启动,防火墙和selinux也关了,但查看日志始终提示:dhcpddiscover network 192.168.1.0 no free leases,只有配置静态地址才能获到ip,这是为什么呢?

chinaunix网友2010-12-14 20:34:15

怎么将超级作用域中的其中2个域做主从关系绑定?

chinaunix网友2010-08-10 21:35:23

你好,我现在要做一个多网段的dhcp服务器,要用到cisco 2960交换机,这个交换机可以作为dhcp中继吗,连接在交换机上的机器如何分配ip