【HCIP】03.VLAN高级技术
Eth-trunk
- 链路聚合,定义出一个逻辑聚合口,把物理接口和逻辑接口关联,此时在STP中,会把多个物理接口看成一个逻辑接口,此时不会出现环路。
接口负载分担(逐包|逐流)
- 基于IP的散列算法能保证包顺序,但不能保证带宽利用率。
- 基于包的散列算法能保证带宽利用率,但不能保证包的顺序。

- 逐包发送
-
- 一个数据,分成多个数据包,会从0,1,2编号依次轮询发送。优势:公平,负载分担均匀,缺点就是如果有一条线有一点点卡,那么就可能会出现数据包的顺序不一样,出现乱序。
- 逐流发送
-
- 流一般由五元组定义(源MAC,目的MAC,源IP,目的IP,协议)
- 对数据流进行哈希计算得到一个数,用这个数字除以物理链路的数量,看余数,如果余数为0,则走0号链路,余数为1,则走1号链路,余数为2,则走2号链路。实现了不同数据流走不同链路。
- 好处:弥补了逐包的问题,不会出现乱序,但是不会做到绝对的公平负载分担。
- 如果一直是两台设备之间相同服务,不建议使用逐流,因为MAC地址IP都相同,所以会一直走一条路。
链路聚合模式(手工负载|LACP)
手工负载分担模式
- 当两台设备中至少有一台不支持LACP协议时,可使用手工负载分担模式的Eth-Trunk来增加设备间的带宽及可靠性。
- 在手工负载分担模式下,加入Eth-Trunk的链路都进行数据的转发。
LACP模式
- LACP模式也称为M:N模式,其中M条链路处于活动状态转发数据,N条链路处于非活动状态作为备份链路。
- 设置的活跃链路数为2,即2条链路处于转发状态,1条链路处于备份状态,不转发数据,只有当活跃的链路出现故障时,备份链路才进行转发。
LCAP模式活动链路选举

LCAP模式链路抢占机制

- LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态,这就是抢占延时。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。
-
- 主链路故障,肯定会启用备用链路,但是如果主链路恢复,可以切回:一般主链路的带宽比备用链路的带宽大,所以为了通信质量,要切回带宽大的主线路。不可以切换:如果主链路与备链路带宽相同,不建议切换,因为切换的时候会产生丢包,备链路启用后,主链路会开始备用。
配置

[Huawei]int Eth-Trunk 0 创建Eth-trunk接口0
[Huawei-Eth-Trunk0]mode manual load-balance|lacp-static 采用手动配置|LACP模式[Huawei-Eth-Trunk0]lacp preempt enable 开启活跃端口枪占
[Huawei-Eth-Trunk0]load-balance dst-mac 基于什么来定义逐流[Huawei-Eth-Trunk0]int g0/0/1 进入接口
[Huawei-GigabitEthernet0/0/1]eth-trunk 0 将接口加入到eth-trunk 0
[Huawei-Eth-Trunk0]int g0/0/2
[Huawei-GigabitEthernet0/0/2]eth-trunk 0[Huawei]display eth-trunk 0
[Huawei]load-balance flow|packet 逐包|逐流(逐流需要在局部模式下配置逐流的定义)
Eth-Trunk0's state information is:
WorkingMode: NORMAL Hash arithmetic: According to SIP-XOR-DIP
Least Active-linknumber: 1 Max Bandwidth-affected-linknumber: 8
Operate status: up Number Of Up Port In Trunk: 2
--------------------------------------------------------------------------------
PortName Status Weight
GigabitEthernet0/0/1 Up 1
GigabitEthernet0/0/2 Up 1
VLAN聚合
- 节约网关IP地址,解决相同网段,不同VLAN,能够互访;既能做到二层广播隔离,也能做到三层可以互访。
- 主VLAN中不可以有接口,从VLAN不可以有VLANIF
VLAN聚合的应用
传统VLAN方式每一个VLAN需要划分不同的IP地址网段,在本例中需要耗费4个IP网段和产生4条路由条目;Super-VLAN方式只需要分配一个IP地址网段。下属二层VLAN共用同一个IP地址网段,共用同一个三层网关,同时VLAN之间保持二层隔离。

相同Sub-VLAN内部通信
- 当Sub-VLAN与其他设备进行二层通信时,与普通的VLAN内二层通信无区别。
- 由于Super-VLAN不属于任何物理接口,即不会处理任何携带Super-VLAN标签的报文。

- Sub-VLAN二层通信过程举例:
-
- 从PC1进入SW1的报文会被打上VLAN10的Tag。在SW1中这个Tag不会因为VLAN10是VLAN100的Sub-VLAN而变为VLAN100的Tag。
- 当报文从SW1的GE0/0/0出去时,依然携带VLAN10的Tag。也就是说,SW1本身不会发出VLAN100的报文。就算其他设备有VLAN100的报文发送到该设备上,这些报文也会因为SW1上没有VLAN100应的物理接口而被丢弃。
- 对于其他设备而言,有效的VLAN只有Sub-VLAN10,20和30, 所有的报文都是在这些VLAN中交互的。因此,SW1上虽然配置了VLAN聚合,但与其他设备的二层通信,不会涉及到Super-VLAN,与正常的二层通信流程一样。
- 当Sub-VLAN内的PC需要与其他网络进行三层通信时,首先将数据发往默认网关,即Super-VLAN对应的VLANIF,再进行路由。
不同Sub-VLAN之间通信
- 不同Sub-VLAN之间进行通信,IP地址属于相同网段,因此主机会发送ARP请求,但是实际不同Sub-VLAN之间属于不同的广播域,因而ARP报文无法传递到其他Sub-VLAN,ARP请求得不到响应,设备无法学习到对端MAC地址,从而无法完成Sub-VLAN之间通信。
- 要实现Sub-VLAN之间的通信,需要在Super-VLAN 的VLANIF中开启ARP代理功能。

- PC1发现PC2与自己在同一网段,且自己ARP表无PC2对应表项,则直接发送ARP广播请求PC2的MAC地址。
- 作为网关的Super-VLAN对应的VLANIF 100收到PC1的ARP请求,由于网关上使能Sub-VLAN间的ARP代理功能,则向Super-VLAN 100的所有Sub-VLAN接口发送一个ARP广播,请求PC2的MAC地址。
- PC2收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到PC2的应答后,就把自己的MAC地址回应给PC1,PC1之后要发给PC2的报文都先发送给网关,由网关做三层转发。
二层和三层转发
- 二层转发,直接请求目的ip的arp,三层转发,交给网关来进行转发。
- 分别用自己的ip地址和对方的ip地址与自己的掩码进行与运算得到网络号,网络号若相同,则使用二层转发,不同,则使用三层转发。

- 因为网段相同,所以A访问B时采用的是二层转发,会直接广播向B请求ARP,此时广播最远可以传到网关;又因为网关开启了arp代理,他将会重新产生一个ARP,欺骗别人,自己是IP是A,MAC还是自己的;B收到后回复消息给网关,网关得到了B的MAC信息,再次去欺骗A,我是B,MAC地址是网关的MAC,这样A就会学到B的MAC,B学到了A的MAC,MAC地址都是网关的MAC。这样AB再次互访是,数据都会发给网关,网关查看MAC是自己的就开始解封装,但是ip地址不是自己的,就开始查路由表,实现了三层转发。
配置
vlan batch 10 20 30
#
vlan 10aggregate-vlan 设置为Super vlanaccess-vlan 20 30 将20 30设置为Sub vlan
#
interface GigabitEthernet0/0/1port link-type accessport default vlan 20
#
interface GigabitEthernet0/0/2port link-type accessport default vlan 30

MUX VLAN
- 任何一个从VLAN与主VLAN之间都可以互访;从VLAN之间无法互访。
- 主VLAN中可以有接口,真机上可以开VLANIF,可以做arp代理。
基本概念
- MUX VLAN分为Principal VLAN(主VLAN)和Subordinate VLAN(从VLAN),Subordinate VLAN又分为Separate VLAN(隔离型从VLAN)和Group VLAN(互通型从VLAN)。

配置
vlan batch 10 20 30 100
vlan 100mux-vlan 设置为主VLANsubordinate separate 30 隔离型subordinate group 10 20 互通型
#
interface Gigabitethernet0/0/1port link-type accessport default vlan 10port mux-vlan enable 接口开启MUX VLAN功能,发现此vlan在主vlan里面后,就会把标签脱掉
#
interface Gigabitethernet0/0/2port link-type accessport default vlan 20port mux-vlan enable
#
interface Gigabitethernet0/0/3port link-type accessport default vlan 30port mux-vlan enable

QinQ
- 用户报文在公网上传递时携带了两层Tag,内层是私网Tag,外层是公网Tag。

QinQ的封装结构
- QinQ封装报文是在无标签的以太网数据帧的源MAC地址字段后面加上两个VLAN标签构成。


- TPID(Tag Protocol Identifier,标签协议标识)表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
- CFI (Canonical Format Indicator,标准格式指示位),表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。
基本QinQ
- 基本QinQ是基于端口方式实现的。开启端口的基本QinQ功能后,当该端口接收到报文,设备会为该报文打上本端口缺省VLAN 的VLAN Tag。如果接收到的是已经带有VLAN Tag的报文,该报文就成为双Tag的报文;如果接收到的是不带VLAN Tag的报文,该报文就成为带有端口缺省VLAN Tag的报文。
- 基于端口的QinQ的缺点是外层VLAN Tag封装方式固定,不能根据业务种类选择外层VLAN Tag封装的方式,从而很难有效支持多业务的灵活运营。

- SW1收到VLAN ID为10和20的报文,将该报文发给SW2。
- SW2收到该报文后,在该报文原有Tag的外侧再添加一层VLAN ID 为100的外层Tag。
- 带着两层Tag的用户数据报文在网络中按照正常的二层转发流程转发。
- SW3收到VLAN100的报文后,剥离报文的外层Tag(VLAN ID 为100)。将报文发送给SW4,此时报文只有一层Tag(VLAN ID 为10或20)。
- SW4收到该报文,根据VLAN ID和目的MAC地址进行相应的转发。
灵活QinQ
- 对进入二层QinQ接口的帧,可以根据不同的内层Tag而加上不同的外层Tag,对于用户VLAN的划分更加细致

- SW1收到VLAN ID为10和20的报文,将该报文转发给SW2。
- SW2收到VLAN ID为10的报文后,添加一层VLAN ID 为100 的外层Tag;SW2收到VLAN ID为20的报文后,添加一层VLAN ID为200的外层Tag。
- 带着两层Tag的用户数据报文在网络中按照正常的二层转发流程转发。
- SW3收到报文后,剥离报文的外层Tag(VLAN ID 为100或200)。将报文发送给SW4,此时报文只有一层Tag(VLAN ID 为10或20)。
- SW4收到报文,根据VLAN ID和目的MAC地址进行相应的转发。
配置

port link-type dot1q-tunel 在这个接口进入打上Tag,从这个接口发出剥离Tag
qinq protocol 9100 告诉trunk链路,这是一个双层Tag,9100是固定值相关文章:
【HCIP】03.VLAN高级技术
Eth-trunk 链路聚合,定义出一个逻辑聚合口,把物理接口和逻辑接口关联,此时在STP中,会把多个物理接口看成一个逻辑接口,此时不会出现环路。 接口负载分担(逐包|逐流) 基于IP的散列算法能保证包…...
WebSocket服务端数据推送及心跳机制(Spring Boot + VUE)
一、WebSocket简介 HTML5规范在传统的web交互基础上为我们带来了众多的新特性,随着web技术被广泛用于web APP的开发,这些新特性得以推广和使用,而websocket作为一种新的web通信技术具有巨大意义。WebSocket是HTML5新增的协议,它的…...
根据Dockerfile创建容器案例讲解
-f为dokerfile的路径, -t为新镜像的名称及版本。 后面这个点是寻址路径。...
CF 1328 D Carousel(环构造)
CF 1328 D. Carousel(环构造) Problem - D - Codeforces 大意:给出一个 n 个数组成的环 , 要对环上的点染色 , 要求任意一个相邻数不同的点对染色不同 ,求使用最少的颜色数 , 并用颜色数排列构造一种染色方案。 思路…...
什么是SaaS、PaaS、aPaaS、iPaaS、IaaS,一文讲透
在数字化的带动下,各行业对云服务的需求进入快速增长期。 SaaS、PaaS、aPaaS、iPaaS、IaaS…… 这些词经常出现,那么他们分别是什么意思?又有什么区别?小帆带大家一起来看看~ SaaS SaaS,Software as a Service&…...
Mac nvm 切换为淘宝镜像
编辑环境配置 # 或者 vim ~/.bash_profile $ vim ~/.zshrc贴入镜像 # 淘宝镜像 export NVM_NODEJS_ORG_MIRRORhttp://npm.taobao.org/mirrors/node export NVM_IOJS_ORG_MIRRORhttp://npm.taobao.org/mirrors/iojs# nvm环境配置 export NVM_DIR"$HOME/.nvm"[ -s &quo…...
aardio简单网站css或js下载练习
import win.ui; /*DSG{{*/ var winform win.form(text"下载网站css或js";right664;bottom290;maxfalse) winform.add( buttonClose{cls"button";text"退出";left348;top204;right498;bottom262;color14120960;fontLOGFONT(h-14);note" &qu…...
“维度削减+逻辑回归”:如何使用PCA大幅提升乳腺癌的预测成功率?
一、引言 乳腺癌是女性中最常见的恶性肿瘤之一,也影响着全球范围内许多人们的健康。据世界卫生组织(WHO)的数据,乳腺癌是全球癌症发病率和死亡率最高的肿瘤之一,其对个体和社会的危害不可忽视。因此,早期乳…...
Python程序设计基础:random库的使用
文章目录 一、常见的random库函数二、应用实例 一、常见的random库函数 在使用Python语言进行编程计算时,计算机完成的计算主要是确定的,但是在将其进行应用时,人们会模拟现实生活中的现象和活动,希望其增加一些随机性࿰…...
webpack 打包全流程
目录 1 webpack的安装 2 webpack的配置 配置流程: 1 webpack安装 2 创建webpack配置文件 webpack.config.js 3 配置入口 entry 单入口和多入口 2. 动态配置入口文件 4 配置出口 output 5 配置模式 mode(webpack4) 6 配置解析策略 …...
如何准备软件开发项目成本估算?
软件开发的成本估算是出了名的困难。对于软件开发项目来说,预算超支反而是常态,而不是例外。 在开始估算之前,请从业务角度了解项目的战略目标和你的目标。你可能计划尽可能赚取更多利润,探索新技术,或者在项目可能亏…...
音视频FAQ(三):音画不同步
摘要 本文介绍了音画不同步问题的五个因素:编码和封装阶段、网络传输阶段、播放器中的处理阶段、源内容产生的问题以及转码和编辑。针对这些因素,提出了相应的解决方案,如使用标准化工具、选择强大的传输协议、自适应缓冲等。此外࿰…...
MFC为控件添加背景图片
1、 添加选择Bitmap导入图片,图片文件最好放在项目res目录中,同时是BMP格式。上传后的图片在资源视图,命名为IDB_BITMAP_M_BACK。 2、在cpp的C***Dlg::OnPaint()函数下添加如下代码 void C***Dlg::OnPaint() {CPaintDC dc(this); // device…...
1047:判断能否被3,5,7整除
【题目描述】 给定一个整数,判断它能否被3,5,7整除,并输出以下信息: 1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格); 2、只能被其中两…...
十七、DoIP诊断通信 2 (专栏:从零开始搭建一个UDS诊断自动化测试CANoe工程)
专栏:从零开始搭建一个UDS诊断自动化测试CANoe工程 文章目录 专栏:从零开始搭建一个UDS诊断自动化测试CANoe工程前言一、以太网panel面板配置二、DoIP建立连接与断开连接三、panel面板上的DoIP诊断报文发送接收SEND按钮会话切换复位1101按钮解锁按钮DTC按钮3E80保持会话前言 …...
【2023】LeetCode HOT 100——哈希
目录 1. 两数之和1.1 C++实现1.2 Python实现1.3 时空分析2. 字母异位词分组2.1 C++实现2.2 Python实现2.3 时空分析3. 最长连续序列3.1 C++实现3.2 Python实现3.3 时空分析1. 两数之和 🔗 原题链接:1. 两数之和 不妨设 i...
TCP/IP---网络层
一、网络层的主要功能 1、提供了通讯过程中,必须要使用的另一个地址:逻辑IP地址【ipv4、ipv6】 2、连接不同媒介类型【内网--外网(intra -- inter)】 3、根据运行的不同的路由协议,选择不同的最佳路径 4、在选择的最好…...
解决访问Github出现的Couldn‘t connect to server错误
文章目录 前言原因分析以及解决办法原因分析解决办法 参考 前言 在Github上面克隆代码仓库出现Failed to connect to 127.0.0.1 port 1080 after 2063 ms: Couldnt connect to server、Failed to connect to github.com port 443 after 21083 ms: Couldnt connect to server等…...
善于打仗的人,没有特别大的名气和勇功
善于打仗的人,没有特别大的勇功 【安志强趣讲《孙子兵法》第15讲】 【原文】 见胜不过众人之所知,非善之善者也;战胜而天下曰善,非善之善者也。 【趣讲白话】 预判胜负没有超出常人的见识,算不上高明中最高明的&#x…...
虚幻官方项目《CropOut》技术解析 之 程序化岛屿生成器(IslandGenerator)
开个新坑详细分析一下虚幻官方发布的《CropOut》,文章会同步发布到我在知乎|CSDN的专栏里 文章目录 概要Create Island几何体生成部分随机种子Step 1Step 2Step 3Step 4Step 5Step 6 岛屿材质部分动态为草地设置颜色 程序设计的小技巧其它Platform Switch函数 概要 …...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
