一、libvirt 默认NAT模式

在安装启动libvirt之后,系统会自动创建一个名为virbr0的网桥,其IP地址为192.168.122.1。具体信息如下:

virbr0    
Link encap:以太网  硬件地址 7a:b3:07:b3:47:e7             
inet 地址:192.168.122.1  广播:192.168.122.255  掩码:255.255.255.0           
UP BROADCAST MULTICAST  MTU:1500  跃点数:1           
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0           
发送数据包:0 错误:0 丢弃:0 过载:0 载波:0           
碰撞:0 发送队列长度:0            
接收字节:0 (0.0 B)  发送字节:0 (0.0 B)

libvirt默认的网络配置为NAT模式,即宿主机和虚拟机的网络拓扑关系属于NAT模式。虚拟机会被分配一个192.168.122.0/24网段内的IP,与宿主机virbr0进行通信。

二、libvirt网桥模式

在实际应用中,NAT模式可能会给虚拟机网络通信带来不变(这点看实际需求和网络拓扑,不绝对)。开发者希望将宿主机和虚拟机的网络拓扑设置为网桥模式,这样可以将宿主机和虚拟机的IP设置为同一网段内IP。关于如何设置网桥,可以参见《Linux 网络实用手册 》(传送门:http://speakingbaicai.blog.51cto.com/5667326/1160442

假设我们希望将libvirt虚拟机设置为网桥模式,那么需要在宿主机上配置网桥,并在libvirt xml配置文件中做相应设置,如下:(假设网桥名为br0

<devices>      
    <emulator>/usr/bin/kvm</emulator>      
    ...      
    <interface type = 'bridge'>          
        <source bridge = 'br0'/>      
    </interface>      
    ...  
</devices>

三、在虚拟机内部配置IP地址、设置路由

1NAT模式

宿主机通信网卡为virbr0 192.168.122.1

虚拟机内部执行:

ifconfig eth0 192.168.122.50 
route add default gw 192.168.122.1

2、网桥模式

宿主机处于192.168.120.0/24的网段,网关为192.168.120.254

宿主机通信网卡 br0 192.168.120.101

虚拟机内部执行:

ifconfig eth0 192.168.120.103 netmask 255.255.255.0 
route add default gw 192.168.120.254