当前位置: 首页 > news >正文

云计算基础-网络虚拟化

虚拟交换机

什么是虚拟交换机

虚拟交换机是一种运行在虚拟化环境中的网络设备,其运行在宿主机的内存中,通过软件方式在宿主机内部实现了部分物理交换机的功能,如 VLAN 划分、流量控制、QoS 支持和安全功能等网络管理特性

虚拟交换机在云平台上的应用

比如有两台服务器,他们之间想要通信,需要一台物理交换机,那现在在服务器上创建了两台虚拟机,现在想让这两台虚机之间通讯,这时就需要一台虚拟交换机,虚拟交换机和物理交换机在功能上都是一样的,就是让服务器上的不同虚机之间通过虚拟交换机可以进行二层通讯用的。

但是虚拟交换机在云平台中会面临一些问题,如下图:

下面三个框表示三台物理服务器,在前两台服务器上各起了两台虚机,蓝色这两台虚机通过vlan10通信,橙色的两台通过vlan20通信(vlan的配置是在虚拟交换机上),这时他们之间是可以正常通信的

这时比如第一台服务器坏了,通过虚拟机HA,第一台物理主机上的两台虚拟会迁移到第三台物理主机上运行,这时候问题来了,这两台虚拟可以正常迁移过来,但是虚拟机的网络,也就是vlan10和vlan20的配置能不能也同时迁移到第三台物理主机上的虚拟交换机上来呢?此时蓝色和橙色虚拟机之间的通讯能不能自动恢复呢?

如果只用单纯的虚拟交换机肯定是不行的,因为虚拟交换机上的配置信息是不会自动从第一个主机传递到第三台主机上的

但实际情况是,虚拟机从第一台主机迁移到第三台主机,他们之间的网络是自动恢复的,也就是第一台物理主机上的虚拟交换机会自动迁移到第三台主机上面的,这个技术是通过分布式虚拟交换机实现的

分布式虚拟交换机

分布式虚拟交换机,英文名叫Distributed Virtual Switch,简称DVS

如下图,每台服务器上都有一个虚拟交换机,这些虚拟交换机同时和DVSM通信(分布式虚拟交换机管理模块),通过DVSM,这些虚拟交换机的配置信息在管理模块这里就被同步了

所以当第一台物理主机宕机之后,第一台物理主机上的虚拟交换机的配置就会由管理模块下发给第三台物理主机,这样虚机迁移之后业务就可以自动恢复

分布式虚拟路由器

分布式虚拟路由器,英文名:Distributed Virtual Router,简称DVR,它的功能主要是用来取代外部的硬件路由器,让外部的物理网络更加简洁

虚拟路由器和虚拟交换机一样,都是运行在宿主机内存中,虚拟交换机实现了模拟二层转发功能,虚拟路由器则模拟了三层路由功能,如路由转发、NAT等

如下图,有两台物理主机host1和host2,在这两台物理主机里起了四台虚拟机vm1-4,虚拟机1和虚拟机3通过dvs配置的vlan10进行通讯,虚拟机2和4通过vlan20进行通信

如果虚拟机1和虚拟机2之间有通信需求,如果不用虚拟路由器,那传统的方式是他们的流量从两个物理主机出来后,通过外部的三层交换机,对这两个虚机之间的信息进行路由,完成两台虚拟机之间的通信。

如果采用分布式虚拟路由器,则在物理主机里直接起一台分布式虚拟路由器,这样的话两台虚拟机之间想要通信,就没有必要通过外部的物理三层交换机完成,只需要通过内部的虚拟路由器就可以完成两个虚拟机之间的信息交换

虚拟路由器的工作方式

一般情况下,资源池内的虚机除了要相互通信之外还会有对外通信的需求(如下图最最左边的web vm),那么虚拟机就可以通过内部的网络访问到对外的虚拟路由器(Extended Virtual Route),这样对外的虚拟路由器就会吧对外的业务直接路由到公网上

如果两个虚机之间想要通信(如下图web vm和db vm),那他们之间就可以通过虚拟路由器完成通信功能(下图中只有最右边的两台服务器上安装了虚拟路由器)

分布式虚拟防火墙

分布式虚拟防火墙属于虚拟防火墙,并非传统的防火墙硬件设备或者虚拟化的硬件防火墙系统,分布式虚拟防火墙并非实现传统防火墙的区域逻辑隔离的作用而是针对单个虚拟机的防护

分布式虚拟防火墙是针对每一台虚拟机都可以创建的一个虚拟的防火墙,这个虚拟的防火墙和虚拟有非常紧密的跟随关系,比如说将其中的一台虚机迁移到其他的物理主机上,虚拟防火墙同样的也会迁移过去,所以虚拟防火墙可以理解为一个粒度更小的、针对每一台虚机的防火墙

分布式防火墙和分布式虚拟交换机是对接的,虚拟机之间通信是要经过分布式虚拟交换机的,在此基础上又增加了分布式虚拟防火墙,这样就保证了每一台虚机的安全,就是虚拟在跟同一个平台上其他虚拟机之间通信的时候都会有防火墙对虚机进行安全防护

分布式虚机防火墙同样也是基于五元组来匹配规则,仅做4层防护

相关文章:

  • 备战蓝桥杯---图论之最短路dijkstra算法
  • Spring-面试题
  • Linux 目录结构结构
  • 循序渐进-讲解Markdown进阶(Mermaid绘图)-附使用案例
  • docker (五)-docker存储-数据持久化
  • 2月8号作业
  • python---变量
  • docker (四)-docker网络
  • 转换成小写字母
  • 数据检索:倒排索引加速、top-k和k最邻近
  • PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证
  • PXE实现自动批量安装部署操作系统
  • HarmonyOS 横屏调试与真机横屏运行
  • 从零开始:用 Rust 编写你的第一个 Web 服务
  • 从MobileNetv1到MobileNetv3模型详解
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • axios 和 cookie 的那些事
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • markdown编辑器简评
  • OSS Web直传 (文件图片)
  • Python3爬取英雄联盟英雄皮肤大图
  • ReactNative开发常用的三方模块
  • SAP云平台里Global Account和Sub Account的关系
  • Spring框架之我见(三)——IOC、AOP
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 计算机常识 - 收藏集 - 掘金
  • 记一次删除Git记录中的大文件的过程
  • 力扣(LeetCode)965
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 人脸识别最新开发经验demo
  • 数据仓库的几种建模方法
  • 数据结构java版之冒泡排序及优化
  • 项目管理碎碎念系列之一:干系人管理
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • RDS-Mysql 物理备份恢复到本地数据库上
  • #Linux(make工具和makefile文件以及makefile语法)
  • ${ }的特别功能
  • (1)Nginx简介和安装教程
  • (2020)Java后端开发----(面试题和笔试题)
  • (k8s中)docker netty OOM问题记录
  • (Oracle)SQL优化技巧(一):分页查询
  • (poj1.3.2)1791(构造法模拟)
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)为什么要选择C++
  • .net core 6 集成和使用 mongodb
  • .net core使用ef 6
  • .py文件应该怎样打开?