写给非网工的CCNA教程(6)VLAN和802.1q协议
1 VLAN的引入
上文中,我们说到通过LAN的方式实现同网段通信,在级联的交换机数量和终端设备数量很大时,会导致广播域的扩大,浪费交换机的带宽,也白白消耗非目标设备的性能。
因此我们 引入了VLAN机制:我们可以在这些级联的交换机上启用VLAN,然后把需放在同一个广播域的端口配置成相同的VLAN ID。这样的话,广播就只会在具有相同的VLAN ID的端口上转发。如下图所示:
PC-A和PC-B连接二层交换机SW-A上,PC-C和PC-D连接在二层交换机SW-B上,PC-E和PC-F连接在二层交换机SW-C上。
PC-A的IP地址为192.168.10.1 /24,PC-F的IP地址为192.168.10.6 /24,两者在同一个网段,也处于同一VLAN 10(Access VLAN);
PC-B的IP地址为192.168.20.2 /24,PC-C的IP地址为192.168.20.3 /24,两者在同一个网段,也处于同一VLAN 20(Access VLAN);
PC-D的IP地址为192.168.30.4 /24,PC-E的IP地址为192.168.30.5 /24,两者在同一个网段,也处于同一VLAN 30(Access VLAN);
SW-A和SW-B级联,级联口属于Trunk VLAN,放行VLAN 10和20;
SW-B和SW-E级联,级联口也属于Trunk VLAN,放行VLAN 10和30。
各个终端设备的IP地址和MAC地址对照表,如下所示。
设备 | IP地址 | MAC地址 | 所连交换机端口 | 所连交换机端口属于的VLAN |
PC-A | 192.168.10.1 /24 | 1111.1111.1111 | SW-A:Gi0/1 | VLAN 10 |
PC-B | 192.168.20.2 /24 | 2222.2222.2222 | SW-A:Gi0/2 | VLAN 20 |
PC-C | 192.168.20.3 /24 | 3333.3333.3333 | SW-B:Gi0/1 | VLAN 20 |
PC-D | 192.168.30.4 /24 | 4444.4444.4444 | SW-B:Gi0/2 | VLAN 30 |
PC-E | 192.168.30.5 /24 | 5555.5555.5555 | SW-C:Gi0/1 | VLAN 30 |
PC-F | 192.168.10.6 /24 | 6666.6666.6666 | SW-C:Gi0/2 | VLAN 10 |
2 VLAN对报文的影响
VLAN是在802.1q这个协议里面定义的,当然802.1q协议除了定义VLAN以外,还定义了二层的QoS功能。没有启用VLAN时,我们的报文是不带vlan tag的,当启用VLAN 后,有些报文会带上vlan tag,当然也有些仍然不带vlan tag。
不带vlan tag和带有vlan tag的报文,有何区别呢,如下图所示。蓝色部分即为802.1q的头部,占4个字节,也表示该数据带有vlan tag。如果报文不带vlan tag,那么蓝色的802.1q头部是不存在的。
说说802.1q的头部,如下三点:
(1)802.1q头部是在Ethernet II帧的【源MAC地址】和【Type】之间加入的,占据4个字节长度。
(2)802.1q头部本身分为两个部分,Tag Protocol ID为固定值0x8100,用于指明该Ethernet II帧带了VLAN tag,如果不带VLAN tag,那么Ethernet II帧就不会出现802.1q头部。
(3)802.1q头部另一个部分为Tag Control Information,占2个字节,这部分分成三个小部分:前3bit用于二层QoS;第4个bit保留,一般为0;后面12个bit表示VLAN ID,因此VLAN ID的数量为2^12-2=4094个,12bit的0和12bit的1的要去掉。
3 在交换机上启用VLAN
上图中,我们提到的Access VLAN和Trunk VLAN,都是手动在交换机上配置的,而且是针对交换机的端口配置的。
交换机端口所属的VLAN可以有一个或者多个,我们把属于一个VLAN的端口,称为Access口,对应的VLAN称为Access VLAN,属于多个VLAN的端口,称为Trunk口,对应的VLAN称为Trunk VLAN。
Access口一般用于连接PC、服务器等终端设备,而Trunk口一把用于交换机之间的级联,上图就是这么去做的。关于交换机的Access VLAN和Trunk VLAN的配置,我们以思科交换机为例,如下图所示的SW-A的配置。
SW-A#show running-config interface gigabitEthernet 0/1
Building configuration...Current configuration : 141 bytes
!
interface GigabitEthernet0/1switchport access vlan 10switchport mode accessspanning-tree portfast
endSW-A#show running-config interface gigabitEthernet 0/2
Building configuration...Current configuration : 141 bytes
!
interface GigabitEthernet0/2switchport access vlan 20switchport mode accessspanning-tree portfast
endSW-A#show running-config interface gigabitEthernet 0/21
Building configuration...Current configuration : 86 bytes
!
interface GigabitEthernet1/0/21switchport trunk allowed vlan add 10switchport trunk allowed vlan add 20switchport trunk native vlan 1 switchport mode trunkswitchport nonegotiate
end
4 启用VLAN后,交换机处理机制发生了哪些改变
4.1 交换机端口如何处理报文
我们知道交换机端口有两种类型,Access口和Trunk口,它们的处理方式还是有点不一样,我们分开讨论。通过本节,我们可以更加深入地理解,对于带有802.1q(vlan tag)和不带802.1q(vlan tag)数据帧的处理机制的不同。如下表所示。
交换机端口类型 | 如何处理接收到的数据帧 | 如何处理发送的数据帧(不带tag的数据帧,不会到这一步) | |
数据帧不带vlan tag | 数据帧带有vlan tag | ||
Access口 | 接收此数据,并且给该数据打上access vlan tag | 仅仅接收与access vlan tag相同vlan tag的数据帧,其他的丢弃 | 仅仅转发与自己相同vlan tag的数据帧,并且转发前会剥掉vlan tag |
Trunk口 | 接收此数据,并且该该数据打上native vlan tag | 接收allowed vlan列表中的vlan tag的数据帧,其他的丢弃 |
仅仅转发allowed vlan列表中的带有vlan tag的数据帧,并且如果该vlan tag与native vlan相同则剥掉vlan tag,其他不作处理,直接转发 |
4.2 交换机MAC表有哪些改动
当我们在交换机上把一个端口划到一个VLAN时,此端口对应的MAC表项会加上VLAN ID,如果没有给端口指定VLAN,那么此端口对应的VLAN ID为默认的,一般是1。
不难看出启用VLAN后,MAC表会新增一列,用于记录各个端口对应的VLAN ID,如下图中SW-A上的MAC表所示。
SW-A#show mac address-table Mac Address Table
-------------------------------------------Vlan Mac Address Type Ports
---- ----------- -------- -----10 1111.1111.1111 DYNAMIC Gi/0/120 2222.2222.2222 DYNAMIC Gi/0/220 3333.3333.3333 DYNAMIC Gi/0/2110 6666.6666.6666 DYNAMIC Gi/0/21
仔细观察上图,有两个问题,我们需要注意:
(1)SW-A的MAC表里面没有PC-D和PC-E的表项,为什么呢?
这就得回到上一级我们对SW-A的配置了,我们在Gi0/1口、Gi0/2口、Gi0/21口,加起来也就启用了VLAN 10和20,根本没有启用VLAN 30,而PC-D和PC-E都属于VLAN 30,所以SW-A的MAC表里面不会有PC-D和PC-E的表项。
(2)SW-A的MAC表中最后两行,代表的PC-C和PC-F表项,端口都是Gi0/21口,为何VLAN ID不一样呢?
聪明的你,肯定知道PC-C接在SW-B的Gi0/1口,属于VLAN 20;而PC-F接在SW-C的Gi0/2口,属于VLAN 10;那PC-C在SW-A上的VLAN ID为20,PC-F在SW-A上的VLAN ID为10,没毛病啊。
真的是这样吗?提个问题,SW-A怎么就知道PC-C和PC-F连接在SW-B和SW-C的哪个端口呢,它两又不是直接连在SW-A上,SW-A又怎么知道呢?
其实这个得从启用VLAN后,交换机转发数据的机制说起了,接着看下文。
4.3 交换机数据转发机制有哪些改变
其实启用VLAN后,二层交换机会对进入到端口的数据帧先处理下,处理过程前面已经说过。处理后的数据在交换机内部一定带有VLAN ID,无论它进入交换机前是否带有VLAN ID。
接下来根据目的MAC地址查找MAC表时,只会在与数据源VLAN ID相同的MAC表项中查找,找不到再广播。因此启用VLAN后,就让广播的范围局限一个VLAN内部。
写给非网工的CCNA教程(6)VLAN和802.1q协议相关推荐
- 2021-12-15 网工基础(十一) VLAN的基本原理、接口类型、Access、Trunk
VLAN基础 二 VLAN的基本原理 1 以太网二层接口类型 Access接口 交换机上常用来连接用户PC.服务器等终端设备的接口.Access接口所连接的这些设备的网卡往往只收发无标记帧.Acces ...
- lumen认证中出现unauthorized._网工知识角|一分钟搞定802.1x认证配置,了解三种授权模式的区别...
k点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 今天让我们简单看下802.1x的基本配置. 我们先考虑一下配置接口的授权方式: 接口的802.1 ...
- 网工学习 第十一章 网络管理 网络管理基础 网络管理协议五大标准 SNMP协议 RMON
目录 第十一章 网络管理 网络管理基础 网络管理协议五大标准 SNMP协议 SNMP协议的操作 SNMPv1 SNMPv2 SNMPv3 管理数据库MIB-2 被管理 对象标识符OID RMON 第十 ...
- ftp协议是一种用于_______的协议_网工知识角|快速理解FTP和TFTP的区别,实用收藏...
点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 FTP和TFTP的区别是什么 CCNA零基础入门必学 FTP(FileTransfer Proto ...
- 对路径的访问被拒绝怎么办_学习了解ACL—扩展访问控制列表,就在网工知识角...
学网络,就在IE-LAB 国内高端网络工程师培养基地 基于ACL过滤telnet和特定的网段信息 什么是访问控制列表(ACL)? 应用于路由器接口的指令列表,用于指定哪些数据包可以接收转发,哪些数据包 ...
- 宽带接入网络的形式(软考网工知识点总结)
以一道软考网工例题展开 [问题1] 高速数据主干网的一个建设重点是解决"最后一公里"的问题,即宽带接入问题.图1-1所示的四个社区采用的小区宽带接入方法分别是:社区1(1),社区2 ...
- ipsec协议_网工知识角轻松学网络|三分钟了解PPPOE协议
学网络,就在IE-LAB 国内高端网络工程师培养基地 PPPOE( Point-to-PointProtocol Over Ethernet)以太网上的点对点协议,是将点对点协议(PPP)封装在以太网 ...
- esxi管理端口_网工知识角|一分钟轻松了解华为端口安全机制
学网络,就在IE-LAB 国内高端网络工程师培养基地 为防止MAC地址洪泛攻击,防止未经允许的设备访问网络,并增强安全性.通过端口安全机制,录连接到交换机端口的以太网MAC地址,只允许某个或者某些合法 ...
- 脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧
点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 QOS是网络服务质量技术,是所有考试中都会有的考点,主要在SP的课程中详述,是高中低级的网工都有必 ...
- 只会用ping测试网络通不通?高级网工还会这么用
今天咱们来聊聊PING命令.作为网工应该都是耳熟能详,PING作为ICMP协议工具之一,算是一个使用率很高的命令. 它的作用: 用来检测网络的连通情况和分析网络速度 根据域名得到服务器IP 根据pin ...
最新文章
- 一个class运用promise的延时调用
- 格式化时间算前七天php,php 格式化时间 秒前 分钟前 小时前 天前
- CUDA 编程上手指南:CUDA C 编程及 GPU 基本知识
- python class类里给列表排序_python笔记:Class(类)
- Java 8:测试Lambda水
- 论文浅尝 | 近期论文精选
- springboot中动态获取bean工具类
- 通过Cloudera Manager部署CDH5.15.1的webUI界面详解
- matlab hrv,利用ECG信号进行HRV分析
- Linux之vi 文本编辑命令
- 为什么我十分喜欢C,却很不喜欢C++
- java处理dealfilter_Java-DealString工具类
- 使用家庭宽带搭建服务器(含个人网盘) [一]-为什么要搭建自己的服务器?能实现公网访问?能实现NAS功能?能在线播放视频?
- 利用word2vec训练词向量
- R语言编写自定义函数计算分类模型评估指标:准确度、特异度、敏感度、PPV、NPV、数据数据为模型预测后的混淆矩阵、比较多个分类模型分类性能(逻辑回归、决策树、随机森林、支持向量机)
- 利用Medium的CDN来改善Feed的页面加载时间
- 使用TS开发小程序中遇到的问题
- java 断言 assert 初步使用:断言开启、断言使用
- 补充照片:某基同学使用Bing词典
- PS5连接OPPO K9电视不支持2160P/4K
热门文章
- linux 修改mysql端口
- DB2 客户端下载地址
- 苹果手机录屏软件_手机录屏高清软件下载-手机录屏高清 安卓版v1.0.0
- CarSim仿真快速入门(十四)—CarSim-Simulink联合仿真
- 人脸识别常用开源数据集大全
- iOS:关于加载GIF图片的思考
- 美国节点服务器有什么优势,美国CN2服务器的概念与优势
- c语言 大数开方,c语言求一个数的平方根
- matlab 卷积改变步长,转载“MATLAB卷积函数改进”
- android 编译 libjpeg-turbo,编译Android环境的libjpeg-turbo