kvm下如何获取 客户机操作系统的 IP地址?

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
wadext
帖子: 10
注册时间: 2008-04-08 20:30

kvm下如何获取 客户机操作系统的 IP地址?

#1

帖子 wadext » 2011-04-01 16:21

思路一: 可以通过libvirt获取host主机上已经开机的客户操作系统的mac地址,然后通过arp协议从mac地址解析出ip地址。

但是感觉这样频繁发arp包会不会堵塞网络?

有没有办法在客户端操作系统上做些操作,自动报告自己的mac地址和ip地址?像vmware tools一样
wadext
帖子: 10
注册时间: 2008-04-08 20:30

Re: kvm下如何获取 客户机操作系统的 IP地址?

#2

帖子 wadext » 2011-04-01 17:27

libvirt 社区的回复是可以利用nwfilter来实现,原文如下:
Also, it is possible to sniff network traffic to determine the IP
address of a guest, and the nwfilter implementation uses just that. The
documentation covers some of the details and limitations of nwfilter
guessing an IP address based on traffic sniffing:

http://libvirt.org/formatnwfilter.html#nwflimitsIP

--
Eric Blake eblake@redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
大概看了一下nwfilter的文档,感觉它更像是一个监测和管理客户操作系统网络的工具(或者驱动)
即时是nwfilter探测到了客户机的IP地址,但如何将该地址记录在某个位置或者暴露哪个接口
以便那些采用远程接入方式(ssh或者tcp或者其他...)连接到kvm服务器上的程序访问呢?

期盼高手出现!
wadext
帖子: 10
注册时间: 2008-04-08 20:30

Re: kvm下如何获取 客户机操作系统的 IP地址?

#3

帖子 wadext » 2011-04-07 11:50

有了一个解决方案。
分为三部分: 查询主机 ,KVM host 和 Domain X

Domain X:运行一个udp的服务器端,响应局域网上的广播消息,收到含有“从MAC地址请求IP地址”的udp报文后,
和自己的MAC地址进行对比,如果相符,将自己的IP地址发送给该主机

KVM host: 运行一个tcp服务器端,响应从查询主机发送过来的mac地址请求信息,收到后,在局域网发送一个广播消息,
广播内容为“从MAC地址请求IP地址”

查询主机: 当需要从mac地址获取ip地址时,运行一个tcp客户端,连接到kvm host ,并且发送mac地址请求信息

使用python已经将该方案实现。

看上去有些麻烦,请各位提出好建议。
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: kvm下如何获取 客户机操作系统的 IP地址?

#4

帖子 自由建客 » 2011-04-09 19:02

既然你说到 VMware Tools 自动报告,你可以自己写个。
wadext
帖子: 10
注册时间: 2008-04-08 20:30

Re: kvm下如何获取 客户机操作系统的 IP地址?

#5

帖子 wadext » 2011-04-17 13:34

自由建客 写了:既然你说到 VMware Tools 自动报告,你可以自己写个。
怎么写呢?
回复