[DHCP服务]——DHCP详解
DHCP:(Dynamic Host Configuration Protocol) 动态主机配置协议
1. DHCP是一个局域网的网络协议,采用UDP协议工作
2. DHCP作用
(1)主要应用在大型的局域网环境中,用于给局域网中的主机动态地获得网络参数信息;
(网络参数信息包括:IP地址、子网掩码、Gateway地址、DNS服务器地址等)
(2)这种集中管理、分配IP地址的方式有利于提高地址的利用率、减少冲突,网络管理员也能够利用DHCP Server对局域网内的主机进行更好的管理。
3.DHCP基本工作原理
DHCP Client和DHCP Server之间的数据传递过程如图所示:

第一步:
DHCP客户端在其局域网内广播发送DHCP Discover包,寻找该局域网内的DHCP服务器,其中:
• 只要安装了TCP/IP协议的主机都能接受到这种广播,但只有DHCP服务器才作出回应
• 源MAC是自己的MAC地址,目的MAC是FFFF.FFFF.FFFF的广播
• 源IP是0.0.0.0(现在还没有IP,就用全0地址),目的IP是255.255.255.255的三层广播
• DHCP Discover包含的内容有:客户机的MAC地址和主机名
• DHCP Discover是UDP数据包
第二步:
DHCP服务器收到DHCP Discover后都会作出回应,根据客户端的MAC地址和自身的配置,有三种IP分配方式:
• 若日志文件中有记录该MAC之前曾租用过某IP,且当前无人使用,则分配此IP
• 若配置中有规定该MAC租用固定IP,则分配此IP
• 若都没有,则从地址池中随机选取(有多个sunet时,它分配的一定是同一个局域网网段的那个)
• 可以通过ARP广播的方式确认该IP地址是否被使用
选取IP后将此IP标记,广播一个DHCP Offer包:
• DHCP Offer包中包含:客户机的MAC地址,提供的合法IP,子网掩码,组约期限,服务器标识等参数
• 此时客户机还没有IP地址,所以是以广播的方式发送。
第三步:
客户端收到DHCP Offer后,选择一个Offer包(即一个网络租约信息):
• 如果该局域网内有多个DHCP服务器,则客户端会选择它收到的第一个offer包
然后客户端会给该局域网中的所有主机发送广播包(DHCP Request):
• 告知自己已接受的出租IP和DHCP服务器的IP。
第四步:
服务器收到Request包,服务器和客户机确认租约关系。
服务器回送dhcp ack/dhcp nack包、告知期限、开始租约计时。
( 以dhcp ack包向客户机广播出去,当客户机确认了收之后,就配置自己的IP地址(和相关网络参数),完成初始化.)
如果遇到客户端脱机或租约到期,则断线。
总结来看:

4.Linux中与DHCP相关的文件、端口
4.1 DHCP Server端
(1) /etc/dhcp/dhcpd.conf
DHCP服务器的主要配置文件
(2) /usr/sbin/dhcpd
启动整个DHCP daemon的脚本文件
(3) /var/lib/dhcpd/dhcpd.leases
记录着服务器与客户端租约建立的起始日与到期日
大致看看其中的内容:
# cat dhcpd.leases # The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
lease 172.16.10.2 {
starts 3 2009/11/25 07:09:30;
ends 3 2009/11/25 09:09:30;
cltt 3 2009/11/25 07:09:30;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:ef:31:b6;
}
(4) /var/log/messages、 /var/log/boot.log
查看dhcp相关日志的两个文件
4.2 DHCP Client端
(1) /var/lib/dhclient/dhclient-eth0.leases
记录着某网卡与dhcp服务器租约建立的起始日与到期日
大致看看其中的内容:
# cat /var/lib/dhclient/dhclient-eth0.leases
lease {
interface "eth0";
fixed-address 10.0.10.191;
filename "pxelinux.0";
option subnet-mask 255.255.0.0;
option dhcp-lease-time 6000;
option routers 10.0.0.254;
option dhcp-message-type 5;
option dhcp-server-identifier 10.0.0.254;
option domain-name-servers 114.114.114.114,112.124.47.27;
renew 2 2016/06/21 16:10:06;
rebind 2 2016/06/21 16:54:56;
expire 2 2016/06/21 17:07:26;
}
4.3 DHCP端口
(1)Server端:67
(2)Client端:68
5. DHCP Relay(DHCP中继代理)
如果DHCP Server和DHCP Client在同一个物理网段,则直接由这台Server给Client分配IP;
如果不在同一个物理网段,则需要DHCP Relay。Client借由DHCP中继代理服务器寻找到DHCP Server。
避免了在各个网段都设置一台DHCP Server以节约设备成本。


[DHCP服务]——DHCP详解的更多相关文章
- 协议分析 - DHCP协议解码详解
协议分析 - DHCP协议解码详解 [DHCP协议简介] DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...
- 2-4、nginx特性及基础概念-nginx web服务配置详解
Nginx Nginx:engine X 调用了libevent:高性能的网络库 epoll():基于事件驱动event的网络库文件 Nginx的特性: 模块化设计.较好扩展性(不支持模块动态装卸载, ...
- Linux:SSH服务配置文件详解
SSH服务配置文件详解 SSH客户端配置文件 /etc/ssh/ssh——config 配置文件概要 Host * #选项“Host”只对能够匹配后面字串的计算机有效.“*”表示所有的计算机. For ...
- Nginx服务优化详解
Nginx服务优化详解 1.隐藏Nginx版本信息 编辑主配置文件nginx.conf,在http标签中添加代码 server_tokens off;来隐藏软件版本号. 2.更改Nginx服务启动的默 ...
- (转)Nginx静态服务配置---详解root和alias指令
Nginx静态服务配置---详解root和alias指令 原文:https://www.jianshu.com/p/4be0d5882ec5 静态文件 Nginx以其高性能著称,常用与做前端反向代理服 ...
- Nginx静态服务配置---详解root和alias指令
Nginx静态服务配置---详解root和alias指令 静态文件 Nginx以其高性能著称,常用与做前端反向代理服务器.同时nginx也是一个高性能的静态文件服务器.通常都会把应用的静态文件使用ng ...
- DHCP安装配置详解
DHCP基于客户/服务器模式.当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端提供自动分配IP地址的服务. 当然高级的DHCP,不光只是分配地址这么简单,今天我们 ...
- 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解
注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明.可以对照这些命令详解配置nginx -rtmp服务 一.nginx ...
- rsync 服务部署详解
第1章 rsync 软件介绍 1.1 什么是rsync rsync 是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具. http://www.samba.org/ft ...
随机推荐
- 【MySQL】数据导出导入成CSV格式
一.自动输出中文字符集 select * from db into outfile 'test.csv' CHARACTER SET gbk fields terminated by ',' opti ...
- jquery ajax 保存讲解
jquery ajax 参数传递与数据保存实例是一款适合于初学者用的,首先我们是讲一下关于如何利用ajax +php进行数据操作,然后再详细的介绍关于jquery ajax的帮助说明. jquery ...
- IPHONE 字体加粗
UIFONT 没有字体加精参数,但可以修发,字体名,达到加粗的效果正常:Helvetica加粗"Helvetica-Bold""TimesNewRomanPS-BoldM ...
- Windows Server 2003 增加远程用户个数
1.进入“开始”-“控制面板”-“添加或删除程序”如下图: 2.点击“添加/删除windows组件(A)”,进入如下图 如果该服务器没有安装“终端服务器”和“终端服务器授权”组件的话,则需要使用系统光 ...
- webservice安全性之 SoapHeader自定义身份验证
相信很多开发者都用过WebService来实现程序的面向服务,本文主要介绍WebService的身份识别实现方式,当然本文会提供一个不是很完善的例子,权当抱砖引玉了. 首先我们来介绍webservic ...
- 新建一个DataTable如何手动给其添加多条数据!
早晨起来,想起昨天利用winform做类似于sqlserver数据库导入数据功能的时候,用到了新建一个DataTable手动给其添加多条数据,平时用不到,需要的时候想不起来了,这次不妨把他记下来.以下 ...
- c#操作Zip压缩文件
SharpZipLib 文件/文件夹压缩 一.ZipFile ZipFile类用于选择文件或文件夹进行压缩生成压缩包. 常用属性: 属性 说明 Count 文件数目(注意是在ComitUpdat之后才 ...
- js----全局变量和局部变量部分讲解
以此文作为自己学习的一个总结. 关于全局变量和局部变量的一句简单的定义:在函数外声明的变量都为全局变量,在函数内声明的为局部变量. 一.局部变量和全局变量重名会覆盖全局变量 var a = 1; fu ...
- Material Design:CollapsingToolbarLayout
activity_main.xml: <android.support.design.widget.CoordinatorLayout xmlns:android="http://sc ...
- 9)Java内部类(Inner Class)
内部类:不可以有静态数据,静态方法或者又一个静态内部类 内部类的优点:隐藏类的细节,内部类可以声明为私有.内部类可以访问外部类的对象(包括private) 静态内部类:可以有静态数据,静 ...