KVM网络管理学习——NAT
KVM默认的连网方式就是NAT。安装好KVM后,宿主机上会自动生成一个网桥virbr0,连接虚拟机。
NAT配置方式有两种,图形方式和配置文件方式。这里配置的方法相对比较简单,我需要梳理的是在NAT配置过程中,图形界面的操作和配置文件的操作他们之间是如何对应的。
以下将宿主机和虚拟机的操作分别展开阐述。
宿主机:
作为网络的提供方,可以使用默认的default网络,或者自己创建一个新的网络。
图形界面则是在虚拟机管理器virt-manager下进行配置。
新增网络时,按照向导一步步完成。这里添加网络段时,图形界面默认添加的网关IP是x.x.x.1,并启动DHCP服务,要你给出地址池(开始和结束范围)。
图形界面上面的步骤如果使用配置文件操作,过程如下:
首先找到在/usr/share/libvirt/network目录下,名字为default的配置文件,可以复制并修改此配置文件。
通过命令virsh net-define 定义此网络,并通过virsh net-start开启此网络。
virsh net-define mynat.xml 定义网络
virsh net-start mynat 开启网络
virsh net-autostart mynat 自动启动
virsh net-list 查看网络
通过定义开启网络后,可以在/etc/libvirt/qemu/networks/里面找到了对应的网络配置文件。
使用virsh dumpxml打开虚拟机配置文件,找到下面这段内容,确保网络配置正确。
virsh dumpxml vm01 查看虚拟机vm01的配置文件
查看宿主机的IP信息
虚拟机
完成虚拟网络生成操作后,虚拟机要使用该新的网络,可以打开虚拟机的详情页面,选择网卡,在虚拟网络接口页面中,选择新建的网络源。(虚拟机需要关机、或重启后才会生效)
而在虚拟机中只需要先执行命令dhclent,将DHCP的地址获取到。
dhclient
此时ping宿主机,外网ip都可以通信。
在宿主机上查看当前的虚拟网络,可以使用命令virsh net-list
[root@localhost ~]# virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
mynat active yes yes
查看某个网络中的具体信息,可以使用virsh net-info命令
[root@localhost ~]# virsh net-info default
Name: default
UUID: afd4648e-4f13-4f28-a2f5-db99da866253
Active: yes
Persistent: yes
Autostart: yes
Bridge: virbr0
查看某个具体网络中的网桥情况,可以使用命令brctl show
[root@localhost ~]# brctl show virbr0
bridge name bridge id STP enabled interfaces
virbr0 8000.52540019d233 yes virbr0-nic
查看路由情况
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.217.2 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.217.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
查看某个虚拟机的网络信息,可以使用virsh domiflist命令
[root@localhost networks]# virsh domiflist vm01
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 network mynat virtio 52:54:00:dd:70:e5