网络虚拟化介绍(OVS、DVS)

2023-11-09 05:44
文章标签 介绍 网络 虚拟化 dvs ovs

本文主要是介绍网络虚拟化介绍(OVS、DVS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

虚拟化中网络架构

虚拟交换机类型

虚拟交换机OVS(Open Vswitch)

分布式虚拟交换机DVS

虚拟机和物理网卡的通信模式

虚拟交换机中其它功能特性


网络虚拟化概念

网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全

网络虚拟化的特点

隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划

可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)

可扩展性:逻辑网络的规模和数量可扩展


虚拟化中网络架构

以服务器的物理网卡为界,物理网卡以下为物理资源,物理网卡以上为虚拟资源

虚拟网卡(网卡也属于I/O设备,以也可以借用I/O虚拟化的思想)

网卡虚拟化包括软件和硬件两种

软件网卡虚拟化:通过软件将同一块网卡虚拟为多个虚拟网卡,实现多个虚拟机共享同一网卡,虚拟网卡有单独的IP地址和MAC地址

硬件网卡虚拟化:通过硬件辅助让单个/多个虚拟机直接访问单个物理设备(例如IO直通、SR-IOV)

计算虚拟化3——I/O设备虚拟化-CSDN博客

虚拟交换机

目前主要有OVS和DVS两种虚拟交换机解决方案(上图网络架构为OVS方式)

通过在虚拟交换机上形成虚拟交换端口连接服务器的物理网口和虚拟网卡,实现虚拟机和虚拟机之间、虚拟机与外界网络之间的流量传递与通信

虚拟交换端口

虚拟交换机上的端口,用来连接虚拟网卡,为虚拟机提供接入网络的服务

端口组

为了方便管理,虚拟交换机没有物理交换机端口的概念,都是叫做端口组(将具有同样属性的一组虚拟交换机端口称为端口组—端口组包含速率、Vlan、Qos、DHCP隔离、ARP抑制等特性)

注意事项

一个虚拟交换机可以有多个端口组

端口组不可以跨虚拟交换机(即端口组只在本地生效)

端口组的场景举例

创建一个端口组,为其分配vlan2 ,然后将虚拟机分配到该端口组上,该虚拟机所属vlan就是vlan2

上行链路

上行链路也是虚拟交换机的一部分,是虚拟链路,通过与服务器的物理网卡关联连接外部的物理网络

上行链路可以关联一个单独的物理网卡,也可以关联多个网卡绑定后的一个逻辑通道

注意事项

不同的虚拟交换机不能共用上行链路

同一台虚拟交换机上的所有上行链路组成了上行链路组

其中虚拟网卡和虚拟交换机之间的链路也是虚拟的链路


虚拟交换机类型

先了解Linux Bridge网桥的概念

Bridge也是一种通过软件实现的虚拟网络设备,,功能类似于物理的交换机

对于普通的网络设备就是数据从一端进入,从另一个端出去;但是Bridge是数据可以从多个端口进入,从多个端口出去

在虚拟机交换场景下,一般通过Bridge将虚拟机虚拟网卡和服务器物理网卡连接起来(将Bridge设备与虚拟网卡和物理网卡绑定起来),这样就可以通过网桥实现虚拟机之间以及与外部的通信

虚拟交换机OVS(Open Vswitch)

OVS是Bridge的加强版,相比于Bridge,OVS有以下优点

  1. OVS支持SDN等多种标准的管理接口和协议
  2. Bridge只支持Vxlan,但是OVS时至GRE、IPSec、Vxlan等
  3. OVS适用于多种虚拟化架构(例如Xen、KVM、VMware)

OVS还有其它特性,此处不细说

OVS虚拟交换机的网络架构

OVS虚拟机网络下虚拟机通信的路径

同一主机内通信

同一Vlan通信(VM1和VM2):直接通过OVS的端口组1就可以通信

不同Vlan通信(VM1和VM3):需要通过物理交换机来通信

不同主机之间通信

不同主机之间的虚拟机通信都需要跨物理交换机,主要包含以下情况

同一Vlan通信(VM1和VM3)

不同Vlan通信(VM1和VM6)

虚拟机与外部通信

直接通过物理交换机通信

分布式虚拟交换机DVS

DVS和OVS的区别

与OVS相比,OVS是在一台服务器当中,DVS是在多台服务器当中

一台DVS分布式虚拟交换机可以分布在多台物理服务器上

DVS虚拟交换机的网络架构

DVS虚拟机网络下虚拟机通信的路径

同一主机内通信

不同主机之间的虚拟机通信都需要跨物理交换机,主要包含一下情况

同一Vlan,同一DVS通信(VM4和VM5):直接通过DVS的端口组1就可以通信

同一Vlan,不同DVS通信(VM1和VM3):需要通过物理交换机来通信

不同Vlan:需要通过物理交换机来通信

不同主机内通信

不同主机之间的虚拟机通信都需要跨物理交换机,主要包含以下情况

同一Vlan,同一DVS通信(VM3和VM4):需要通过物理交换机来通信

同一Vlan,不同DVS通信(VM1和VM6):需要通过物理交换机来通信

不同Vlan:需要通过物理交换机来通信

虚拟机与外部通信

直接通过物理交换机通信


虚拟机和物理网卡的通信模式

计算虚拟化3——I/O设备虚拟化-CSDN博客

普通模式(虚拟机的虚拟网卡是由软件模拟的)

虚拟机路由转发涉及到前后端两个虚拟网卡设备;前端网卡是连接在虚拟交换机的虚拟端口上,后端网卡是虚拟交换机连接真实物理网口的网卡

虚拟机进行数据转发时虚拟机将数据发给前端网卡,前端网卡在发给后端网卡,最后经由物理网口传出

该方式网络性能不是很好,并且网络时延要高一些

直通模式(虚拟机使用的每个虚拟网卡对应一个物理网卡)

利用VMDq技术,虚拟机发出的流量通过独立报文队列到达VMM后,由VMM将流量转发到物理网卡

该方式相比于SR-IOV直通方式,支持热迁移等高级功能

SR-IOV直通模式(虚拟机使用的虚拟网卡是由对应硬件模拟的)

物理网卡需要使用智能网卡,并且需要在虚拟机上安装一个网卡驱动

SR-IOV类型物理网卡可以虚拟出多个虚拟网卡给虚拟机使用,虚拟机就认为自己有一块单独的物理网卡;进行流量转发时,虚拟机将流量发给VMM上的PCI控制器,该控制器直接将流量转发到物理网卡上

提升了网络I/O的性能,相比于硬件直通减少了网卡数量上的需求


虚拟交换机中其它功能特性

安全组

通过安全组设定访问规则,通过将虚拟机加入到安全组,就受到该访问规则组的保护,以此来限制虚拟机的通信(在创建虚拟机时可以选择加入的安全组)

二层安全策略

可以通过设置端口组来实现这些二层安全策略,主要有以下策略

DHCP Server隔离:防止DHCP Server仿冒,禁止用户虚拟机启动DHCP Server服务,防止用户无意识或恶意启动DHCP Server服务,影响正常的虚拟机IP地址分配过程

ARP广播抑制和IP广播抑制

防止ARP或IP广播泛洪,影响设备性能;也可以防止ARP欺骗

IP和MAC地址绑定

防止虚拟机用户通过修改虚拟网卡的IP和MAC地址来发起IP、MAC仿冒攻击

网络接口类型

Trunk、Access

Vlan端口与ARP讲解(Access-Trunk-Hybrid、免费ARP-代理ARP)-CSDN博客

网络QoS

QoS理论讲解_qos优先级_静下心来敲木鱼的博客-CSDN博客

网卡绑定技术

通过网卡绑定(bond)技术可以实现网卡冗余、负载均衡,达到高可靠和高可用的目的

Linux网络配置与网络信息查看讲解(网卡基本配置、网卡会话配置、网卡绑定、主机名配置、路由配置)-CSDN博客

Vxlan技术

数据中心——Vxlan基本概念1 -CSDN博客

数据中心——Vxlan基本概念2 -CSDN博客

这篇关于网络虚拟化介绍(OVS、DVS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/374267

相关文章

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir