KVM 网路配置介绍

2019-03-12 linux kvm network

简介

一般虚拟机的配置保存在 /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