继续学习,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 bits 16 bits 24 bits 32 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

最新文章

  1. 将UIview描画成虚线等.
  2. B样条基函数(cubic spline basis)
  3. ie8兼容
  4. SQL Server 2012 数据库笔记
  5. .Net的后台服务技术有哪些?
  6. Linux安装Git
  7. 使用多线程完成Socket
  8. Customizing Zend Studio Using the Welcome Page
  9. monkeyrunner环境搭建
  10. QT 判断当前焦点是否在某控件上(使用hasFocus函数,毕竟QT是DIRECTUI,所以这个Focus到底代表了什么呢?)
  11. VMware Ubuntu 安装
  12. 同步中的四种锁synchronized、ReentrantLock、ReadWriteLock、StampedLock
  13. Linux网络配置(仅主机模式)
  14. 【mybatis深度历险系列】mybatis中的高级映射一对一、一对多、多对多
  15. IDEA与Eclipse
  16. Nuxt.js部署应用的方式
  17. C# 简单的反射机制实例
  18. jquery 如何获取有多个class名的元素
  19. jsonp 跨域1
  20. linux系统编程:setjmp和longjmp函数用法

热门文章

  1. Gerrit配置--用户配置
  2. 《Image-to-Image Translation with Conditional Adversarial Networks》论文笔记
  3. EF 6.0 The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value. c#中的时间
  4. 哈理工OJ P2320:OX
  5. (10)用css建立表单
  6. centos7开启路由转发
  7. JEECMSv9.3在金蝶Apusic中间件中无法找到首页的问题处理
  8. WebSphere中配置的数据源在Web应用中引用的写法
  9. 命名管道实现进程间通信--石头、剪刀、布游戏 分类: linux 2014-06-01 22:50 467人阅读 评论(0) 收藏
  10. 桥接模式和php实现