KVM 网络虚拟化基础

网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大。 但因为网络是虚拟化中非常重要的资源,所以再硬的骨头也必须要把它啃下来。

为了让大家对虚拟化网络的复杂程度有一个直观的认识,请看下图

这是 OpenStack 官网上给出的计算节点(可以理解为 KVM 的宿主机)虚拟网络的逻辑图,上面的网络设备很多,层次也很复杂。
我第一次看到这张图,也着实被下了一跳。

不过大家也不要怕,万丈高楼从地起,虚拟网络再复杂,也是由一些基础的组件构成的。只要我们将这些基础组件的概念和它们之间的逻辑关系搞清楚了,就能深刻理解虚拟网络的架构,那么云环境下的虚拟化网络也就不在话下了。

下面我们来学习网络虚拟化中最重要的两个东西:Linux Bridge 和 VLAN

Linux Bridge 基本概念

假设宿主机有 1 块与外网连接的物理网卡 eth0,上面跑了 1 个虚机 VM1,现在有个问题是: 如何让 VM1 能够访问外网?

至少有两种方案

  1. 将物理网卡eth0直接分配给VM1,但随之带来的问题很多: 宿主机就没有网卡,无法访问了; 新的虚机,比如 VM2 也没有网卡。 下面看推荐的方案
  2. 给 VM1 分配一个虚拟网卡 vnet0,通过 Linux Bridge  br0 将 eth0 和 vnet0 连接起来,如下图所示

Linux Bridge 是 Linux 上用来做 TCP/IP 二层协议交换的设备,其功能大家可以简单的理解为是一个二层交换机或者 Hub。多个网络设备可以连接到同一个 Linux Bridge,当某个设备收到数据包时,Linux Bridge 会将数据转发给其他设备。

在上面这个例子中,当有数据到达 eth0 时,br0 会将数据转发给 vnet0,这样 VM1 就能接收到来自外网的数据;
反过来,VM1 发送数据给 vnet0,br0 也会将数据转发到 eth0,从而实现了 VM1 与外网的通信。

现在我们增加一个虚机 VM2,如下图所示

VM2 的虚拟网卡 vnet1 也连接到了 br0 上。
现在 VM1 和 VM2 之间可以通信,同时 VM1 和 VM2 也都可以与外网通信。

有了上面的基础知识,下一节将演示如何在实验环境中实现这套虚拟网络。

时间: 2024-12-28 00:57:29

KVM 网络虚拟化基础的相关文章

KVM 网络虚拟化基础 - 每天5分钟玩转 OpenStack(9)

网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大. 但因为网络是虚拟化中非常重要的资源,所以再硬的骨头也必须要把它啃下来. 为了让大家对虚拟化网络的复杂程度有一个直观的认识,请看下图 这是 OpenStack 官网上给出的计算节点(可以理解为 KVM 的宿主机)虚拟网络的逻辑图,上面的网络设备很多,层次也很复杂.我第一次看到这张图,也着实被下了一跳. 不过大家也不要怕,万丈高楼从地起,虚拟网络再复杂,也是由一些基础的组件构成的.只要我们将这些基础组件的概念和它们之间的逻辑关系搞清楚了,就能深刻

网络虚拟化基础协议之Geneve

网络虚拟化最基础的技术莫过于分层(Overlay.Underlay),要实现分层有两种手段,一个是映射(Mapping),一个是封装(Encapsulation). 映射,主要思路是转发时替换报文语义,如何替换将需要设备进行查询. 封装,则是把需要的报文语义添加到网包中,处理的时候一层层的解封装即可,尽量对设备透明. 不少协议都实现了封装的部分或完整功能,包括IP-in-IP.Vlan.MPLS.VXLAN.NVGRE.STT等.这些协议各有各的特点,不少都是为了简单地隔离或者通过隧道连通不同网

kvm网络虚拟化管理

1. Linux Bridge网桥管理 一个网桥上添加多个虚拟机,虚拟机之间是可以相互通信的的,同时虚拟机也都可以通外网. kvm的网桥管理可以通过brctl命令 [[email protected] ~]# brctl ....... #桥 addbr <bridge> add bridge delbr <bridge> delete bridge #端口 addif <bridge> <device> add interface to bridge de

网络虚拟化基础一:linux名称空间Namespaces

一 为何要学习网络命名空间 名称空间 许多容器和虚拟化技术中都依赖于网络命名空间. 容器虚拟化技术的典型代表如LXC.Docker.Neutron也使用Linux网络命名空间. 当虚拟交换机,例如虚拟交换机,虚拟交换机 Openvswitch,已安装. 一 介绍 从Linux 2.6.24版的内核开始,Linux 就支持6种不同类型的命名空间.它们的出现,使用户创建的进程能够与系统分离得更加彻底,从而不需要使用更多的底层虚拟化技术. CLONE_NEWIPC: 进程间通信(IPC)的命名空间,可

网络虚拟化基础

网络通信 1.二层网络通信 所有的通信主机在同一个LAN(连接在同一个交换机上)中  直接通过各个主机的MAC地址就可进行数据交换 无需IP地址的参与 效率比三层通信高 交换机会自动学习记录每个主机的MAC和对应交换机端口的对应信息 2.三层网络通信 跨网络通信 需要通过封装IP地址和路由器来进行数据包的转发  由于在路由器中需要查询转发路径 数据转发效率比二层通信要低 网络模式 vlan模式 VLAN IEEE 802.1Q 标准定义了 VLAN Header 的格式.它在普通以太网帧结构的

53 kvm及libvirt、使用virsh管理kvm虚拟机、网络虚拟化技术基础、网络名称空间netns用法详解

01 kvm及libvirt [[email protected] ~]# yum install libvirt libvirt-client python-virtinst virt-manager virt-install -y [[email protected] ~]# yum -y install qemu-kvm [[email protected] ~]# systemctl start libvirtd.service #创建桥 [[email protected] ~]# v

05、ip划分+网络配置+虚拟化基础+基本路由

-- IP IANA (Internet Assigned Numbers Authority) ,Internet号分配机构.负责对IP地 址分配规划以及对TCP/UDP公共服务的端口定义.国际互联网代理成员管理局(IANA)是在国际互联 网中使用的IP 地址.域名和许多其它参数的管理机构.IP地址.自治系统成员以及许多顶级和二级域 名分配的日常职责由国际互联网注册中心(IR)和地区注册中心承担. IP地址由国际组织统一分配,逐级管理.顶级的管理者是Internet Corporation f

[转]数据中心网络虚拟化 主流平台产品介绍

http://www.sdnlab.com/12076.html SDNLAB 为了对数据中心网络虚拟化有个初步的认识,本文将对当前比较主流的几款商业平台进行介绍,包括VMware公司的网络虚拟化技术,IBM公司的Dove及开源的OpenDove平台, NEC公司的virtual-network-platform和VTN平台,以及Cisco公司的Nexus虚拟化平台. 1.Vmware公司的网络虚拟化技术 VMware在虚拟化领域的领导地位使得我们必须首先介绍一下他们的网络虚拟化技术NSX.然而

从SDN鼻祖Nicira到VMware NSX 网络虚拟化平台的简单探讨

以前的大二层技术,一般是在物理网络底层使用IS-IS路由技术,再在此基础之上,实现数据中心网络的二层扩展,如公有的Trill.SPB技术和Cisco私有的OTV.Fabricpath技术:前沿一些的网络虚拟化技术,使用了VXLAN.NVGRE等协议,突破VLAN和MAC的限制,将数据中心的大二层网络扩展的更大.而使用VMware NSX,则更进一步--我们可以对网络提供已对计算和存储实现的相同虚拟化功能.就像服务器虚拟化可以通过编程方式创建.删除和还原基于软件的虚拟机以及拍摄其快照一样,NSX网