使用Wireshark追踪分析PVS PXE启动数据包

使用Wireshark追踪分析PVS PXE启动数据包,第1张

使用Wireshark追踪分析PVSPXE启动数据包

CitrixProvisioningService使用PXE技术为用户启动虚拟机。

首先,虚拟机默认必须设置为网卡启动。网卡通过PXEbootROM在网络中发送一个FIND帧,这个数据帧包含自己的MAC网卡地址。DHCP服务器收到这个数据帧后,会向网卡返回一个数据包,包括DHCP分配的IP地址、子网掩码、网关等信息。网卡收到服务器分配的参数后,会通过TFTP向服务器发起连接请求,从而与服务器建立连接,开始数据通信。

客户端与TFTP服务器建立通信后,会从DHCP服务器上配置的67个选项中下载启动镜像文件并启动,然后通过启动镜像文件连接到CitrixprovisioningServiceserver,实际启动虚拟机。

PVS的PXE启动过程可以分为四个阶段:

  • DHCP–开始通过PXE下载启动文件

  • 登录PVS服务器

    流预BniStack

    确定BNIStack驱动程序是否启动

    测试环境是:

    PVS服务器:10.1.1.1

    设备

    第一阶段:DHCP–通过PXE启动下载引导文件

    描述:

  • 1.1DHCP发现

  • 目标设备在物理子网上发送广播,以查找可用的服务器。网络管理员可以配置本地路由,将DHCP数据包转发到另一个子网上的DHCP服务器。目标设备实现生成目的地址为255.255.255.255或子网广播地址的UDP数据包。

  • 1.2DHCP报价

  • 当DHCP服务器收到来自目标设备的IP租用请求时,它将提供IP租用。DHCP为目标设备保留一个IP地址,然后通过网络向目标设备单播一个DHCPOFFER消息。该消息包含目标设备的MAC地址、服务器提供的IP地址、子网掩码、租期和提供IP的DHCP服务器的IP。

    服务器根据CHADDR字段中指定的目标设备的硬件地址来检查配置。此处的服务器10.1.1.1在YIADDR字段中指定了IP地址。

  • 1.3DHCP请求

  • 当目标设备PC收到IP租用提议时,它必须告诉所有其他DHCP服务器它已经接受了租用提议。因此,目标设备将发送一个DHCPREQUEST消息,其中包含提供租约的服务器的IP。当其他DHCP服务器收到此消息时,它们将撤销可能已经提供给目标设备的所有租约。然后,他们将曾经为目标设备保留的地址放回可用地址池,以便将该地址分配给其他计算机。任意数量的DHCP服务器可以响应同一个IP租用请求,但是每个目标设备网卡只能接受一个租用请求。

  • 1.4DHCP确认

  • 当DHCP服务器收到来自目标设备的请求消息时,它开始配置过程的最后阶段。响应阶段包括向目标设备发送DHCPACK。该包包含租赁期限和目标设备可能请求的所有其他配置信息。此时,TCP/IP配置过程完成。

    描述:

  • 1.1地址解析(ARP)

  • 当目标设备获得IP地址后,会通过地址解析协议查询DHCP服务器的MAC地址,保证通信的顺畅。这是因为在TCP/IP协议中,规定了一个局域网中的设备必须知道彼此的MAC地址,否则不能直接通信。图中显示目标设备广播了一个数据包,它告诉我们谁是10.1.1.1。

  • 1.2地址解析(ARP)

  • DHCP服务器收到这个包后, 发现是10.1.1.1,于是在响应包中填入自己的MAC地址,发送到目标设备的MAC地址。内容10.1.1.1的MAC地址是32:AF:85:D8:16:Be。

  • 1.3DHCP请求

  • 目标设备再次发起DHCP请求,根据我们正在配置的DHCP选项,找到我们填写的IP地址,也就是PVS服务器的IP地址。

  • 1.4DHCP确认

  • DHCP返回一个应答数据包。

  • 1.5地址解析(ARP)

  • 目标设备发起地址解析,解析TFTP服务器的MAC地址。这里,DHCP和TFTP服务器是一台服务器。

  • 1.6地址解析(ARP)

  • PVS服务器返回自己的响应MAC包。在这里,DHCP和PVS服务器是一个服务器。

    描述:

  • 1.1TFTP读取请求(TFTP)

  • 目标设备向TFTP服务器发送读请求(RRQ)报文,该报文与PVS服务器角色相同,包含文件名和传输方式。如图,数据包的内容是用TFTP服务器上的引导文件ARDBP32.bin读取数据文件,后面是传输方式。

  • 1.2TFTP转会(TFTP)

  • TFTP服务器向目标设备发送带编号的数据包,其编号当前为1。

  • 1.3确认确认(TFTP)

  • 目的主机用编号的ACK数据包响应所有数据包。

    从下面的数据包中我们可以看到,TFTP连接已经建立,TFTP传输已经开始。

    第二阶段:登录到PVS服务器

    描述:

  • 2.1TFTP

  • 在这里你会看到TFTP传播终结的迹象。在第142个数据包时,last被添加到TFTP发送的数据包中,表示这是发送的最后一个TFTP数据包。

  • 2.2确认(TFTP)

  • 在143数据包中,目标设备返回了ACK确认数据包。你将知道传输已经被验证,并且由服务器发送的最后的TFTP文本已经被正确地验证。整个TFTP传输过程结束。

    描述:

  • 2.1登录PVS(UDP)

  • 一旦下载了引导文件,根据引导文件中的配置信息,目标设备会不断向PVS服务器发送一系列数据包,尝试请求源数据,同时根据配置信息尝试登录服务器。

    描述:

  • 2.1地址解析(ARP)

  • 当登录过程完成时,目标设备发送的流服务器的IP完成一个ARP请求。查找流服务器的MAC地址信息。这里,StreamingServer和PVSserver处于同一个服务器角色。

  • 2.2流量传输(UDP)

  • 如图,登录服务器后,服务器和目标设备之间的流量继续使用之前的源端口和目标端口进行数据传输。

    第三阶段:StreamingPre-BniStack(预启动)

    描述:

  • 3.1处理流量(UDP)

  • 这里继续用UNDI驱动处理流量。(通用网络驱动程序接口),并将分发一对一的数据包。

    以上很不清楚,我也不知道,就按我的理解解释一下吧。可能大家都知道,我们在安装 *** 作系统的时候,按照流程其实有两个阶段,一个是预安装阶段,一个是正式安装阶段。

    预安装阶段,在这个阶段,实际上并没有安装 *** 作系统。我们需要对安装 *** 作系统的环境做一些配置,比如选择我们需要安装的 *** 作系统的语言、输入法、版本、权限等。同样,在这个阶段,PVS不是在启动 *** 作系统,而是在准备启动 *** 作系统之前的一些准备工作,使用UNDI驱动程序。在上面的比喻中,选择输入法、版本等的界面。安装 *** 作系统的时候其实就是WindowsPE的界面,这是微软专门为正版域安装阶段准备的微界面。UNDI驱动的功能和WindowsPE类似。

    在此期间,UNDI主要识别目标设备的显示窗口,并加载相应的底层驱动程序。

    这一步,问题往往和我们的网卡有关系。我们在部署的时候会卸载并关闭网卡的大数据包,以避免在UNDI驱动和PVS服务器大量交互的过程中产生冲突。

    第四阶段:DeterminingifBNIStackDriverisup(正式启动)

    描述:

  • 4.1官方传输 *** 作系统(UDP)

  • 一旦你从UNDI驱动到bnistack(PVS目标设备的主驱动),目标设备就会开始要求更多的数据。这个传输过程将一直持续到登录界面窗口。如上所述,安装 *** 作系统是类似的。这里, *** 作系统正式启动。

    注意上图中目标设备的IP地址请求包出现的地方,是UNDI驱动到BNIStack驱动的标志。

    这一时期的问题通常是由相关驱动或者服务和底层驱动引起的,比如XenTools和VMware工具或者反病毒产品,可能会导致BNIStack之间的冲突。

    鉴于CitrixProvisioning服务的实现需要配置DHCP服务器,虚拟机启动时发起的广播包会影响其他终端。如果生产环境中的其他PC被意外设置为使用网卡启动,它们也会进入PVS环境。因此,CitrixPVS是在隔离环境中实施的。

    附上网络上最后一个PVS启动流程图:

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/778849.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存