用途:
1. 用于局域网或者网络服务器供应商自动分配IP地址给用户
2. 用于局域网管理员对所有电脑的管控。
都知道我们获取IP地址有两种方式,一、静态指定,二、动态获取。我们到一个新的有网络的地方,连上网络后就会自动获取一个当前网络断中的一个唯一IP,这个IP在这段时间属于你的专属,除非网络管理员设定,否则在一定时间内这个IP地址都是你的。这个IP就是通过DHCP获得的。但是DHCP协议并不是这么简单的。
DHCP是一种使网络管理员能够集中管理和自动分配IP网络地址的通信协议。在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。
DHCP使用了租约的概念,或称为计算机IP地址的有效期。租用时间是不定的,主要取决于用户在某地连接Internet需要多久,不能让一个用户一直在某些网络资源却不用。通过较短的租期,DHCP能够在一个计算机比可用IP地址多的环境中动态地重新配置网络。DHCP支持为计算机分配静态地址,如某些特殊情况某些服务器需要静态IP,我们可以通过DHCP远程给他指定一个固定IP而不需要它自己来指定。
工作方式:共分为四个阶段(客户机和DHCP服务器在一个网段,且只有一台DHCP服务器)(四个阶段均是通过广播来实现的)
第一阶段:DHCP发现(DISCOVER)
客服机通过68端口发送broadcast的UDP数据包,寻找DCHP服务器。此数据包源IP地址为0.0.0.0,目标IP地址为255.255.255.255;包中还包含客户机的MAC地址和计算机名。普通主机发现这个包会丢弃的这个数据包,只有DHCP服务器收到这个数据包才会进行接下的工作。
第二阶段:DHCP提供(OFFER)
DCHP服务器通过67端口收到broadcast后对针对获取到这个客服机的MAC地址做如下操作:
1. 查看日志文件(/var/lib/dhclient/dhclient※-eth ※.leases),根据MAC地址确定此主机是否曾经获取过IP,曾经获取的IP是否有人使用。
2. 查看配置文件(/etc/dhcpd/dhcpd.conf)中,是否给这个MAC地址指定了静态的IP地址。
3. 若前两项都没有,就根据配置文件(/etc/dhcpd/dhcpd.conf)文件的地址池等相关信息,随机选用当前空闲IP给客户机。
第三阶段:DHCP请求(REQUEST)
客户机收到DHCP服务器发来的配置信息,选择是否认可和使用当前网络参数。每个主机只能接收一份租约。
第四阶段:DHCP确认(Acknowledge,ACK)
服务器收到客户机的确认信息,会回送确认的响应数据包信息以确认客户端的使用
(1) 客服机发送DISCOVER的广播--->(2) 路由器监听到转发给DCHP服务器--->(3) DHCP服务器接收到客户机的广播后反馈OFFER给路由器--->(4) 路由器接收到OFFER转发给客户机--->(5) 客户机选择和确认参数,返回REQUEST--->(6) 路由器监听并转发REQUEST给DHCP服务器--->(7) DCHP服务器接收并回馈 ACK --->(8)路由器转发DHCP确认给客户机
yum install -y dhcpd
[root@localhost ~]# yum install -y dhcp ###通过yum安装dhcp服务
[root@localhost ~]# rpm -qa dhcp ###查询已安装的dhcp
dhcp-4.1.1-51.P1.el6.centos.x86_64 ###当前dhcp的版本号
[root@localhost etc]# cd /etc/dhcp/
[root@localhost dhcp]# ls
dhclient.d dhclient-eth0.conf dhcpd6.conf dhcpd.conf
[root@localhost dhcp]# cat dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample ###这个配置文件是空的,让我们去这个路径下找。
# see ‘man 5 dhcpd.conf‘
[root@localhost dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
[root@localhost dhcp]# vim /etc/dhcp/dhcpd.conf
这个配置文件详细的告诉了我们,怎么定义dhcp服务器参数。抽取部分描述一下。
dhcp.conf 文件分为四个区域(注意每个区域内定义的参数后面都需要添加";",否则启动服务的时候就会失败,然后可以去/var/log/messages看错误了。)
一、 定义dhcpd自身的工作属性,log-facility:日志facility。这块不需要修改,默认即可
二、 全局地址分配属性,作用于全局。 声明 { 参数 } 常用参数:
option domain-name "example.org";##修改/etc/hosts文件,默认域名,例如你这里写search google.com ,当你查找主机名,DNS系统会主动帮你在所要查找的主机名后加上这个域名后缀
option domain-name-servers ns1.example.org, ns2.example.org; ##修改/etc/resolv.conf。即nameserver 后面接DNS IP,特别注意设置参数最末尾为servers,末尾有s;
default-lease-time 600; ##默认租约时间,单位为秒
max-lease-time 7200; ##最大租约时间,单位为秒
ddns-update-style##DHCP可以通过ddns来更新主机名与IP对应关系。这次试验设置为none即可
作用:定义所支持的DNS动态更新类型。
none:表示不支持动态更新
interim:表示DNS互动更新模式
ad-hoc:表示特殊DNS更新模式
因为 DHCP 客户端所取得的 IP 通常是一直变动的,所以某部主机的主机名与 IP 的对应就很难处理。此时 DHCP 可以透过 ddns 来更新主机名与 IP 的对应。
ignore client-updates ##客服端也可以通过dhcpd服务器来更DNS相关信息。暂时也将其设置为ignore
option routers ##设定路由器IP地址,routers记住要加s。
option broadcasst-address 广播地址 <-- 设定广播地址而已。如果没有设定的话,系统应该会自动依据 class A, B, C 的原则来计算出广播地址。
三、子网配置:(生效范围只在这个设置的子网段中)
通常每个作用域通过一个subnet定义
subnet NETWORK_ADDR mask NETMASK {
参数
}
常用参数
rangge IP地址范围 <--e.g 192.168.1.1 192.168.1.254;
option routers IP地址 <-- 作用:为客户端指定默认网关
option subnet-mask 子网掩码 <--作用:设置客户端的子网掩码
四、主机配置:
通常为某特定MAC地址股东分配一个地址,只要这个MAC地址来申请,就给这个MAC地址这个IP地址
host "HOST ID" { <-- "HOST ID"是个标识,可以自定义。
参数
}
常用参数:
hardware ethernet MAC ; <--网卡类型(ethernet)和网卡MAC地址
fixed-address IP;<-- 指定的IP地址
[root@localhost dhcp]# chkconfig --level 345 dhcpd on
[root@localhost dhcp]# chkconfig --list dhcpd
dhcpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
[root@localhost dhcp]# cat /etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS=
[root@localhost dhcp]# vim /etc/sysconfig/dhcp
# Command line options here
DHCPDARGS="eth0" #因为我有两块网卡,我讲网卡1设置为dhcp获取的端口。
梳理一下过程,简单来说就是以下几步:
1.安装dhcp,并设置为开机启动
2.配置dhcp配置文件,确定地址池等相关参数
3.启动dhcp,并设置作用于那个网卡和检测日志文件确定是否出错。
4.将多台试验机放于一个相同网段,并设置客户机参数。
5.查看客户机IP是否设置成功,并检测服务器的日志文件。
本文出自 “11539909” 博客,请务必保留此出处http://11549909.blog.51cto.com/11539909/1851027
原文地址:http://11549909.blog.51cto.com/11539909/1851027