GVRP协议与动态、静态vlan

在这里插入图片描述

一、GVRP协议使用场景

1、当实际组网复杂到网络管理员无法短时间内了解网络的拓扑结构,或者是整个网络的VLAN太多时,工作量会非常大,而且非常容易配置错误。在这种情况下,用户可以通过GVRP的VLAN自动注册功能完成VLAN的配置。
2、GVRP特性使得不同设备上的VLAN信息可以由协议动态维护和更新,用户只需要对少数设备进行VLAN配置即可应用到整个交换网络,无需耗费大量时间进行拓扑分析和配置管理。
3、主干结构使用的是华为系列智能网管型交换机时。
4、网络覆盖范围较大时,不建议使用GVRP协议。当需要GARP动态注册的VLAN数量较多或网络半径较大时,使用缺省定时器值可能会导致VLAN震荡、设备CPU占用率偏高。

二、GVRP协议简介

(一)GVRP协议的三类消息

GVRP协议应用实体之间的信息交换借助于消息的传递来完成,主要有三类消息起作用,分别为Join消息、Leave消息和Leave All消息。
1、Join消息:当一个GARP应用实体希望其它设备注册自己的属性信息时,它将对外发送Join消息;当收到其它实体的Join消息或本设备静态配置了某些属性,需要其它GARP应用实体进行注册时,它也会向外发送Join消息。
Join消息分为Join Empty和Join In两种,区别如下:
(1)Join Empty:声明一个本身没有注册的属性。
(2)Join In:声明一个本身已经注册的属性。
2、Leave消息:当一个GARP应用实体希望其它设备注销自己的属性信息时,它将对外发送Leave消息;当收到其它实体的Leave消息注销某些属性或静态注销了某些属性后,它也会向外发送Leave消息。
Leave消息分为Leave Empty和Leave In两种,区别如下:
(1)Leave Empty:注销一个本身没有注册的属性。
(2)Leave In:注销一个本身已经注册的属性。
3、Leave All消息:每个应用实体启动后,将同时启动Leave All定时器,当该定时器超时后应用实体将对外发送Leave All消息。
Leave All消息用来注销所有的属性,以使其它应用实体重新注册本实体上所有的属性信息,以此来周期性地清除网络中的垃圾属性(例如某个属性已经被删除,但由于设备突然断电,并没有发送Leave消息来通知其他实体注销此属性)。
每个GARP应用实体启动后,将同时启动Leave All定时器,当该定时器超时后GARP应用实体将对外发送Leave All消息,随后再启动Leave All定时器,开始新的一轮循环。

(二)GVRP协议的注册模式:

手工配置的VLAN称为静态VLAN,通过GVRP协议创建的VLAN称为动态VLAN。GVRP有三种注册模式,不同的模式对静态VLAN和动态VLAN的处理方式也不同。GVRP的三种注册模式分别定义如下:
1、Normal模式:允许动态VLAN在端口上进行注册,同时会发送静态VLAN和动态VLAN的声明消息。
2、Fixed模式:不允许动态VLAN在端口上注册,只发送静态VLAN的声明消息。
3、Forbidden模式:不允许动态VLAN在端口上进行注册,同时删除端口上除VLAN1外的所有VLAN,只发送VLAN1的声明消息。

(三)VLAN的注册和注销

1、GVRP协议可以实现VLAN属性的自动注册和注销:
(1)VLAN的注册:指的是将端口加入VLAN。
(2)VLAN的注销:指的是将端口退出VLAN。
2、GVRP协议通过声明和回收声明实现VLAN属性的注册和注销。
(1)当端口接收到一个VLAN属性声明时,该端口将注册该声明中包含的VLAN信息(端口加入VLAN)。
(2)当端口接收到一个VLAN属性的回收声明时,该端口将注销该声明中包含的VLAN信息(端口退出VLAN)。
3、说明:GVRP协议的属性注册和注销仅仅是对于接收到GVRP协议报文的端口而言的。

三、拓扑图:

在这里插入图片描述

四、配置过程:

配置命令理解参考:
https://blog.csdn.net/weixin_43075093/article/details/130466915
https://blog.csdn.net/weixin_43075093/article/details/130662938
https://blog.csdn.net/weixin_43075093/article/details/130893922

(一)LSW1:

System-view
sysname LSW1
Gvrp
vlan batch 10 20
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
interface Ethernet0/0/1
interface Ethernet0/0/2
port link-type access
port default vlan 10
interface Ethernet0/0/3
port link-type access
port default vlan 20

(二)LSW2:

System-view
sysname LSW2
Gvrp
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp

(三)LSW3:

System-view
sysname LSW3
gvrp
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
interface GigabitEthernet0/0/3
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp

(四)LSW4:

System-view
sysname LSW4
gvrp
vlan batch 30 40
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
gvrp registration fixed
interface Ethernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
interface Ethernet0/0/2
port link-type access
port default vlan 30
interface Ethernet0/0/3
port link-type access
port default vlan 40

(五)LSW5:

System-view
sysname LSW5
gvrp
vlan batch 50
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
gvrp registration forbidden
interface Ethernet0/0/1
port link-type access
port default vlan 50

五、结果验证:

(一)在不同的交换机上查看GVRP协议的工作模式和vlan运行状态

1、在LSW1上查看动态与静态vlan:
相对LSW1来说,vlan30和vlan40是动态的;vlan10和van20是自己创建的静态vlan。vlan50被forbidden模式抑制。如下图:
在这里插入图片描述

2、在LSW2上查看动态与静态vlan:
在这里插入图片描述

相对LSW2来说,van10、20、30、40都是动态vlan,在LSW2上的2个接口运行的GVRP协议都是normal模式。LSW4的接口运行的Fixed模式:不允许动态VLAN在端口上注册,只发送静态VLAN的声明消息,所以vlan30、40能声明后由LSW3和LSW2接收到。vlan 50仍然是被forbidden模式抑制。

3、在LSW3上查看动态与静态vlan:
在这里插入图片描述

相对LSW3来说,3个接口都开启了GVRP的normal模式,所以也能收到vlan1、 10、20、30、40的声明,能透传这几个vlan的数据。其中vlan10、20、30、40都不是在本地创建的静态vlan,所以都是dynamic动态vlan。
4、在LSW4上查看动态与静态vlan:
在这里插入图片描述

由于LSW4的G0/0/1接口开启GVRP协议时使用的是fixed模式,所以只声明自己创建的静态vlan30、40,不能传递LSW1创建的vlan10、20。相对LSW4来说,LSW1创建的vlan 10、20,在自己看来属于动态vlan,所以不声明,不透传。Vlan 50仍被LSW5的forbidden模式抑制,该模式只传递vlan1。

5、在LSW5上查看动态与静态vlan:
在这里插入图片描述

由于LSW5的上行接口G0/0/1开启的是GVRP协议的forbidden模式,该模式只传递vlan1的声明,所以LSW5只转发vlan1和自己创建的vlan50的数据,且vlan50的数据只在本交换机内转发。

(二)抓包查看不同的消息状态

1、join empty消息:声明一个本身没有注册的属性。
在这里插入图片描述

2、join in消息:声明一个本身已经注册的属性。
在这里插入图片描述

3、Leave Empty:注销一个本身没有注册的属性消息。当一个GARP应用实体希望其它设备注销自己的属性信息时,它将对外发送Leave消息;当收到其它实体的Leave消息注销某些属性或静态注销了某些属性后,它也会向外发送Leave消息。
在这里插入图片描述

4、Leave in消息:注销一个本身已经注册的属性。
(1)拓扑图中,LSW1与LSW3上都创建了静态vlan10时,在LSW2上查看vlan如下图:
在这里插入图片描述
两端(LSW1、LSW3)都会声明动态vlan10给LSW2,如上图。
(2)在LSW1上断开G0/0/1端口
在这里插入图片描述
(3)在LSW2的G0/0/1接口抓包可看到leave in消息,如下图:
在这里插入图片描述

5、Leave All消息:每个应用实体启动后,将同时启动Leave All定时器,当该定时器超时后应用实体将对外发送Leave All消息。
在这里插入图片描述

至此,本文运用的GVRP协议结束,不足之处敬请批评指正。

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

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

相关文章

【大模型完全入门手册】——大模型入门理论(大语言模型公开数据集)

博主作为一名大模型开发算法工程师,很希望能够将所学到的以及实践中感悟到的内容梳理成为书籍。作为先导,以专栏的形式先整理内容,后续进行不断更新完善。希望能够构建起从理论到实践的全流程体系。 助力更多的人了解大模型,接触大模型,一起感受AI的魅力! 在当今机器学习…

【快捷部署】020_Jenkins(2.60.3)

📣【快捷部署系列】020期信息 编号选型版本操作系统部署形式部署模式复检时间020Jenkins2.60.3Ubuntu 20.04Docker单机2024-04-17 一、快捷部署 #!/bin/bash ################################################################################# # 作者&#xff1…

使用C++解决数据结构问题的实例

随着计算机科学的不断发展,数据结构已经成为一个重要的领域。在计算机编程中,数据结构是非常重要的,因为它是数据存储和管理的方式。一个完美的数据结构能够提高程序的效率和可扩展性。在这篇文章中,我们将探讨如何使用c解决数据结…

BackTrader 中文文档(十二)

原文:www.backtrader.com/ Visual Chart 原文:www.backtrader.com/docu/live/vc/vc/ 与 Visual Chart 的集成支持两者: 实时数据提供 实时交易 Visual Chart是完整的交易解决方案: 在单个平台上集成图表、数据源和经纪功能 更多…

WebGl/Three 粒子系统 人物破碎及还原运动

粒子 首先,加载模型,这是万千粒子的前身,模型对象由很多面构成,这些面又是由各个点构成的,所以可以将模型的几何体对象geometry赋给粒子对象,粒子物体用Points方式渲染 bloader.load("obj/female02/Fe…

PyTorch深度学习入门-2

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili 一、神经网络的基本骨架 --nn.Module Neutral network torch.nn — PyTorch 2.2 documentation * import torch from torch import nnclass xiaofan(nn.Module):…

C语言经典例题(31)

文章目录 1.交换数组2.统计二进制中1的个数3.交换两个变量(不创建临时变量)4.打印菱形5.字符串左旋 1.交换数组 将数组A中的内容和数组B中的内容进行交换。(数组大小一样) #include <stdio.h>void swap(int arr1[],int arr2[], int sz) {int tmp 0;for (int i 0;i &l…

GAN:对抗生成网络【通俗易懂】

一、概述 对抗生成网络&#xff08;GAN&#xff09;是一种深度学习模型&#xff0c;由两个神经网络组成&#xff1a;生成器G和判别器D。这两个网络被训练来协同工作&#xff0c;以生成接近真实数据的新样本。 生成器的任务是接收一个随机噪声向量&#xff0c;并将其转换为与真…

如何入行产品经理?

转产品经理第一点要先学基础理论知识&#xff0c;学了理论再去实践&#xff0c;转行&#xff0c;跳槽&#xff01; 学理论比较好的就是去报NPDP的系统班&#xff0c;考后也会有面试指导课&#xff0c;跟职场晋升课程&#xff0c;对小白来说非常合适了~&#xff08;可以去哔站找…

氟化氢冷凝回流反应瓶耐高温聚四氟烧瓶可灵活加工PTFE反应釜

四氟烧瓶又叫反应瓶、PTFE反应釜&#xff0c;常用于有HF或者冷凝回流反应等实验中&#xff0c;可作为接收瓶使用&#xff0c;可放入水浴器或油浴器里进行加热&#xff0c;平底稳定性好。相对于圆底烧瓶可直接放置&#xff0c;不需要铁架台等固定。 1.外观纯白不透明&#xff1b…

Jenkins打包app并通过openssh上传到服务器

1、下载安装openssh 网上很多教程&#xff0c;包括开端口的&#xff0c;可以搜下 2、配置openssh根目录 进入C:\ProgramData\ssh打开文件sshd_config&#xff0c;添加配置ChrootDirectory D:\wxs\soft&#xff0c;想改端口的也在这个文件 3、安装Jenkins 参考上一篇 4、新…

UE5 C++ 射线检测

一.声明四个变量 FVector StartLocation;FVector ForwardVector;FVector EndLocation;FHitResult HitResult;二.起点从摄像机&#xff0c;重点为摄像机前9999m。射线检测 使用LineTraceSingleByChannel 射线直线通道检测&#xff0c;所以 void AMyCharacter::Tick(float Delt…

基于rq库的异步实现

GitHub 生产者 # main.py from datetime import timedelta import time from rq import Queue from redis import Redisfrom demo import count_words_at_url import rq# 连接到 Redis redis_conn Redis(host"192.168.3.199", port6379, db3, password""…

18-Echarts 配置系列之:数据集 dataset

简介&#xff1a; 数据集&#xff08;dataset&#xff09;是专门用来管理数据的组件。简化在每一个系列中设置数据&#xff0c;这一个配置是在Echarts4 中开始支持。 通过数据集配置&#xff0c;避免为每一个系列创建一个数据&#xff0c;避免格式转化的痛苦。 简单举例&…

HarmonyOS开发实例:【分布式数据管理】

介绍 本示例展示了在eTS中分布式数据管理的使用&#xff0c;包括KVManager对象实例的创建和KVStore数据流转的使用。 通过设备管理接口[ohos.distributedDeviceManager]&#xff0c;实现设备之间的kvStore对象的数据传输交互&#xff0c;该对象拥有以下能力 ; 1、注册和解除注…

其它IO合集

其它IO合集 1. 缓冲流1.1 概述1.2 字节缓冲流构造方法效率测试 1.3 字符缓冲流构造方法特有方法 2. 转换流2.1 字符编码和字符集字符编码字符集 2.2 编码引出的问题2.3 InputStreamReader类构造方法指定编码读取 2.4 OutputStreamWriter类构造方法指定编码写出转换流理解图解 3…

Ubuntu 22.04 安装 zabbix

Ubuntu 22.04 安装 zabbix 1&#xff0c;Install Zabbix repository2&#xff0c;安装Zabbix server&#xff0c;Web前端&#xff0c;agent3&#xff0c;安装mysql数据库3.1 创建初始数据库3.2 导入初始架构和数据&#xff0c;系统将提示您输入新创建的密码。3.3 在导入数据库架…

Learn something about front end——颜色

​ 好装的标题啊哈哈哈哈哈哈 最近get了一个学习前端的网站叫FreeCodeCamp 原色&#xff1a;rgb三个值的其中一个值拉满&#xff0c;比如说rgb(255,0,0)是红色这样&#xff0c;三个主色&#xff1a; 红色 rgb(255, 0, 0) #FF0000绿色 rgb(0, 255, 0) #00FF00蓝色 rgb(0, 0, …

JS-41-underscore03-Arrays

underscore为Array提供了许多工具类方法&#xff0c;可以更方便快捷地操作Array。 一、first / last 顾名思义&#xff0c;这两个函数分别取第一个和最后一个元素&#xff1a; var arr [2, 4, 6, 8]; _.first(arr); // 2 _.last(arr); // 8 二、flatten flatten()接收一个…

Python的pytest框架(2)--断言机制

接上篇文章&#xff0c;我们使用pytest框架&#xff0c;实现自动发现并执行用例&#xff0c;接着利用断言语句判断测试结果&#xff0c;最后生成报告。这篇文章我们就断言机制来展开&#xff0c;深入学习进阶pytest框架的断言机制&#xff1a; 目录 一、基本断言 使用Python…