今天我们来介绍下kvm虚拟机里面的网络模式,最常见的就是桥接模式和nat模式,其他还有比如仅主机模式等


1、桥接模式,先附上图看

kvm 网络模式详解_第1张图片


可以看到这里的物理主机有自己的物理网卡 eth0,eth1,虚拟网卡vnet0,vnet1,网桥br0,虚拟机也有自己的网卡eth0,那么虚拟机数据包是如何访问外网的呢?

首先虚拟机的网卡eth0会对应物理主机的虚拟网卡vnet0,这两个是一一对应的关系,虚拟机数据包首先通过自己的网卡eth0 到达物理机的虚拟网卡vnet0,而vnet0和物理机的网卡eth0都桥接到一个网桥br0上面,因此最终的数据包会通过物理机的eth0网卡出去


当响应报文到达物理机上的eth0时如何判断此响应报文是发给虚拟机的还是物理机自己的?


在物理机上打开混杂模式,如果mac地址是自己的则转发给虚拟网卡,如果不是自己的则转发给vnet0,这就是桥接模型,因为物理机的网卡具有桥的功能所以叫做桥接模型


2、nat模式

kvm 网络模式详解_第2张图片


kvm 网络模式详解_第3张图片


交换机中多了virnet10卡默认地址是192.168.122.1,当然这些我们也可以自己调整,虚拟机的网关指向virnet1,再打开linux的核心转发功能,虚拟机就可以和外部通信了,当这种网络模式创建的时候实际上是调用的iptables防火墙来做的snat,还会自动创建其他一段的规则,当然这些我们完全可以自己去指定

默认虚拟机分配到的ip是192.168.122网段的 ,那么调用iptables创建规则时只需将原地址是192.168.122网段,到达eth0就将其做nat转换成eth0的地址出去即可,如果理解了VMware里面的网络模型这些还是比较好理解的


kvm 网络模式详解_第4张图片