04 KVM虚拟化网络概述

2023-05-16

文章目录

    • 04 KVM虚拟化网络概述
      • 4.1 Linux Bridge
      • 4.2 Open vSwitch

04 KVM虚拟化网络概述

为了使虚拟机可以与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux Bridge、Open vSwitch网桥等多种类型的网桥。如图1所示,数据传输路径为“虚拟机 -> 虚拟网卡设备 -> Linux Bridge或Open vSwitch网桥 -> 物理网卡”。创建网桥,除了为虚拟机配置虚拟网卡设备外,为主机创建网桥是连接虚拟化网络的关键。

图 1 虚拟网络结构图

image-20230206202829694

虚拟交换机,就是使用软件实现的交换机,具备硬件交换机的功能,但与硬件交换机相比减少了采购成本,且软件层面更具灵活性。虚拟交换机主要使用在云环境中,在虚拟机之间、虚拟机和外部网络之间实现网络的连通。

常用的虚拟交换机有多种,这里以主流的两种作为范例。

4.1 Linux Bridge

Linux Bridge简称网桥,工作在数据链路层,将多个局域网(LAN)连起来,根据MAC地址(物理地址)来转发帧,与二层硬件交换机功能相似,通常用于联接数量不多、同一类型的网段。

Linux Bridge使用brctl命令创建/删除网桥接口,使用ip或者ifconfig命令设置接口的MAC信息。Bridge设备网络接口可以和Linux上其他设备网络接口连接,从设备被虚拟化为端口port。Port的IP及MAC都不可用,且被设置为接受任何包,最终由Bridge设备来决定数据包的去向——接收到本机、转发、丢弃、广播。

Linux Bridge在L2数据链路层,通过学习和缓存在数据包中的源MAC地址以及物理层的端口,实现工作机制:

收到新数据包时,记录源MAC地址和输入端口;

根据数据包中目的MAC地址查找本地缓存,查找到对应的MAC地址记录;

若发现记录不在本地网络,则直接丢弃数据包;

若发现记录存在对应的端口,则将数据包直接从该端口转发出去;

如果本地缓存中不存在任何记录,则在本网段中进行广播。

4.2 Open vSwitch

Open vSwitch(OVS)是一种具有产品级质量的多层虚拟交换机,利用软件的方式实现了硬件交换机的功能。跟硬件交换机相比,OVS具备众多优点:

  • 配置灵活

一台普通的服务器可以配置出多台虚拟交换机且端口数目可以灵活选择,也可以通过可编程扩展来实现大规模网络自动化配置、管理和维护。同时,OVS支持现有标准管理接口和协议,如netFlow,sFlow,SPAN,RSPAN,LACP等。

  • 成本更低

硬件交换机以昂贵成本才能达到的性能用OVS即可达到。

OVS是运行在虚拟化平台上的虚拟交换机,为本台物理机上的VM提供二层网络接入,跟云计算中的物理交换机一样工作在L2层。

OVS主要包括用户态的转发逻辑处理线程ovs-vswitchd、数据库配置线程ovsdb-server和内核态的datapath模块。ovs-vswitchd线程是switch功能的实现核心,同时支持openflow,包含多个配置工具如ovs-dpctl等。ovsdb-server线程用于处理switch和flow table的配置。Datapath模块根据flowtable规则,处理数据包转发的任务。

img

OVS内部框架图(图片来源:《An overview of Openvswitch implementation》)

与Linux Bridge相比,Open vSwitch具有多种特性:

  • 网络隔离

OVS原生支持VLAN功能本身就可以支持二层网络隔离,同时能够像配置物理交换机一样把同一台host上的众多VM分配到不同VLAN中去。

  • QoS(服务质量)配置

可以按需配置每台VM不同的网络速率和网络带宽,以保证核心业务VM的网络性能,通过OVS命令配置接口的QoS,可以实现物理交换机的traffic queuing和traffic shaping功能。

  • 流量监控

支持配置Netflow、sFlow的功能配置,实现网络流量监控和分析。

  • 端口镜像

OVS可以配置各种span(SPAN, RSPAN, ERSPAN),把端口的数据包镜像复制到指定端口,再通过tcpdump抓包分析。

  • 其他功能

支持多种tunnel协议,如vxlan、gre等;支持openflow协议、ovn,具备SDN数据处理能力;支持dpdk,ebpf等高级功能,可以优化数据处理能力。

如果对Linux Bridge和OVS作比较,会发现两者之间优劣对比显而易见。Linux Bridge 作为内核实现的原生桥接功能具有转发逻辑简单、转发性能强、功能稳定和可靠等特点,但扩展性较一般;OVS是伴随着虚拟化平台一起成长的虚拟交换机,经过不断的优化,在性能上和Linux Bridge相差不大, 但其强大的可配置性和可扩展性便于使其得到更好的应用。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230428163949084

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

04 KVM虚拟化网络概述 的相关文章

  • KVM虚拟机配置静态IP(四):Centos7

    该系列文章为制作KVM虚拟机镜像的同时配置静态IP xff0c 为用户直接提供好固定IP xff0c 无需手动配置 系列文章目录 Ubuntu16 04Ubuntu18 04Centos6Centos7 文章目录 系列文章目录软件环境一 安
  • KVM下Ubuntu18.04打开设置注销问题

    问题描述 xff1a 在KVM中创建Ubuntu18 04 xff0c 打开系统设置 xff0c 发现直接注销 xff08 不是锁屏 xff0c 因为所有程序都退出 xff09 解决思路 在google上搜索发现大多数都是指向显卡问题 xf
  • KVM虚拟机创建功能详细讲解

    KVM虚拟机创建功能详细讲解 一 KVM虚拟机创建的用户操作 对于用户或者管理员来说 xff0c 虚拟机的创建有着很多的方法 xff0c 例如 xff1a kvm自带命令行工 具 使用virsh命令来创建 使用具有图形界面的virt man
  • KVM interface passthrough

    nbsp nbsp nbsp nbsp kvm passthrouth sr iov nbsp nbsp https blog csdn net yzy1103203312 article details 81092647 nbsp nbs
  • KVM 配置虚拟机实际使用的cpu个数

    如图所示 要修改物理cpu个数的话 还需要手动设置cpu拓扑 否则 不管配置文件或本地主机配置了几个cpu 实际上虚拟机只能使用一个cpu 用 cat proc cpuinfo grep cores uniq 这条命令可以查询虚拟机上实际使
  • KVM实战入门之Libvirt

    环境说明 本实验在VMware的centos6 7 x64进行的 1 VMware配置 如果不能勾上则不能继续进行 解决办法 重新创建VMware虚拟机 到这一步 自定义 能勾上了 创建虚拟机后即可下一步 2 查看Linux环境 查看是否支
  • ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

    设备直通是一种虚拟化资源分配方式 通过将物理设备直通给虚拟机环境 达到虚拟机可以直接访问物理设备的目的 直通功能对设备的要求不高 不需要设备支持PF VF 目前市面上的显卡 网卡一般都支持直通 典型场景比如有两块显卡 一块主机用 另一块虚拟
  • QEMU-KVM基本操作

    本文主要介绍KVM虚拟机的一些基本实践操作 对KVM虚拟机的管理操作主要是基于libvirt的命令行工具virsh进行的 一 安装与启动 1 KVM模块检查 1 查看当前Linux系统核心是否包含KVM模块 Linux内核2 6 20及以上
  • CentOS 7 virt-install 命令行方式(非图形界面)安装KVM虚拟机

    环境及网卡配置请参考 https blog csdn net mshxuyi article details 98305715 创建镜像目录 mkdir p home vms virt install 配置文件 virt install n
  • oVirt engine安装手册

    oVirt Engine安装需求 硬件需求 Resource Minimum Recommended CPU 双核CPU 四核或者多个双核CPU 内存 4G内存 不安装warehouse并且内存不被其他程序使用 16G 硬盘 25G可用空间
  • KVM学习(一)vnc连接

    完整流程Windows连接CentOS7 这个KVM系列是我的本科毕业设计 边学边做 长期更新 1 安装vncserver 首先看下实验环境 windows上跑的vmware虚拟机 vncserver安装在虚拟机上 虚拟机已经安装好了gno
  • KVM添加文件夹存储

    创建基于文件夹的存储池 1 定义一个存储池 virsh pool define as kvm images dir kvm images 2 查看创建的存储池信息 virsh pool list all 3 建立基于文件夹的存储池 virs
  • KVM无法进入virt-manager,提示Unable to init server: Could not connect: Connection refused

    1 KVM virt manager不能以root用户进入 需切换成普通用户或者sudo用户 2 需要配置ssh 密钥 3 需要安装Xming或者Xmanager等KVM可用等图形界面软件 无法连接kvm 设置用户到组 一定要当前用户不要r
  • ovirt-node和ovirt-engine相连遇到的问题解决办法

    1 Host 192 168 70 7 does not comply with the cluster Default emulated machines The Hosts emulated machines are
  • KVM初始化过程

    之前打算整理一下在Guest VM KVM QEMU中IO处理的整个流程 通过查阅资料和阅读源码 已经大致知道IO在Guest KVM中的处理流程 当想要整理IO在KVM和QEMU中的处理时 发现很难理清楚QEMU和KVM之间的跳转和交互的
  • 是否可以在 Azure 上运行 KVM

    Azure Fabric 似乎运行在 Hyper V 的定制版本上 是否可以在 Azure 上运行 KVM 虚拟化实例 使用嵌套虚拟化 我有一个基于 Debian 的自定义 VHD 比如说 根据本文档https learn microsof
  • 陷阱标志(TF)和监视器陷阱标志之间的区别?

    像 GDB 这样的调试功能通过设置 eflags 寄存器的 TF 标志来工作 这会在处理器每次执行指令后引发异常 让 gdb 等工具控制调试 当我们运行虚拟机 Ex 时 在 kvm 的情况下执行以下操作同样 您需要设置一个名为 MONITO
  • libvirtError:XML 错误:预期单播 mac 地址,发现多播

    我正在通过 ansible 设置 KVM 自动化 并且我有一个虚拟机一直给我这个错误 libvirtError XML 错误 预期的单播 mac 地址 发现多播 53 54 00 b4 ad 81 我不认为这是一个可靠的问题 因为其他几个虚
  • QEMU和KVM在虚拟机I/O中扮演什么角色?

    我发现 QEMU 和 KVM 之间的界限非常模糊 我发现有人说虚拟机是qemu进程 而另一些人说是kvm进程 究竟是什么 而QEMU和KVM在虚拟机I O中扮演什么角色呢 比如一个vm做PIO MMIO的时候 是qemu还是kvm会把它困住
  • qemu KVM内核模块没有这样的文件或目录

    我目前正在上操作系统课程 我需要使用 qemu 来运行我的教授提供的一个小型操作系统 我正在尝试在 MacBook Air 5 2 上的 virtualbox 上的 ubuntu 12 04 虚拟机中使用 qemu 我知道我遇到的问题可能与

随机推荐