当前位置: 首页 > news >正文

网络虚拟化是啥啊?

🧠 首先:什么是“虚拟网络”?

在虚拟机或容器的世界里,所有“机器”都是假造的。那么这些虚拟机器之间要通信,就得有“假造的网卡、交换机、路由方式”,这就是虚拟网络。


🧩 一、vNIC(Virtual Network Interface Card)虚拟网卡

✅ 什么是 vNIC?

  • 虚拟机或容器内部看到的网卡,就像真实电脑里的网卡一样。
  • 每台虚拟机创建时都会配一个或多个 vNIC。

📌 你可以理解为:

一台虚拟机长了一个“虚拟耳朵”,用来听网络的声音,它其实是映射到宿主机上的虚拟网卡。

🎯 特点:

  • 每个 vNIC 有自己的 MAC 地址
  • 绑定到某个虚拟交换机(vSwitch)上
  • 支持多种模式(桥接/NAT/仅主机等)

🧩 二、vSwitch(Virtual Switch)虚拟交换机

✅ 什么是 vSwitch?

  • 类似于你现实中见过的交换机(插很多网线的那种),但它是“运行在宿主机上的软件交换机”。
  • 把多个虚拟机的 vNIC 连起来,形成一个虚拟局域网。

📌 类比一下:

多个虚拟机就像多个办公室,vNIC 是办公室的电话,vSwitch 是整个公司的交换台。

🎯 技术实例:

  • Linux Bridge:最简单的虚拟交换机
  • Open vSwitch(OVS):功能更强的开源 vSwitch,支持 SDN、VXLAN、DPDK

🧩 三、桥接(Bridged)模式

✅ 定义:

虚拟机通过 vNIC 接到 vSwitch 上,然后 vSwitch 与物理网卡直接“桥接”。

📌 特点:

  • 虚拟机就像直接连到真实局域网中,能被其他真实设备访问。
  • 会占用一个实际 IP(路由器会给它分配 IP)。

📦 举个例子:

你用 VirtualBox 创建一台虚拟机,设置为“桥接模式”,你的路由器会给它分配一个和你电脑一样网段的 IP,比如 192.168.1.123。


🧩 四、NAT(Network Address Translation)模式

✅ 定义:

虚拟机通过宿主机“代理”访问外网,自己没有公网 IP,只能通过宿主机访问网络

📌 特点:

  • 宿主机相当于“网关”
  • 虚拟机能访问外网(比如上网),但外网不能访问虚拟机
  • 不占用局域网 IP,适合开发环境

📦 举个例子:

就像你家电脑通过路由器上网一样,外网看不见你家的内部设备(这是 NAT 原理)。


🧩 五、Overlay 网络(覆盖网络)

✅ 定义:

在物理网络之上“再构建一张虚拟网络”,用于连接跨主机的虚拟机/容器。

📌 常用技术:

  • VXLAN(最主流)
  • GRE、Geneve

📌 应用场景:

  • 容器跨主机通信(Kubernetes)
  • 云平台中的租户隔离(如多个用户的私有网络)

📦 举个例子:

多台物理机上的虚拟机需要像“同一局域网”一样互相通信,但它们其实跨了不同的服务器。Overlay 网络让它们“假装自己在一个网段”。


🧱 总结对比表

概念是什么用来干嘛是否常见
vNIC虚拟网卡虚拟机/容器连接网络的“耳朵”✅ 必需
vSwitch虚拟交换机在宿主机内实现局域网✅ 必需
桥接让虚拟机进入真实局域网真实 IP,和主机平等✅ 常用
NAT虚拟机通过主机代理上网开发常用,不被外部访问✅ 常用
Overlay跨主机的虚拟网络用于容器、云平台、租户隔离✅ 云原生场景必备

🖼️ 结构图示意(文字版)

+--------------------------------------+
|         宿主机(Host)               |
|                                      |
|  +----------------------+            |
|  |  虚拟交换机 vSwitch  | <--------> 物理网卡(eth0) ←→ 路由器
|  +----------------------+            |
|     |            |                  |
|  vNIC1        vNIC2                 |
|   |             |                   |
| [虚拟机A]     [虚拟机B]             |
+--------------------------------------+桥接:vSwitch 和物理网卡桥接,VM 直接进入局域网  
NAT:VM 经宿主机代理访问外网,IP 不暴露  
Overlay:多台宿主机之间用 VXLAN 隧道连接,形成跨机虚拟局域网

📘 学习建议(按顺序学):

  1. 学会在 VirtualBox 或 VMware 中设置网络模式(桥接 vs NAT)
  2. 学习 vNIC 和 vSwitch 的概念
  3. 用 Linux 创建一个桥接网络(brctl、ip link)
  4. 了解 Overlay 网络(VXLAN 工作原理)
  5. 学习 Docker / Kubernetes 中的虚拟网络实现(Flannel、Calico)

http://www.lryc.cn/news/613226.html

相关文章:

  • 自然语言处理×第四卷:文本特征与数据——她开始准备:每一次输入,都是为了更像你地说话
  • 拥抱云原生:从传统架构到云原生架构的演进与实践
  • python题目练习 无重叠区间
  • 京东关键字搜索商品列表接口开发实战:从参数优化到分布式调用
  • yolo目标检测技术:基础概念(一)
  • 【洛谷题单】--分支结构(一)
  • 脱机部署k3s
  • Python 常用内置高阶函数
  • OO SALV的栏位功能
  • 大屏数据展示页面,数据可视化可以用到的框架和插件
  • 阿里云部署若依后,浏览器能正常访问,但是apifox和小程序访问后报错链接被重置
  • day27 同步互斥
  • IDEA-Research推出的一系列检测、分割模型:从DINO(改进版DETR)、Grounding Dino、DINO-X到Grounded SAM2
  • 【SPIE出版| 前4届均已完成EI检索】第五届算法、高性能计算与人工智能国际学术会议(AHPCAI 2025)
  • 解决GitHub push失败-Failed to connect to github.com port 443: Timed out
  • YooAsset为什么要分组
  • 《深入Java包装类体系:类型转换原理与Integer缓存实战指南》
  • jetson上使用opencv的gstreamer进行MIPI和USB摄像头的连接以及udp推流
  • PyTorch RNN 名字分类器
  • 解决 npm i node-sass@4.12.0 安装失败异常 npm i node-sass异常解决
  • QT的拖拽功能
  • vue-plugin-hiprint 打印模版使用
  • DicomObjects COM 8.XX
  • 云平台运维工具 ——AWS 原生工具
  • 008 前端vue
  • 解决React白板应用中的画布内容丢失问题
  • [盛最多水的容器]
  • 【关于Java中==和equals( )和hashCode( )三者异同】
  • Java中接口与抽象类
  • 国内使用 npm 时配置镜像源