在完成了新服务器的配置后,一直就想把过程写下来,因为之前的IE8不能很好的编辑CSDN博客,延至今天。
先说明一下新服务器的参数。新的主板带独立网卡,但不是的服务器主板,所以不能用IMPI或者ilo之类实现远程控制。但主板本身带有断电重启,也就无所谓了。
安装完xenserver之后,分别安装了centos7和windows 2012。(安装过程中,默认以network1安装,貌似对后面的功能也没什么影响)
将网线分别插到三个网卡中,可以看到三个口分别为eth0,eth1,eth2,MAC地址为E8,56,57。(xenserver会自动为三个网卡生成三个network)
本期的思路,只通过VM的eth1来抓host的eth1的包。
这个图一定要好好理解。
接下来上一些OVS相关的知识
参考:http://blog.chinaunix.net/uid-20737871-id-4333314.html
通过
ovs-vsctl list-br 可以看到xenserver中有xenbr0,xenbr1,xenbr2三个网桥
ovs-vsctl list-ports xenbr0/1/2 分别可以看到三个网桥的端口
通过 xe pif-list 得到
通过 xe pif-param-set uuid=<uuid_of_pif_eth1> other-config:promiscuous="true" 设为混杂
通过 xe vm-list 得到
通过 xe vif-list 得到:
结合上图的vm-list可以看到,在eth1上面的属于centos的vif 的UUID 为 c241a2f3-3e8c-0adf-dd9c-44a1e4f90ae0
通过 xe vif-param-set uuid=<uuid_of_vif_eth1_centos> other-config:promiscuous="true" 设为混杂
接下来在centos中,将目标网口eth1设为混杂 ifconfig eth1 promisc
通过 xe vm-list name-label=centos params=dom-id 得到dom-id为 1
最终目标是将host主机eth1的数据镜像到VM的eth1
通过
# ovs-vsctl -- set Bridge xenbr1 mirrors=@m \
-- --id=@eth1 get Port eth1 \
-- --id=@vif1.1 get Port vif1.1 \
-- --id=@m create Mirror name=mymirror select-dst-port=@eth1 select-src-port=@eth1 output-port=@vif1.1
完成镜像
为什么是xenbr1,eth1,vif1.1
通过列出网桥可以看到host的eth1是连在xenbr1上,通过列出网桥端口可以看到连载xenbr1上的vif为vif1.1
将镜像口的网线插在eth1上,即可抓到数据包了。
///
续:如何确定目标pif和vif
首先,需要确定的是,user想通过哪个网口来抓包。比如说,我的目标网口是eth1(专指物理网口)。那么,pif就好定了:
# xe pif-list 一下就有可以看到机器上的所有物理网口,接着用:
# xe pif-param-set uuis=<uuid-of-eth1> other-config:promiscuous="true" 设置即可。
至于vif,这个有点儿绕。首先用:
# xe vm-list name-label=centos 可以看到虚机的uuid
然后用:
# xe vif-list 得到所有的vif,找到与虚机UUID和目标网口对应的vif,设为混杂即完成工作。
如仍有不懂之处,细看下图:
到此,前期工作画上句话。