虚拟xen

xen  时间:2021-01-06  阅读:()

GuestOS安装指南与基于xen的隐蔽通道配置Version0Revision128th,Apr,2010DraftContact:bareshift@gmail.
com(editor)qingnishen@ss.
pku.
edu.
cn(advisor)WorkInProgressThisdocumentisanintermediatedraftforcommentonlyandissubjecttochangewithoutnotice.
Readersshouldnotdesignproductsbasedonthisdocument.
TVGCONFIDENTIALCopyrightTVGinPekingUniversity2007-2017可信虚拟化课题组文档计划Version0Revision01DraftTVGCONFIDENTIALCopyright2008TrustedVirtualizationGroup,Incorporated.
DisclaimerTHISSPECIFICATIONISPROVIDED"ASIS"WITHNOWARRANTIESWHATSOEVER,INCLUDINGANYWARRANTYOFMERCHANTABILITY,NONINFRINGEMENT,FITNESSFORANYPARTICULARPURPOSE,ORANYWARRANTYOTHERWISEARISINGOUTOFANYPROPOSAL,SPECIFICATIONORSAMPLE.
Withoutlimitation,TCGdisclaimsallliability,includingliabilityforinfringementofanyproprietaryrights,relatingtouseofinformationinthisspecificationandtotheimplementationofthisspecification,andTCGdisclaimsallliabilityforcostofprocurementofsubstitutegoodsorservices,lostprofits,lossofuse,lossofdataoranyincidental,consequential,direct,indirect,orspecialdamages,whetherundercontract,tort,warrantyorotherwise,arisinginanywayoutofuseorrelianceuponthisspecificationoranyinformationherein.
Nolicense,expressorimplied,byestoppelsorotherwise,toanyTVGorTVGmemberintellectualpropertyrightsisgrantedherein.
ExceptthatalicenseisherebygrantedbyTVGtocopyandreproducethisspecificationforinternaluseonly.
ContacttheTrustedComputingGroupatwww.
trustedcomputinggroup.
orgforinformationonspecificationlicensingthroughmembershipagreements.
Anymarksandbrandscontainedhereinarethepropertyoftheirrespectiveowners.
可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftTVGCONFIDENTIALRevisionHistoryVersionCommentTableofContents可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftTVGCONFIDENTIAL1ScopeandAudience.
12准备环境.
22.
1RHEL的安装.
22.
2ftp的配置.
22.
3CentOS的准备32.
4网络环境的配置.
33GuestOS的安装.
53.
1磁盘映像文件的准备53.
2获知本地ip.
53.
3开始半虚拟安装.
53.
4复制GuestOS.
153.
5创建和陷入domU154隐蔽通道场景的建立.
174.
1本隐蔽通道原理.
17模块的加载17内存映射的建立.
17缓冲区的结构18虚拟设备的操作函数.
18写操作18读操作18同步.
19模块的卸载194.
2源程序的获取194.
3编译与装载.
204.
4写入和读取.
204.
5查看信息205存在的问题.
215.
1容易出现内核错误215.
2容易陷入假死状态216参考资料.
22可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage1of22TVGCONFIDENTIAL1ScopeandAudience本文档主要以centos为例介绍如何安装GuestOS,并介绍如何在虚拟环境下配置隐蔽通道场景.
如果在vmware中,GuestOS的速度太慢,建议在物理平台上搭建xen系统.
测试平台的配置如下:VMware7.
0.
0HardwarePlatformx86_32HostOSRHEL5.
4HostOSKernelVersion2.
6.
18GuestOSGccVersion4.
1.
2GuestOSCentOS5.
3可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage2of22TVGCONFIDENTIAL2准备环境2.
1RHEL的安装RHEL的安装文件可以从https://www.
redhat.
com/apps/download下载.
在vmware7.
0上安装RHEL时,不要选择从映像文件安装,那样vmware会屏蔽掉xen的安装,自动无人值守的安装完RHEL.
我们需要选择以后安装操作系统.
RHEL的安装过程中,在软件包选择期间选择virtualization.
这样就会安装xen系统.
另外需要自定义安装ftp服务,以供ftp运行.
2.
2ftp的配置在安装CentOS前,我们需要配置ftp服务器,因为半虚拟安装只能通过网络而无法通过本地数据.
首先修改/etc/passwd文件中ftp的登陆路径:#vi/etc/passwd可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage3of22TVGCONFIDENTIAL在服务管理中开启vsftpd:2.
3CentOS的准备CentOS可以由http://mirror.
centos.
org/centos/5/isos/i386/获得因为RHEL在xen环境下不支持vmwaretools,我们需要将CentOS由iso导入RHEL系统.
则CentOS的安装光盘会位于/media/centos5.
3xxx2.
4网络环境的配置由于我们是从ftp安装GuestOS,因此需要确保桥接脚本打开.
#cd/etc/xen#vixend-config.
sxp可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage4of22TVGCONFIDENTIAL可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage5of22TVGCONFIDENTIAL3GuestOS的安装3.
1磁盘映像文件的准备创建一个大小为4G的映像文件:3.
2获知本地ip记录下本机的ip地址,以供安装命令输入.
注意,不能使用127.
0.
0.
1,因为桥接后的domU地址必然与dom0不同.
3.
3开始半虚拟安装.
这里ftp地址请输入刚才记下的本地ip.
需要注意的是在vmware里在xen下安装GuestOS会非常慢,请耐心等待.
语言只能选择English:[root@linux~]#ddif=/dev/zeroof=/disk2/xen/centos5.
imgbs=1Mcount=4096[root@linux~]#chcon-txen_image_t/disk2/xen/centos5.
img[root@linux~]#ifconfig[root@linux~]#virt-install-ncentos5_virt-r256>-f/disk2/xen/centos5.
img--nographics>-lftp://192.
168.
x.
x/media/centos5.
3xxx#-n:后面接你的domain-U的名称,这个名称的配置文件会被主动建立在/etc/xen底下#-r:后面接要给这个domain-U的内存容量,目前至少需要256MB才能够执行#-f:后面接的就是要给domain-U的映像文件#--nographics:不使用图形界面来安装#-l:后面接安装服务器的来源.
安装服务器的写法为:#NFS时:nfs:主机的IP:可以安装的目录#WWW时:http://主机的IP/实际的/完整目录#FTP时:ftp://主机的IP/实际的完整目录可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage6of22TVGCONFIDENTIAL这里我们只需要ipv4,并且打开DHCP,有关ipv6的选项都可以不选:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage7of22TVGCONFIDENTIAL警告信息,确认格式化:使用tab键进行切换,用enter确认.
用costomlayout自定义磁盘分割:新建两个分卷:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage8of22TVGCONFIDENTIAL可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage9of22TVGCONFIDENTIAL确认:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage10of22TVGCONFIDENTIAL选择grup作为bootloader:控制台的驱动设备,默认:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage11of22TVGCONFIDENTIAL我们不需要grub密码,留空:Bootloader配置,默认:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage12of22TVGCONFIDENTIAL把bootloader安装在MBR:网络配置中也可以去掉ipv6的支持.
其他选项默认:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage13of22TVGCONFIDENTIAL时区任意选择,root密码需要设置:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage14of22TVGCONFIDENTIAL安装包,不能选择gnome/KDE等图形界面.
另外这里需要进入自定义设置,安装源文件支持,gcc开发环境,vi:需要等待很久,重启后登陆:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage15of22TVGCONFIDENTIAL我们暂且关闭这个domU,来复制映像文件创建第二个GuestOS.
3.
4复制GuestOS首先,复制映像文件.
然后,复制和修改配置文件.
修改其中的domU名称,uuid,映像文件路径,mac地址3.
5创建和陷入domU[root@linux~]#poweroff[root@linux~]#cd/etc/xen[root@linux~]#cpcentos-virtcentos2-virt[root@linux~]#vicentos2-virt[root@linux~]#cd/disk2/xen[root@linux~]#cpcentos.
imgcentos2.
img[root@linux~]#xmcreatecentos-virt[root@linux~]#xmcreatecentos2-virt可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage16of22TVGCONFIDENTIAL新开两个终端,分别陷入两个domU.
至此,两个GuestOS安装完毕.
[root@linux~]#xmconsolecentos-virt[root@linux~]#xmconsolecentos2-virt可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage17of22TVGCONFIDENTIAL4隐蔽通道场景的建立4.
1本隐蔽通道原理Xen原谅GuestOS对内存分配/虚拟物理内存表:MachineFrameNumbertoPseudo-physicalFrameNumbertable-的越界访问,所以任何GuestOS都可以对mfn2pfn表进行修改.
流程图如下:模块的加载虚拟驱动的挂载通过staticintxencc_init(void)函数实现,用misc_register(&xencc_dev)注册杂项设备,调用init_ring_buffer()进行缓冲区初始化工作.
内存映射的建立下面程序要建立虚拟内存和物理内存的对应关系.
这通过allocate_mfn()函数实现:函数首先用alloc_pages()给程序分配一定的内存页,然后通过page_to_pfn(pt)获得页的虚拟内存地址pfn,再通过pfn_to_mfn(pfn)获得内存的物理地址mfn.
由此获得pfn和mfn的对应关系.
可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage18of22TVGCONFIDENTIAL缓冲区的结构缓冲通过mmu_update_t结构实现,内容包括:标记,同步,数据大小标记,剩余数据大小标记和数据区.
初始化部分如下:if(ixencc_fops={.
owner=THIS_MODULE,.
read=xencc_read,//读取.
write=xencc_write,//写入.
open=xencc_open,//打开,在这里没有用处,置空只进行DBG.
release=xencc_release,//释放,无用.
};写操作根据刚才创建的内存页的多少,写函数会调用mfn_cc_write()写最大长度的数据,mfn_cc_write()则会创建mmu_update_t结构并对其值进行设置然后调用HYPERVISOR_mmu_update()将上述数据存入映射表,同初始化时的步骤.
然后调用wait_read(),等待对方读取.
当收到ack信息后继续读取,直到rest=0,则接收完毕.
读操作首先,读方要用pfn_tag_find()函数遍历指定的内存映射表范围来寻找标记(tag),然后读取对应的数据并设置同步信息来通知写进程继续发送,直到发送完毕.
可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage19of22TVGCONFIDENTIAL同步每当写操作完成时,写模块就将自己一方的ack的值修改,初始时,ack=0,以后当ack!
=1时,置ack=1,或当ack!
=2时,置ack=2.

读操作一方会侦测到这种修改并把修改后的值记录,当记录下的这个值和现在表里的值相等时继续等待,当不等时开始读数据,读取完以后将自己方的ack值改为刚收到的ack值.

写操作会等待读操作完成,当探测到对方的ack值等于刚才自己变换后的ack值时,说明对方已经收到,可以继续发送.
直到rest=0,发送完成.
模块的卸载卸载模块首先调用misc_deregister()注销驱动,然后用kfree()清除缓冲区,则卸载完毕.

半月湾hmbcloud升级500Mbps带宽,原生VPS,$4.99/月

关于半月湾HMBCloud商家之前也有几篇那文章介绍过这个商家的产品,对于他们家的其他产品我都没有多加留意,而是对他们家的DC5机房很多人还是比较喜欢的,这个比我们有些比较熟悉的某商家DC6 DC9机房限时,而且半月湾HMBCloud商家是相对便宜的。关于半月湾DC5机房的方案选择和介绍:1、半月湾三网洛杉矶DC5 CN2 GIA同款DC6 DC9 1G内存 1TB流量 月$4.992、亲测选择半...

香港E3 16G 390元/ 香港E5*2 32G 600元/ 香港站群 4-8C 1200元/ 美国200G高防 900/ 日本100M 700元

3C云国内IDC/ISP资质齐全商家,与香港公司联合运营, 已超6年运营 。本次为大家带来的是双12特惠活动,香港美国日本韩国|高速精品|高防|站群|大带宽等产品齐全,欢迎咨询问价。3C云科技有限公司官方网站:http://www.3cccy.com/客服QQ:937695003网页客服:点击咨询客户QQ交流群:1042709810价目表总览升级内存 60元 8G内存升级硬盘 1T机械 90元 2...

PacificRack:洛杉矶KVM月付1.5美元起,1G内存套餐年付12美元起

PacificRack在本月发布了几款特价产品,其中最低款支持月付仅1.5美元,基于KVM架构,洛杉矶机房,PR-M系列。PacificRack简称PR,QN机房旗下站点,主要提供低价VPS主机产品,基于KVM架构,数据中心为自营洛杉矶机房,现在只有PR-M一个系列,分为了2个类别:常规(Elastic Compute Service)和多IP产品(Multi IP Server)。下面列出几款秒...

xen为你推荐
空间租用租用空间多少钱 1MB?免费虚拟主机空间免费的虚拟主机空间有没有中文域名注册查询怎么查我们公司的中文域名是被谁注册的?免费国内空间网站免费空间(国内的)那里有?域名服务商如何更换域名服务商域名服务商比较专业的域名服务商有哪些?好的域名和域名服务商没关系吧?代理主机如何将我工作的电脑设置为代理主机 让我回家以后可以用家里的电脑连接店里的主机访问网络jsp虚拟空间java虚拟主机空间怎么选择,国内jsp虚拟主机比较稳定java项目做好后需要推荐一下吧网站空间商网站备案为什么是空间商备案?求解1g虚拟主机想买个1G虚拟主机,不限流量的,但不知道哪个建站网站靠谱,求推荐!
免费二级域名 长沙域名注册公司 已备案未注册域名 美国vps推荐 香港vps主机 域名备案号查询 免备案cdn 免费cdn加速 外国域名 火车票抢票攻略 轻量 工信部icp备案号 域名接入 cloudlink www789 美国凤凰城 lamp架构 阿里云手机官网 阿里云邮箱登陆 免费个人网页 更多