datacom/Datacom-MD/第二章:虚拟局域网及生成树协议.md

1868 lines
104 KiB
Markdown
Raw Normal View History

2023-03-26 19:21:42 +08:00
<h1><center>第二章:虚拟局域网及生成树协议</center></h1>
> 作者:行癫
------
<h3>第一节:以太网交换基础</h3>
<h4>一:以太网协议</h4>
<h5>1.以太网协议</h5>
以太网是当今现有局域网Local Area NetworkLAN采用的最通用的通信协议标准该标准定义了在局域网中采用的电缆类型和信号处理方法
以太网是建立在CSMA/CDCarrier Sense Multiple Access/Collision Detection载波监听多路访问/冲突检测)机制上的广播型网络
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207113057265.png" alt="image-20220207113057265" style="zoom:50%;" />
**早期的以太网:**
以太网是建立在CSMA/CD机制上的广播型网络。冲突的产生是限制以太网性能的重要因素早期的以太网设备如集线器HUB是物理层设备不能隔绝冲突扩散限制了网络性能的提高
**交换机组网:**
交换机做为一种能隔绝冲突的二层网络设备极大的提高了以太网的性能并替代HUB成为主流的以太网设备。但是交换机对网络中的广播数据流量不做任何限制这也影响了网络的性能
<h5>2.冲突域</h5>
冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、广播、广播),其余节点都可以收到
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207113516686.png" alt="image-20220207113516686" style="zoom:50%;" />
在共享网络以太网络使用CSMA/CD技术避免冲突问题。CSMA/CD的基本工作过程如下
终端设备不停的检测共享线路的状态
如果线路空闲则发送数据
如果线路不空闲则一直等待
如果有另外一个设备同时发送数据,两个设备发送的数据必然产生冲突,导致线路上的信号不稳定
终端设备检测到这种不稳定之后,马上停止发送自己的数据
终端设备发送一连串干扰脉冲,然后等待一段时间之后再进行发送数据。发送干扰脉冲的目的是为了通知其他设备,特别是跟自己在同一个时刻发送数据的设备,线路上已经产生了冲突
CSMA/CD的工作原理可简单总结为先听后发边发边听冲突停发随机延迟后重发
<h5>3.广播域</h5>
广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207113903159.png" alt="image-20220207113903159" style="zoom:50%;" />
全1MAC地址FF-FF-FF-FF-FF-FF为广播地址所有节点都会处理目的地址为广播地址的数据帧该数据帧所能到达的整个访问范围称为二层广播域简称广播域
MAC (Media Access Control)地址在网络中唯一标识一个网卡每个网卡都需要并会有唯一的一个MAC地址
<h5>4.以太网卡</h5>
网络接口卡也称“网卡”,是计算机、交换机、路由器等网络设备与外部网络世界相连的关键部件
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207114353079.png" alt="image-20220207114353079" style="zoom:50%;" />
<h4>二:以太网帧</h4>
<h5>1.以太网帧格式</h5>
以太网技术所使用的帧称为以太网帧Ethernet Frame或简称以太帧
以太帧的格式有两个标准Ethernet_II格式和IEEE 802.3格式
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207115106389.png" alt="image-20220207115106389" style="zoom:50%;" />
**Ethernet Ⅱ以太帧:**
DMAC6字节目的MAC地址6字节该字段标识帧的接收者
SMAC6字节源MAC地址6字节该字段标识帧的发送者
Type2字节协议类型。常见值
0x0800Internet Protocol Version 4 (IPv4)
0x0806Address Resolution Protocol (ARP)
**IEEE 802.3 LLC以太帧**
逻辑链路控制LLCLogical Link Control由目的服务访问点DSAPDestination Service Access Point、源服务访问点SSAPSource Service Access Point和Control字段组成
DSAP1字节目的服务访问点若后面类型为IP值设为0x06。服务访问点的功能类似于Ethernet II帧中的Type字段或TCP/UDP传输协议中的端口号
SSAP1字节源服务访问点若后面类型为IP值设为0x06
Ctrl1字节该字段值通常设为0x03表示无连接服务的IEEE 802.2无编号数据格式
SNAPSub-network Access Protocol由机构代码Org Code和类型Type字段组成
Org Code三个字节都为0
Type字段的含义与Ethernet_II帧中的Type字段相同
**数据帧的总长度为64-1518字节这样设计的原因是什么**
以太网中最小帧长为64字节这是由最大传输距离和CSMA/CD机制共同决定的
规定最小帧长是为了避免这种情况发生A站点已经将一个数据包的最后一个Bit发送完毕但这个报文的第一个Bit还没有传送到距离很远的B站点。B站点认为线路空闲继续发送数据导致冲突
高层协议必须保证Data域至少包含46字节这样加上以太网帧头的14字节和帧尾的4字节校验码正好满足64字的最小帧长如果实际数据不足46个字节则高层协议必须填充一些数据单元
而出于对传输效率和传输可靠性的折中考虑使得以太网帧的最大长度为1518字节对应IP数据包就是1500字节
较大的帧长度,数据的有效传输效率会更高;但是数据帧过长,传输时会占用共享链路过多的时间,对时延敏感应用造成极大的影响
因此最终选择了一个折中的长度1518字节的数据帧长对应1500字节的IP数据包长度这就是最大传输单元MTU的由来
<h4>MAC地址</h4>
<h5>1.什么是MAC地址</h5>
MAC地址在网络中唯一标识一个网卡每个网卡都需要并拥有唯一的一个MAC地址
一块网卡的MAC地址具有全球唯一性的
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207120610706.png" alt="image-20220207120610706" style="zoom:50%;" />
MAC地址是在IEEE 802标准中定义并规范的凡是符合IEEE 802标准的以太网卡都必须拥有一个MAC地址用MAC地址来定义网络设备的位置。不同的网卡MAC地址也不同
<h5>2.IP地址 VS MAC地址</h5>
每个以太网设备在出厂时都有一个唯一的MAC地址但在设备接入网络时会同时为每台主机再分配一个IP地址
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207120828802.png" alt="image-20220207120828802" style="zoom:80%;" />
每个以太网设备在出厂时都有一个唯一的MAC地址那为什么还需要为每台主机再分配一个IP地址呢或者说每台主机都分配唯一的IP地址了为什么还要在网络设备 (如:网卡) 生产时内嵌一个唯一的MAC地址呢
IP地址是根据网络的拓朴结构分配的MAC地址是根据制造商分配的若路由选择建立在设备制造商的基础上这种方案是不可行的
当存在两层地址寻址时,设备更灵活,易于移动和维修
**总结:**
IP地址的作用是唯一标识网络中的一个节点可以通过IP地址进行不同网段的数据访问
MAC地址的作用是唯一标识一个网卡可以通过MAC地址进行同网段的数据访问
<h5>3.MAC地址表示</h5>
一个MAC地址有48bit,6Byte
MAC地址通常采用16进制表示
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207193752659.png" alt="image-20220207193752659" style="zoom:80%;" />
<h5>4.MAC地址构成及分类</h5>
OUI厂商代码由IEEE分配3 Byte24bit
制造商分配3 Byte 24bit
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207194505824.png" alt="image-20220207194505824" style="zoom:80%;" />
**MAC地址可以分为3种类型**
单播MAC地址也称物理MAC地址这种类型的MAC地址唯一的标识了以太网上的一个终端该地址为全球唯一的硬件地址
单播MAC地址用于标识链路上的一个单一节点
目的MAC地址为单播MAC地址的帧发往一个单一的节点
单播MAC地址可以作为源或目的地址
注意单播MAC地址具有全球唯一性当一个二层网络中接入了两台具有相同MAC地址的终端时例如误操作等将会引发通信故障例如这两台终端无法相互通信且其他设备与它们之间的通信也会存在问题
广播MAC地址全1的MAC地址FF-FF-FF-FF-FF-FF用来表示局域网上的所有终端设备
广播MAC地址可以理解为一种特殊的组播MAC地址
其具体格式为FFFF-FFFF-FFFF
目的MAC地址为广播MAC地址的帧发往链路上的所有节点
组播MAC地址除广播地址外第8bit为1的MAC地址为组播MAC地址例如01-00-00-00-00-00用来代表局域网上的一组终端
组播MAC地址用于标识链路上的一组节点
目的MAC地址为组播MAC地址的帧发往一组节点
组播MAC地址不能作为源地址只能作为目的地址
**单播以太帧:**
简称:单播帧
目的MAC地址为单播MAC地址的帧
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207200244663.png" alt="image-20220207200244663" style="zoom:50%;" />
第一种是单播,指从单一的源端发送到单一的目的端
每个主机接口由一个MAC地址唯一标识MAC地址的OUI中第一字节第8个比特表示地址类型。对于主机MAC地址这个比特固定为0表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端
**广播以太帧:**
简称:广播帧
目的MAC地址为广播MAC地址的帧
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207200404099.png" alt="image-20220207200404099" style="zoom:50%;" />
表示帧从单一的源发送到共享以太网上的所有主机
广播帧的目的MAC地址为十六进制的FF-FF-FF-FF-FF-FF所有收到该广播帧的主机都要接收并处理这个帧
广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能
当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式
**组播以太帧:**
简称:组播帧
目的MAC地址为组播的MAC地址的帧
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207200647219.png" alt="image-20220207200647219" style="zoom:50%;" />
组播转发可以理解为选择性的广播主机侦听特定组播地址接收并处理目的MAC地址为该组播MAC地址的帧
组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1
当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式
<h4>四:以太网交换机</h4>
<h5>1.园区网典型架构</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207200928622.png" alt="image-20220207200928622" style="zoom:50%;" />
一个典型的园区数据网络由路由器、交换机、防火墙等设备构成,通常会采用多层架构,包括:接入层、汇聚层、核心层和出口层
<h5>2.以太网二层交换机</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207201141924.png" alt="image-20220207201141924" style="zoom:50%;" />
**以太网二层交换机:**
在园区网络中,交换机一般来说是距离终端用户最近的设备,用于终端接入园区网,接入层的交换机一般为二层交换机
二层交换设备工作在TCP/IP对等模型的第二层即数据链路层它对数据包的转发是建立在MACMedia Access Control )地址基础之上的
**以太网三层交换机:**
不同局域网之间的网络互通需要由路由器来完成。随着数据通信网络范围的不断扩大,网络业务的不断丰富,网络间互访的需求越来越大,而路由器由于自身成本高、转发性能低、接口数量少等特点无法很好的满足网络发展的需求。因此出现了三层交换机这样一种能实现高速三层转发的设备
<h5>3.交换机工作原理</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207201350059.png" alt="image-20220207201350059" style="zoom:80%;" />
二层交换机工作在数据链路层它对数据帧的转发是建立在MAC地址基础之上的。交换机不同的接口发送和接收数据是独立的各接口属于不同的冲突域因此有效地隔离了网络中的冲突域
二层交换设备通过学习以太网数据帧的源MAC地址来维护MAC地址与接口的对应关系保存MAC与接口对应关系的表称为MAC地址表通过其目的MAC地址来查找MAC地址表决定向哪个接口转发
**MAC地址表**
每台交换机中都有一个MAC地址表存放了MAC地址与交换机端口编号之间的映射关系
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207201527271.png" alt="image-20220207201527271" style="zoom:50%;" />
MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系。交换机在转发数据帧时根据数据帧的目的MAC地址查询MAC地址表。如果MAC地址表中包含与该帧目的MAC地址对应的表项则直接通过该表项中的出接口转发该报文如果MAC地址表中没有包含该帧目的MAC地址对应的表项时交换机将采取泛洪方式在除接收接口外的所有接口发送该报文
**交换机的3种数据帧处理行为**
交换机对于从传输介质进入某一端口的帧的处理行为一共有3种
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207201726607.png" alt="image-20220207201726607" style="zoom:50%;" />
交换机对帧的处理行为一共有三种泛洪Flooding转发Forwarding丢弃Discarding
泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去(注意,“所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)
转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)
丢弃:交换机把从某一端口进来的帧直接丢弃
**泛洪**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207201839563.png" alt="image-20220207201839563" style="zoom:80%;" />
如果从传输介质进入交换机的某个端口的帧是一个单播帧交换机会去MAC表查这个帧的目的MAC地址。如果查不到这个MAC地址则交换机将对该单播帧执行泛洪操作
如果从传输介质进入交换机的某个端口的帧是一个广播帧交换机不会去查MAC地址表而是直接对该广播帧执行泛洪操作
场景一主机1想要访问主机2发送单播数据帧交换机收到后若MAC地址表中查不到对应的表项则会泛洪该数据帧
场景二主机1想要访问主机2但不知道对应的MAC地址则会发送ARP请求报文该报文为广播数据帧交换机收到后则会泛洪该数据帧
**转发**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202012403.png" alt="image-20220207202012403" style="zoom:80%;" />
如果从传输介质进入交换机的某个端口的帧是一个单播帧则交换机会去MAC表查这个帧的目的MAC地址。如果查到了这个MAC地址表则比较这个MAC地址在MAC地址表中对应的端口编号是不是这个帧从传输介质进入交换机的那个端口的端口编号。如果不是则交换机执行转发操作将该帧送至该帧目的MAC地址在MAC地址表中对应的那个端口并从那个端口发送出去
主机1想要访问主机2发送单播数据帧交换机收到后在MAC地址表中查到了对应的表项则会点对点转发该数据帧
**丢弃**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202100557.png" alt="image-20220207202100557" style="zoom:80%;" />
如果从传输介质进入交换机的某个端口的帧是一个单播帧则交换机会去MAC表查这个帧的目的MAC地址。如果查到了这个MAC地址表则比较这个MAC地址在MAC地址表中对应的端口编号是不是这个帧从传输介质进入交换机的那个端口的端口编号。如果是则交换机将对该帧执行丢弃操作
主机1想要访问主机2发送单播数据帧交换机1收到后若MAC地址表中查不到对应的表项则会泛洪该数据帧
交换机2收到该数据帧后发现目的MAC地址对应的端口就是接收数据帧的端口则会丢弃该数据帧
**交换机MAC地址学习**
初始状态下交换机并不知道所连接主机的MAC地址所以MAC地址表为空
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202220186.png" alt="image-20220207202220186" style="zoom:50%;" />
主机1想要发送数据给主机2假设已知对端的IP地址和MAC地址会封装数据帧包含自己的源IP地址和源MAC地址交换机收到后会查自己的MAC地址表发现没有对应表项则收到的数据帧是“未知单播帧”
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202259123.png" alt="image-20220207202259123" style="zoom:50%;" />
由于收到的数据帧是“未知单播帧”因此交换机会泛洪该数据帧同时交换机将收到的数据帧的源MAC地址和对应端口编号记录到MAC地址表中
注意MAC地址表中动态学习的表项并非永远有效每一条表项都有一个生存周期到达生存周期仍得不到更新的表项将被删除这个生存周期被称作老化时间。例如华为S系列交换机的老化时间缺省值是300秒
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202402344.png" alt="image-20220207202402344" style="zoom:50%;" />
广播网络中的所有主机均会收到该数据帧但是只有主机2会处理因为目的MAC地址是主机2
主机2会回复数据帧给主机1也是单播数据帧
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202442871.png" alt="image-20220207202442871" style="zoom:50%;" />
交换机收到该单播数据帧后会查看自己的MAC地址表发现有对应的表项则将数据从对应的端口转发出去同时交换机将收到的数据帧的源MAC地址和对应端口编号记录到MAC地址表中
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202559285.png" alt="image-20220207202559285" style="zoom:50%;" />
<h4>五:同网段数据通信全过程</h4>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202741508.png" alt="image-20220207202741508" style="zoom:50%;" />
**数据封装过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202815128.png" alt="image-20220207202815128" style="zoom:50%;" />
主机1在发送数据报文前需要先进行报文封装包括源目IP地址、源目MAC地址等
**初始状态**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207202855307.png" alt="image-20220207202855307" style="zoom:50%;" />
主机1为了进行报文封装会查本地的ARP缓存表。初始状态下主机1的ARP缓存是空的
而刚上电的交换机初始状态下交换机的MAC地址表也是空的
**数据帧泛洪**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207203123332.png" alt="image-20220207203123332" style="zoom:50%;" />
主机1发送ARP请求报文请求目的MAC地址
交换机收到的数据帧后查MAC地址表发现没有对应表项则向所有非接收端口泛洪该数据帧
**学习MAC地址**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207203203521.png" alt="image-20220207203203521" style="zoom:50%;" />
交换机将收到的数据帧的源MAC地址和对应端口记录到MAC地址表中
**目标主机回复**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207203249043.png" alt="image-20220207203249043" style="zoom:50%;" />
主机2收到ARP请求报文后会进行相应的处理并发送ARP响应报文回复主机1
交换机收到的数据帧后查MAC地址表发现有对应表项则向对应端口转发该数据帧并且交换机将收到的数据帧的源MAC地址和对应端口记录到MAC地址表中
最终主机1收到主机2的ARP响应报文后就会将对应的IP地址和MAC地址记录到自己的ARP缓存中并封装自己的报文访问主机2
<h3>第二节VLAN原理与配置</h3>
<h4>什么是VLAN</h4>
<h5>1.传统以太网问题</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207204028119.png" alt="image-20220207204028119" style="zoom:50%;" />
**广播域:**
如图是一个典型的交换网络,网络中只有终端计算机和交换机。在这样的网络中,如果某一台计算机发送了一个广播帧,由于交换机对广播帧执行泛洪操作,结果所有其他的计算机都会收到这个广播帧
把广播帧所能到达的整个访问范围称为二层广播域,简称广播域 (Broadcast Domain)。显然,一个交换网络其实就是一个广播域
**网络安全问题和垃圾流量问题:**
如图如果PC1向PC2发送了一个单播帧。此时SW1、SW3、SW7的MAC地址表中存在关于PC2的MAC地址表项但SW2和SW5不存在关于PC2的MAC地址表项。那么SW1和SW3将对该单播帧执行点对点的转发操作SW7将对该单播帧执行丢弃操作SW2和SW5将对该单播帧执行泛洪操作。最后的结果是PC2虽然收到了该单播帧但网络中的很多其他非目的主机同样收到了不该接收的数据帧
显然,广播域越大,网络安全问题和垃圾流量问题就越严重
<h5>2.虚拟局域网</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207204327449.png" alt="image-20220207204327449" style="zoom:50%;" />
**为了解决广播域带来的问题人们引入了VLAN (Virtual Local Area Network),即虚拟局域网技术:**
通过在交换机上部署VLAN可以将一个规模较大的广播域在逻辑上划分成若干个不同的、规模较小的广播域由此可以有效地提升网络的安全性同时减少垃圾流量节约网络资源
**VLAN的特点**
一个VLAN就是一个广播域所以在同一个VLAN内部计算机可以直接进行二层通信而不同VLAN内的计算机无法直接进行二层通信只能进行三层通信来传递信息即广播报文被限制在一个VLAN内
VLAN的划分不受地域的限制
**VLAN的好处**
灵活构建虚拟工作组用VLAN可以划分不同的用户到不同的工作组同一工作组的用户也不必局限于某一固定的物理范围网络构建和维护更方便灵活
限制广播域广播域被限制在一个VLAN内节省了带宽提高了网络处理能力
增强局域网的安全性不同VLAN内的报文在传输时是相互隔离的即一个VLAN内的用户不能和其它VLAN内的用户直接通信
提高了网络的健壮性故障被限制在一个VLAN内本VLAN内的故障不会影响其他VLAN的正常工作
<h4>VLAN基本原理</h4>
<h5>1.如何实现VLAN</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207204714775.png" alt="image-20220207204714775" style="zoom:80%;" />
Sw1与Sw2同属一个企业该企业统一规划了网络中的VLAN其中VlAN10用于A部门VLAN20用于B部门A、B部门的员工再Sw1和Sw2上都有接入
PC1发出的数据经过Sw1和Sw2之间的链路到达了Sw2如果不加处理后者无法判断该数据所属的VlAN也不知道应该将这个数据输出到本地哪个VLAN中
**VLAN标签VLAN Tag**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207205316101.png" alt="image-20220207205316101" style="zoom:80%;" />
如图所示SW1识别出某个帧是属于哪个VLAN后会在这个帧的特定位置上添加一个标签。这个标签明确地标明了这个帧是属于哪个VLAN的。其他交换机如SW2收到这个带标签的数据帧后就能轻而易举地直接根据标签信息识别出这个帧属于哪个VLAN
IEEE 802.1Q定义了这种带标签的数据帧的格式。满足这种格式的数据帧称为IEEE 802.1Q数据帧也称VLAN数据帧
**VLAN数据帧**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207205623002.png" alt="image-20220207205623002" style="zoom:80%;" />
**在一个VLAN交换网络中以太网帧主要有以下两种形式**
有标记帧Tagged帧IEEE 802.1Q协议规定在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签又称VLAN Tag简称Tag的数据帧
无标记帧Untagged帧原始的、未加入4字节VLAN标签的数据帧
**VLAN数据帧中的主要字段**
TPID2字节Tag Protocol Identifier标签协议标识符表示数据帧类型
取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃
各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时为了能够识别这样的报文实现互通必须在本设备上修改TPID值确保和邻居设备的TPID值配置一致
PRI3 bitPriority表示数据帧的优先级用于QoS
取值范围为07值越大优先级越高。当网络阻塞时交换机优先发送优先级高的数据帧
CFI1 bitCanonical Format Indicator标准格式指示位表示MAC地址在不同的传输介质中是否以标准格式进行封装用于兼容以太网和令牌环网
CFI取值为0表示MAC地址以标准格式进行封装为1表示以非标准格式封装
在以太网中CFI的值为0
VID12 bitVLAN ID表示该数据帧所属VLAN的编号
VLAN ID取值范围是04095。由于0和4095为协议保留取值所以VLAN ID的有效取值范围是14094
交换机利用VLAN标签中的VID来识别数据帧所属的VLAN广播帧只在同一VLAN内转发这就将广播域限制在一个VLAN内
**如何识别带VLAN标签的数据帧**
数据帧的Length/Type = 0x8100
注意计算机无法识别Tagged数据帧因此计算机处理和发出的都是Untagged数据帧为了提高处理效率交换机内部处理的数据帧一律都是Tagged帧
**VLAN的实现**
![image-20220207210036917](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207210036917.png)
Sw1和Sw2之间的链路要承载多个VLAN的数据需要一种基于VLAN的数据”标记“手段以便对不同VLAN的数据帧进行区分
IEEE 802.1Q标准也被称为Dot1Q定义了标记方法该标准对传统的以太网数据帧进行修正在帧头中插入8021Q Tag而在该Tag中便可以写入VLAN信息
**VLAN的划分方式**
![image-20220207210407533](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207210407533.png)
计算机发出的数据帧不带任何标签。对已支持VLAN特性的交换机来说当计算机发出的Untagged帧一旦进入交换机后交换机必须通过某种划分原则把这个帧划分到某个特定的VLAN中去
VLAN的划分包括如下5种方法
**基于接口划分根据交换机的接口来划分VLAN**
网络管理员预先给交换机的每个接口配置不同的PVID当一个数据帧进入交换机时如果没有带VLAN标签该数据帧就会被打上接口指定PVID的标签然后数据帧将在指定VLAN中传输
**基于MAC地址划分根据数据帧的源MAC地址来划分VLAN**
网络管理员预先配置MAC地址和VLAN ID映射关系表当交换机收到的是Untagged帧时就依据该表给数据帧添加指定VLAN的标签然后数据帧将在指定VLAN中传输
**基于IP子网划分根据数据帧中的源IP地址和子网掩码来划分VLAN**
网络管理员预先配置IP地址和VLAN ID映射关系表当交换机收到的是Untagged帧就依据该表给数据帧添加指定VLAN的标签然后数据帧将在指定VLAN中传输
**基于协议划分根据数据帧所属的协议类型及封装格式来划分VLAN**
网络管理员预先配置以太网帧中的协议域和VLAN ID的映射关系表如果收到的是Untagged帧就依据该表给数据帧添加指定VLAN的标签然后数据帧将在指定VLAN中传输
**基于策略划分根据配置的策略划分VLAN能实现多种组合的划分方式包括接口、MAC地址、IP地址等**
网络管理员预先配置策略如果收到的是Untagged帧且匹配配置的策略时给数据帧添加指定VLAN的标签然后数据帧将在指定VLAN中传输
**基于接口的VLAN划分**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207210738266.png" alt="image-20220207210738266" style="zoom:50%;" />
划分原则:
将VLAN ID配置到交换机的物理接口上从某一个物理接口进入交换机的、由终端计算机发送的Untagged数据帧都被划分到该接口的VLAN ID所表明的那个VLAN
特点:
这种划分原则简单而直观实现容易是目前实际的网络应用中最为广泛的划分VLAN的方式
当计算机接入交换机的端口发生了变化时该计算机发送的帧的VLAN归属可能会发生变化
缺省VLANPVID (Port VLAN ID)
每个交换机的接口都应该配置一个PVID到达这个端口的Untagged帧将一律被交换机划分到PVID所指代的VLAN
默认情况下PVID的值为1
**基于MAC地址的VLAN划分**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207211754585.png" alt="image-20220207211754585" style="zoom:50%;" />
划分原则:
交换机内部建立并维护了一个MAC地址与VLAN ID的对应表。当交换机接收到计算机发送的Untagged帧时交换机将分析帧中的源MAC地址然后查询MAC地址与VLAN ID的对应表并根据对应关系把这个帧划分到相应的VLAN中
特点:
这种划分实现稍微复杂,但灵活性得到了提高
当计算机接入交换机的端口发生了变化时该计算机发送的帧的VLAN归属不会发生变化因为计算机的MAC地址没有变
但这种类型的VLAN划分安全性不是很高因为恶意计算机很容易伪造MAC地址
**3.以太网二层接口类型**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207212459309.png" alt="image-20220207212459309" style="zoom:50%;" />
**Access接口**
Access接口一般用于和不能识别Tag的用户终端如用户主机、服务器等相连或者不需要区分不同VLAN成员时使用
**Trunk接口**
Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端
**Hybrid接口**
Hybrid接口既可以用于连接不能识别Tag的用户终端如用户主机、服务器等也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP华为设备默认的接口类型是Hybrid
**Access接口**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207220811951.png" alt="image-20220207220811951" style="zoom:50%;" />
Access接口特点
仅允许VLAN ID与接口PVID相同的数据帧通过
Access接口接收数据帧
当Access接口从链路上收到一个Untagged帧交换机会在这个帧中添加上VID为PVID的Tag然后对得到的Tagged帧进行转发操作泛洪、转发、丢弃
当Access接口从链路上收到一个Tagged帧交换机会检查这个帧的Tag中的VID是否与PVID相同。如果相同则对这个Tagged帧进行转发操作如果不同则直接丢弃这个Tagged帧
Access接口发送数据帧
当一个Tagged帧从本交换机的其他接口到达一个Access接口后交换机会检查这个帧的Tag中的VID是否与PVID相同
如果相同则将这个Tagged帧的Tag进行剥离然后将得到的Untagged帧从链路上发送出去
如果不同则直接丢弃这个Tagged帧
**Trunk接口**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207222425394.png" alt="image-20220207222425394" style="zoom:80%;" />
对于Trunk接口除了要配置PVID外还必须配置允许通过的VLAN ID列表其中VLAN 1是默认存在的
**Trunk接口特点**
Trunk接口仅允许VLAN ID在允许通过列表中的数据帧通过
Trunk接口可以允许多个VLAN的帧带Tag通过但只允许一个VLAN的帧从该类接口上发出时不带Tag即剥除Tag
**Trunk接口接收数据帧**
当Trunk接口从链路上收到一个Untagged帧交换机会在这个帧中添加上VID为PVID的Tag然后查看PVID是否在允许通过的VLAN ID列表中。如果在则对得到的Tagged帧进行转发操作如果不在则直接丢弃得到的Tagged帧
当Trunk接口从链路上收到一个Tagged帧交换机会检查这个帧的Tag中的VID是否在允许通过的VLAN ID列表中。如果在则对这个Tagged帧进行转发操作如果不在则直接丢弃这个Tagged帧
**Trunk接口发送数据帧**
当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后如果这个帧的Tag中 的VID不在允许通过的VLAN ID列表中则该Tagged帧会被直接丢弃
当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后如果这个帧的Tag中 的VID在允许通过的VLAN ID列表中则会比较该Tag中的VID是否与接口的PVID相同
如果相同则交换机会对这个Tagged帧的Tag进行剥离然后将得到的Untagged帧从链路上发送出去
如果不同则交换机不会对这个Tagged帧的Tag进行剥离而是直接将它从链路上发送出去
**Access接口与Trunk接口举例**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207222657021.png" alt="image-20220207222657021" style="zoom:50%;" />
在本例中SW1和SW2连接主机的接口为Access接口PVID如图所示。SW1和SW2互连的接口为Trunk接口PVID都为1此Trunk接口的允许通过的VLAN ID列表也如图所示
**Hybrid接口**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207222752727.png" alt="image-20220207222752727" style="zoom:80%;" />
对于Hybrid接口除了要配置PVID外还存在两个允许通过的VLAN ID列表一个是Untagged VLAN ID列表另一个是Tagged VLAN ID列表其中VLAN 1默认在Untagged VLAN列表中。这两个允许通过列表中的所有VLAN的帧都是允许通过这个Hybrid接口的
**Hybrid接口特点**
Hybrid接口仅允许VLAN ID在允许通过列表中的数据帧通过
Hybrid接口可以允许多个VLAN的帧带Tag通过且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag、某些VLAN的帧不带Tag
与Trunk最主要的区别就是能够支持多个VLAN的数据帧不带标签通过
**Hybrid接口接收数据帧**
当Hybrid接口从链路上收到一个Untagged帧交换机会在这个帧中添加上VID为PVID的Tag然后查看PVID是否在Untagged或Tagged VLAN ID列表中。如果在则对得到的Tagged帧进行转发操作如果不在则直接丢弃得到的Tagged帧
当Hybrid接口从链路上收到一个Tagged帧交换机会检查这个帧的Tag中的VID是否在Untagged或Tagged VLAN ID列表中。如果在则对这个Tagged帧进行转发操作如果不在则直接丢弃这个Tagged帧
**Hybrid接口发送数据帧**
当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后如果这个帧的Tag中 的VID既不在Untagged VLAN ID列表中也不在Tagged VLAN ID列表中则该Tagged帧会被直接丢弃
当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后如果这个帧的Tag中 的VID在Untagged VLAN ID列表中则交换机会对这个Tagged帧的Tag进行剥离然后将得到的Untagged帧从链路上发送出去
当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后如果这个帧的Tag中 的VID在Tagged VLAN ID列表中则交换机不会对这个Tagged帧的Tag进行剥离而是直接将它从链路上发送出去
**Hybrid接口举例**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207223033353.png" alt="image-20220207223033353" style="zoom:50%;" />
在本例中SW1和SW2连接主机的接口以及互连的接口均为Hybrid接口PVID如图所示Hybrid接口的允许通过的VLAN ID列表也如图所示
**各类接口添加或剥除VLAN标签的处理过程总结如下**
当接收数据帧时:
当接收到不带VLAN标签的数据帧时Access接口、Trunk接口、Hybrid接口都会给数据帧打上VLAN标签但Trunk接口、Hybrid接口会根据数据帧的VID是否为其允许通过的VLAN来判断是否接收而Access接口则无条件接收
当接收到带VLAN标签的数据帧时Access接口、Trunk接口、Hybrid接口都会根据数据帧的VID是否为其允许通过的VLANAccess接口允许通过的VLAN就是缺省VLAN来判断是否接收
当发送数据帧时:
Access接口直接剥离数据帧中的VLAN标签
Trunk接口只有在数据帧中的VID与接口的PVID相等时才会剥离数据帧中的VLAN标签
Hybrid接口会根据接口上的配置判断是否剥离数据帧中的VLAN标签
因此Access接口发出的数据帧肯定不带TagTrunk接口发出的数据帧只有一个VLAN的数据帧不带Tag其他都带VLAN标签Hybrid接口发出的数据帧可根据需要设置某些VLAN的数据帧带Tag某些VLAN的数据帧不带Tag
<h5>2.VLAN的应用</h5>
**基于接口的VLAN的划分**
![image-20220207223416357](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207223416357.png)
**基于MAC地址的VLAN的划分**
![image-20220207223445787](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207223445787.png)
<h5>3.VLAN的配置示例</h5>
![image-20220207223532870](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207223532870.png)
**vlan**命令用来创建VLAN并进入VLAN视图如果VLAN已存在直接进入该VLAN的视图
**undo vlan**用来删除指定VLAN
缺省情况下将所有接口都加入到一个缺省的VLAN中该VLAN标识为1
```shell
命令:
vlan vlan-id
vlan-id指定VLAN ID。整数形式取值范围是14094。 ▫ vlan batch { vlan-id1 [ to vlan-id2 ] }
batch指定批量创建VLAN。
vlan-id1 to vlan-id2指定批量创建的VLAN ID其中
vlan-id1表示第一个VLAN的编号。
vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlanid1它与vlan-id1共同确定一个VLAN范围。
如果不指定to vlan-id2参数则只创建vlan-id1所指定的VLAN。
vlan-id1和vlan-id2是整数形式取值范围是14094
```
![image-20220207223717090](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207223717090.png)
![image-20220207223841058](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207223841058.png)
```shell
命令port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] | all }
vlan-id1 [ to vlan-id2 ]指定Trunk类型接口加入的VLAN其中
vlan-id1表示第一个VLAN的编号。
to vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1的取值。
vlan-id1和vlan-id 2为整数形式取值范围是14094
all指定Trunk接口加入所有VLAN。
命令port trunk pvid vlan vlan-id设置Trunk类型接口的缺省VLAN
vlan-id指定Trunk类型接口的缺省VLAN编号。整数形式取值范围是14094。
```
![image-20220207224011211](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224011211.png)
```shell
命令port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
vlan-id1 [ to vlan-id2 ]指定Hybrid类型接口加入的VLAN其中
vlan-id1表示第一个VLAN的编号。
to vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1的取值。
vlan-id1和vlan-id 2为整数形式取值范围是14094。
all指定Hybrid接口加入所有VLAN。
命令port hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
vlan-id1 [ to vlan-id2 ]指定Hybrid类型接口加入的VLAN其中
vlan-id1表示第一个VLAN的编号。
to vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1的取值。
vlan-id1和vlan-id 2为整数形式取值范围是14094。
all指定Hybrid接口加入所有VLAN。
命令port hybrid pvid vlan vlan-id设置Hybrid类型接口的缺省VLAN。
vlan-id指定Hybrid类型接口的缺省VLAN编号。整数形式取值范围是14094。
```
**案例一基于接口划分VLAN**
![image-20220207224232184](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224232184.png)
**配置思路:**
创建VLAN并将连接用户的接口加入VLAN实现不同业务用户之间的二层流量隔离
配置SW1和SW2的各接口类型以及通过的VLAN实现相同业务用户通过SW1和SW2通信
**创建VLAN**
![image-20220207224311536](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224311536.png)
**配置Access接口和Trunk接口**
![image-20220207224335561](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224335561.png)
**验证配置**
![image-20220207224400266](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224400266.png)
命令:**display vlan**命令用来查看VLAN的相关信息
**输出信息:**
Tagged/Untagged Port手动加入本VLAN的接口分为Tagged和Untagged方式
VID或VLAN IDVLAN编号
Type或VLAN TypeVLAN类型common指普通VLAN
Ports加入该VLAN的接口
**案例二基于接口划分VLAN**
![image-20220207224514590](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224514590.png)
**配置思路:**
创建VLAN并将连接用户的接口加入VLAN实现不同业务用户之间的二层流量隔离
配置SW1和SW2的各接口类型以及通过的VLAN实现主机和服务器之间通过SW1和SW2通信
**Hybrid接口的基础配置**
![image-20220207224609828](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224609828.png)
![image-20220207224621410](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224621410.png)
**验证配置**
![image-20220207224647753](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224647753.png)
**VLAN的基础配置命令**
![image-20220207224718010](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224718010.png)
命令:**mac-vlan mac-address** *mac-address* [ *mac-address-mask* | *mac-address-mask-length* ]
*mac-address*指定与VLAN关联的MAC地址
*mac-address-mask*指定MAC地址掩码
*mac-address-mask-length*指定MAC地址掩码长度
命令:**mac-vlan enable**用来使能接口的MAC VLAN功能
**案例三基于MAC地址划分VLAN**
![image-20220207224846115](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224846115.png)
**配置思路:**
创建VLAN
配置各以太网接口以正确的方式加入VLAN
配置主机1、主机2、主机3的MAC地址与VLAN关联实现根据报文中的源MAC地址确定VLAN
**创建VLAN并关联MAC地址和VLAN**
![image-20220207224942760](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207224942760.png)
**加入VLAN并使能MAC VLAN功能**
![image-20220207225051762](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207225051762.png)
配置接口为Hybrid接口在Access接口和Trunk接口上只有基于MAC划分的VLAN和PVID相同时才能使用MAC VLAN功能。所以基于MAC地址划分VLAN推荐在Hybrid口上配置
**验证配置**
![image-20220207225124469](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207225124469.png)
命令:**display mac-vlan** { **mac-address** { **all** | *mac-address* [ *mac-address-mask* | *mac-address-mask-length* ] } | **vlan** *vlan-id* }用来查看基于MAC地址划分VLAN的配置信息
all显示所有MAC地址VLAN划分信息
mac-address *mac-address*显示指定MAC地址的VLAN划分信息
*mac-address-mask*MAC地址掩码
*mac-address-mask-length*MAC地址掩码长度
vlan *vlan-id*显示指定MAC-VLAN的配置信息
**输出信息:**
MAC AddressMAC地址
MASKMAC地址的掩码
VLAN基于MAC地址划分的VLAN
Priority指定MAC地址对应VLAN的802.1P优先级
<h3>第三节:生成树</h3>
<h4>一:生成树技术概述</h4>
<h5>1.技术背景</h5>
**二层交换机网络的冗余性与环路**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207225442782.png" alt="image-20220207225442782" style="zoom:50%;" />
随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如图,接入层交换机单链路上联,则存在单链路故障,也就是如果这根上联链路发生故障,交换机下联用户就断网了。另一个问题的单点故障,也就是交换机如果宕机,交换机下联用户也就断网了
为了解决此类问题,交换机在互连时一般都会使用冗余链路来实现备份。冗余链路虽然增强了网络的可靠性,但是也会产生环路,而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题
**人为错误导致的二层环路**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207225611705.png" alt="image-20220207225611705" style="zoom:50%;" />
在现实中,除了冗余链路会引起环路,还有一些人为错误导致的环路
<h5>2.二层环路带来的问题</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207225652815.png" alt="image-20220207225652815" style="zoom:50%;" />
**问题一:广播风暴**
根据交换机的转发原则如果交换机从一个端口上接收到的是一个广播帧或者是一个目的MAC地址未知的单播帧则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路则这个帧会被无限转发此时便会形成广播风暴网络中也会充斥着重复的数据帧
本例中SW3收到了一个广播帧将其进行泛洪SW1和SW2也会将此帧转发到除了接收此帧的其他所有端口结果此帧又会被再次转发给SW3这种循环会一直持续于是便产生了广播风暴。交换机性能会因此急速下降并会导致业务中断
**问题二MAC地址表漂移**
交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的
本例中SW3收到一个广播帧泛洪SW1从GE0/0/1接口接收到广播帧后学习且泛洪形成MAC地址5489-98EE-788A与GE0/0/1的映射SW2收到广播帧后学习且泛洪SW1再次从GE0/0/2收到源MAC地址为5489-98EE-788A的广播帧并进行学习5489-98EE-788A会不断地在GE0/0/1与GE0/0/2接口之间来回切换这被称为MAC地址漂移现象
<h5>3.初始生成树协议</h5>
![image-20220207225838249](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207225838249.png)
在以太网中二层网络的环路会带来广播风暴MAC地址表震荡重复数据帧等问题为解决交换网络中的环路问题提出了STP
STP通过构造一棵树来消除交换网络中的环路
运行STP算法判断网络中存在环路的地方并阻断冗余链路将环路网络修剪成无环路的树型网络从而避免了数据帧在环路网络中的增生和无穷循环
**生成树能够动态响应网络拓扑变化调整阻塞接口**
![image-20220207230002862](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207230002862.png)
如图交换机上运行STP协议会通过报文监控网络的拓扑结构正常情况下是将SW3上的一个接口进行阻塞Block从而打破环路当监控到SW1与SW3之间出现链路故障则恢复阻塞端口进入转发状态
**二层及三层环路**
![image-20220207230046518](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207230046518.png)
常见环路主要分为二层环路和三层环路
二层环路主要因为网络中部署了二层冗余环境,或人为的误接线缆导致,可以通过借助特定的协议或机制实现二层防环
三层环路主要因为路由环路可以通过动态路由协议防环和IP报文头部中的TTL字段用于防止报文被无止尽地转发
<h5>4.生成树协议在园区网络中的应用位置</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220207230212286.png" alt="image-20220207230212286" style="zoom:50%;" />
生成树协议应用于园区网络的二层网络中,进行链路备份和消除环路
<h4>STP概述</h4>
<h5>1.STP的基本概念</h5>
**桥ID**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208113102759.png" alt="image-20220208113102759" style="zoom:80%;" />
在STP中每一台交换机都有一个标示符叫做Bridge ID或者桥ID桥ID由16位的桥优先级Bridge Priority和48位的MAC地址构成。在STP网络中桥优先级是可以配置的取值范围是065535默认值为32768,可以修改但是修改值必须为4096的倍数。优先级最高的设备数值越小越优先会被选举为根桥。如果优先级相同则会比较MAC地址MAC地址越小则越优先
如图需要在该网络中选举根桥首先比较三台交换机的桥优先级桥优先级都为4096再比较三台交换机的MAC地址谁小谁优先最终选择SW1为根桥
**根桥**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208113737409.png" alt="image-20220208113737409" style="zoom:80%;" />
树形的网络结构必须有树根于是STP引入了根桥Root Bridge概念
对于一个STP网络根桥在全网中只有一个它是整个网络的逻辑中心但不一定是物理中心。根桥会根据网络拓扑的变化而动态变化
网络收敛后根桥会按照一定的时间间隔产生并向外发送配置BPDU其他设备仅对该报文进行处理传达拓扑变化记录从而保证拓扑的稳定
网桥协议数据单元(BPDU,Bridge Protocol Data Unit)生成树协议是一种桥嵌套协议在IEEE 802.1d规范里定义可以用来消除桥回路。它的工作原理是这样的生成树协议定义了一个数据包叫做桥协议数据单元BPDUBridge Protocol Data Unit
**Cost**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208113958577.png" alt="image-20220208113958577" style="zoom:80%;" />
交换机的每个端口都有一个端口开销Port Cost参数此参数表示该端口在STP中的开销值。默认情况下端口的开销和端口的带宽有关带宽越高开销越小
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208114043694.png" alt="image-20220208114043694" style="zoom:80%;" />
**RPC**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208114537343.png" alt="image-20220208114537343" style="zoom:80%;" />
从一个非根桥到达根桥的路径可能有多条每一条路径都有一个总的开销值此开销值是该路径上所有接收BPDU端口的端口开销总和即BPDU的入方向端口称为路径开销。非根桥通过对比多条路径的路径开销选出到达根桥的最短路径这条最短路径的路径开销被称为RPC并生成无环树状网络。根桥的根路径开销是0
**Port ID**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208114747619.png" alt="image-20220208114747619" style="zoom:80%;" />
运行STP交换机的每个端口都有一个端口ID端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240步长为16即取值必须为16的整数倍。缺省情况下端口优先级是128。端口ID可以用来确定端口角色
**BPDU**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208114935910.png" alt="image-20220208114935910" style="zoom:80%;" />
BPDU有两种类型配置BPDU和TCN BPDU
配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机以及确定每个交换机端口的角色和状态。在初始化过程中每个桥都主动发送配置BPDU。在网络拓扑稳定以后只有根桥主动发送配置BPDU其他交换机在收到上游传来的配置BPDU后才会发送自己的配置BPDU
TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知
**BPDU的报文格式**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208115114183.png" alt="image-20220208115114183" style="zoom:80%;" />
**配置BPDU的比较原则**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208115150117.png" alt="image-20220208115150117" style="zoom:80%;" />
**STP操作**
选举一个根桥
每个非根交换机选举一个根端口
每个网段选举一个指定端口
阻塞非根、非指定端口
**STP中定义了三种端口角色指定端口根端口和预备端口**
指定端口是交换机向所连网段转发配置BPDU的端口每个网段有且只能有一个指定端口。一般情况下根桥的每个端口总是指定端口
根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口但根桥上没有根端口
如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞
**配置BPDU的转发过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208115323871.png" alt="image-20220208115323871" style="zoom:80%;" />
交换机在刚启动时都认为自己是根桥互相发送配置BPDU进行STP运算
<h5>2.STP的计算过程</h5>
**选举根桥**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208115433808.png" alt="image-20220208115433808" style="zoom:80%;" />
**什么是根桥**
根桥是STP树的根节点
要生成一棵STP树首先要确定出一个根桥
根桥是整个交换网络的逻辑中心,但不一定是它的物理中心
当网络的拓扑发生变化时,根桥也可能发生变化
**选举过程:**
STP交换机初始启动之后都会认为自己是根桥并在发送给其他交换机的BPDU中宣告自己为根桥。因此此时BPDU中的根桥ID为各自设备的网桥ID
当交换机收到网络中其他设备发送来的BPDU后会比较BPDU中的根桥ID和自己的BID
交换机不断交互BPDU同时对BID进行比较最终选举一台BID最小的交换机作为根桥其他的则为非根桥
如图根桥的选举先比较优先级交换机SW1、2、3的优先级相等则比较MAC地址也优选最小的所以SW1的BID最小因此SW1为根桥SW2和SW3为非根桥
根桥的角色可抢占。当有更优的BID的交换机加入网络时网络会重新进行STP计算选出新的根桥
**选举根接口**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208120022860.png" alt="image-20220208120022860" style="zoom:80%;" />
**什么是根端口**
一个非根桥设备上会有多个端口与网络相连,为了保证从某台非根桥设备到根桥设备的工作路径是最优且唯一的,就必须从该非根桥设备的端口中确定出一个被称为“根端口”的端口,由根端口来作为该非根桥设备与根桥设备之间进行报文交互的端口
在选举出根桥后根桥仍然持续发送BPDU而非根桥将持续不断的收到根桥发送的BPDU。因此在所有非根桥上选举一个距离根桥“最近”的端口根端口在网络收敛后根端口将不断的收到来自根桥的BPDU
即:根端口保证了交换机与根桥之间工作路径的唯一性和最优性
注意:一个非根桥设备上,最多只能有一个根端口
**选举过程:**
交换机有多个端口接入网络各个端口都会收到BPDU报文报文中会携带“RootID、RPC、BID、PID”等关键字段端口会针对这些字段进行PK
首先比较根路径开销RPCSTP协议把根路径开销作为确定根端口的重要依据。RPC值越小越优选因此交换机会选RPC最小的端口作为根端口
当RPC相同时比较上行交换机的BID即比较交换机各个端口收到的BPDU中的BID值越小越优选因此交换机会选上行设备BID最小的端口作为根端口
当上行交换机BID相同时比较上行交换机的PID即比较交换机各个端口收到的BPDU中的PID值越小越优先因此交换机会选上行设备PID最小的端口作为根端口
当上行交换机的PID相同时则比较本地交换机的PID即比较本端交换机各个端口各自的PID值越小越优先因此交换机会选端口PID最小的端口作为根端口
**选举指定接口**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208120312795.png" alt="image-20220208120312795" style="zoom:80%;" />
**什么是指定端口**
网络中的每个链路与根桥之间的工作路径必须是唯一的且最优的。当一个链路有两条及以上的路径通往根桥时(该链路连接了不同的交换机,或者该链路连接了同一台交换机的不同端口),与该链路相连的交换机(可能不止一台)就必须确定出一个唯一的指定端口
因此每个链路Link选举一个指定端口用于向这个链路发送BPDU
注意:一般情况下,根桥上不存在任何根端口,只存在指定端口
**选举过程:**
指定端口也是通过比较RPC来确定的选择RPC最小的作为指定端口如果RPC相同则比较BID和PID
首先比较根路径开销RPC值越小越优选因此交换机会选RPC最小的端口作为指定端口
若RPC相等则比较链路两端交换机的BID值越小越优选因此交换机会选BID最小的交换机的端口作为指定端口
若BID相等则比较链路两端端口的PID值越小越优选因此交换机会选PID最小的交换机的端口作为指定端口
**非指定接口被阻塞**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208120928146.png" alt="image-20220208120928146" style="zoom:80%;" />
**什么是非指定端口**
在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口统称为预备端口
**阻塞非指定端口**
STP会对这些非指定端口进行逻辑阻塞即这些端口不能转发由终端计算机产生并发送的帧用户数据帧
一旦非指定端口被逻辑阻塞后STP树无环路工作拓扑就生成了
**注意:**
非指定端口可以接收并处理BPDU
根端口和指定端口既可以接收和发送BPDU也可以转发用户数据帧
**思考题一:识别以下拓扑中的根桥及各种接口角色**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208122912478.png" alt="image-20220208122912478" style="zoom:50%;" />
如图首先选举根桥三台交换机的桥优先级相同则比较桥MAC地址谁小谁优先最终选举SW1为根桥
其次选举根端口SW2上GE0/0/1距离根桥最近RPC最小所以SW2的GE0/0/1为根端口同理SW3的GE0/0/1也为根端口
然后选举指定端口SW1为根桥所以SW1上的GE0/0/0和GE0/0/1端口为指定端口SW2的GE0/0/2端口接收到SW3的配置BPDU比较BIDSW2比SW3的BID更优所以SW2的GE0/0/2端口为指定端口
最终非根端口非指定端口的SW3的GE0/0/2端口为预备端口
**思考题二:识别以下拓扑中的根桥及各种接口角色**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208123105575.png" alt="image-20220208123105575" style="zoom:50%;" />
如图首先选举根桥四台交换机的桥优先级相同则比较桥MAC地址谁小谁优先最终选举SW1为根桥
其次选举根端口SW2上GE0/0/1距离根桥最近RPC最小所以SW2的GE0/0/1为根端口同理SW3的GE0/0/2也为根端口SW4的两个端口RPC相同然后比较SW4的G0/0/1对应的交换机SW2的BID与G0/0/2对应的交换机SW3的BID谁小谁优先最终选举出SW4的GE0/0/1端口为根端口
然后选举指定端口SW1为根桥所以SW1上的GE0/0/0和GE0/0/1端口为指定端口SW2的GE0/0/2端口接收到SW4的配置BPDU比较RPCSW2比SW4的RPC更小所以SW2的GE0/0/2端口为指定端口同理可得SW3的GE0/0/1端口为指定端口
最终非根端口非指定端口的SW4的GE0/0/2端口为预备端口
**思考题三:识别以下拓扑中的根桥及各种接口角色**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208123342319.png" alt="image-20220208123342319" style="zoom:50%;" />
如图首先选举根桥两台交换机的桥优先级相同则比较桥MAC地址谁小谁优先最终选举SW1为根桥
其次选举根端口SW2上两个端口RPC相同再比较两个接口对端的BID也相同然后比较两个端口对端的PIDSW2的G0/0/1的对端PID128.1SW2的G0/0/2的对端PID128.2越小越优先所以SW2的G0/0/1为根端口
然后选举指定端口SW1为根桥所以SW1上的GE0/0/1和GE0/0/2端口为指定端口
最终非根端口非指定端口的SW2的GE0/0/2端口为预备端口
<h5>3.STP的接口状态</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208123506586.png" alt="image-20220208123506586" style="zoom:50%;" />
Forwarding转发状态。端口既可转发用户流量也可转发BPDU报文只有根端口或指定端口才能进入Forwarding状态
Learning学习状态。端口可根据收到的用户流量构建MAC地址表但不转发用户流量。增加Learning状态是为了防止临时环路
Listening侦听状态。端口可以转发BPDU报文但不能转发用户流量
Blocking阻塞状态。端口仅仅能接收并处理BPDU不能转发BPDU也不能转发用户流量。此状态是预备端口的最终状态
Disabled禁用状态。端口既不处理和转发BPDU报文也不转发用户流量
<h5>4.根桥故障</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208123741097.png" alt="image-20220208123741097" style="zoom:50%;" />
**根桥故障:**
在稳定的STP网络非根桥会定期收到来自根桥的BPDU报文
如果根桥发生了故障停止发送BPDU下游交换机就无法收到来自根桥的BPDU报文
如果下游交换机一直收不到BPDU报文Max Age计时器缺省: 20s就会超时从而导致已经收到的BPDU报文失效此时非根桥会互相发送配置BPDU重新选举新的根桥
**端口状态:**
SW3的预备端口20s后会从Blocking状态进入到Listening状态再进入Learning状态最终进入到Forwarding状态进行用户流量的转发
**收敛时间:**
根桥故障会导致50s左右的恢复时间等于Max Age加上2倍的Forward Delay收敛时间
<h5>5.直接链路故障</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208123905747.png" alt="image-20220208123905747" style="zoom:50%;" />
**直连链路故障:**
当两台交换机间用两条链路互连时,其中一条是主用链路,另一条为备用链路
当网络稳定时交换机SW2检测到根端口的链路发生故障则其备用端口会进入用户流量转发状态
**端口状态:**
备用端口会从Blocking状态迁移到Listening-Learning-Forwarding状态
直连链路故障备用端口会经过30s后恢复转发状态
<h5>6.非直接链路故障</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220208124025576.png" alt="image-20220208124025576" style="zoom:50%;" />
非直接链路故障后SW3的备用端口恢复到转发状态非直接故障会导致50s左右的恢复时间
**非直连故障**
在稳定的STP网络非根桥会定期收到来自根桥的BPDU报文
若SW1与SW2之间的链路发生了某种故障非物理故障因此SW2一直收不到来自根桥SW1的BPDU报文Max Age计时器缺省: 20 s就会超时从而导致已经收到的BPDU报文失效
此时非根桥SW2会认为根桥失效并且认为自己是根桥从而发送自己的配置BPDU给SW3通知SW3自己是新的根桥
在此期间SW3的预备端口一直收不到包含根桥ID的BPDUMax Age计时器超时后端口进入到Listening状态开始向SW2“转发”从上游发来的包含根桥ID的BPDU
因此Max Age定时器超时后SW2和SW3几乎同时收到对方发来的BPDU再进行STP重新计算SW2发现SW3发来的BPDU更优就放弃宣称自己是根桥并重新确定端口角色
**端口状态:**
SW3预备端口20s后会从Blocking状态进入到Listening状态再进入Learning状态最终进入到Forwarding状态进行用户流量的转发
**收敛时间:**
非直连故障会导致50s左右的恢复时间等于Max Age加上2倍的Forward Delay收敛时间
<h5>7.拓扑改变导致MAC地址表错误</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210101535762.png" alt="image-20220210101535762" style="zoom:80%;" />
在交换网络中交换机依赖MAC地址表转发数据帧。缺省情况下MAC地址表项的老化时间是300秒。如果生成树拓扑发生变化交换机转发数据的路径也会随着发生改变此时MAC地址表中未及时老化掉的表项会导致数据转发错误因此在拓扑发生变化后需要及时更新MAC地址表项
本例中SW2中的MAC地址表项定义了通过端口GigabitEthernet 0/0/1可以到达主机A通过端口GigabitEthernet 0/0/3可以到达主机B。由于SW3的根端口产生故障导致生成树拓扑重新收敛在生成树拓扑完成收敛之后从主机A到主机B的帧仍然不能到达目的地。这是因为MAC地址表项老化时间是300秒主机A发往主机B的帧到达SW2后SW2会继续通过端口GigabitEthernet 0/0/3转发该数据帧
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210101652622.png" alt="image-20220210101652622" style="zoom:80%;" />
拓扑变化过程中根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项
拓扑变更以及MAC地址表项更新的具体过程如下
SW3感知到网络拓扑发生变化后会不间断地向SW2发送TCN BPDU报文
SW2收到SW3发来的TCN BPDU报文后会把配置BPDU报文中的Flags的TCA位设置1然后发送给SW3告知SW3停止发送TCN BPDU报文
SW2向根桥转发TCN BPDU报文
SW1把配置BPDU报文中的Flags的TC位设置为1后发送通知下游设备把MAC地址表项的老化时间由默认的300 s修改为Forward Delay的时间默认为15 s
最多等待15 s之后SW2中的错误MAC地址表项会被自动清除。此后SW2就能重新开始MAC表项的学习及转发操作
<h4>二:生成树协议基本配置</h4>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210102124546.png" alt="image-20220210102124546" style="zoom:80%;" />
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210102137301.png" alt="image-20220210102137301" style="zoom:80%;" />
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210102149923.png" alt="image-20220210102149923" style="zoom:80%;" />
<h5>1.STP的基础配置</h5>
![image-20220210102316933](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210102316933.png)
![image-20220210102327043](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210102327043.png)
<h3>第三节:快速生成树协议</h3>
<h4>一:快速生成树概览</h4>
<h5>1.STP的不足</h5>
STP虽然能够解决环路问题但是由于网络拓扑收敛慢影响了用户通信质量。如果网络中的拓扑结构频繁变化网络也会随之频繁失去连通性从而导致用户通信频繁中断这是用户无法忍受的
**STP的不足**
STP没有细致区分端口状态和端口角色不利于初学者学习及部署
STP算法是被动的算法依赖定时器等待的方式判断拓扑变化收敛速度慢
STP算法要求在稳定的拓扑中根桥主动发出配置BPDU报文而其他设备再进行处理最终传遍整个STP网络
<h5>2.STP对计时器的依赖</h5>
STP采用计时器防止临时环路当STP选举出端口角色后即便角色为指定端口和根端口仍然需要等待两个Forward Delay时间30s才能进入转发
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210102959653.png" alt="image-20220210102959653" style="zoom:50%;" />
在运行STP的环境下终端或服务器接入后由于端口需要从Disabled状态依次切换到Blocking、Listening、Learning及Forwarding状态此时主机A在接入后需要等待两个Forward Delay时间才能访问网络服务
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210103030000.png" alt="image-20220210103030000" style="zoom:50%;" />
<h5>3.STP重收敛过程慢</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210103130291.png" alt="image-20220210103130291" style="zoom:50%;" />
被阻塞的端口会从Blocking状态依次切换到Listening及Learning状态最终进入Forwarding状态
直连链路故障端口状态转换延时30s后进入
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210103157273.png" alt="image-20220210103157273" style="zoom:50%;" />
由于被阻塞端口上不再收到更优的BPDU因此20s后端口开始从Blocking状态依次切换到Listening、Learning及Forwarding状态
非直连故障会导致50s左右的恢复时间等于Max Age加上2倍的Forward Delay时间
**非直连故障:**
当网络正常时SW3的被阻塞端口会定期收到来自根桥的BPDU
当SW1与SW2之间的链路发生故障时SW2能够第一时间检测到故障发生此时它认为自己成为新的根桥于是向SW3发送自己的配置BPDU根桥ID为自己的桥ID
SW3的被阻塞端口将收到上述配置BPDU但该BPDU并不比当前端口所缓存的配置BPDU更优因此SW3忽略该配置BPDU
当Max Age计时器超时后SW3端口上缓存的配置BPDU老化SW3开始向SW2发送配置BPDU该配置BPDU由根桥SW1发送的配置BPDU触发其中的根桥ID字段值为SW1的桥ID
SW2收到上述配置BPDU后解析该报文并认定SW1为根桥于是将其连接SW3的端口切换为根端口
<h5>4.RSTP概述</h5>
**RSTP对STP的改进**
通过端口角色的增补,简化了生成树协议的理解及部署
端口状态的重新划分
配置BPDU格式的改变充分利用了STP协议报文中的Flag字段明确了端口角色
配置BPDU的处理发生变化
快速收敛
增加保护功能
**RSTP在园区网络中的应用位置**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210103643759.png" alt="image-20220210103643759" style="zoom:50%;" />
**端口角色:**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210103729649.png" alt="image-20220210103729649" style="zoom:80%;" />
RSTP的端口角色共有4种根端口、指定端口、Alternate端口和Backup端口
根端口和指定端口的作用同STP中定义Alternate端口和Backup端口的描述如下
从配置BPDU报文发送角度来看
Alternate端口就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口
Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口
从用户流量角度来看:
Alternate端口提供了从指定桥到根的另一条可切换路径作为根端口的备份端口
Backup端口作为指定端口的备份提供了另一条从根桥到相应网段的备份通路
**端口状态:**
Discarding状态不转发用户流量也不学习MAC地址
Learning状态不转发用户流量但是学习MAC地址
Forwarding状既转发用户流量又学习MAC地址
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210103923574.png" alt="image-20220210103923574" style="zoom:80%;" />
**配置BPDU - RST BPDU**
RSTP的配置BPDU充分利用了STP报文中的Flag字段明确了端口角色
除了保证和STP格式基本一致之外RSTP作了如下变化
Type字段配置BPDU类型不再是0而是2所以运行STP的设备收到RSTP的配置BPDU时会丢弃
Flag字段使用了原来保留的中间6位这样改变的配置BPDU叫做RST BPDU
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210104040364.png" alt="image-20220210104040364" style="zoom:80%;" />
RST BPDU与STP配置BPDU报文格式不同点包括BPDU类型和Flag字段
BPDU类型1 ByteRST BPDU的类型值为0x02
标志1 Byte包括
bit 7TCA表示拓扑变化确认
bit 6Agreement表示同意用于P/A机制
bit 5Forwarding表示转发状态
bit 4Learning表示学习状态
bit 3和bit 2表示端口角色00表示未知端口01表示替代或备份端口10表示根端口11表示指定端口
bit 1Proposal表示提议用于P/A机制
bit 0TC表示拓扑变化
**配置BPDU的处理**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210104333310.png" alt="image-20220210104333310" style="zoom:50%;" />
拓扑稳定后配置BPDU报文的发送方式
RSTP对配置BPDU的发送方式进行了改进
在拓扑稳定后无论非根桥设备是否接收到根桥传来的配置BPDU报文非根桥设备仍然按照Hello Time规定的时间间隔发送配置BPDU该行为完全由每台设备自主进行
STP拓扑稳定后根桥按照Hello Time规定的时间间隔发送配置BPDU。其他非根桥设备在收到上游设备发送过来的配置BPDU后才会触发发出配置BPDU此方式使得STP计算复杂且缓慢
**配置BPDU的处理**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210104447346.png" alt="image-20220210104447346" style="zoom:50%;" />
更短的BPDU超时时间
如果一个端口在超时时间即三个周期超时时间Hello Time×3内没有收到上游设备发送过来的配置BPDU那么该设备认为与此邻居之间的协商失败
STP需要先等待一个Max Age
**配置BPDU的处理**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210104559753.png" alt="image-20220210104559753" style="zoom:50%;" />
处理次优BPDU
当一个端口收到上游的指定桥发来的RST BPDU报文时该端口会将自身缓存的RST BPDU与收到的RST BPDU进行比较
当一个端口收到上游的指定桥发来的RST BPDU报文时该端口会将自身缓存的RST BPDU与收到的RST BPDU进行比较
STP协议只有指定端口会立即处理次优BPDU
**STP**
STP只有指定端口会立即处理次优BPDU其他端口会忽略次优BPDU等到Max Age计时器超时后缓存的次优BPDU才会老化然后发送自身更优的BPDU进行新一轮的拓扑收敛
**RSTP**
RSTP处理次优BPDU报文不再依赖于任何定时器即不再依赖于BPDU老化解决拓扑收敛同时RSTP的任何端口角色都会处理次优BPDU从而加快了拓扑收敛
**快速收敛机制(一):**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210104957469.png" alt="image-20220210104957469" style="zoom:50%;" />
如果网络中一个根端口失效那么网络中最优的Alternate端口将成为根端口进入Forwarding状态。因为通过这个Alternate端口连接的网段上必然有个指定端口可以通往根桥
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105016519.png" alt="image-20220210105016519" style="zoom:50%;" />
如果网络中一指定端口失效那么网络中最优的Backup端口将成为指定端口进入Forwarding状态。因为Backup端口作为指定端口的备份提供了另一条从根桥到相应网段的备份通路
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105131140.png" alt="image-20220210105131140" style="zoom:50%;" />
在RSTP里面如果某一个端口位于整个网络的边缘即不再与其他交换设备连接而是直接与终端设备直连这种端口可以设置为边缘端口
边缘端口不参与RSTP计算可以由Discarding直接进入Forwarding状态
但是一旦边缘端口收到配置BPDU就丧失了边缘端口属性成为普通STP端口并重新进行生成树计算从而引起网络震荡
边缘端口的UP和Down不会引起网络拓扑的变动
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105300591.png" alt="image-20220210105300591" style="zoom:50%;" />
Proposal/Agreement机制:
简称P/A机制
RSTP通过P/A机制加快了上游端口进入Forwarding状态的速度
在RSTP中当一个端口被选举成为指定端口之后,会先进入Discarding状态再通过P/A机制快速进入Forwarding状态
在STP中该端口至少要等待一个Forward DelayLearning时间才会进入到Forwarding状态。
注意:
事实上对于STP指定端口的选择可以很快完成主要的速度瓶颈在于为了避免环路必须等待足够长的时间使全网的端口状态全部确定也就是说必须要等待至少一个Forward Delay所有端口才能进行转发
而RSTP的主要目的就是消除这个瓶颈通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了上游端口进入Forwarding状态的速度
**P/A机制详解 **
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105442264.png" alt="image-20220210105442264" style="zoom:50%;" />
根桥SW1和SW2之间新添加了一条链路
在当前状态下SW2的下游端口分别是Alternate端口、指定端口处于Forwarding状态和边缘端口
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105614890.png" alt="image-20220210105614890" style="zoom:50%;" />
SW1和SW2之间的两个端口都先成为指定端口发送RST BPDU
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105634681.png" alt="image-20220210105634681" style="zoom:50%;" />
SW2与SW1互联的端口收到更优的RST BPDU后马上意识到自己将成为根端口而不是指定端口停止发送RST BPDU
SW1的指定端口进入Discarding状态发送Proposal位置位的RST BPSU
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105700164.png" alt="image-20220210105700164" style="zoom:50%;" />
SW2收到根桥发送来的Proposal位置位的RST BPDU开始将自己的所有端口进入同步状态
各端口同步后下游端口除边缘端口均进入Discarding状态上游根端口进入Forwarding状态并向SW1返回Agreement位置位的回应RST BPDU
注意:
SW2的下游端口同步过程替代端口状态不变边缘端口不参与计算阻塞非边缘指定端口
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105743339.png" alt="image-20220210105743339" style="zoom:50%;" />
SW1收到的Agreement位置位的RST BPDU是对刚刚自己发出的Proposal的回应于是指定端口马上进入Forwarding状态
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105758084.png" alt="image-20220210105758084" style="zoom:50%;" />
下游设备继续执行P/A协商过程
**拓扑变更机制:**
在RSTP中检测拓扑是否发生变化只有一个标准一个非边缘端口迁移到Forwarding状态
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210105847467.png" alt="image-20220210105847467" style="zoom:50%;" />
**一旦检测到拓扑发生变化,将进行如下处理:**
为本交换设备的所有非边缘指定端口和根端口启动一个TC While Timer该计时器值是Hello Time的两倍。在这个时间内清空状态发生变化的端口上学习到的MAC地址
同时由非边缘指定端口和根端口向外发送RST BPDU其中TC置位。一旦TC While Timer超时则停止发送RST BPDU
其他交换设备接收到RST BPDU后清空所有端口除了收到RST BPDU的端口和边缘端口学习到MAC地址然后也为自己所有的非边缘指定端口和根端口启动TC While Timer重复上述过程如此网络中就会产生RST BPDU的泛洪
注意:
在STP中如果拓扑发生了变化需要先向根桥传递TCN BPDU再由根桥来通知拓扑变更泛洪TC置位的配置BPDU
在RSTP中通过新的拓扑变更机制TC置位的RST BPDU会快速的在网络中泛洪
如上图所示:
SW3的根端口收不到从根桥发来的RST BPDU后Alternate端口会快速切换为新的根端口启动TC While Timer并清空状态发生变化的端口学习到的MAC地址。然后向外发出TC置位的RST BPDU
SW2接收到RST BPDU后会清空接收口以外所有端口学习到的MAC地址同时开启计时器并向外发送TC置位的RST BPDU
最终RST BPDU会在全网泛洪
**保护功能:**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210110135457.png" alt="image-20220210110135457" style="zoom:50%;" />
**BPDU保护**
正常情况下边缘端口不会收到RST BPDU。如果有人伪造RST BPDU恶意攻击交换设备当边缘端口接收到RST BPDU时交换设备会自动将边缘端口设置为非边缘端口并重新进行生成树计算从而引起网络震荡
交换设备上启动了BPDU保护功能后如果边缘端口收到RST BPDU边缘端口将被error-down但是边缘端口属性不变同时通知网管系统
注意:
在交换设备上通常将直接与用户终端如PC机或文件服务器等非交换设备相连的端口配置为边缘端口
如上图所示:
SW3与某主机互联并设置该互联端口为边缘端口
后来该主机被恶意用户侵占并伪造RST BPDU攻击SW3因此边缘端口会收到RST BPDU失去边缘端口特性并进行生成树计算
**根保护Root保护**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210110307830.png" alt="image-20220210110307830" style="zoom:50%;" />
对于启用根保护功能的指定端口,其端口角色只能保持为指定端口
一旦启用根保护功能的指定端口收到优先级更高的RST BPDU时端口将进入Discarding状态不再转发报文。经过一段时间通常为两倍的Forward Delay如果端口一直没有再收到优先级较高的RST BPDU端口会自动恢复到正常的Forwarding状态
根保护功能确保了根桥的角色不会因为一些网络问题而改变
注意:
由于维护人员的错误配置或网络中的恶意攻击根桥有可能会收到优先级更高的RST BPDU使得根桥失去根地位从而引起网络拓扑结构的错误变动。这种拓扑变化会导致原来应该通过高速链路的流量被牵引到低速链路上造成网络拥塞
如上图所示:
网络稳定时SW1为根桥向下游设备发送最优RST BPDU
如果SW2被恶意用户侵占例如恶意修改SW2的桥优先级使得SW2的桥优先级优于SW1此时SW2会主动发送自己的RST BPDU
当SW1的指定端口收到该RST BPDU后会重新进行生成树计算而SW1也会失去根桥的地位引起拓扑变动
**环路保护:**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210110434303.png" alt="image-20220210110434303" style="zoom:50%;" />
在启动了环路保护功能后如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时则向网管发出通知信息此时根端口会进入Discarding状态角色切换为指定端口而Alternate端口则会一直保持在Discarding状态角色也会切换为指定端口不转发报文从而不会在网络中形成环路
直到链路不再拥塞或单向链路故障恢复端口重新收到BPDU报文进行协商并恢复到链路拥塞或者单向链路故障前的角色和状态
注意:
在运行RSTP的网络中根端口状态是依靠不断接收来自上游交换设备的RST BPDU维持。当由于链路拥塞或者单向链路故障导致根端口收不到来自上游交换设备的RST BPDU时此时交换设备会重新选择根端口
如图所示当SW1和SW3之间的链路发生单向链路故障时SW3由于根端口在超时时间内收不到来自上游设备的BPDU报文Alternate端口切换成根端口根端口切换成指定端口从而形成了环路
**防TC-BPDU攻击**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210110617011.png" alt="image-20220210110617011" style="zoom:50%;" />
启用防TC-BPDU报文攻击功能后在单位时间内交换设备处理TC BPDU报文的次数可配置
如果在单位时间内交换设备在收到TC BPDU报文数量大于配置的阈值那么设备只会处理阈值指定的次数
对于其他超出阈值的TC BPDU报文定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项从而达到保护设备的目的
注意:
交换设备在接收到TC置位的RST BPDU报文后会执行MAC地址表项的删除操作。如果有人伪造TC置位的RST BPDU报文恶意攻击交换设备时交换设备短时间内会收到很多RST BPDU报文频繁的删除操作会给设备造成很大的负担给网络的稳定带来很大隐患
如上图所示:
如果SW3被恶意用户侵占伪造大量TC置位的RST BPDU并向外发送。SW2收到这些RST BPDU后会频繁执行MAC地址表项的删除操作形成巨大负担
<h5>5.RSTP工作过程</h5>
**RSTP拓扑收敛过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210110947740.png" alt="image-20220210110947740" style="zoom:50%;" />
每一台交换机启动RSTP后都认为自己是“根桥”并且发送RST BPDU,所有端口都为指定端口处于Discarding状态
网络初始化时网络中所有的RSTP交换机都认为自己是“根桥”并设置每个端口都为指定端口发送RST BPDU。其中SW1的桥ID最优最终会被选举为根桥
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210111012340.png" alt="image-20220210111012340" style="zoom:50%;" />
**上游链路的设备互联端口通过P/A机制快速进入转发状态**
SW2收到更优的RST BPDU后经比较认为SW1才是当前根桥此时SW2的端口将成为根端口而不是指定端口停止发送RST BPDU
SW1的端口进入Discarding状态发送Proposal位置位的RST BPDU。SW2收到后阻塞除边缘端口以外的所有其他端口该过程称为同步过程
SW2的各端口同步后根端口立即进入Forwarding状态并向SW1返回Agreement位置位的RST BPDU。SW1收到该报文后会让指定端口立即进入Forwarding状态
注意:
每个认为自己是“根桥”的交换机生成一个RST BPDU报文来协商指定网段的端口状态此RST BPDU报文Flag字段里面的Proposal位需要置位
当一个端口收到RST BPDU报文时此端口会比较收到的RST BPDU报文和本地的RST BPDU报文。如果本地的RST BPDU报文优于接收的RST BPDU报文则端口会丢弃接收的RST BPDU报文并发送Proposal置位的本地RST BPDU报文来回复对端设备
如图RSTP上游链路的设备互联端口收敛过程以SW1与SW2为例
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210111129982.png" alt="image-20220210111129982" style="zoom:50%;" />
**下游链路的设备互联端口会进行新一轮的P/A协商**
SW2的下游端口设置为指定端口持续发送Proposal位置位的RST BPDU
SW3的下游端口收到该BPDU后发现不是本设备收到的最优BPDU则会忽略不会发送Agreement位置位的RST BPDU
SW2的下游端口一直收不到Agreement位置位的回应报文等待2倍的Forward Delay后进入转发状态
如图RSTP下游链路的设备互联端口会进入慢收敛过程以SW2与SW3为例
<h5>6.RSTP的基本配置</h5>
![image-20220210111316155](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210111316155.png)
![image-20220210111328148](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210111328148.png)
![image-20220210111338156](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210111338156.png)
![image-20220210111347542](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210111347542.png)
![image-20220210111356029](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210111356029.png)
注意:
配置后在stp tc-protection interval指定的时间内设备只会处理stp tc-protection threshold指定数量的拓扑变化报文对于其他的报文会延迟处理所以可能会影响生成树的收敛速度。例如时间设定为10秒阈值设定为5则设备收到拓扑变化报文后在10秒内只会处理最开始收到的5个拓扑变化报文对于后面收到的报文则会等10秒超时后再统一处理
<h5>7.案例一 RSTP的基础配置</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210111457815.png" alt="image-20220210111457815" style="zoom:50%;" />
在上述三台交换机上部署RSTP以便消除网络中的二层环路
通过配置实现:
将SW1指定为根桥SW2为备份根桥
与PC相连的端口不参与RSTP计算将其设置为边缘端口
配置根保护和BPDU保护功能实现对设备或链路的保护
SW1开启RSTP功能
```shell
[SW1] stp mode rstp
[SW1] stp enable
[SW1] stp root primary
```
SW2开启RSTP功能
```shell
[SW2] stp mode rstp
[SW2] stp enable
[SW2] stp root secondary
```
SW3开启RSTP功能
```shell
[SW3] stp mode rstp
[SW3] stp enable
```
SW3开启边缘端口
```shell
[SW3-Ethernet0/0/1] stp edged-port enable
```
SW1开启根保护功能
```shell
[SW1-GigabitEthernet0/0/1] stp root-protection
[SW1-GigabitEthernet0/0/2] stp root-protection
```
SW3开启BPDU保护功能
```shell
[SW3] stp bpdu-protection
```
<h3>第四节实现VLAN间通信</h3>
<h4>一:技术背景</h4>
<h5>1.VLAN间通信</h5>
实际网络部署中一般会将不同IP地址段划分到不同的VLAN
同VLAN且同网段的PC之间可直接进行通信无需借助三层转发设备该通信方式被称为二层通信
VLAN之间需要通过三层通信实现互访三层通信需要借助三层设备
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210124138976.png" alt="image-20220210124138976" style="zoom:50%;" />
常见的三层设备:路由器、三层交换机、防火墙等
将交换机与路由器的三层接口互联,由三层设备进行路由转发实现通信
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210124528599.png" alt="image-20220210124528599" style="zoom:50%;" />
<h4>使用路由器实现VLAN间通信</h4>
<h5>1.使用路由器物理接口</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210124636340.png" alt="image-20220210124636340" style="zoom:50%;" />
路由器三层接口作为网关,转发本网段前往其他网段的流量
路由器三层接口无法处理携带VLAN Tag的数据帧因此交换机上联路由器的接口需要配置为Access
路由器的一个物理接口作为一个VLAN的网关因此存在一个VLAN需要占用一个路由器物理接口
路由器作为三层转发设备其接口数量较少,方案的可扩展性太差
在二层交换机上配置VLAN每个VLAN单独使用一个交换机接口与路由器互联
路由器使用两个物理接口分别是VLAN 10及VLAN 20内PC的默认网关使用路由器的物理接口实现VLAN间的通信
<h5>2.使用路由器子接口</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210125236180.png" alt="image-20220210125236180" style="zoom:50%;" />
子接口是基于路由器以太网接口所创建的逻辑接口以物理接口ID+子接口ID进行标识子接口同物理接口一样可以进行三层转发
子接口不同于物理接口可以终结携带VLAN Tag的数据帧
基于一个物理接口创建多个子接口将该物理接口对接到交换机的Trunk接口即可实现使用同一个物理接口为多个VLAN提供三层转发
R1使用一个物理接口GE0/0/1与交换机SW1对接并基于该物理接口创建两个子接口GE0/0/1.10及GE0/0/1.20分别使用这两个子接口作为VLAN 10及VLAN 20的默认网关
由于三层子接口不支持VLAN报文当它收到VLAN报文时会将VLAN报文当成是非法报文而丢弃。因此需要在子接口上将VLAN Tag剥掉也就是需要VLAN终结VLAN Termination
<h5>3.子接口处理流程</h5>
交换机连接路由器的接口类型配置为Trunk根据报文的VLAN Tag不同路由器将收到的报文交由对应的子接口处理
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210125724559.png" alt="image-20220210125724559" style="zoom:80%;" />
**子接口终结VLAN的实质包含两个方面**
对接口接收到报文剥除VLAN标签后进行三层转发或其他处理
对接口发出的报文又将相应的VLAN标签添加到报文中后再发送
<h5>4.子接口配置实例</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210125858837.png" alt="image-20220210125858837" style="zoom:80%;" />
**interface** *interface-type interface-number.sub-interface number*命令用来创建子接口。sub-interface number代表物理接口内的逻辑接口通道。一般情况下为了方便记忆子接口ID与所要终结的VLAN ID相同
**dot1q termination vid**命令用来配置子接口Dot1q终结的单层VLAN ID。缺省情况子接口没有配置dot1q终结的单层VLAN ID。**arp broadcast enable**命令用来使能终结子接口的ARP广播功能。缺省情况下终结子接口没有使能ARP广播功能。终结子接口不能转发广播报文在收到广播报文后它们直接把该报文丢弃。为了允许终结子接口能转发广播报文可以通过在子接口上执行此命令
<h4>使用VLANIF技术实现VLAN间通信</h4>
<h5>1.三层交换机和VLANIF接口</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130126456.png" alt="image-20220210130126456" style="zoom:50%;" />
二层交换机指的是只具备二层交换功能的交换机
三层交换机除了具备二层交换机的功能,还支持通过三层接口实现路由转发功能
VLANIF接口是一种三层的逻辑接口支持VLAN Tag的剥离和添加因此可以通过VLANIF接口实现VLAN间通信
VLANIF接口编号与所对应的VLAN ID相同如VLAN 10对应 VLANIF 10
<h5>2.VLANIF配置实例</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130456877.png" alt="image-20220210130456877" style="zoom:80%;" />
**interface vlanif** *vlan-id*命令用来创建VLANIF接口并进入到VLANIF接口视图。*vlan-id*表示与VLANIF接口相关联的VLAN编号。VLANIF接口的IP地址作为主机的网关IP地址和主机的IP地址必须位于同一网段
<h5>3.VLANIF转发流程</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130605127.png" alt="image-20220210130605127" style="zoom:80%;" />
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130615905.png" alt="image-20220210130615905" style="zoom:80%;" />
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130625947.png" alt="image-20220210130625947" style="zoom:80%;" />
<h5>4.三层通信过程解析</h5>
**网络拓扑**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130805679.png" alt="image-20220210130805679" style="zoom:80%;" />
**连接逻辑图**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130832696.png" alt="image-20220210130832696" style="zoom:80%;" />
注意:
NAPTNetwork Address Port Translation网络地址端口转换将IP数据报文头中的IP地址、端口号转换为另一个IP地址、端口号的过程主要用于实现内部网络私有IP地址访问外部网络公有IP地址的功能NAPT支持多个内部地址映射到同一个公有地址上可以实现使用一个公有地址支持内网多个内部地址同时访问外部网络
**通信过程1**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130913557.png" alt="image-20220210130913557" style="zoom:80%;" />
注意:
假设所有设备上都已存在相应的ARP或MAC表项
**通信过程2**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210130951412.png" alt="image-20220210130951412" style="zoom:80%;" />
**通信过程3**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210131020955.png" alt="image-20220210131020955" style="zoom:80%;" />
**通信过程4**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210131047843.png" alt="image-20220210131047843" style="zoom:80%;" />
**通信过程5**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220210131141677.png" alt="image-20220210131141677" style="zoom:80%;" />
注意:
NATNetwork Address Translation网络地址转换将IP数据报文头中的IP地址转换为另一个IP地址