文章目录
- 04 KVM虚拟化网络概述
- 4.1 Linux Bridge
- 4.2 Open vSwitch
04 KVM虚拟化网络概述
为了使虚拟机可以与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux Bridge、Open vSwitch网桥等多种类型的网桥。如图1所示,数据传输路径为“虚拟机 -> 虚拟网卡设备 -> Linux Bridge或Open vSwitch网桥 -> 物理网卡”。创建网桥,除了为虚拟机配置虚拟网卡设备外,为主机创建网桥是连接虚拟化网络的关键。
图 1 虚拟网络结构图
虚拟交换机,就是使用软件实现的交换机,具备硬件交换机的功能,但与硬件交换机相比减少了采购成本,且软件层面更具灵活性。虚拟交换机主要使用在云环境中,在虚拟机之间、虚拟机和外部网络之间实现网络的连通。
常用的虚拟交换机有多种,这里以主流的两种作为范例。
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规则,处理数据包转发的任务。
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相差不大, 但其强大的可配置性和可扩展性便于使其得到更好的应用。
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!