计算机网络-VLAN原理与配置

news2024/9/29 19:20:05

之前我们学习了以太网的基础知识,了解了网络交换设备的发展,交换机的工作原理,广播域和冲突域。

一、概述

还简单了解了以太网的CSMA/CD通讯机制,以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。CSMA/CD是一种媒体访问控制方法,用于解决网络中多个节点同时发送数据时可能发生的冲突。在CSMA/CD协议中,所有节点在发送数据前都会先侦听信道是否空闲。如果信道空闲,节点会发送数据;如果信道忙碌,节点则会等待一段时间后再次侦听。当两个或更多的节点同时发送数据时,会导致信号发生碰撞。当发生碰撞时,节点会检测到冲突并停止发送数据。其特征是共享通信介质。当主机数目较多时会导致安全隐患、广播泛滥、性能显著下降甚至造成网络不可用。

大家可以想象一下多个交换机串联在一起,有几十台或者几百台交换机进行连接时候,那时候所有的广播数据需要整个网络泛洪会出现什么情况?为了解决这个问题出现了VLAN (Virtual Local Area Network)虚拟局域网,用于隔离广播域。

传统以太网现象: 传统以太网

划分VLAN后: 划分VLAN

二、VLAN的定义与数据格式

2.1 VLAN的原理

VLAN (Virtual Local Area Network)虚拟局域网,特点:

  • 不受地域限制。
  • 同一VLAN内的设备才能直接进行二层通信。

其实可以理解为在交换机内部进行分组,打上标签,属于同组的端口才会进行互相通信。数据链路还是需要通过物理链路进行数据传输的,VLAN只是基于端口进行逻辑隔离。

VLAN通信
VLAN通信

VLAN通过标签识别不同VLAN,VLAN标签 (VLAN Tag)。在二层数据帧直接插入一个VLAN标签。 VLAN标签

VLAN数据帧
VLAN数据帧

VLAN的实现:没有Tag的原始数据帧进入交换机端口被依据IEEE 802.1Q标准(也被称为Dot1Q)定义了一个标记。 VLAN实现

2.2 VLAN的划分方式

有多种划分VLAN的方式,一般常用的就是基于交换机的端口进行划分,其他的比较少见。 VLAN划分方式

VLAN的范围:1~4094,交换机的默认VLAN,VLAN 1,默认交换机所有端口都属于VLAN 1,属于同一个广播域。 基于接口的VLAN划分

三、VLAN的接口类型

思考下,两台交换机都有不同的VLAN,然后交换机间通过线缆连接,那两个连接的接口划分什么VLAN才能使不同VLAN通信呢,配置接口为单个VLAN肯定不能实现全部VLAN互通是吧,因此在二层网络VLAN提供了三种不同的接口类型,以实现不同的功能与使用。

VLAN接口类型
VLAN接口类型

3.1 ACCESS接口

VLAN ID,数据帧中携带的VLAN号,PVID,端口的默认VLAN ID。默认为VLAN1。

ACCESS接口仅允许VLAN ID与接口PVID相同的数据帧通过。 ACCESS接口

简单讲就是接口配置了VLAN后,数据帧进入端口会打上PVID,转发数据时,只会从相同PVID接口转发,就是不同VLAN不会转发和泛洪。

注意:数据帧在交换机内部都是带有VLAN Tag的,只有在发出时才会根据PVID进行剥离或者转发。

一般用于连接电脑、服务器等终端设备。

3.2 Trunk接口

对于Trunk接口,除了要配置PVID外,还必须配置允许通过的VLAN ID列表,其中VLAN 1是默认存在的。

Trunk接口
Trunk接口

Trunk口有一个允许通信的VLAN列表,只有在允许列表才允许通过。允许多个VLAN通过,只允许PVID的数据帧剥离为无tag数据。

Trunk接口特点:

  • Trunk接口仅允许VLAN ID在允许通过列表中的数据帧通过。
  • Trunk接口可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。

Trunk口一般用于交换机之间,Trunk接口还可以用于连接无线AP实现本地转发,以及通过一些特殊配置实现不同VLAN通信。

3.3 Hybrid接口

交换机Hybrid接口是一种特殊的端口模式,它结合了Access接口和Trunk接口的功能。这种接口模式允许多个VLAN的流量通过,并且可以指定哪些VLAN的数据帧被剥离标签。Hybrid接口的主要特点是它具有高隔离度的波分和复用功能,可以实现多个VLAN之间的灵活通信和访问控制。

Hybrid接口特点:

  • Hybrid接口仅允许VLAN ID在允许通过列表中的数据帧通过。
  • Hybrid接口可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag、某些VLAN的帧不带Tag。
  • 与Trunk最主要的区别就是,能够支持多个VLAN的数据帧,不带标签通过。
Hybrid接口
Hybrid接口

Hybrid接口结合了access和trunk接口的特点,但是好像我实践中用得比较少,一般如果是标准配置上述两个接口也已经足够了。

四、VLAN的最佳实践

结论
结论
access与trunk接口
access与trunk接口
hybrid
hybrid

现实情况下可以灵活使用几种接口实现需求。 配置:

# 创建VLAN
[Huawei] vlan vlan-id

# 批量创建vlan
[Huawei] vlan batch { vlan-id1 [ to vlan-id2 ] }

# 配置接口类型为ACCESS,必须创建和VLAN才能进行划分VLAN ID
[Huawei-GigabitEthernet0/0/1] port link-type access

# 配置Access的默认VLAN
[Huawei-GigabitEthernet0/0/1] port default vlan vlan-id 


# 配置接口类型Trunk口
[Huawei-GigabitEthernet0/0/1] port link-type trunk

# 配置trunk接口放行列表
[Huawei-GigabitEthernet0/0/1] port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }

# 配置trunk的默认VLAN
[Huawei-GigabitEthernet0/0/1] port trunk pvid vlan vlan-id



# 配置接口类型Hybrid
[Huawei-GigabitEthernet0/0/1] port link-type hybrid

# 配置接口untagged或者tagged的vlan
[Huawei-GigabitEthernet0/0/1] port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
[Huawei-GigabitEthernet0/0/1] port hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }

# 配置Hybrid接口的缺省VLAN
[Huawei-GigabitEthernet0/0/1] port hybrid pvid vlan vlan-id

# hybrid接口隐含配置
port link_type hybrid
port hybrid pvid vlan 1
port hybrif untagged vlan 1

总结:以太网通过VLAN实现隔离广播域,一般通过接口进行VLAN划分,现实中一般是一个VLAN对应一个子网网段。有三种接口类型,用得较多的是ACCESS用于连接终端,Trunk用于交换机之间互联,Hybrid可以灵活实现复杂的VLAN通信,使用没有那么多。

本文由 mdnice 多平台发布

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

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

相关文章

C++ 学习笔记之运算符重载+案例

目录 一、C 运算符重载 二、定义一个成员函数或全局函数 三、计算时间 1.计算时间差 2.时间加减 四、一个运算符重载实例 一、C 运算符重载 是一种特性,它允许程序员重新定义已有的运算符的行为,以适应自定义类型的操作。通过运算符重载&#xff0…

java内存屏障

参考:https://blog.csdn.net/weixin_73077810/article/details/132804522 内存屏障主要用于解决线程的可见性、有序性问题 代码案例: ReentrantLock保证可见性的原理 在 lock.lock() 和 lock.unlock() 时,都会操作 AbstractQueuedSy…

UEditor在编辑对齐方式时产生额外空行问题

一、问题描述 一个关于UEditor富文本编辑器的问题:在编辑内容对齐方式后保存后浏览器显示的段落上下会比原先多出一些间距。 下面是对齐编辑后,未保存前的的HTML: 保存后,实际会多出一个段落空行: 二、问题调查 经…

Java多线程技术11——ThreadPoolExecutor类的使用1-备份

1 概述 ThreadPoolExecutor类可以非常方便的创建线程池对象,而不需要程序员设计大量的new实例化Thread相关的代码。 2 队列LinkedBlockingQueue的使用 public class Test1 {public static void main(String[] args) {LinkedBlockingQueue queue new LinkedBlocki…

字节跳动基础架构SRE-Copilot获得2023 CCF国际AIOps挑战赛冠军

近日,2023 CCF国际AIOps挑战赛决赛暨“大模型时代的AIOps”研讨会在北京成功举办,活动吸引了来自互联网、运营商、科研院所、高校、软硬件厂商等领域多名专家学者参与,为智能运维的前沿学术研究、落地生产实践打开了新思路。决赛中&#xff0…

leetcode算法题之记忆化搜索总结

记忆化搜索,可以理解为带备忘录的递归,方便进行剪枝,是一种以空间换时间的策略。 本章目录 1.斐波那契数2.不同路径3.最长递增子序列4.猜数字大小II5.矩阵中的最长递增路径 1.斐波那契数 斐波那契数 class Solution { public://递归int f…

GitEE-GitHub实现加速访问与下载项目

gitee域名:https://gitee.com gitee域名:https://github.com 一、从github导出项目到gitee上面,从而实现加速访问与下载 gitee和github都有同步其他仓库的功能,比如码云上就能直接从github或gitlab中导入; 只需要填…

路由器02_静态路由DHCP

一、静态路由 1、静态路由特点 由管理员手工配置,是单向的,缺乏灵活性 2、默认路由 默认路由是一种比较特殊静态路由,一般用于末节(末梢)网络,直接指定目标为任何地方 二、静态…

墨墨智库正式上线:开启您的AI智慧之旅

在这个由数据驱动的时代,AI技术正迅速改变我们的工作和生活方式。有没有想过一个平台可以为您提供所有AI相关资源的便捷访问?这就是「墨墨智库」的使命。我们非常高兴地宣布,经过精心准备和期待,「墨墨智库」现已正式上线&#xf…

深入理解C指针

深入理解C指针 ​#C语言 #​ #C指针 #​ 1 认识指针 指针:一个存放内存地址的变量 1.1 指针和内存 ​​ ‍ 阅读指针声明时候,可以选择倒过来读,会更容易理解。 指针被赋值为NULL时候,会被解释为二进制0. void指针 具有和…

docker 安装elasticsearch、kibana、cerebro

安装步骤 第一步安装 docker 第二步 拉取elasticsearch、kibana、cerebro 镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.2 docker pull docker.elastic.co/kibana/kibana:7.10.2 docker pull lmenezes/cerebro:latest第三步、创建 容器 创建e…

SQL Server从0到1——写shell

xp_cmdshell 查看能否使用xpcmd_shell; select count(*) from master.dbo.sysobjects where xtype x and name xp_cmdshell 直接使用xpcmd_shell执行命令: EXEC master.dbo.xp_cmdshell whoami 发现居然无法使用 查看是否存在xp_cmdshell: EXEC…

深入理解计算机系统(1):开始

计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序。虽然系统的具体实现方式随着时间不断变化,但是系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件,它们又执行着相似的功能。 计算机系统 信息就是位上下…

❀记忆冒泡、选择和插入排序算法思想在bash里运用❀

目录 冒泡排序算法:) 选择排序算法:) 插入排序算法:) 冒泡排序算法:) 思想:依次比较相邻两个元素,重复的进行直到没有相邻元素需要交换,排序完成。 #!/bin/bash arr(12 324 543 213 65 64 1 3 45) #定义一个数组 n${#arr[*]} #获取数组…

非工程师指南: 训练 LLaMA 2 聊天机器人

引言 本教程将向你展示在不编写一行代码的情况下,如何构建自己的开源 ChatGPT,这样人人都能构建自己的聊天模型。我们将以 LLaMA 2 基础模型为例,在开源指令数据集上针对聊天场景对其进行微调,并将微调后的模型部署到一个可分享的…

【STM32】STM32学习笔记-定时器定时中断 定时器外部时钟(14)

00. 目录 文章目录 00. 目录01. 定时器中断相关API1.1 TIM_InternalClockConfig1.2 TIM_TimeBaseInit1.3 TIM_TimeBaseInitTypeDef1.4 TIM_ClearFlag1.5 TIM_ITConfig1.6 TIM_Cmd1.7 中断服务函数1.8 TIM_ETRClockMode2Config 02. 定时器定时中断接线图03. 定时器定时中断示例0…

每日算法打卡:数的范围 day 7

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例:输出样例: 题目分析示例代码 原题链接 789. 数的范围 题目难度:简单 题目描述 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询&#…

数字孪生在虚拟现实(VR)中的应用

数字孪生在虚拟现实(VR)中的应用为用户提供了更深入、沉浸式的体验,同时通过数字孪生技术模拟真实世界的物理实体。以下是数字孪生在VR中的一些应用,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发…

12月笔记

#pragma once 防止多次引用头文件,保证同一个(物理意义上)文件被多次包含,内容相同的两个文件同样会被包含。 头文件.h与无.h的文件: iostream是C的头文件,iostream.h是C的头文件,即标准的C头文…

电话号码信息收集工具:PhoneInfoga | 开源日报 No.137

sundowndev/phoneinfoga Stars: 11.2k License: GPL-3.0 PhoneInfoga 是一个用于扫描国际电话号码的信息收集框架,它允许用户首先收集基本信息 (如国家、地区、运营商和线路类型),然后使用各种技术来尝试找到 VoIP 提供商或识别所有者。该工具与一系列必…