【虚拟化应用系列教程】KVM网络管理

下期教程:KVM存储管理

一、关于网卡驱动

效果最好的是virtio

kvm12

二、通过命令行的方式添加虚拟网卡

这个网卡是给我们自己创建的虚拟机添加网卡,类似Vmware给虚拟机添加多块网卡

1.图形化工具添加虚拟网卡

[root@lvm ~]# virt-manager

kvm13

kvm15

2.命令行添加虚拟网卡

[root@lvm ~]# virsh attach-interface vm01 --type network --source default --model virtio --persistent 
成功附加接口
  • --persistent虚拟机立即生效、永久生效
  • --config永久生效、需要重启虚拟机
  • --live立即生效、临时生效,虚拟机重启后无效

3.查看虚拟机的网卡

[root@lvm ~]# virsh domiflist vm01
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet0      network    default    virtio      52:54:00:4f:35:95
vnet1      network    default    virtio      52:54:00:e6:c2:70

进入虚拟机查看网卡

kvm16

4.删除虚拟网卡

[root@lvm ~]# virsh detach-interface vm01 --type network --mac 52:54:00:e6:c2:70 --persistent
成功分离接口
[root@lvm ~]# virsh domiflist vm01
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet0      network    default    virtio      52:54:00:4f:35:95

kvm17

三、KVM虚拟网络工作模式

三种模式

  • NAT模式
  • bridge桥接模式
  • 隔离模式

1.NAT模式

kvm18

适用于虚拟机主动访问外部网络

  • 需要注意的地方:
    • 检查网关
    • 路由转发功能是否开启
    • snat规则是否合理
    • 如果想要发布服务(端口映射),不可以和实体机的端口有冲突

创建NAT网络

[root@lvm ~]# virt-manager 

kvm13

kvm14

发布服务(端口映射)

httpd服务为例子
把虚拟机的192.168.122.51:80端口映射到实体机8080端口上

#  iptables -t nat -I PREROUTING -d 192.168.140.16 -p tcp --dport 8080 -j DNAT --to-destination 192.168.122.51:80

2.Bridge桥接模式

作用:一般用于2台虚拟机跨物理相互通信

kvm19

  • 注意事项:
    • 在配置之前需要关闭NetworkManager服务
    • 物理网卡必须是静态地址

A.先停止NetworkManager服务

[root@lvm ~]# systemctl stop NetworkManager

B.备份网卡配置文件

ens33是网卡名

[root@lvm ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

C.命令行手动创建虚拟网络

virsh iface-bridge 物理网卡名 虚拟网卡名

[root@lvm ~]# virsh iface-bridge ens33 br1
已启动桥接接口 br1

D.查看网卡

[root@lvm ~]# ifconfig

br1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.140.16  netmask 255.255.255.0  broadcast 192.168.140.255	#可以看到我们的物理机的IP地址跑到了br1虚拟网卡上
        inet6 fe80::20c:29ff:fe49:9ac5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:49:9a:c5  txqueuelen 1000  (Ethernet)
        RX packets 78  bytes 4562 (4.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 74  bytes 137427 (134.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:49:9a:c5  txqueuelen 1000  (Ethernet)
        RX packets 108369  bytes 12390650 (11.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 120804  bytes 149676848 (142.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

E.删除桥接网络

先关闭网卡

注意:如果你是SSH连接,那么SSH会断开连接!

# ifconfig br1 down
删除连接
# brctl delbr br1
# brctl delif br1 ens33
恢复原来的网卡配置文件
[root@lvm ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33.bak /etc/sysconfig/network-scripts/ifcfg-ens33
[root@lvm ~]# systemctl restart network

3.隔离模式

VMware的仅主机模式网络类似,只能虚拟机互相访问,外部无法访问