您的位置:首页 > 运维架构 > Linux

Linux-dhcpd

2014-05-05 17:39 357 查看
dhcp(Dynamic host configuration protocol)动态主机配置协议

dhcp前身是bootp(引导程序协议),用于无盘主机连接的网络上面的,网络主机使用BOOTROM而不是硬盘启动并连接网络。
bootp可以自动的为那些主机设定TCP/IP环境,bootp缺点是在设定前必须事先获取客户端网卡mac地址,而且与IP对应是静态的,缺乏“动态性”,如果在有限的IP资源环境中,bootp的一对一对应是很浪费的。

dhcp八种报文{DHCPDISCOVER|DHCPOFFER|DHCPREQUEST|DHCPACK|DHCPNAK|DHCPRELEASE|DHCPDECLINE|DHCPINFORM}

dhcp八种状态
{INIT|SELECTING|REQUESTING|BOUND|RENEWING|REBINDING|REBOOT|HALT}

dhcp相关概念
dhcp server:dhcp服务器
dhcp client:dhcp客户端
dhcp relay:dhcp中继
dhcp security:dhcp安全特性,实现合法用户ip地址表管理功能
dhcp snooping:dhcp监听,记录通过二层设备申请到IP地址的用户信息

dhcp分配形式有两种
1、自动分配方式(automatic allocation)dhcp服务器可以给主机 一个永久的ip地址
2、动态分配方式(dynamic allocation)dhcp服务器给主机指定一个有时间限制(租约)的ip地址,到了租约(lease)或主机放弃(release)这个地址,则这个地址可以被其他主机使用。客户端也可以比其他主机更优先的延续(renew)租约,或租用其他ip

dhcp实现原理
发现阶段、提供阶段、选择阶段、确认阶段、重新登录、更新租约

dhcp客户端从dhcp服务器获取ip四个步骤

a、DHCP客户端发出DHCPDISCOVER报文,设置报文目的IP地址为255.255.255.255,向网络广播。
b、服务器向回应客户端的 DHCPoffer 包,目的告诉客户端,提供IP地址。
c、 DHCPREQUEST 包,客户端向服务器请求IP地址。
d、 DHCPACK 包,确认包,服务器向客户端分配IP地址。
*如果网络中有多个DHCP服务器,则客户端接受响应速度最快的那个DHCP服务器。

dhcp优点
可以验证ip地址和其他配置参数、不用检查每台主机
dhcp不会同时租借相同IP地址给两台主机
dhcp可以约束特定计算机使用特定ip地址
可以为每个dhcp作用域设置很多选项
客户机在不同子网移动时不需要重新设置ip地址

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

dhcp安装(rpm包安装,dhcp安装包在光盘镜像中)
#rpm -ivh /media/cdrom/Packages/dhcp-4.1.1-34.P1.el6.x86_64.rpm
#cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf //默认dhcp配置文件没有配置,需要复制dhcp配置文件模板

源码包安装
获取dhcp安装包ftp://ftp.isc.org/isc/dhcp
#wget ftp://ftp.isc.org/isc/dhcp/dhcp-4.0.3.tar.gz

解压安装编译dhcp
#tar zxvf dhcp-4.0.3.tar.gz
#cd dhcp-4.0.3
#./configure --prefix=/usr/local/dhcp && make && make install

生成地址池文件,该文件记录分配出去的ip
#touch /var/db/dhcp/dhcpd.lease //必须创建。*centos是/var/db/下,redhat是/var/state/下

生成dhcp主配置文件
#cp /usr/local/dhcp/etc/dhcpd.conf.example /usr/local/dhcp/etc/dhcpd.conf

讲解dhcpd.conf文

#more /etc/dhcp/dhcpd.conf
broadcast-address                #广播地址
routers                          #网关地址
domain-name                      #DNS域名
domain-name-servers              #DNS域名地址
subnet-mask                      #分配子网
host-name                        #分配主机
nis-name                         #分配nis域名
ntp-server                       #分配时间服务器
time-offset                      #格林威治时间和偏移时间
client-updates                   #客户端更新
ddns-update-style                #配置dhcp-dns互动更新模式
default-lease-time               #默认最大租约时间长度,单位秒
max-lease-time                   #最大租约长度,单位秒
hardware                         #指定网卡接口类型
server-name                      #dhcp服务器名称
get-lease-hostname flag          #检测客户端使用ip地址
fixed-address ip                 #分配客户端固定ip地址
authritative                     #拒绝不正确的IP地址要求
shared-network                   #多个子网分配时需要定义
subnet                           #描述IP子网
rang IP IP                       #定义分配ip的地址范围
host 主机名称                     #需要绑定的IP主机IP--MAC
group                            #为一个组参数提供说明
allow unknown-clients
deny unknow-clients              #是否动态分配IP给未知客户端
allow botp;deny bootp            #是否响应激活查询
allow booting;deny booting       #是否响应使用者查询


示例一

#more /etc/dhcp/dhcpd.conf
option domain-name "zhuxy.com";             #指定域名
option domain-name-servers dns.zhuxy.com;   #指定DNS
default-lease-time 600;                     #默认租约时间s
max-lease-time 7200;                        #最大租约时间s
log-facility local7;                        #日记级别
ddns-update-style interim;                  #DNS更新类型
subnet 192.168.1.0 netmask 255.255.255.0    #指定网段为192.168.1.0/24
{
range 192.168.1.11 192.168.1.253;       #可以分配的客户端IP范围
option domain-name-servers "dns.zhuxy.com"; #指定客户端DNS
option domain-name "zhuxy.com";         #指定客户端域名
option routers 192.168.1.1;             #指定客户端网关
option subnet-mask 255.255.255.0;       #指定客户端掩码
option broadcast-address 192.168.1.255; #指定客户端广播地址
option time-offset -28800;              #指定时间s,(北京时间与格林威治时间偏差为8小时)
default-lease-time 600;                 #指定客户端默认租约时间s
max-lease-time 7200;                    #指定客户端最   大租约时间s
host boss                                   #老板计算机声明
{
hardware ethernet 00:E0:4C:03:7A:3F;    #绑定老板mac地址
fixed-address 192.168.1.88;             #指定为mac地址分配的的IP地址
}
host admin                                  #管理员计算机声明
{
hardware ethernet 00:E0:4C:00:04:26;    #绑定admin mac地址
fixed-address 192.168.1.253;            #指定为mac地址分配ip地址
}
}
启动dhcp服务

如果只有一块网卡则
#/usr/local/dhcp/sbin/dhcpd
如果双网卡
#/usr/local/dhcp/sbin/dhcpd eth0

本文出自 “Biggest Dream Is What?” 博客,请务必保留此出处http://zhuxyid.blog.51cto.com/1391714/1406752
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: