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