vlan划分不能上网_VLAN工作原理

什么是VLAN

VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。可以看做是在一个物理局域网络上搭建出几个逻辑上分离的几个局域网。举个例子来说,如果一个交换机划分为两个VLAN,则相当于这台交换机逻辑上划分为两个交换机。

e5a2a2dd4affe21fb4455e5477400756.png

VLAN的一个简单直观说明:物理上一个交换机,分为逻辑上两个分离的交换机

上面这个简单例子是对一台交换机上的VLAN划分,实际上VLAN也可以跨越多台交换机,本质上VLAN是一个网络层次上的概念,将整个网络划分为多个逻辑上隔离的网络(一个VLAN就是一个独立的广播域)比如下图的VLAN2和VLAN5。

afae978fd20bd8926e7294c6975624ea.png

跨越多台交换机的VLAN

那么我们为什么要引入VLAN的概念,VLAN究竟有哪些好处,总结起来主要有下面几点:

  1. 更安全:数据包仅在本VLAN内传递。

由于配置了VLAN后,一个VLAN的数据包不会发送到另一个VLAN,这样,其他VLAN的用户的网络上是收不到任何该VLAN的数据包,这样就确保了该VLAN的信息不会被其他VLAN的人窃听,从而实现了信息的保密。

  • 更高效:泛洪转发仅在本VLAN内复制。

按照802.1D透明网桥的算法,如果一个数据包找不到MAC表,那么交换机就会将该数据包向除接收端口以外的其他所有端口发送,这就是桥的泛洪转发。(典型的广播方式包括组播报文,广播报文,以及未知单播报文都会进行泛洪转发)。这样的结果,毫无疑问极大的浪费了带宽,如果配置了VLAN,那么,当一个数据包需要泛洪转发时,交换机只会将此数据包发送到所有属于该VLAN的其他端口,而不是所有的交换机的端口,这样,就将数据包限制到了一个VLAN内。在一定程度上可以节省带宽。

  • 更方便:不改变物理组网的情况下,灵活进行逻辑网络的变更。

使用VLAN的最终目标就是建立虚拟工作组模型,例如,在企业网中,同一个部门的就好象在同一个LAN上一样,很容易的互相访问,交流信息,同时,所有的广播包也都限制在该虚拟LAN上,而不影响其他VLAN的人。一个人如果从一个办公地点换到另外一个地点,而他仍然在该部门,那么,该用户的配置无须改变;同时,如果一个人虽然办公地点没有变,但他更换了部门,那么,只需网络管理员更改一下该用户的配置即可。这个功能的目标就是建立一个动态的组织环境,当然,这只是一个理想的目标,要实现它,还需要一些其他方面的支持。

如何实现VLAN功能

1. 如何识别VLAN报文

要使网络设备能够分辨不同VLAN的报文,需要在报文中添加标识VLAN的字段。由于普通交换机工作在OSI模型的数据链路层,只能对报文的数据链路层封装进行识别。因此,如果添加识别字段,也需要添加到数据链路层封装中。
IEEE于1999年颁布了用以标准化VLAN实现方案的IEEE 802.1Q协议标准草案,对带有VLAN标识的报文结构进行了统一规定。

  • 无VLAN的传统的以太网数据帧格式:目的MAC地址和源MAC地址之后封装的是上层协议的类型字段,

  • DA表示目的MAC地址

  • SA表示源MAC地址

  • Type表示报文所属协议类型。

    fc568212d2b3f0bac8b688a0698319aa.png

    传统无VLAN的二层报文

  • 增加VLAN Tag支持的以太网帧格式:IEEE 802.1Q协议规定在目的MAC地址和源MAC地址之后封装4个字节的VLAN Tag,用以标识VLAN的相关信息。VLAN Tag包含四个字段,分别是TPID(Tag Protocol Identifier,标签协议标识符)、Priority、CFI(Canonical Format Indicator,标准格式指示位)和VLAN ID。

  • TPID用来判断本数据帧是否带有VLAN Tag,长度为16bit,缺省取值为0x8100。

  • Priority表示报文的802.1P优先级,长度为3bit,相关内容请参见“QoS分册”中的“QoS配置”。

  • CFI字段标识MAC地址在不同的传输介质中是否以标准格式进行封装,长度为1bit,取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装,缺省取值为0。

  • VLAN ID标识该报文所属VLAN的编号,长度为12bit,取值范围为0~4095。由于0和4095为协议保留取值,所以VLAN ID的取值范围为1~4094。

网络设备利用VLAN ID来识别报文所属的VLAN,根据报文是否携带VLAN Tag以及携带的VLAN Tag值,来对报文进行处理。

a89a88ccf2d35cab5deeac1dd504c93b.png

支持VLAN字段以后的二层报文

2. 交换机如何转发VLAN报文

要说明交换机如何转发报文,先得说明一下交换机支持VLAN时用到的几个专用术语:
端口类型:VLAN交换机的端口一般可以分为几大类:

  1. Access端口:一般用于交换机与终端之间,该类端口仅归属于一个VLAN。Access链路上的报文没有VLAN tag,与传统报文保持兼容。但交换机的Access端口上回配置Vlan。这样所有从该Access链路上收到的报文都归属于Access端口所归属的Vlan。(核心概念:报文兼容,没有vlan-tag)

  1. Trunk端口:一般交换机与交换机之间,该类型端口允许多个VLAN的报文通过。该端口所在的链路上的报文需要有VLAN tag。(核心概念:除默认Vlan外,其他VLAN报文有vlan-tag)

  2. Hybrid端口:Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。(核心概念:哪些vlan打tag,哪些不打tag可以手工配置)

术语:默认VLAN-ID(或者缺省VLAN-ID,PvidVlan,Native Vlan,都是一个意思):简而言之,收报文:如果是没有tag,则认为来自于默认vlan;发报文:如果是该vlan的报文则不打VLAN tag

  • Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;

  • Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1 。如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则认为报文的VLAN ID是缺省VLAN-ID;当端口发送报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。

下面具体介绍着几种端口的工作原理

2.1 Access端口

这一类端口只有一个唯一的VLAN。通常由于交换机与终端的连接。为了保持与已有终端的兼容性,在设计VLAN相关协议时有这样一个约束:端口发送和接收的报文格式都不允许修改,也就是说,这一类接口上收发的报文都不带VLAN信息。(Untagged)。
既然报文中不带VLAN信息,又要满足VLAN隔离性需求,则必然在端口上要进行VLAN-ID的设置(这个VLAN称为端口的PVID)。

2.2 Access端口的报文转发流程

  • Acess端口收报文:

  1. 收到个报文判断是否有VLAN信息:

  1. 如果没有则打上端口 PVID并进行交换、转发,

  2. 如果有则直接丢弃(缺省)

  • Acess端口发报文:

Access端口发送非常简单,将报文VLAN信息剥离,直接发送出去

2.2 Access端口如何划分VLAN

为了方便用户使用,各设备厂商实现了多种方式来进行VLAN划分,总的来说,有静态方式和动态方式两大类:

  • 静态方式:通过用户手工配置方式,来指定某个端口属于哪个VLAN,静态方式也成为基于端口的VLAN。当网络中的计算机数目超过一定数字(比如数百台)后,这些配置操作就会变得烦杂无比。并且,客户机每次变更所连端口,都必须同时更改该端口所属VLAN的设定——这显然不适合那些需要频繁改变拓补结构的网络。

  • 动态方式:动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN。这可以减轻配置人员的负担。动态VLAN又可以进一步分为下面3类:

  1. 基于MAC地址的VLAN(MAC Based VLAN)

基于MAC地址的VLAN,就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。假定有一个MAC地址“A”被交换机设定为属于VLAN  “10”,那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN 10中去。

  • 基于子网的VLAN(Subnet Based VLAN)

基于子网的VLAN,则是通过所连计算机的IP地址,来决定端口所属VLAN的。不像基于MAC地址的VLAN,即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLAN。

  • 基于协议或用户的VLAN(User Based VLAN)

基于协议或用户的VLAN,则是根据交换机各端口所连的计算机发送报文的协议,或者计算机上当前登录的用户,来决定该端口属于哪个VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。这些用户名信息,属于OSI第四层以上的信息。

2.4 Trunk端口

其实原则上,有了Access口,就可以完成VLAN所需要的完整功能了。比如:交换机上也使用Access口进行连接,每一个端口一个VLAN进行隔离。比如下面的例子,两个VLAN,全部使用Access接口来构建。

5178785f4929f378ac36afa8c936137c.png

全部使用ACCESS接口构建VLAN网络

但这儿存在一个问题,因为一个Access口仅属于一个VLAN,如果两个交换机配置了成百上千个VLAN,这些VLAN需要跨交换机组网时,意味着两个交换机之间需要连接成百上千根的Access口链路。这样组网成本太高了。
为了解决这一问题,提出了Trunk端口的概念,Trunk端口允许接受和发送多个VLAN的报文,这些报文都打上VLAN-tag,用来标示每一个报文属于哪个VLAN。这样,交换机之间就只需要一个Trunk链路,就可以将多个VLAN连接起来。

89d96b4915048f878926e7e37fa3a2c2.png

Trunk端口,用于连接交换机,充当逻辑上的多个链路

2.5 Trunk端口的报文收发流程

  • Trunk端口收报文:

Trunk端口收到一个报文,判断是否有VLAN信息:

  • 如果报文中没有VLAN-tag,则打上端口的PVID,并进行交换转发,

  • 如果报文中有Vlan-tag,进一步判断trunk端口是否允许该 VLAN的数据进入:

    • 如果可以则转发

    • 否则丢弃

  • Trunk端口发报文:

比较端口的PVID和将要发送报文的VLAN信息:

  • 如果两者相等则剥离VLAN信息,再发送

  • 如果不相等则直接发送

2.6 Hybrid端口

Hybrid端口和Trunk端口的相同之处在于两种链路类型的端口都可以允许多个VLAN的报文发送时打标签;不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。
对于Hybrid端口来说,可以同时属于多个VLAN。这些VLAN分别是该Hybrid端口的PVID,以及手工配置的”untagged”及”tagged”方式的VLAN。

2.7 Hybrid端口的报文收发流程

  • Hybrid端口收报文:  与Trunk端口手报文流程完全相同。

Hybrid端口收到一个报文,判断是否有VLAN信息:

  • 如果报文中没有VLAN-tag,则打上端口的PVID,并进行交换转发,

  • 如果报文中有Vlan-tag,进一步判断trunk端口是否允许该 VLAN的数据进入:

    • 如果可以则转发

    • 否则丢弃

  • Hybrid端口发报文:

判断该VLAN在本端口属性(哪些vlan需要打tag,哪些不需要打tag,是手工配置的):

  • 如果需要tag,则tag后直接发送(同Trunk端口)

  • 如果不需要tag,则剥离tag后发送(同Access端口)因为Hybrid端口的行为是access和trunk的混合模式,所以称为Hybrid

2.8 Hybrid的应用场景:

通常,可以使用Hybrid对相同网段的主机进行访问权限的控制。比如,通过配置Hybrid端口,可以让改端口的主机同时归属于多个VLAN,并与多个VLAN的主机进行通讯。

c2a0561d4101218cc909db0124119a7a.png

应用场景1:PC间隔离

组网需求:

  • PC1和PC2之间可以互访;

  • PC1和PC3之间可以互访;

  • PC1、PC2和PC3都可以访问服务器;

配置说明:

  • E0/1: Hybrid端口,归属V10, 同时untag加入V20,V30,V100(PC1访问PC2,PC3,Server)

  • E0/2: Hybrid端口,归属V20, 同时untag加入V10,V100(PC2访问PC1,Server)

  • E0/3: Hybrid端口,归属V30, 同时untag加入V10,V100(PC3访问PC1,Server)

  • G2/1: Hybrid端口,归属V100, 同时untag加入V10,V20,V30(服务器访问PC1,PC2,PC3)

41fe9ec92af12bb9dce64d42593561fb.png

应用场景2

组网需求

  1. PC1和PC3之间可以互访;

  2. PC2和PC3之间可以互访;

  3. PC1和PC4之间可以互访;

  4. PC2和PC5之间可以互访;

  5. 其余PC之间均禁止互相访问。

配置说明:
SwitchA:
E0/1: Hybrid端口,加入V10,同时untag加入V30
E0/2: Hybrid端口,加入V20,同时untag加入V30
E0/3: Hybrid端口,加入V30,同时untag加入V10,V20.
G2/1: Hybrid端口,(不加入某个VLAN),tagged加入V10,V20。
SwitchB:
E0/1: Access端口,加入V10
E0/2: Access端口,加入V20
E0/1: Hybrid端口,(不加入某个VLAN),tagged加入V10,V20。
注:交换机间的Hybrid端口,等价于Trunk端口

注意事项

配置Trunk端口或Hybrid端口,并利用Trunk端口或Hybrid端口发送多个VLAN报文时一定要注意:本端端口和对端端口的缺省VLAN ID(端口的PVID)要保持一致。

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

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

相关文章

控制for each循环次数_CCF CSP编程题解201312-1:出现次数最多的数

试题编号:201312-1试题名称:出现次数最多的数时间限制:1.0s内存限制:256.0MB问题描述:给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式:输入的第一行只有一…

旋流式沉砂池计算_旋流沉砂池设计方法

旋流沉砂池设计接口条件和主要参数设计旋流沉砂池前要确认的接口条件和信息包括:地质、气候等基本设计条件;可用地尺寸及在总图的位置坐标;地坪标高,上下游水位或范围,冻土层高度,管道覆土小深度要求&#…

parallelstream启动的线程数_高并发与多线程网络学习笔记(三)线程组和线程池

线程组线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。构造函数ThreadGroup(String name)//默认parent为当前线程组 ThreadGroup(ThreadGroup parent, String name)具体方法//评估当前活跃的线程数,包括当前group和子g…

pytorch l2正则化_吴恩达深度学习 编程作业六 正则化(2)

推荐守门员应该将球踢到哪个位置,才能让自己的队员用头击中。1.无正则化模型判别是否有正则化与调用其他计算函数。准确率:0.948/0.915明显过拟合overfiting了。2.L2正则化公式如下,在原有cost函数基础上增加L2项,L2为参数w的均方…

vs中工具箱代表的意思_“日”除了代表太阳,其实还有这种意思,特别是出现在这些词语中的“日”...

对于“日”来说,大家都并不陌生,对于日的成语更是多得数不胜数,今天小编将日字成语进行了一个总结,需要用到的朋友们可以收藏!一:以“日”开头的成语,大多数形容的是时间。日积月累、日久天长、…

mysql or走索引吗_加了索引,mysql查询就一定会用吗?

小白白跑去鹅厂面试,面试官提出了一个很实际的问题: mysql增加索引,那些情况会失效呢?谈一下实际工作中遇到的情况。我们的小白白又抛出了白氏秘籍:用不用索引,找DBA小姐姐!啊?这是你…

基本农田卫星地图查询_如何基于西安80坐标查询定位

1. 概述水经注软件除了可以轻松下载无水印Google Earth卫星影像、有明确拍摄日期的历史影像、地方高清天地图、百度高德大字体打印地图,且可按1万/5千等国家标准图幅下载,下载含高度的全国矢量建筑、全国乡镇及街区行政区划、地名点、高速铁路网、公交路…

tcp的无延时发送_高并发架构的TCP知识介绍

这是关于高并发架构网络协议基础知识的第二篇,编程路上的基础心法!做为一个有追求的程序员,不能只满足增删改查,我们要对系统全方面无死角掌控。掌握了这些基本的网络知识后,相信一方面日常排错中会事半功倍&#xff0…

如何对一个变量数据进行正则判定_生存分析数据中的BuckleyJamesMultipleRegression Model...

一、模型简介目前,生存分析领域,最常用的是Cox比例风险回归模型,该模型具有良好的特性,不仅可以分析各种自变量对生存时间的影响,而且对基准风险分布不作任何要求(半参数模型)。Cox模型使用时要满足一定的条件&#xf…

格兰杰因果关系检验r语言_R语言系列第四期:R语言单样本双样本差异性检验

之前详细介绍了利用R语言进行统计描述,详情点击:R语言系列第三期:①R语言单组汇总及图形展示、R语言系列第三期:②R语言多组汇总及图形展示、R语言系列第三期:③R语言表格及其图形展示从这个部分我们就开始为大家介绍统…

java 配置jmstemplate_SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解...

1.导入jar包:org.springframework.bootspring-boot-starter-activemqorg.apache.activemqactivemq-pool2.填写配置文件(application.properties)#设置JMS(AMQ)spring.activemq.broker-urltcp://localhost:61616spring.activemq.useradminspring.activemq.passwordad…

切面是异步还是同步操作‘_分布式中采用Logback的MDC机制与AOP切面结合串联日志...

导读:在实际开发中,打印日志是十分重要的。在生产环境中,如果日志打得好可以快速地排查问题,而在分布式的场景下,一个请求会跨越多个节点,既一个业务可能需要多个节点协调配合处理。那么日志将会分散&#…

java 图类_Java集合类,一张图说清楚!

作者:skywang12345https://www.cnblogs.com/skywa...2019-03-23 10:32:24Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*,Java集合主要可以划分为4个部分…

python 取整_马克的Python学习笔记#数字,日期和时间

对数值进行调整在Python中对整数和浮点数进行数字计算是很容易的。但是,如果你需要对分数,数组或者日期和时间进行计算,这就会稍微复杂点。对于简单的取整操作,我们可以使用内建的round(value, ndigits)函数就可,举个例…

各路由协议的协议号_厂房转让协议

厂房转让协议转让方(甲方):________________受让方(乙方):________________甲乙双方本着平等互利的原则,经协商一致就甲方将其权属的工业用地、厂房等转让与乙方及有关事项达成如下协议:一、工业用地及厂房产权基本情况本协议转让的工业用地位…

java web开发常见问题_JavaWeb学习笔记(五)--Web开发其他常见问题

一、把web应用打成war包使用JDK自带jar命令,进入到web应用里面,执行命令:jar -cvf 包名.war . # .表示当前目录所有的文件 直接用jar可查看帮助执行完成后生成一个demo.war文件,把这个文件拷贝到Tomcat的webapps下,Tom…

uwsgi怎么通过浏览器访问某个脚本_4个Shell小技巧帮你提高机器学习效率:写好脚本,事半功倍...

晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI在机器学习的实践过程中,用好Shell能帮你很多节省时间。最近,有位来自ETHZ的学生分享了一些Shell小技巧。对程序员来说,这些技巧更重要的是让你的思维从琐碎小事中解脱出来,大大提高…

间接寻址级别不同_被遗忘的利息税,国债与存款的利率区别,同大额存单的4点大不同...

2020年6月10日的储蓄式电子国债发行又一次与理财人擦肩而过,因为疫情管控原因,此次暂时不发行,那么下一个认购国债的窗口,就是7月10日,仍然是储蓄式电子国债,期限还是3年期和5年期两种。那么能如期发行吗&a…

抽象类可以用new创建对象吗_宠物可以用人类的湿巾吗?猫咪有泪痕可以用纸巾擦掉吗?...

宠物还有专用的湿巾?当然喽!不养宠物的小伙伴可能是无法理解的,人类的生活条件好了,宠物的生活条件在很多方面比人类还更上一层台阶呢!喜欢逛宠物店和宠物展的小伙伴都会有这样的感慨,那就是人生不如喵生狗…

java什么时候需要同步_JAVA中线程在什么时候需要同步和互斥

JAVA中线程在什么时候需要同步和互斥关注:265 答案:6 mip版解决时间 2021-01-27 08:10提问者时光易老2021-01-27 03:32JAVA中线程在什么时候需要同步和互斥?(假如这题是考试题,要怎样回答?)详细点最佳答案二级知识专家樱花雨梦2021-01-27 04:13例如访…