KVM笔记_网络配置

  最近部分业务需要使用KVM的不同组网方式,一般生产环境中业务打通采用桥接已经足够,但偶尔需要利用一下宿主机的公网IP,这时候NAT也派上了用场。和一般的虚拟化方式大同小异,这里介绍在KVM上怎样实现bridgeNAT这两种基本覆盖大部分情况下的组网方式。

bridge

  桥接是生产环境下最常用的组网方式。通过桥接,使得虚拟机内虚拟网卡利用宿主机的物理网卡作为传输介质,从而使虚拟机对外提供网络服务时“独立于宿主机”,在组网过程中表现得更像是一个独立的真实机器。下面的命令可以在虚拟机配置文件中生成一个利用宿主机的eno1网卡作为传输介质的虚拟网卡,实现桥接模式:

virt-xml --add-device --network type=direct,model=virtio,source_mode=bridge,source=eno1 $VM_Name_1

查看配置文件,此时虚拟网卡的配置参数如下:

<interface type='direct'>
  <mac address='52:54:00:32:a5:3a'/>
  <source dev='eno1' mode='bridge'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

  注意,如果没有明确指定网卡桥接方式,默认的则是vepa桥接(不完全的桥接,不推荐):

virsh attach-interface --domain $vhost_name --type direct --source eno1 --model virtio --config
<interface type='direct'>
  <mac address='52:54:00:e6:60:72'/>
  <source dev='eno1' mode='vepa'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</interface>

NAT

  配置虚拟机NAT之前,查看宿主机的NAT网络服务:

root@ubuntu:~/ops_scrip# virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

  该服务对应的具体NAT配置信息在/etc/libvirt/qemu/networks/default.xml内,可以通过该配置文件查看地址分配情况。

  添加NAT网卡:

virt-xml --add-device --network type=network,model=virtio,source_mode=nat,source=default open_vpn
<interface type='network'>
  <mac address='52:54:00:80:22:fc'/>
  <source network='default'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</interface>

  另外,在NAT模式下,libvirt使用了内建的dnsmasq来提供DHCP和DNS解析,可以通过在virsh中设置固定的DHCP IP地址和虚拟机MAC地址绑定来确保每次分配给vm相同的IP地址。

root@ubuntu:~/ops_scrip# virsh dumpxml open_vpn | grep 'mac address'
      <mac address='52:54:00:32:a5:3a'/>
root@ubuntu:~/ops_scrip# virsh net-edit default
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
      <host mac='52:54:00:32:a5:3a' name='open_vpn' ip='192.168.122.100'/>
    </dhcp>
root@ubuntu:~/ops_scrip# virsh net-destroy default
Network default destroyed
root@ubuntu:~/ops_scrip# virsh net-start default
Network default started

发表评论

评论列表,共 0 条评论

    暂无评论