KVM 网络虚拟化基础 – 每天5分钟玩转 OpenStack(9)
网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大。 但因为网络是虚拟化中非常重要的资源,所以再硬的骨头也必须要把它啃下来。
为了让大家对虚拟化网络的复杂程度有一个直观的认识,请看下图
这是 OpenStack 官网上给出的计算节点(可以理解为 KVM 的宿主机)虚拟网络的逻辑图,上面的网络设备很多,层次也很复杂。
我第一次看到这张图,也着实被下了一跳。
不过大家也不要怕,万丈高楼从地起,虚拟网络再复杂,也是由一些基础的组件构成的。只要我们将这些基础组件的概念和它们之间的逻辑关系搞清楚了,就能深刻理解虚拟网络的架构,那么云环境下的虚拟化网络也就不在话下了。
下面我们来学习网络虚拟化中最重要的两个东西:Linux Bridge 和 VLAN
Linux Bridge 基本概念假设宿主机有 1 块与外网连接的物理网卡 eth0,上面跑了 1 个虚机 VM1,现在有个问题是: 如何让 VM1 能够访问外网?
至少有两种方案
将物理网卡eth0直接分配给VM1,但随之带来的问题很多:宿主机就没有网卡,无法访问了;新的虚机,比如 VM2 也没有网卡。
下面看推荐的方案给 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 也都可以与外网通信。
有了上面的基础知识,下一节将演示如何在实验环境中实现这套虚拟网络。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/55341.html
linux相关文章
- Python基础21-网络编程
- 软考网络工程师备考经验
- 网络基础
- 软件定义网络(SDN)基础概念学习笔记(下)
- 新手网络工程师快看,一文带你掌握6个基础配置技能!
- 牛人带你通透理解高可用网络基础架构的关键组件:负载均衡机制
- 基础网络CDB使用API批量切换私有网络
- 通信网络基础pdf_通信网络系统基础
- 大数据必学Java基础(八十一):基于TCP的网络编程
- TSN(Time-Sensitive Networking)时间敏感网络 | 协议导读
- 【信管1.4】计算机网络基础(二)IP地址和网络服务器
- 颅内EEG记录揭示人类DMN网络的电生理基础
- [nature communications | 论文简读] scGCN:单细胞组学中知识转移的图卷积网络算法
- Docker网络
- Linux基础:巡检Linux状态 网络IO 、磁盘、CPU、内存
- Go语言网络爬虫内部基础接口
- 络Linux搭建安全网络的重要性(linux安全网)
- 3月30日,京汉广光纤大故障,华南地区网络质量严重下降
- 全国低于30ms响应速度:千万级魅族用户的异地多点网络架构如何优化
- Kali Linux:轻松翻越网络防火墙的利器(kalilinux翻墙)
- Linux下IP命令详解:一次性解决网络问题(linux下ip命令)
- Linux防火墙脚本:构建安全网络基础(linux防火墙脚本)
- 安全访问网络:探索 Linux Sock5 代理的优势(linuxsock5)
- Linux网络协议栈:强大的构建基础(linux 网络 协议栈)
- 在与SQLServer建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
- C#网络编程基础之进程和线程详解