热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VLAN基础、接口类型和实验

VLAN的诞生:最开始网络中只有集线器,没有交换机。但是集线器不分割冲突域,为了减少冲突域,将集线器进行改进为了网桥&#x

VLAN的诞生:

最开始网络中只有集线器,没有交换机。但是集线器不分割冲突域,为了减少冲突域,将集线器进行改进为了网桥,网桥是通过CPU进行转发数据的,转发效率不高,并且接口很少。

随着设备的迭代,首先增加了接口的数量,保证在更大的网络环境中可以使用,然后将由CPU转发改变成了通过硬件转发,加快了转发的速率,这样就是最开始的交换机的样式了,就是所有接口都属于一个广播域。但是这样也出现了问题,所有接口都在一个广播域,也就是接入同一个交换机的设备都在一个网段里面,如果有一个广播报文,所有接口就会转发,并且当时链路带宽并不大,这样就会让正常转发的单播报文很难正常转发;同时需要进行分离(比如公司的不同部门)能够直接互访,导致了极大的安全性问题。

为了解决这个问题,设计人员开始思考。VLAN技术的诞生在最开始就是将不同的VLAN绑定在接口上,不同的VLAN代表不同的广播域,这样就可以解决前面的这个问题了:将不同的用户接入不同的接口,进入不同的vlan,也就是在不同的广播域中,让用户接入更加的灵活,且能够做到隔离。

创建一个VLAN其实就是将交换机划分为逻辑上的多个交换机,默认使用的是VLAN 1,我们每创建一个VLAN,就相当于在交换机上又虚拟出了一个交换机。这个交换机上最开始没有接口,如果我们在实际的交换机上将接口允许本vlan的流量通信,那么就相当于在这个VLAN上添加了对应的接口。并且多个交换机上可以设置同一个VLAN,不同交换机的同一个VLAN间可以二层通信,只要中间的链路允许即可。

最开始时,每条链路只允许一个VLAN通信,也就是access链路,但是随着交换机之间需要通信的VLAN的数量不断增加,又出现了问题,如果对每个VLAN都用一条链路,不仅浪费资源而且接口可能不够。这样就诞生了trunk链路,这个链路允许多个VLAN进行通信。这样的话,组网就更加的灵活了,例如同一个部门的人员可以在不同的交换机上接入同一个VLAN进行通信。

根据以上的总结出VLAN特点:


  1. 限制广播域:广播域被限制在一个VLAN内,从而节省了带宽、提高了网络处理能力。
  2. 增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能与其它VLAN内的用户直接通信。
  3. 提高了网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
  4. 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

VLAN帧格式:

在这里插入图片描述
IEEE 802.1Q是虚拟桥接局域网的正式标准,对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。802.1q Tag各字段含义:


  1. TPID:长度为2字节,表示帧类型。取值为0x8100时表示802.1q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
  2. PRI:Priority,长度为3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。一般情况下,当交换机部署QoS时,优先发送优先级高的数据帧。
  3. CFI:Canonical Format Indicator,长度为1比特,表示MAC地址是否是经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
  4. VID:VLAN ID,长度为12比特,表示该帧所属的VLAN。

每台支持802.1Q协议的交换机都可以发送包含VLAN ID的数据包,以指明自己属于哪一个VLAN。因此,在一个VLAN交换网络中,以太网帧有以下两种形式:


  1. 有标记帧(tagged frame):加入了4字节802.1Q Tag的帧。
  2. 无标记帧(untagged frame):原始的、未加入4字节802.1Q Tag的帧。

三类接口:

Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路。有如下特点:
1.仅仅允许唯一的VLAN ID通过本端口,这个VLAN ID与端口的PVID(Port Default VLAN ID,端口缺省的VLAN ID)相同。
2.接收到不带Tag的报文,则为报文打上接口缺省VLAN标签并接收。
3.接收到带Tag的报文,判断此tag代表是否和接口PVID相同,如果相同便接收,否则丢弃。
4.Access端口发往对端设备的以太网帧永远是不带标签的帧。

Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。有如下特点:
1.Trunk端口允许多个VLAN的帧(带Tag标记)通过。
2.接收到不带Tag的报文,则为报文打上接口缺省VLAN标签(该vlan被接口允许则接收,否则丢弃)。
3.接收到带Tag的报文,判断此标签代表的vlan是否允许通过,否则丢弃。
4.如果从Trunk端口发送的帧带Tag,且Tag与端口缺省的VLAN ID相同,则交换机会剥掉该帧中的Tag标记。仅在这种情况下,Trunk端口发送的帧不带Tag。
5.如果从Trunk端口发送的帧带Tag,但是与端口缺省的VLAN ID不同,则交换机对该帧不做任何动作,直接发送带Tag的帧。

Hybrid端口是交换机上既可以连接用户主机,又可以连接其他交换机的端口,有如下特点:
1.Hybrid端口既可以连接接入链路又可以连接干道链路。Hybrid端口允许多个VLAN的帧通过,并可以在出端口方向将某些VLAN帧的Tag剥掉。
2.接收到不带Tag的报文,则为报文打上接口缺省VLAN标签(该vlan属于untagged或者tag列表则接收,否则丢弃)。
3.接收到带Tag的报文,判断此标签是否属于untagged或者tag列表,如果在则接收,否则丢弃。
4.如果从Hybrid端口发送的帧带Tag,且Tag与端口的untagged列表匹配,则交换机会剥掉该帧中的Tag标记。
5.如果从Hybrid端口发送的帧带Tag,但Tag与端口的tag列表匹配,则交换机对该帧不做任何动作,直接发送带Tag的帧。

个人理解: 如果通过MAC地址表转化到了出接口,这个出接口一定是允许次VLAN通过的,区别是是否去掉对应的Tag;原因是因为进入了此VLAN的报文会按照此VLAN的MAC地址表转发,而只有加入(允许)此VLAN的接口才会出在在本VLAN的MAC地址表中,所以报文到达出接口一定能够将其转发,而不会和入接口时出现可能丢弃的情况。
在这里插入图片描述
总结:
在这里插入图片描述
注意点:
1.access配置了pvid,那么access允许通过的vlan列表就只允许其pvid表示的vlan通过了,默认为1。而trunk口和hybrid口,默认的pvid是1,并且默认允许vlan1通的,但是你修改了pvid的话,默认是不会像access口一样允许其pvid的接口通过的,我们需要专门配置允许其通过(对应trunk链路来说就是允许其vlan通过,对应hybrid接口来说,就是配置接口发出相应vlan的帧的时候到底不去掉tag或者是去掉tag)。
2.另外,是trunk接口,允许所有vlan通过其实只会允许2-4094通过,因为1是默认的,如果不允许所有vlan通过,在命令里其实变成了不允许vlan1通过(vlan 1不能删除)。


实验:使用hybird接口完成同网段不同VLAN互访

实验拓扑:

在这里插入图片描述

具体配置:

PC1的IP地址:
在这里插入图片描述
PC2的IP地址:
在这里插入图片描述
Sw1的配置:
vlan batch 10 20
interface Ethernet0/0/1
port hybrid pvid vlan 10 //接口属于vlan10
port hybrid untagged vlan 10 20 //将vlan10和20的数据帧的tag剥离发出
interface Ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094

Sw2的配置:
vlan batch 10 20
interface Ethernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
interface Ethernet0/0/2
port hybrid pvid vlan 20
port hybrid untagged vlan 10 20

现象:现在使用PC1pingPC2,成功
在这里插入图片描述

具体过程分析:

1.PC1首先发送arp报文到sw1,进入接口时打上vlan10的tag,因为是广播报文,从trunk接口泛洪(trunk接口允许vlan 10通过)pvid为1,不剥离标签;
2.然后sw2的trunk接口接收,进行泛洪操作到E0/0/2口,接口配置了剥离vlan10的标签,就会将标签剥离以后发生给PC2;
3.PC2进行回复时,同样的过程,只不过回复的是单播帧,但是也会进行泛洪,原因是因为查对应vlan的mac地址表进行转发,但是vlan20中没有对应的MAC地址(因为arp请求报文过来时交换机已经在学习的MAC地址在vlan10中)。所以依然从trunk口泛洪出去,到达sw1;
4.sw1接收了带有tag20的arp回复包,依然查看MAC地址表,最后选择泛洪。这样就通过了交换机实现了不同vlan,相同网段的通信;

注意:如果在不同的网段,是无法实现的,因为请求的是就是网关的MAC地址,必须使用三层的转发才行。

参考:华为培训资料


推荐阅读
  • 本文详细解析了vlan接口类型和划分的相关知识,包括access、trunk和hybrid接口类型的特点和功能,以及它们在数据包发送和接收过程中的处理方式。同时介绍了pvid的作用和使用方法,以及trunk接口在发送数据包时的处理规则。最后,还介绍了如何使所有vlan生效的方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 交换机配置:intg100unshintvlani1ipadd192.168.56.177qstelseuser-iv4authaaaproinsshupl3qsshuserpyt ... [详细]
  • CISCO ASA防火墙Failover+multiple context详细部署By 年糕泰迪[操作系统入门]
    一.文章概述本文主要就CISCOASA防火墙的高可用和扩张性进行阐述和部署。再cisco防火墙系列中主要有3种技术来实现高可用和扩张性。分别是Failover,multiplese ... [详细]
  • 前言作为一个移动端初学者、爱好者,能使用前端技术开发原生游戏一直是一件渴望而不可及的事情,暂且不说游戏逻辑的复杂度,算法的健壮性ÿ ... [详细]
  • 华为设备:企业局域网规划及三层交换机技术
    一、实验环境公司最近新租赁了写字楼,领导要求一定要好好规划网络,整理IP地址二、实验需求1、财务部有几台服务器,IP地址不能变&#x ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • NSD cisco高级路由与交换技术2014.8.12
    实验01:DHCP服务的应用实验目标:通过建立DHCP服务,给计算机自动分配地址实验环境:实验步骤:一、配置计算机pc8pc ... [详细]
author-avatar
呵呵傻乎乎宝宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有