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协议相关推荐

  1. 2021-12-15 网工基础(十一) VLAN的基本原理、接口类型、Access、Trunk

    VLAN基础 二 VLAN的基本原理 1 以太网二层接口类型 Access接口 交换机上常用来连接用户PC.服务器等终端设备的接口.Access接口所连接的这些设备的网卡往往只收发无标记帧.Acces ...

  2. lumen认证中出现unauthorized._网工知识角|一分钟搞定802.1x认证配置,了解三种授权模式的区别...

    k点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 今天让我们简单看下802.1x的基本配置. 我们先考虑一下配置接口的授权方式: 接口的802.1 ...

  3. 网工学习 第十一章 网络管理 网络管理基础 网络管理协议五大标准 SNMP协议 RMON

    目录 第十一章 网络管理 网络管理基础 网络管理协议五大标准 SNMP协议 SNMP协议的操作 SNMPv1 SNMPv2 SNMPv3 管理数据库MIB-2 被管理 对象标识符OID RMON 第十 ...

  4. ftp协议是一种用于_______的协议_网工知识角|快速理解FTP和TFTP的区别,实用收藏...

    点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 FTP和TFTP的区别是什么 CCNA零基础入门必学 FTP(FileTransfer Proto ...

  5. 对路径的访问被拒绝怎么办_学习了解ACL—扩展访问控制列表,就在网工知识角...

    学网络,就在IE-LAB 国内高端网络工程师培养基地 基于ACL过滤telnet和特定的网段信息 什么是访问控制列表(ACL)? 应用于路由器接口的指令列表,用于指定哪些数据包可以接收转发,哪些数据包 ...

  6. 宽带接入网络的形式(软考网工知识点总结)

    以一道软考网工例题展开 [问题1] 高速数据主干网的一个建设重点是解决"最后一公里"的问题,即宽带接入问题.图1-1所示的四个社区采用的小区宽带接入方法分别是:社区1(1),社区2 ...

  7. ipsec协议_网工知识角轻松学网络|三分钟了解PPPOE协议

    学网络,就在IE-LAB 国内高端网络工程师培养基地 PPPOE( Point-to-PointProtocol Over Ethernet)以太网上的点对点协议,是将点对点协议(PPP)封装在以太网 ...

  8. esxi管理端口_网工知识角|一分钟轻松了解华为端口安全机制

    学网络,就在IE-LAB 国内高端网络工程师培养基地 为防止MAC地址洪泛攻击,防止未经允许的设备访问网络,并增强安全性.通过端口安全机制,录连接到交换机端口的以太网MAC地址,只允许某个或者某些合法 ...

  9. 脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧

    点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 QOS是网络服务质量技术,是所有考试中都会有的考点,主要在SP的课程中详述,是高中低级的网工都有必 ...

  10. 只会用ping测试网络通不通?高级网工还会这么用

    今天咱们来聊聊PING命令.作为网工应该都是耳熟能详,PING作为ICMP协议工具之一,算是一个使用率很高的命令. 它的作用: 用来检测网络的连通情况和分析网络速度 根据域名得到服务器IP 根据pin ...

最新文章

  1. 一个class运用promise的延时调用
  2. 格式化时间算前七天php,php 格式化时间 秒前 分钟前 小时前 天前
  3. CUDA 编程上手指南:CUDA C 编程及 GPU 基本知识
  4. python class类里给列表排序_python笔记:Class(类)
  5. Java 8:测试Lambda水
  6. 论文浅尝 | 近期论文精选
  7. springboot中动态获取bean工具类
  8. 通过Cloudera Manager部署CDH5.15.1的webUI界面详解
  9. matlab hrv,利用ECG信号进行HRV分析
  10. Linux之vi 文本编辑命令
  11. 为什么我十分喜欢C,却很不喜欢C++
  12. java处理dealfilter_Java-DealString工具类
  13. 使用家庭宽带搭建服务器(含个人网盘) [一]-为什么要搭建自己的服务器?能实现公网访问?能实现NAS功能?能在线播放视频?
  14. 利用word2vec训练词向量
  15. R语言编写自定义函数计算分类模型评估指标:准确度、特异度、敏感度、PPV、NPV、数据数据为模型预测后的混淆矩阵、比较多个分类模型分类性能(逻辑回归、决策树、随机森林、支持向量机)
  16. 利用Medium的CDN来改善Feed的页面加载时间
  17. 使用TS开发小程序中遇到的问题
  18. java 断言 assert 初步使用:断言开启、断言使用
  19. 补充照片:某基同学使用Bing词典
  20. PS5连接OPPO K9电视不支持2160P/4K

热门文章

  1. linux 修改mysql端口
  2. DB2 客户端下载地址
  3. 苹果手机录屏软件_手机录屏高清软件下载-手机录屏高清 安卓版v1.0.0
  4. CarSim仿真快速入门(十四)—CarSim-Simulink联合仿真
  5. 人脸识别常用开源数据集大全
  6. iOS:关于加载GIF图片的思考
  7. 美国节点服务器有什么优势,美国CN2服务器的概念与优势
  8. c语言 大数开方,c语言求一个数的平方根
  9. matlab 卷积改变步长,转载“MATLAB卷积函数改进”
  10. android 编译 libjpeg-turbo,编译Android环境的libjpeg-turbo