简介
一般虚拟机的配置保存在 /etc/libvirt/qemu
目录下,其中与网络相关的为 interface
字段,示例如下。
<interface type='bridge'>
<mac address='52:54:00:ee:3b:7d'/>
<source bridge='virbr0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
网络配置
登录虚拟机之后,一般的网卡名为 eth0
,以 CentOS 为例,网卡配置路径为 /etc/sysconfig/network-scripts/ifcfg-eth0
,修改网络配置,保证如下配置存在,其中 IP 需要与上述配置的网桥网段相同。
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.122.100 # 手动指定IP地址,需要与宿主机在相同网段
NETMASK=255.255.255.0 # 也可以是PREFIX=24配置
GATEWAY=192.168.122.1
然后,通过 ifup eth0
命令激活网卡。
Bridge
虚拟机与物理机在同一个子网内,其它机器知道并可以访问这些虚拟机,这样虚拟机有自己网络中的独立 IP 地址。
网络配置
----- 查看所有网络,默认只显示活跃网络,如果非活跃则启动
# virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
# virsh net-start default
# virsh net-autostart default
----- 该网络详细配置
# virsh net-dumpxml default
<network>
<name>default</name>
<uuid>19a8f652-9c33-4de0-b1e3-97ec8cd8d6eb</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:63:39:92'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
----- 编辑修改default网络的配置
# virsh net-edit default
----- 将default网络干掉,再重新定义
# virsh net-undefine default
----- 重新创建default.xml文件,指定某个mac地址对应的ip,以及ip段
# cat default.xml
<?xml version="1.0" encoding="utf-8"?>
<network>
<name>default</name>
<uuid>dc69ff61-6445-4376-b940-8714a3922bf7</uuid>
<forward mode="nat"/>
<bridge name="virbr0" stp="on" delay="0"/>
<mac address="52:54:00:81:14:18"/>
<ip address="192.168.122.1" netmask="255.255.255.0">
<dhcp>
<range start="192.168.122.2" end="192.168.122.254"/>
<host mac="00:25:90:eb:4b:bb" name="guest1" ip="192.168.5.13"/>
<host mac="00:25:90:eb:34:2c" name="guest2" ip="192.168.7.206"/>
<host mac="00:25:90:eb:e5:de" name="guest3" ip="192.168.7.207"/>
<host mac="00:25:90:eb:7e:11" name="guest4" ip="192.168.7.208"/>
<host mac="00:25:90:eb:b2:11" name="guest5" ip="192.168.7.209"/>
</dhcp>
</ip>
</network>
# virsh net-define default.xml
----- 使其生效
# virsh net-start default
其它配置可以参考 Network XML Format 。