KVM的NAT虚拟网络

默认部署的KVM环境使用了一个NAT方式的虚拟网络环境,这样创建的虚拟机可以访问外网,但是外部却不能访问虚拟机的服务。

要在NAT网络提供对外服务,需要在物理主机上设置IP Forwarding,将物理主机的网络端口映射到虚拟主机的网络端口。不过,在此之前还需要确保每个虚拟机启动时获得固定的IP地址,以保证端口映射正确。

libvirt和DHCP

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

首先找出vm的MAC地址

virsh dumpxml $VM_NAME | grep 'mac address'

编辑网络

virsh  net-list
virsh  net-edit  $NETWORK_NAME

这里 $NETWORK_NAME 通常是default

编辑<dhcp>段落

<dhcp>
  <range start='192.168.122.100' end='192.168.122.254'/>
  <host mac='52:54:00:6c:3c:01' name='vm1' ip='192.168.122.11'/>
  <host mac='52:54:00:6c:3c:02' name='vm2' ip='192.168.122.12'/>
  <host mac='52:54:00:6c:3c:03' name='vm3' ip='192.168.122.13'/>
</dhcp>

重启虚拟网络
virsh net-destroy default
virsh net-start default

在kvm宿主机的hosts中加入对应条目后,建议重启KVM宿主机。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容