1、隔离模型

该模型的特点是宿主机上的所有虚拟机之间可以组建网络,但是虚拟机无法与宿主机进行通信,也无法与其他网络的主机或其他宿主机上的虚拟机进行通信;相当于将虚拟机只是连接到一个交换机上,而这个交换机是在宿主机上虚拟出来的,即我们通常所说的网桥设备。


隔离模型中的虚拟机无法与宿主机的物理网卡和外部通信,但是可以与宿主机中的网桥通信;

图中VM表示虚拟机,每个虚拟机的网卡包含前半段和后半段;前半段vNIC在虚拟机上,后半段VIF在宿主机上。图中虚拟机中vNIC网卡对应的后半段为VIF网卡,VM虚拟机中发往vNIF网卡的数据报文都会发往后半段网卡VIF;

图中br-in是宿主机上的桥设备,也称之为Virtual Switch或者Bridge;在隔离模型中,相当于一个二层的虚拟交换机,要想实现同一宿主机中的虚拟机互相通信,需要满足几个条件:

  • 需要在宿主机中创建一个Bridge,图中为br-in;
  • 需要互相通信的每个虚拟机的前半段IP地址必须在同一网段内;
  • 需要互相通信的每个虚拟机的后半段网卡VIF网卡设备添加至br-in这个桥设备n桥。

注意:如果要实现同网段虚拟机不能通信,即虚拟机之间隔离,则需要创建不同的网桥,并将虚拟机的后半段添加至不同的网桥设备,即可实现隔离。

2、 路由模型

该模型的特点是在隔离模型的基础上,在宿主机开启了ip路由转发功能,此时的宿主机相当于路由器,完成虚拟机与宿主机的数据报文转发。因此,虚拟机可以宿主机的物理网卡进行通信,但是无法与宿主机之外的主机进行通信,因为宿主机没有对源地址转换,报文可以送到外部主机,但是外部主机无法回应。

路由模型中的虚拟机要与宿主机的物理网卡进行通信,要满足以下几个条件:

  • 宿主机必须在内核打开IP转发功能,即net.ipv4.ip_forward = 1;
  • 宿主机中的网桥br-in需要添加一个与虚拟机同网段的IP地址;
  • 虚拟机需要添加一条路由,下一跳地址设置为网桥br-in的ip;

路由模型中的虚拟机无法与外部进行通信;因为虚拟机发送到外部网络的主机时,源地址内网地址,内网地址无法与外部直接通信,且没有对源地址转换为物理网卡的IP地址,因此,外部网络发送的响应报文中的目标地址为虚拟机的IP地址时,无法到达宿主机的物理网卡,故虚拟机无法收到响应报文。

3、NAT模型

该模型的特点是当虚拟机需要与外部进行通信时,需要将源IP地址转换为物理网卡的IP地址,这样外部主机接收到报文后可以正确的将响应报文发送给目标IP地址(宿主机的物理网卡IP地址),因此,实现虚拟机与外部的通信;

注意:该模型仅仅是实现了源地址转换,实现虚拟机与外部网络的通信,但那是外部网络无法访问虚拟机,如果要实现,则需要在宿主机做目标地址转换。

NAT模型与路由模型的通信机制基本一致,唯一不同的就是,NAT模型可以使虚拟机直接与外部网络进行通信;即只需要在NAT模型中,在宿主机SNAT地址转换,将虚拟机的源地址IP转换为物理网卡的IP地址,发送报文至外部网络的主机;外部网络的主机收到报文后构建的响应报文的目标IP地址,为宿主机的物理网卡的IP地址,而后宿主机在将报文发送至虚拟机,实现了虚拟机与外部网络的通信。

4、桥接模型

该模型的特点是通过创建一个虚拟网卡,为该虚拟机网卡分配可以访问外部网络的IP地址;此时的物理网卡相当于一台交换机设备;虚拟机可以分配与外部网络通信的IP地址实现与外部网络的通信;此时,虚拟机相当于宿主机所在的局域网内单独的一台主机,它宿主机的地位是同等的,没有依存关系。

桥接模型不同于隔离模型、路由模型和NAT模型;在模型下,宿主机会虚拟出一块网卡作为该宿主机的通信网卡,而宿主机的物理网卡则成为桥接设备(也可称为交换机),此时,虚拟机相当于宿主机所在的局域网内单独的一台主机,它宿主机的地位是同等的,没有依存关系。

以上是KVM最简单的四种网络模型,在生产环境中使用的最多的是桥接模型,但是桥接模型的安全性是最低的,因为虚拟机直接暴露给了外部网络;而现在的容器技术中,NAT网络模型使用的较多,比如docker。

原文链接:https://blog.csdn.net/ccschan/article/details/88095718

KVM中四种网络模型(三)相关推荐

  1. java中高效遍历list_Java中四种遍历List的方法总结(推荐)

    实例如下: package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterato ...

  2. python锁_Python中四种锁的使用示例(代码)

    本篇文章给大家带来的内容是关于Python中四种锁的使用示例(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Lock互斥锁 使用前num = 0 def a(): globa ...

  3. java遍历list_Java中四种遍历List的方法总结(推荐)

    实例如下: package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterato ...

  4. Java基础:Java中四种访问修饰符

    一.背景. 这篇文章主要介绍了Java中四种访问修饰符详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下.放假在家里休息,闲来无事,想 ...

  5. Android中四种补间动画的使用示例(附代码下载)

    场景 Android中四种补间动画. 透明度渐变动画 旋转动画 缩放动画 平移动画 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的 ...

  6. JavaScript中四种不同的属性检测方式比较

    JavaScript中四种不同的属性检测方式比较 1. 用in方法 var o = {x:1}; "x" in o; //true "y" in o; //fa ...

  7. C++中四种 cast 转换

    四种 cast 转换 C++中四种类型转换是:static_cast, dynamic_cast, const_cast, reinterpret_cast const_cast static_cas ...

  8. java乘法表_Java中四种9*9乘法表的实现方式(附代码)

    前言: 初学java,实现99乘法表是必学必会的内容. 需求 : 分别写出上下左右,对应四个角的乘法表. 思路: 可以先打印出*星星,形成一个直角三角形,然后再替换成乘法公式. 代码如下: publi ...

  9. java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较(转)

    java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式详解与比较(转) http://wishlife.javaeye.com/blog/181865 posted on 2010-12 ...

最新文章

  1. 最新!2021 中国内地大学 ESI 排名出炉
  2. python之枚举类Enum
  3. tomcat对URL合法字符的判断(RFC 7230 and RFC 3986 异常排查)
  4. 小学五年级就已经开始编程啦吗???
  5. Python3 Selenium自动化web测试 == 第三节 常用WebDriver API使用示例上(24个API)
  6. 不迈出第一步,不去尝试,你永远不知道能否成功
  7. BUPT 2012复试机考 4T
  8. mysql8建立表格报错
  9. 用GitHub Issue取代多说,是不是很厉害?
  10. 计算机辅助设计b实验目的,上海电力学院电路计算机辅助设计1--含有受控源电路辅助分析...
  11. python大神的成长之路_我的Python成长之路
  12. Django 静态文件处理
  13. SQL Server Express无法建立ODBC问题(错误代码67 和17)
  14. 剑指offer面试题16. 数值的整数次方(二分法)
  15. Linux中mongodb定时远程备份
  16. k3cloud6.0文件服务器,K3Cloud系统集成配置详解
  17. t3财务软件服务器停止运行,用友T3标准版已停止工作应该怎么办
  18. FC游戏 《三国志2-霸王的大陆》攻略
  19. HTML简单制作一个网页
  20. 遥感影像地图编制流程

热门文章

  1. 学python需要什么基础知识-学习Python需要知道哪些基础入门知识?
  2. 初学python下载哪个版本-学python下载哪个版本
  3. 自学python需要多长时间-大家觉得自学python多久能学会?
  4. python turtle画气球-LeetCode-python 312.戳气球
  5. python100个必背知识-学Python必须背的42个常见单词,看看你都会吗?
  6. python列表切片口诀-python学习之“切片操作从入门到精通”
  7. opencv python 中cv2.putText()函数的用法
  8. linux与python客户端,《使用python进行unix和linux管理》§5网络 §5.1 网络客户端
  9. 时间与字符串之间的转换
  10. Leader/Follower多线程网络模型介绍