zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    kubernetes概述
    pygame--图形模块
    iPhone 上你可能还不知道的小技巧
    使用 JdbcTemplate 查询数据时报错:列名无效(已解决)
    【分享】怎样做架构师?
    关于 oh-my-zsh 插件的使用(以 Sublime Text 为例)
    VI/VIM 无法使用系统剪贴板(clipboard)?(Ubuntu&Mac OS X已解决)
    Ubuntu 下 Sublime 无法输入中文?(已解决)
    VIM 的帮助文档在哪里?看这里。
    推荐一款好用的文件/文件夹对比工具 —— Beyond Compare
  • 原文地址:https://www.cnblogs.com/ssh-html/p/10369664.html
Copyright © 2011-2022 走看看