一、前言

      当我们面对局域网中大量的主机需要配置ip地址时,手动配置很
难保证各主机ip不会产生冲突,为了能够有序、自动配置局域网的ip
地址需要用到DHCP,该协议能实现ip地址的自动配置,并且对分配出
去的ip地址进行记录。

二、与DHCP相关的参数

	DHCP: Dynamic Host Configuration Protocol 主机动态配置协议
	IP/Netmask      能与其他主机通信的必要条件
	Gateway          与外网通信经过网关
	DNS Server     域名解析服务,可解析域名ip访问主机

三、DHCP的工作流程

bootp: boot protocol --> dhcp
DHCP请求流程
ARP:IP-->MAC   该广播协议中知道目标ip地址请求mac
RARP:MAC-->IP 该广播协议中知道自己的MAC请求获取ip
	1、Client: dhcp discover:客户端在局域网中用广播寻找
	DHCP服务器。
	2、Server: dhcp offer:(IP/netmask, gw):服务器收到广播后
	响应客户端,告知其ip/netmask和gw。
	3、Client:dhcp request :客户端收到dhcp的ip和gw后
	用RARP对其发起IP获取请求。
	4、Server: dhcp ack:服务器收到请求后在自己的可用ip列表挑选
	一个ip给客户端,同时对其进行等级。
	
	续租:
	DHCP服务器对分配出去的地址实行租约形式
	一般形式如下:
		2hours:列如服务器规定租约期限是2小时
			50%: 1hours --> 2hours  :
			当我们使用了1小时(每50%请求一次),客户端就
			向服务端发出续租请求,如此直到续租成功。
			75%: 0.5hours --> 2hours 
			87.5%: 0.25hours --> 2hours

			dhcp discover:如果续租不成功,就再次执行dhcp
			服务器发现命令

		Client: dhcp request
		Server: dhcp ack

		Server: dhcp nak

四、Linux DHCP协议的实现程序:dhcp, dnsmasq

	dhcp:
		1、/usr/sbin/dhcpd   DHCP服务器程序
			配置文件
			/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
			/etc/dhcp/dhcpd6.conf --> /etc/rc.d/init.d/dhcpd6
		2、/usr/sbin/dhcrelay  DHCP中继服务器
		配置文件
			/etc/rc.d/init.d/dhcrelay

		67/udp                服务器监听端口
		dhclient: 68/udp 客户端监听端口

	3、配置文件
		dhcpd.conf:
		常用选项
		option :用于指明除ip和掩码外的其他选项,可以在全局中
		定义也可以在subnet定义
		default-lease-time 600 :默认租约时间
		max-lease-time    7200 :最大租约时间
		subnet  172.16.0.0 netmask 255.255.0.0 {
			range 172.16.100.151 172.16.100.170
			option routers 172.168.100.1
			...
		} :作用域,指定一个子网,该处为子网为172.16.0.0(一定是
		当前主机所在的网络)子段内的主机分配ip,分配的ip范围是,
		起172.16.100.151到 172.16.100.170,并且为其指定网关是
		172.168.100.1。

		host {

		}

	 4、查看地址分配记录
	 cat /var/lib/dhcpd/dhcpd.leases
		

	5、其它配置选项:
		filename: 指明引导文件名称;
		next-server:提供引导文件的服务器IP地址;

		filename "pxelinux.0";
		next-server 172.16.100.67;