无盘启动协议RPL和PXE分析。

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




RPL协议分析
基于rpl的无盘站在RPL ROM的引导过程并不是基于IP,因此无论最终启动的Novell还是Windows,无盘站在下载服务器上的启动文件到内存中以前都不是基于IP的。也就是说,只有无盘站下载了服务器上的启动文件并将系统控制权交给这些启动文件以后,无盘站才会利用启动文件中的网卡驱动和tcp/ip协议栈和服务器建立基于IP的通信(如果它们最终使用IP进行通讯)。
rpl可以理解为一个三层协议,在以太网上使用802.3封装,其802.2头部的DSAP和SSAP都是FC。其目标MAC地址为多播地址030002000000。
使用基于rpl的无盘站在最初的引导过程中,会发出一个FIND帧,包含它自己的MAC地址。服务器收到这个多播数据帧以后,检查某个类似于远程启动数据库是否存在该无盘站的MAC地址,如果存在,服务器回应一个rpl帧,包含服务器的网卡MAC。通过这一步,无盘站和服务器互相知道了对方的存在并知道如何进行二层通信。下一步,无盘站就可以通过rpl协议请求下载文件,服务器可以将启动文件传给无盘站。在传送完成后,无盘将系统控制权交给这些启动文件。再下面,这些启动文件的启动就类似于有盘站的启动了。
PXE协议分析
基于PXE无盘启动的实质是BootP(或者DHCP)加上TFTP(Trivial FTP),前者是用来向服务器获取IP地址和无盘的启动镜像文件名和在服务器上的存放路径,后者是用来下载启动镜像到无盘站内存中,然后就能启动了。
BootP是基于IP协议,使用UDP(BootP服务器使用67端口,BootP客户端(即无盘站)使用68端口)。在无盘站第一次启动时,它会发出一个广播(二层源地址为本机网卡MAC,目标地址为ffffffffffff),三层源IP地址为0.0.0.0(因为它还没有获取到IP地址),目标地址为255.255.255.255。监听67端口的BootP服务器收到此广播后,单播一个回复,二层源地址为BootP服务器网卡的MAC,目标地址为无盘站网卡的MAC,三层源IP地址为BootP服务器的网卡IP地址,目标IP地址为BootP服务器分配给该无盘的IP地址,此外,在BootP服务器的回复中还包含一个字端,存放无盘的启动镜像文件名和具体在服务器上的存放路径。无盘站收到此分组,就得到了相应的IP地址和应该下载的启动镜像文件名。
无盘站获取IP地址以后,它就启动一个TFTP进程向BootP服务器下载上一段所得到的启动镜像文件。TFTP类似与FTP,但是它是基于UDP,端口号是69。等到无盘站把启动镜像文件都下载到内存中后,就可以把系统控制权交给启动镜像文件,无盘站就可以顺利启动了。
(1个打分, 平均:5.00 / 5)

雁过留声

“无盘启动协议RPL和PXE分析。”有1个回复

  1. snowweihua 于 2010-03-02 4:02 下午

    一直有用后面一种启动方式,但不知道竟然还有一个专用协议名字,学习了!