《趣谈网络协议》笔记 -- 第24讲

news2026/4/27 0:44:49
食用说明在找《趣谈网络协议》的学习笔记时候感觉大家可能都是在看刘超老师的pdf文稿 按照新人小白喜欢记录的特性来记录一下自己的学习笔记会记录一些大佬的评论从24讲 开始前面的会慢慢更新尽量保持一天一讲的更新频率本人非科班生对于网络协议有理解 不到位的和错误的希望大佬多多指点拜谢大佬们第24讲云中网络自己拿地成本高购买公寓更灵活一、 从物理机到虚拟机为什么要从物理机到虚拟机传统数据中心直接维持物理机存在问题 采购不灵活需要自己采购、上架、插网线、安装操作系统周期长而且一旦采购了不能退货运维不灵活需要扩容CPU、内存、硬盘都需要要去机房手动去配置麻烦规格不灵活采购的机器往往规格和需要的配置不匹配而且很多应用混合部署在上面端口容易冲突容易互相影响复用不灵活当机器转接客户的时候需要重装操作系统为了解决这些问题云计算利用虚拟化技术在强大的物理机内部“切出”多台虚拟机就像买卖/租赁公寓。虚拟机按需分配CPU、内存和网络即开即用随用随删。qemu-kvmemu是Emulator模拟器的意思Linux环境下主流的开源硬件虚拟化技术。它就像一个“高级模拟器骗子”通过软件层面向虚拟机汇报“你有独立的CPU、内存、网卡”但实际上所有资源都是按比例向底层的物理机申请的。二、 虚拟网卡的原理虚拟网卡原理首先虚拟机需要有一张网卡对于qemu-kvm来说是通过Linux上的TUN/TAP技术实现的虚拟机是在物理机跑着的软件 虚拟机打开称为TUN/TAP的Char Dev字符设备文件之后就能在物理机上看到一张虚拟网卡网络包就往虚拟机里面发网络包 — 虚拟机— 网络包转换成文件流 — 写入字符设备 — TUN/TAP字符设备驱动接收写入的文件流 — 交给TUN/TAP的虚拟网卡驱动 — 驱动将文件流转换成网络包 — TCP/IP协议栈 — 最终从虚拟TAP网卡中发出来成为标准网络包TUN/TAP 设备Linux内核实现的一种纯软件的网络设备。其中TAP工作在二层数据链路层有MAC地址相当于模拟了一张普通的网卡。字符设备文件 (Char Dev)Linux哲学是“一切皆文件”。虚拟网卡在操作系统里被具象化为一个字符设备文件。虚拟机发数据本质上就是在向这个文件写入字节流。三、 虚拟网卡连接到云中为了让虚拟机能正常工作云网络必须解决四大需求共享共用物理网卡、互通互相能通信、隔离租户间互不干扰、灵活随意增删改。1. 共享与互通问题多个虚拟机怎么互通并上网需要引入“虚拟交换机”来连接它们。主要有三种连通方式Host-only仅主机所有虚拟机连在同一个虚拟交换机上彼此互通但完全与外界物理网络断开类似大学宿舍的纯内网打局域网游戏。桥接模式 (Bridge)将虚拟机的网卡和物理机的真实网卡一起“插”在虚拟交换机上。物理机和虚拟机被拉平到了同一个物理网段。缺点如果虚拟机太多会引发全网的广播风暴。NAT 模式 (网络地址转换)虚拟机连在虚拟交换机上形成一个独立的内网有自己的DHCP分配IP。物理机充当“家用路由器”把虚拟机的内网IP转换成物理机的公网IP去访问外网。局域网连接可以通过 Linux 命令 brctl 创建虚拟的网桥brctl addbr br0, 创建出来以后将两个虚拟机的虚拟网卡都连接到虚拟网桥brctl addif br0 tap0上这样将两个虚拟机配置相同的子网网段两台虚拟机就能够相互通信了。外网连接桥接(Bridge)桥接模式下虚拟机和笔记本电脑的都在同一IP网段下在数据中心中采取类似的技术都是Linux系统每台机器都创建网桥和br0虚拟机的网卡都连接到br0上物理网卡也连接到br0上所有的br0都通过物理网卡来连接到物理交换机上网络打平 虚拟机和物理网络会有同样的IP网段广播问题需要通过VLAN数据链路层进行划分另外一种方式为NAT网络层在这种情况下登录到虚拟机里面查看IP地址会发现虚拟机的网络是虚拟机的物理机的网络是物理机的两个不相同。虚拟机要想访问物理机的时候需要将地址NAT成为物理机的地址。还会在你的笔记本电脑里内置一个DHCP服务器为笔记本电脑上的虚拟机动态分配IP地址。因为虚拟机的网络自成体系需要进行IP管理。为什么桥接方式不需要呢因为桥接将网络打平了虚拟机的IP地址应该由物理网络的DHCP服务器分配。数据中心中也是类似的方式虚拟机是你的电脑路由器和DHCP Server相当于家用路由器或者寝室长的电脑物理网卡相当于你们宿舍的外网网口用于访问互联网。所有电脑都通过内网网口连接到一个网桥br0上虚拟机要想访问互联网需要通过br0连到路由器上然后通过路由器将请求NAT成为物理网络的地址转发到物理网络如果是你自己登录到物理机上做个简单配置你可以简化一下。例如将虚拟机所在网络的网关的地址直接配置到br0上不用DHCP Server手动配置每台虚拟机的IP地址通过命令iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE直接在物理网卡ethX上进行NAT所有从这个网卡出去的包都NAT成这个网卡的地址。通过设置net.ipv4.ip_forward 1开启物理机的转发功能直接做路由器而不用单独的路由器这样虚拟机就能直接上网了。虚拟网桥 (br0)通过Linux命令如 brctl创建出来的虚拟交换机。把虚拟机的TAP网卡挂载到 br0 上它们就在物理上连通了。2. 隔离问题如果一台机器上的两个虚拟机不属于同一个用户怎么办呢brctl创建的网桥也是支持VLAN功能的可以设置两个虚拟机的tag这样在这个虚拟网桥上两个虚拟机是不互通的。如何跨物理机互通并且实现VLAN的隔离呢brctl创建的网桥上面的tag是没办法在网桥之外的范围内起作用的因此我们需要寻找其他的方式。有一个命令vconfig可以基于物理网卡eth0创建带VLAN的虚拟网卡所有从这个虚拟网卡出去的包都带这个VLAN如果这样跨物理机的互通和隔离就可以通过这个网卡来实现。首先为每个用户分配不同的VLAN例如有一个用户VLAN 10一个用户VLAN 20。在一台物理机上基于物理网卡为每个用户用vconfig创建一个带VLAN的网卡。不同的用户使用不同的虚拟网桥带VLAN的虚拟网卡也连接到虚拟网桥上。不同的用户由于网桥不通不能相互通信一旦出了网桥由于VLAN不同也不会将包转发到另一个网桥上。出了物理机也是带着VLAN ID的。只要物理交换机也是支持VLAN的到达另一台物理机的时候VLAN ID依然在它只会将包转发给相同VLAN的网卡和网桥所以跨物理机不同的VLAN也不会相互通信。使用brctl创建出来的网桥功能是简单的基于VLAN的虚拟网卡也能实现简单的隔离。但是这都不是大规模云平台能够满足的一个是VLAN的隔离数目太少。VLAN ID只有4096个, 另外一点是这个配置不够灵活。vconfig 命令Linux中用来配置 VLAN 的命令可以基于物理网卡虚拟出带有特定 VLAN Tag 的子网卡。四、 小结本节课核心脉络梳理云计算网络的核心基石是虚拟化其网卡通信原理是借助TUN/TAP 字符设备实现虚拟机内外数据的中转。云网络必须关注共享、隔离、互通、灵活四大痛点。互通主要有桥接和NAT两种流派安全隔离最基础的实现方案是打VLAN 标签。五、 思考题深度解析思考题 1在数据中心里面有一款著名的开源软件 OpenStack这一节讲的网络连通方式对应 OpenStack 中的哪些模型呢【深度解析】OpenStack 是搭建私有云的霸主它的网络模型Nova-network / Neutron与我们课上讲的底层原理高度对应Flat 模式对应课上讲的桥接模式 (Bridge)。虚拟机直接和物理机处于同一网段由物理网络的真实 DHCP 服务器分配 IP。Flat DHCP 模式依然是桥接的思想但是由 OpenStack 自己在虚拟网桥br0上起一个 dnsmasq 进程充当 DHCP 服务器来给虚拟机分配 IP。VLAN 模式对应课上讲的桥接模式 VLAN 隔离。利用 vconfig 划分不同的 VLAN 来实现多租户隔离。(扩展)VPC (虚拟私有云)对应课上讲的NAT 模式组合。每个租户可以在自己独立的网络里折腾最后通过 OpenStack 上的虚拟路由器vRouter本质是用 iptables 做的 NAT 转发连通外部网络Floating IP 机制。思考题 2本节提到的网络配置方式比较不灵活你知道什么更加灵活的方式吗【深度解析】课文末尾提到传统的 VLAN 只有 4096 个 ID 限制远远不够大型云平台用并且使用 brctl 和物理交换机绑定太死板。更灵活的方式是SDN (软件定义网络) 与 Open vSwitch (OVS)淘汰掉简单的 br0 网桥改用 OVS一款强大的企业级虚拟交换机。OVS 支持复杂的流表Flow Table可以通过控制器写代码来“编程”决定网络包该怎么走指哪打哪极其灵活。大二层网络技术 (如 VXLAN / GRE)为了突破 4096 的限制云厂商演进出了 VXLAN 技术。它把虚拟机的二层网络包伪装封装成物理机的 UDP三层数据包发送出去到了目标机器再解包。这使得云平台支持多达 1600 万个租户的网络隔离且虚拟机可以在整个数据中心自由迁移IP地址不变。这也就是专栏后续章节即将拉开的帷幕。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2553443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…