DHCP和PXE

  继续学习,Let's go!DHCP和PXE都是什么呢?如果非科班出身,可能一脸懵逼,好多东西需要去学习了,真的,继续学吧,付出不一定会有回报,不付出肯定就是等死了,呵呵!

一、DHCP

真正需要手动配置一台机器的网络IP时,一定不是直接使用命令配置的,而是放在一个配置文件中。不同系统的配置文件个格式不同,但是无非就是CIRD、子网掩码、广播地址和网关地址。但是,有DHCP,就是动态主机配置协议,自动配置机器的IP。

1、DHCP介绍

动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:

(1)用于内部网或网络服务供应商自动分配IP地址给用户

(2)用于内部网管理员作为对所有计算机作中央管理的手段

动态主机设置协议(DHCP)是一种使网络管理员能够集中管理和自动分配IP网络地址的通信协议。在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。

DHCP使用了租约的概念,或称为计算机IP地址的有效期。租用时间是不定的,主要取决于用户在某地连接Internet需要多久,这对于教育行业和其它用户频繁改变的环境是很实用的。通过较短的租期,DHCP能够在一个计算机比可用IP地址多的环境中动态地重新配置网络。DHCP支持为计算机分配静态地址,如需要永久性IP地址的Web服务器。

DHCP和另一个网络IP管理协议BOOTP类似。当前两种配置管理协议都得到了普遍使用,其中DHCP更为先进。某些操作系统,如Windows NT/2000,都带有DHCP服务器。DHCP或BOOTP客户端是装在计算机中的一个程序,这样就可以对其进行配置操作。

协议结构
8 bits16 bits24 bits32 bits
Op Htype Hlen Hops
Xid
Secs Flags
Ciaddr
Yiaddr
Siaddr
Giaddr
Chaddr (16 bytes)
Sname (64 bytes)
File (128 bytes
Option (variable)
  • Op:消息操作代码,既可以是引导请求(BOOTREQUEST)也可以是引导答复(BOOTREPLY)
  • Htype:硬件地址类型
  • Hlen:硬件地址长度
  • Xid:处理ID
  • Secs:从获取到IP地址或者续约过程开始到现在所消耗的时间
  • Flags:标记
  • Ciaddr:客户机IP地址
  • Yiaddr:“你的”(客户机)IP地址
  • Siaddr:在bootstrap中使用的下一台服务器的IP地址
  • Giaddr:用于导入的接替代理IP地址
  • Chaddr:客户机硬件
  • Sname:任意服务器主机名称,空终止符
  • File:DHCP发现协议中的引导文件名、空终止符、属名或者空,DHCP供应协议中的受限目录路径名
  • Options:可选参数字段。参考定义选择列表中的选择文件

2、DHCP工作方式

DHCP运行分为四个基本过程,分别为请求IP租约、提供IP租约、选择IP租约和确认IP租约

(1)DHCP发现(DISCOVER)

新来的机器使用IP地址0.0.0.0发送了一个广播包,目标IP地址为255.255.255.255,广播包封装了UDP,UDP 封装了BOOTP。其实DHCP是BOOTP的升级版,这个广播包的格式大致简化成如图:

(2)DHCP提供(OFFER)

如果一个网络管理员在网络里面配置了DHCP Server的话,他就相当于这些IP的管理员。他立刻能知道来了一个新人,因为这个新人带着MAC地址来添加到一个网络中,这个时候MAC地址就是他唯一的身份,只有MAC地址唯一,管理员才知道这个是个新人,需要租给他一个IP地址,这个过程我们称之为DHCP Server。(2)DHCP提供(OFFER)

DHCP Server格式就是这样子,里面有给新人的IP地址:

(3)DHCP请求(REQUEST)

如果有多台DHCP服务器,可能会收到多个IP地址,新人会选择其中的一个DHCP Offer,一般是最先到达的那个,并且会想网络发送一个DHCP Request广播数据包,包中包含客户端的MAC地址、接受的租约的IP地址、提供此租约的DHCP服务器地址,并告诉所有的DHCP服务器它将接受哪一台DHCP服务器提供的IP地址,并撤销他们提供的IP地址,以便提供给下一个IP请求租用者。具体格式大致是这个样子:

(4)DHCP确认(Acknowledge,ACK)

DHCP Server 接收到客户机DHCP Request之后,会广播返回给客户机一个DHCP ACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用信息和其他的配置信息都放入广播包中,发给客户机,具体格式大致是这个样子:

 

二、PXE(预启动执行环境)

1、PXE介绍

预启动执行环境Preboot eXecution EnvironmentPXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

2、PXE工作过程

(1)启动PXE客户端,第一步是通过DHCP协议告诉DHCP Server ,我刚来,一穷二白,啥都没有。DHCP Server便租给他一个IP地址,同时也给他PXE服务器地址、启动文件pxelinux.0   

(2)PXE客户端知道要去PXE服务器下载这个文件后,就可以初始化服务器,于是便开始下载,下载的时候使用TFTP协议。所以PXE服务器上,往往还需要一个TFTP服务器,PXE客户端向TFTP服务器请求下载这个文件。

(3)PXE客户端收到这个文件后,就开始指行这个文件。这个文件会指向PXE客户端,向TFTP服务器请求计算机的配置信息pxelinux.cfg。TFTP服务器会向PXE客户端一个配置信息文件,里面会说内核在哪里、initramfs在哪里。PXE客户端会请求这些文件。

(4)启动Linux内核,一旦启动了操作系统,以后就啥都好办了。

此篇的链接地址:https://time.geekbang.org/column/article/8015#previewimg

posted @ 2019-02-14 21:13  ssc在路上  阅读(1232)  评论(0编辑  收藏  举报