一、桥接模式配置
1、添加br0:vi /etc/sysconfig/network-scripts/ifcfg-br0,将其设置成如下:
1)静态ip方式
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=192.168.X.Y
NETMASK=255.255.255.0
GATEWAY=192.168.X.1
DEFROUTE=yes
2)动态IP获取方式
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=dhcp
2、编辑宿主机原网卡配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33,在文件末尾添加一行:BRIDGE="br0"
3 service NetworkManager stop
service network restart
注意,ifcfg-ens33 文件中onboot一项一定要设置为yes: ONBOOT=yes
4、kvm虚拟机的xml文件配置
<domain type='kvm'>
<name>ubuntu</name>
<uuid>e5fff551-bbe1-e748-c8e4-8ecb3bffb904</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu>2</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
<boot dev='hd'/>
<boot dev='cdrom'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset="localtime"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/local/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/root/ubuntu2.img'/>
<target dev='hda' bus='ide'/>
</disk>
<interface type='bridge'>
<source bridge='br0'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5906' autoport='no' listen='0.0.0.0'/>
<console type='pty'/>
</devices>
<qemu:commandline>
<qemu:arg value='--enable-kvm'/>
</qemu:commandline>
</domain>
二、利用arp缓存从宿主机获取内部虚拟机IP地址
1、编写python脚本向全网段发送udp数据包,这样本机器会缓存所有MAC地址与IP地址的映射,代码如下
# -*- coding: utf-8 -*-
from socket import *
mSocket = socket(AF_INET,SOCK_DGRAM)
for i in xrange(2,254):
strip = "192.168.122."+str(i)
print strip
mSocket.sendto("a".encode("utf-8"),(strip,80))
2、上述xml文件中的MAC地址 <mac address='00:0c:29:98:dc:fe'/> 便是虚拟机的MAC地址
3、利用arp缓存查'00:0c:29:98:dc:fe'对应的IP地址: arp -nv | grep "00:0c:29:98:dc:fe",输出如下
192.168.X.9 ether 00:0c:29:98:dc:fe C br0
192.168.X.9 便是内部虚拟机的地址。