dhcp之网络服务学习路线

The Dynamic Host Configuration Protocol (DHCP) is a standardized network protocol used on Internet Protocol (IP) networks. The DHCP is controlled by a DHCP server that dynamically distributes network configuration parameters, such as IP addresses, for interfaces and services. A router or a residential gateway
can be enabled to act as a DHCP server. A DHCP server enables computers
to request IP addresses and networking parameters automatically,
reducing the need for a network administrator
or a user to configure these settings manually. In the absence of a
DHCP server, each computer or other device on the network needs to be
manually assigned to an IP address.

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC
2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP
Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP
failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。

DHCP

https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol


https://baike.baidu.com/item/DHCP/218195?fr=aladdin#4


https://tools.ietf.org/html/rfc951#section-6


http://network.51cto.com/art/201406/441752.htm

DHCP 工作原理

发现阶段:

即DHCP客户端寻找DHCP服务端的过程,对应于客户端发送DHCP Discovery,因为DHCP  
Server对应于DHCP客户端是未知的,所以DHCP 客户端发出的DHCP  
Discovery报文是广播包,源地址为0.0.0.0目的地址为255.255.255.255。网络上的所有支持TCP/IP的主机都会收到该DHCP
 Discovery报文,但是只有DHCP Server会响应该报文。

如果网络中存在多个DHCP Server,则多个DHCP Server均会回复该DHCP Discovery报文。

如果同一个vlan内没有DHCP Server,而该VlanIf配置了DHCP  
Relay功能,则该Vlanif即为DHCP中继,DHCP中继会将该DHCP报文的源IP地址修改为该Vlanif的IP地址,而目的地址则为DHCP
 Relay配置的DHCP Server的IP地址。同时修改DHCP报文中,giaddress为VlanIf的IP地址。并以单播将DHCP  
Discovery发送到DHCP Server端。

DHCP Server 提供阶段:

DHCP Server提供阶段,即为DHCP Server响应DHCP Discovery所发的DHCP Offer阶段

DHCP Server收到DHCP  
Discovery报文后,解析该报文请求IP地址所属的Subnet。并从dhcpd.conf文件中与之匹配的subnet中取出一个可用的IP地址(从可用地址段选择一个IP地址后,首先发送ICMP报文来ping该IP地址,如果收到该IP地址的ICMP报文,则抛弃该IP地址,重新选择IP地址继续进行ICMP报文测试,直到找到一个网络中没有人使用的IP地址,用以达到防治动态分配的IP地址与网络中其他设备IP地址冲突,这个IP地址冲突检测机制,可配置),设置在DHCP
 
Discovery报文中yiaddress字段中,表示为该客户端分配的IP地址,并且为该Lease设置该Subnet配置的Option,例如默认leases租期,最大租期,router等信息。

DHCP从地址池中选择IP地址,以如下优先级进行选择:

1、当前已经存在的Ip Mac的对应关系

2、Client以前的IP地址

3、读取Discovery报文中的Requested Ip Address Option的值,如果存在并且IP地址可用

4、从配置的Subnet中选择IP地址:

DHCP Server解析DHCP Discovery请求的IP所属的Subnet,首先看该DHCP  
Discovery报文中giaddress是否有DHCP  
Relay,如果有,则从giaddress所述的subnet中可用IP地址段中获取,并分配IP。如果giaddress没有IP地址,则从该DHCP
 Server绑定的接口的IP地址所属的网段分配IP地址。

DHCP Client 选择阶段:

DHCP Client收到若干个DHCP Server响应的DHCP Offer报文后,选择其中一个DHCP Server作为目标DHCP  Server。选择策略通常为选择第一个响应的DHCP Offer报文所属的DHCP Server。

然后以广播方式回答一个DHCP Request报文,该报文中包含向目标DHCP请求的IP地址等信息。之所以是以广播方式发出的,是为了通知其他DHCP  Server自己将选择该DHCP Server所提供的IP地址。

DHCP Server确认阶段:

当DHCP Server收到DHCP Client发送的DHCP Request后,确认要为该DHCP
Client提供的IP地址后,便想该DHCP  Client响应一个包含该IP地址以及其他Option的报文,来告诉DHCP
Client可以使用该IP地址了。然后DHCP  Client即可以将该IP地址与网卡绑定。另外其他DHCP
Server都将收回自己之前为DHCP Client提供的IP地址。

DHCP Client重新登录网络:

当DHCP Client重新登录后,发送一个以包含之前DHCP Server分配的IP地址信息的DHCP Request报文,当DHCP  Server收到该请求后,会尝试让DHCP客户端继续使用该IP地址。并回答一个ACK报文。

但是如果该IP地址无法再次分配给该DHCP Client后,DHCP回复一个NAK报文,当DHCP Client收到该NAK报文后,会重新发送DHCP  Discovery报文来重新获取IP地址。

DHCP Client更新租约:

DHCP获取到的IP地址都有一个租约,租约过期后,DHCP Server将回收该IP地址,所以如果DHCP  
Client如果想继续使用该IP地址,则必须更新器租约。更新的方式就是,当当前租约期限过了一半后,DHCP Client都会发送DHCP  
Renew报文来续约租期。

时间: 2024-11-09 02:43:16

dhcp之网络服务学习路线的相关文章

Linux网络服务学习之路——DNS域名系统服务之基础功能实验

DNS服务搭建 上一节讲了关于DNS的介绍.域名的解析过程以及DNS软件相关的信息.(上一节请点击这里) 这节开始讲关于DNS的实验搭建.这次是DNS基本功能的实验搭建.每次进行实验搭建前要进行规划和防护关闭的检查.先关闭服务器和客户机上的防火墙和SELinux,否则会影响到正常实验. 环境准备:一台DNS服务器.一台测试机.一台网站服务(网站服务器可以不用,但是为了效果,这里用三台.其实两台就可以,测的时候客户端拿命令测一下就可以了,文末有演示,这样两台三台都能测) 接下来梳理一下实验的步骤:

【免费下载】全套最新 4.Linux网络服务管理 视频教程+教学资料+学习课件+源代码+软件开发工具

4.Linux网络服务管理视频教程 网盘地址: 链接:https://pan.baidu.com/s/1fI-9MOiD8Q6sJIsaqsLaEw 提取码:44yi 加公众号 获取更多新教程 教程目录大纲 ./4.Linux服务管理 └── Linux网络服务视频 ├── 001_Linux云计算-网络服务-网络服务基础 │?? ├── 1.资料 │?? │?? ├── 001_-Linux云计算-网络服务-网络服务概述.pdf │?? │?? ├── 002_-Linux云计算-网络服务-网

Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等

---恢复内容开始--- extends:http://blog.csdn.net/h7870181/article/details/12505883 Google Maps API 网络服务 官网地址 : https://developers.google.com/maps/documentation/webservices/?hl=zh-cn 其实就是一些接口,供我们调用,如: 1.根据地址获取经纬度 http://maps.google.com/maps/api/geocode/json?

(四)跟我一起玩Linux网络服务:DHCP服务配置之中继代理

继第三部分的DHCP服务器的设置成功,我们来做一个中继代理服务器的配置吧. 我们的虚拟机结构如图: 具体参考: (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf./var/named)设置实现和解释 根据第三部分,我们在vm1上面部署了DHCP服务器,我们就在vm2上面配置中继服务,具体内容如下: 1.先在vm1下面同样配置DHCP的文件上多配置一个subnet 1 ddns-update-style interim; 2 ignore client-u

linux网络编程学习笔记之六 -----I/O多路复用服务端

多进程和多线程的目的是在于最大限度地利用CPU资源,当某个进程不需要占用太多CPU资源,而是需要I/O资源时,可以采用I/O多路复用,基本思路是让内核把进程挂起,直到有I/O事件发生时,再把控制返回给程序.这种事件驱动模型的高效之处在于,省去了进程和线程上下文切换的开销.整个程序运行在单一的进程上下文中,所有的逻辑流共享整个进程的地址空间.缺点是,编码复杂,而且随着每个逻辑流并发粒度的减小,编码复杂度会继续上升. I/O多路复用典型应用场合(摘自UNP6.1) select的模型就是这样一个实现

linux网络编程学习笔记之四 -----多线程并发服务端

相对于使用进程实现并发,用线程的实现更加轻量.每个线程都是独立的逻辑流.线程是CPU上独立调度运行的最小单位,而进程是资源分配的单位.当然这是在微内核的操作系统上说的,简言之这种操作系统的内核是只提供最基本的OS服务,更多参看点击打开链接 每个线程有它自己的线程上下文,包括一个唯一的线程ID(linux上实现为unsigned long),栈,栈指针,程序计数器.通用目的寄存器和条件码,还有自己的信号掩码和优先级.同一个进程里的线程共享这个进程的整个虚拟地址空间,包括可执行的程序文本.程序的全局

Server 2012之DHCP为不同网段分配网络服务

DHCP为不同网段分配网络服务 DHCP的基本介绍: DHCP(Dynamic Host Configuration Protocal)动态主机配置协议.作用就是为主机动态的分配IP地址. 下面我们将做一个实验,模拟一台DHCP服务器同时为企业内多个部门,不同的网段分配网络.我们的实验环境为windows server2012 R2,我们将准备三台机器,server01 .server02 .server03 注意这个实验中我将三台机器全部处于域环境中.Server01 为 域控制器,其他两台均

Linux网络服务02——DHCP原理与配置

Linux网络服务02--DHCP原理与配置 一.DHCP服务概述 1.DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 DHCP是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议. 使用DHCP可以减少管理员的工作量,避免IP地址冲突,当网络更改IP地址网段时不需要再重新配置每个用户的IP地址,提高了IP地址的利用率,方便客户端的配置. 2.可分配的地址信息主要包括: 网卡的IP地址.

《metasploit渗透测试魔鬼训练营》学习笔记第五章--网络服务渗透攻击

三.网络服务渗透攻击 3.1 内存攻防技术 3.1.1 缓冲区溢出漏洞机理 缓冲区溢出是程序由于缺乏对缓冲区的边界条件检查而引起的一种异常行为. 一般根据缓冲区溢出的内存位置不同,将缓冲区溢出分为栈溢出和堆溢出. 3.1.2 栈溢出利用原理 栈溢出发生在向栈中写数据时,当数据长度超过栈分配的空间时,就会造成溢出. ①覆盖函数返回地址利用方式 程序一般在执行函数时会把该函数返回地址和函数的调用参数,局部变量一起保存在栈中,这就给了攻击者溢出栈缓冲区从而达到修改函数返回地址的机会. 由于程序每次运行