标签:dhcp
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。
(1)DHCP Client以广播的方式发出DHCP Discover报文。
(2)所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便DHCP Client区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。
(3)DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
(4)DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
(5)DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。
(6)DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。
状态 | 解释 |
DHCP discover | 客户端到服务器端 |
DHCP offer | 服务器端到客户端 |
DHCP request | 客户端到服务端 |
DHCP nack | 服务器端到客户端指示客户端的网络地址是不正确的 |
DHCP ack | 服务器端到客户端 |
DHCP decline | 客户端到服务器端,指示地址已经被使用 |
DHCP release | 客户端到服务器端,放弃网络地址和取消剩余的租约时间 |
DHCP inform | 客户端到服务器端,只要求本地配置参数,客户端已经具有外部配置的网络地址 |
当客户端向服务器端取得地址以后得到租期,当租期达到某个期限时,客户端主动向服务器端发起广播请求
%50:租赁时间达到50%时来续租,刚想DHCP服务器发现新的DHCP request请求。如果dhcp服务没有拒绝的理由,则回应DHCP ack信息。当DHCP客户端收到应答信息后,就重新开始新的租用期限。 87.5%:如果之前DHCP server没有回应,等到租约期的87.5%时,主动再发送一次广播请求。
主配置文件 /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd6.conf 启动配置文件 /etc/rc.d/init.d/dhcpd /etc/rc.d/init.d/dhcpd6 中继器 /usr/sbin/dhcrelay /etc/rc.d/init.d/dhcrelay
# option definitions common to all supported networks... option domain-name "example.org"; #searchname option domain-name-servers ns1.example.org, ns2.example.org; #设置DNS服务器地址 default-lease-time 600; #设置租约时长 max-lease-time 7200; #设置客户端最长租期 # Use this to enble / disable dynamic dns updates globally. #ddns-update-style none; #设置DHCP更新 # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; #设置日志级别 # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. subnet 10.152.187.0 netmask 255.255.255.0 { } # This is a very basic subnet declaration. subnet 10.254.239.0 netmask 255.255.255.224 { range 10.254.239.10 10.254.239.20; #设置可分配IP的范围 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; #设置客户端默认网关 } filename #指明引导文件名称 next-server #提供引导文件的服务器IP地址
当我们配置完时候,不知道是否出现问题这时候就需要对配置文件尽心检查 service dhcp configtest
示例:
(1)安装dhcp服务 [root@localhost ~]# yum install -y dhcp
(2)将配置文件复制到/etc/dhcp/
目录下[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
(3)编辑配置文件 [root@localhost ~]# vim /etc/dhcp/dhcpd.conf
(4)重启dhcp服务 [root@localhost ~]# systemctl restart dhcpd
(5)在另外一个机器上测试,是否可以拿到地址。[root@localhost ~]#service restart dhcpd
注意:
1、在进行编辑注意每行完成以后要以“;”结尾。
2、在配置DHCP服务时,有时获取到地址并不能ping,很有可能dhcp服务IP变化。
本文出自 “Joah” 博客,请务必保留此出处http://merit.blog.51cto.com/10757694/1966078
标签:dhcp
原文地址:http://merit.blog.51cto.com/10757694/1966078