VLAN---虚拟局域网
垃圾流量问题
网络安全问题
VLAN特点
一个vlan就是一个广播域,不同vlan内部的数据无法进行跨广播域通讯
vlan的划分不受地域限制
vlan的实现
主机的网卡一般只能发送和接收无标记帧(Untagged Frame)。Tagged Frame --- 标记帧
注意:在交换机内部,所有的数据都是标记帧,原因在于需要区分不同vlan 的数据
vlan标签
IEEE 802.1Q标准 --- 虚拟桥接局域网标准。 --- Dot1Q
vlan的划分方式
基于接口划分 --- 根据交换机的接口来划分vlan
PVID --- 缺省vlan
port vlan ID --- 接口上的缺省VLAN --- 0-4095
配置简单直观,该方式是目前现网环境中应用最广泛的划分VLAN的方式
基于MAC地址划分 --- 根据数据帧的源MAC地址来划分
VLAN映射表 --- 记录了MAC地址与VLAN ID的关联情况
基于IP子网划分 --- 根据数据帧中的源IP地址和子网掩码来划分
基于协议划分 --- 根据数据帧所属的协议类型及封装格式来划分vlan
基于策略的划分 --- 根据配置的策略划分vlan,能够实现多种组合的划分方式
接口划分vlan --- 接口类型
配置
交换机默认存在vlan1,原本说的广播域其实是vlan ID为1的广播域
第一步:创建vlan
第二步:将接口划入vlan
PVID --- 端口的VLAN-id
华为给每一个接口都配置一个PVID,也就是接口所属的VID。每个接口只能有一个PVID值。在默认情况下,PVID为1。
Access类型
Access类型的二层接口通常用于连接终端设备 ---- Access接口所连接的设备网卡只能处理无标记帧
Access接口接收数据帧
当Access接口收到一个Untagged帧 --- 交换机会接收这个数据帧,并将数据帧打上接口缺省vlan的tag
当Access接口收到一个Tagged帧 --- 如果该帧携带的VID与接口的PVID相同,则交换机接收该数据帧,若不相同则丢弃该数据帧
Access接口发送数据帧
该数据一定是携带tag
第三步、配置trunk干道
trunk干道创建时默认放通vlan1,且创建时缺省vlan为vlan1
trunk类型
该接口可以接收或发送多个vlan 的数据帧。所以trunk类型的接口多见于交换机之间互联的接口
Trunk接口接收数据帧
当Trunk接口收到一个Untagged帧 --- 交换机会给该接口打上缺省vlan的tag,并检查该vlan是否属于允许列表中(vlan-list),如果允许,则接收该数据帧,否则丢弃。
当Trunk接口收到一个tagged帧 --- 该帧中的VID若属于允许列表则接收,否则丢弃
Trunk接口发送数据帧
当发送的数据帧的VID与Trunk接口的PVID相同,且在允许列表中 --- 剥离数据帧的vlan-id字段,并发送数据
当发送的数据帧的VID与Trunk接口的PVID不同,且在运行列表中 --- 直接携带vlan-id数值发送
当数据帧的VID不在允许列表中,不管PVID为多少,都拒绝发送数据
修改trunk要将链路两端都修改为trunk
Hybrid --- 混杂接口
该接口类型是华为私有设计的接口类型。华为交换机默认接口类型为Hybrid类型
vlan list --- 允许列表
Access
可以修改PVID,可以修改允许列表,但是PVID和允许列表中必须相同且只能允许一个VLAN通过
出口封装方式只能是不携带标签
Trunk
可以修改PVID,可以修改允许列表
允许列表中可以通过多个vlan流量
出口封装方式仅为携带标签(若PVID在允许列表中,则不携带)
Hybrid
可以修改PVID,修改允许列表
而且允许列表中可以通过多个vlan的流量
可以修改出口的封装方式
Hybrid工作方式
PVID --- 接口缺省vlan
tagged --- 接口允许通过列表,且携带标签
untagged --- 接口允许通过列表,不允许携带标签
Hybrid接口接收数据时
当Hybrid接口接收到一个无标记帧
数据帧被打上PVID的数值
且该PVID在允许列表中,不管是属于U还是T,都会将数据接收
若此PVID不在允许列表中,则丢弃数据
当Hybrid接口接收到一个标记帧
若在允许列表则接收数据
若不在允许列表则丢弃数据
Hybrid接口发送数据时--- 不关注PVID
若数据帧中的VID不在允许列表中则丢弃
若数据帧中的VID在允许列表
若在tagged列表,则携带标签转发
若在untagged列表,则剥离标签转发
[sw1-GigabitEthernet0/0/2]port link-type hybrid ----- 修改接口类型[sw1-GigabitEthernet0/0/2]port hybrid pvid vlan 2 ---- 设置混杂接口 PVID[sw1-GigabitEthernet0/0/2]port hybrid untagged vlan 2 3 5 --- 设置不携带标签的允许列表[sw1-GigabitEthernet0/0/2]port hybrid tagged vlan ? ---- 设置携带标签的允许列表INTEGER<1-4094> VLAN IDall All
VLAN间通讯
多臂路由 --- 使用vlan的方式减小广播域的原因在于路由器接口数量不够,而为了实现跨广播通讯还是需要使用路由器多个接口,得不偿失
单臂路由 ---使用逻辑接口---以太网子接口(Sub-interface)
子接口
[r1]interface GigabitEthernet 0/0/1.10 ---- 创建子接口[r1-GigabitEthernet0/0/1.10]description vlan10 ----- 描述信息[r1-GigabitEthernet0/0/1.10]ip address 192.168.10.254 24 ---- 配置 IP 地址[r1-GigabitEthernet0/0/1.10]dot1q termination vid 10 ---- 开启子接口处理 802.1Q数据帧的能力,且针对于 VLAN10[r1-GigabitEthernet0/0/1.10]arp broadcast enable --- 开启伪广播
华为子接口默认不开启arp应答功能,使用需要手工开启
华为子接口默认不能处理802.1Q数据帧
三层交换机
SVI(思科) --- switch virtual interface --- vlan if接口(华为)--- 三层接口
三层交换机的所有虚拟三层接口共用一个MAC地址
[SW1]display bridge mac-address ---- 查看交换机系统 MAC 地址
[SW2]vlan batch 10 20[SW2-GigabitEthernet0/0/22]port link-typei trunk[SW2-GigabitEthernet0/0/22]port t allow vlan 10 20[SW2]interface Vlanif 10 ---- 创建 VLANIF 接口,该接口编号为 10 ,且能够处理 VLAN 10 的标签[SW2-Vlanif10]ip address 192.168.10.254 24
STP---生成树协议
交换环路产生的影响
广播风暴 --- 广播帧在二层环路中形成逆时针和顺时针转动的两层环路,并且无限循环,最终导致设备宕机,网络瘫痪
MAC地址表的翻滚(漂移) --- 同一个数据帧,顺时针接收后记录MAC地址及接口的对应信息,之后,逆时针数据接收到后,还会再一次修改MAC地址表,如此循环,导致MAC地址表内容一直变化。
多重复数据帧
STP原理
在网络中部署生成树后,交换机之间开始交互相关协议报文,并在网络中进行计算,得到一个无环的网络拓扑
当网络中存在环路时,生成树协议会将网络中的一个或多个接口进行阻塞,从而打破环路
被阻塞的接口不能转发业务流量,在之后,交换机会监控网络拓扑状态,当网络拓扑发生变更时,能够及时感知并动态调整(打开某些阻塞的接口),该过程无需人工干预。
802.1D生成树
802.1D---由IEEE组织颁布的公有协议---标准的STP协议
802.1W---RSTP
802.1S---MSTP
PVST,PVST+
VBST
STP基本概念
桥ID(Bridge)--- 每一台运行了STP的交换机都拥有一个唯一的桥ID。8字节,其中前2字节为桥优先级,后6字节为桥MAC地址。
根桥(root Bridge) --- STP的根桥就是STP树的树根
当STP协议开始工作后,第一件事就是在网络中选举出根桥设备。在交换网络中,根桥有且只能有一个。
根桥选举规则:网络中拥有最小桥ID的交换机成为根桥设备。先比较优先级,后比较MAC地址
华为交换机缺省的桥优先级为32768 --- 优先级取值范围0-61440,修改时必须是4096的倍数。---桥优先级虽然是16bit,实际上只使用了前4位,后12位被称为扩展系统ID。
开销(cost)与根路径开销(Root Path Cost,RPC)
每个激活了STP的交换机的每一个接口都维护着一个Cost值,接口的开销值用于计算RPC,也就是计算到达根桥的开销
交换机接口Cost与接口速率、工作模式有关,甚至于STP Cost值的计算方法也影响最终Cost数值。
开销计算标准
802.1D-1998标准
802.1T标准---缺省时使用
legacy---华为私有
[Huawei]display stp interface GigabitEthernet 0/0/1 ---查看stp接口相关参数[Huawei-GigabitEthernet0/0/1]speed 1000 ----修改接口速率[Huawei]stp pathcost-standard ? ---若修改了开销值计算方式,则全网设备均需要修改,保证交换网络中所有STP设备使用一致的计算方式。dot1d-1998 IEEE 802.1D-1998dot1t IEEE 802.1Tlegacy Legacy
RPC跟路径开销为流量经过的每一段链路的开销值总和。
接口ID
运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于特定场景下选举角色
接口ID长度16bit,高4bit是接口优先级,低12bit是接口编号。
华为交换机缺省接口优先级为128,可修改,取值范围0-240,必须是16的倍数
STP报文 --- BPDU(网桥数据单元)
TCN BPDU
组播MAC地址:0180-c200-0000
配置BPDU
在交换网络的初始化过程中,每台交换机都从自己激活了STP的接口向外发送配置BPDU。
当STP收敛完成后,只有根桥会周期性(默认2s)发送配置BPDU。而非根网桥,只能根据自己接收到的根发送来的配置BPDU,来计算自己的本端的BPDU,从而发送自己的BPDU报文
协议版本 --- PVI --- STP=0;RSTP=2;MSTP=3
BPDU类型 --- 0x02 --- RSTP 或 MSTP
标记 --- 802.1D中仅使用了最高位TCA---拓扑变更标记;最低位TC---拓扑变更标记
根交换机的桥ID --- 指的是根网桥的BID
网桥ID --- 发送该BPDU的交换机的BID
RPC
端口ID
消息寿命 --- 代表该BPDU从发出到现在经过的时间,初始值为0,每经过一台交换机,数值加一 --- 存在一个最大消息寿命 --- Max hop(默认20)
最大生存时间 --- 缺省值20s --- 当超过20s没有从接口接收到BPDU报文,则认为该接口连接的链路出现故障。
TCN BPDU
TCN BPDU用于在网络拓扑发生变化时,向根桥通知变化的发生
在交换网络中,因为交换机依靠MAC地址表进行数据转发,如果交换网络出现故障,交换机没有办法通过某种方式来自动修改自己的MAC地址表,因为MAC地址表是只有流量通过时才会被修改。若MAC地址表不进行修改,可能会造成通讯障碍。所以,STP需要一种机制,在网络拓扑发生变更时,促使全网交换机尽快将自己的所有的MAC地址表项老化,然后重新学习新的MAC地址表项。
本地交换链路故障后,STP将重新收敛,为了加快刷新全网交换机的MAC地址表,故障交换机会向本地运行STP协议的其他接口发送TCN BPDU报文
邻居交换机收到TCN报文后,回复一个TCA标记为1的配置BPDU,用于可靠性确认 --- 该过程一直持续到根网桥收到TCN BPDU
然后根网桥在接收到TCN报文后,发送TC标记位为1的配置BPDU,该报文只能由根网桥发送
所有交换机收到TC标记位为1的报文,则将自己本地的MAC地址表的老化时间临时性设置为较小的值(等于转发延时,默认15s)
STP角色选举
根桥选举
根桥的地位是具备可抢占性。新加入的设备BID比原来的根桥小,则会发生抢占,并且导致网络重新收敛,引发网络震荡,从而对业务流量的正常转发造成影响
根接口 --- RP(root port)
选举范围:每一个非根桥交换机
根接口实际上是指所有非根网桥上所有接口中收到最优BPDU的接口,该接口有且只有一个。
BPDU比较原则
1、选举具有最小根桥ID的BPDU --- 实际上在选举根网桥
2、比较入向的配置BPDU的RPC值,选择接收到最小RPC值的BPDU所在接口为根端口或指定端口
3、比较对端BID值,选择BID值小的设备所对应的接口作为根端口或指定端口。
在sw4的视角中,既然自己不是根网桥,那么当根网桥出现故障后,一定会在sw2和sw3之间选择出一根网桥,则选择BID值小的,减少后续选举的资源浪费
4、如果对端设备BID相同,则比较对端的PID值,PID小的端口所对应的端口为根端口或指定端口
5、若对端PID相同,则比较本端PID值,选择本端PID值较小的接口为根端口或指定端口。
指定端口---DP
选举范围 --- STP将在每一个链路上选举一个指定端口 --- 该链路上所有接口到达根网桥的最优接口,该接口负责转发BPDU。
对于非根桥而言,所有接口中收到的最优BPDU的接口为该设备的根接口,而非根网桥使用该最优BPDU,为本设备上其它接口各自计算一个BPDU
然后使用计算出的BPDU与该接口上接收到的BPDU进行对比,选择出最优BPDU保存在该接口上,并且发送出最优BPDU的接口为指定接口。
一般而言,根桥的所有接口都是指定接口,并且在存在根端口的链路上,对端必然是指定端口
非指定端口--NDP
经过STP计算后,如果交换机的某个接口既不是根端口,也不是指定端口,则必然是非指定端口。而非指定端口将被STP在逻辑上阻塞,从而打破二层环路
被阻塞端口,不会接收也不会发送业务数据。并且不能发送BPDU,但是可以侦听BPDU报文
STP工作过程
1、STP交换机初始化后,都会认为自己是根桥,并且在发送给其他交换机的BPDU中的根桥ID字段填写自己的BID
当交换机收到网络中其他设备发送的BPDU后,会比较BPDU中的根桥ID和自己的BID。
交换机之间不断交互BPDU报文,同时对BID进行比较,最终在全网交换机中选择一个BID最小的交换机根桥,其他交换机自动成为非根桥
根桥的角色可抢占。当有更优的BID的交换机加入网络时,网络会重新进行STP计算,选择新的根桥
2、在选举出根桥后,根桥周期性(2s)发送BPDU报文,而非根桥持续接收根桥的BPDU
3、每个交换机根据从自己不同接口收到的BPDU报文中选择最优的BPDU,从而选择出根端口
1、比较RPC
2、比较对端BID
3、比较对端PID
4、比较本端PID
4、每台交换机的每一条链路选举指定端口
1、交换机将本接口与本接口接收到的BPDU进行对比,若本地接口的BPDU较优,则本端口称为指定端口。否则成为非指定端口
2、RPC
3、BID
4、链路两端的PID
5、在确定了根端口和指定端口后,交换机上剩余的端口成为非指定端口。且在逻辑上阻塞非指定端口。
1、一旦非指定端口被阻塞,则生成无环STP树
2、阻塞端口不能转发业务数据帧,也不能转发BPDU,但是可以接收和处理BPDU
根网桥的选举非常重要,因为STP的一切工作都是基于根网桥的位置而定的,如果根网桥选举的位置不恰当,那么可能造成流量走向异常 --- 一般会将根桥放在网关所在地
STP接口状态
禁用
接口关闭
接口禁用生成树状态
阻塞
生成树协议激活接口后进入第一个状态,在该状态下,原本属于交换机的任何功能都将被拒绝,不转发业务流量,不能学习MAC地址,但是该接口可以接收BPDU报文,但是不能发送BPDU报文。
若所有交换机同一时刻启动STP,则二层交换网络的数据被中断,并且,此时网络中没有交换机在发送BPDU,通常情况下,根网桥设备2s发送一次BPDU,而当交换机超过20s最大老化时间没有接收到BPDU报文,会认为此时根网桥出现故障,需要重新选举,接口进入下一个状态。
侦听
STP的角色选举阶段
该阶段可以收发BPDU,但是不能转发业务数据,也不能学习MAC地址
侦听状态停留一个转发延时时间,即使角色选举提前结束,也需要等待时间超时再进入下一个状态
角色选举结束后,只有根端口和指定端口会进入下一个状态,非指定端口则退回到阻塞状态
学习
会侦听业务数据流,并且学习业务流量的MAC地址,但是不转发数据。学习状态需要停留一个转发延迟时间,时间超时后进入下一状态
进行MAC地址的学习目的是为了减少单播帧的洪泛
转发
可以正常接收和发送业务数据和BPDU报文
802.1D生成树是基于计时器收敛的。导致收敛速度慢
首次收敛---50s --- 阻塞时间+2*转发延时
根桥故障---50s --- 20s老化时间+2*转发延时
直连链路故障 --- 非指定端口从阻塞状态迁移到侦听状态,并转换到学习、转发状态。--- 30s
非直连故障 --- 50s
注意:TCN BPDU虽然说是在网络拓扑发生变化时向根桥通知变化的发送,但是实际上该BPDU与拓扑的重新收敛没有任何关系
配置
[sw1]stp mode stp --- 修改 STP 工作模式为 STP ,华为默认情况下为 MSTP[sw1]stp enable ---- 启动生成树,华为默认开启生成树[sw1]display stp --- 查看生成树接口参数
[sw1]stp root primary ----- 将交换机设置为根网桥,其本质是将 BID 的优先级修改为 0[sw2]stp root secondary ----- 将交换机设置为备份根网桥,其本质是将 BID 的优先级修改为 4096[sw3]stp priority ? ---- 修改交换机优先级INTEGER<0-61440> Bridge priority, in steps of 4096[sw3]stp priority 8192[sw6-GigabitEthernet0/0/1]stp port priority ? ----- 修改接口优先级INTEGER<0-240> Port priority, in steps of 16[sw6-GigabitEthernet0/0/1]stp port priority[sw6]stp pathcost-standard ?dot1d-1998 IEEE 802.1D-1998dot1t IEEE 802.1Tlegacy Legacy[sw6-GigabitEthernet0/0/2]stp cost ? ---- 修改接口开销值时,根据使用的算法不同,可以修改的开销值范围不同。INTEGER<1-200000000> Port path cost
RSTP---802.1W---快速生成树
STP问题
1、收敛速度慢
2、链路利用率低 --- PVST、VBST
改进点1:端口角色
802.1D:根端口、指定端口、非指定端口
802.1W:根端口、指定端口、替代端口、备份端口
替代端口、备份端口 --- 都是阻塞端口
替代(Altenate)端口 --- 可以理解为根端口的备份。
该接口是一台设备上,由于收到了其他设备所发送的BPDU从而被阻塞的端口。
一台设备如果是非根桥,则只能存在一个根端口,但是替代端口可有可无,若有则可以存在多个。当根端口出现故障时,最优的替代端口将成为新的根端口
备份(Backup)端口 --- 指定端口的备份
备份端口是一台设备上由于收到了自己所发送的BPDU从而被阻塞的端口
如果一台交换机拥有多个接口接入同一个网段,并且在这些交口中有一个被选举为指定端口,那么其他接口均为备份接口。若指定端口故障,则最优的备份端口成为指定端口。通常情况下,备份端口处于丢弃状态。
改进点2:端口状态
改进点3:RST BPDU
RST BPDU相当于STP协议中的配置BPDU
类型字段,RST BPDU为0x02
标志字段:
在RSTP中,无论根网桥还是非根网桥,都会周期性发送RST BPDU。
P/A机制
将802.1D基于计时器切换状态的机制,变更为选择出端口角色则立即切换状态。
RSTP通过P/A机制来保证一个指定接口得以从丢弃状态快速进入转发状态,从而加速了生成树的收敛速度。在P/A机制中存在一个“同步过程”,实际上就是将其他全部接口设置为丢弃状态,防止临时环路的产生。
改进点4:对BPDU的处理
1、对于非根网桥而言,在拓扑稳定后,也可以每隔2s主动发送自己的配置BPDU
2、加快了老化时间 --- 6s
3、次优BPDU的处理
1、在STP中,当指定端口收到次优BPDU后,将立即发送自己的BPDU,而对于非指定端口,当收到次优BPDU后,将等待接口所保存在BPDU老化时间超时后,再重新计算自己的BPDU,并发送。这就会导致指定接口需要最长20s的时间才能启动状态迁移
2、RSTP中,无论接口角色如何,只要接口收到次优BPDU,则立即发送自己的BPDU,这个方式使得RSTP的收敛速度加快
改进点5:快速收敛机制
根端口和指定端口的快速切换,利用替代端口和备份端口实现快速切换
P/A
对次优BPDU的处理
边缘端口 --- 边缘端口不参与生成树计算,当边缘端口激活后,立即切换到转发状态并开始收发业务流量。边缘端口的关闭或打开不触发RSTP拓扑变更。一般会将连接终端设备的接口配置为边缘接口
[sw5-GigabitEthernet0/0/1]stp edged-port enable ---- 设置边缘端口,边缘端口还是会持续性发送 BPDU 报文[sw5-GigabitEthernet0/0/1]stp bpdu-filter enable ---- 开启 BPDU 过滤功能,接口不发也不收BPDU
边缘端口收到BPDU后,会丧失边缘端口属性,称为普通的STP端口,并重新进行生成树计算,从而引发网络震荡。
改进点6:保护功能
BPDU保护
当交换机激活该功能后,如果边缘端口收到BPDU,则交换机会立即将接口关闭,同时触发告警信息
[Huawei]stp bpdu-protection ---- 开启 BPDU 保护
如果受保护的边缘接口由于收到BPDU而被关闭,缺省状态下不会被恢复,需要手工在接口视图下配置shutdown和undo shutdown,或者restart命令来恢复接口。
[Huawei]error-down auto-recovery cause bpdu-protection interval 30 ----- 设置在 30S 延迟后,自动恢复接口状态
根保护
在一个RSTP网络中,若已经完成收敛,如果根网桥发生变化,则会导致RSTP重新计算,业务流量受到影响。一般来说,会选择网络中性能最优的设备,同时也是位置最关键的设备作为根桥,将其优先级设置为最小值0,然而改措施未必是完美的,业务根桥的角色是具备可抢占性的。
在根网桥上的指定接口激活根保护功能后,该接口如果收到更优的BPDU,则忽略这些BPDU报文,并将该接口切换到丢弃状态。丢弃状态的接口不再收到更优的BPDU报文,则经过一段时间(两倍的转发延时)后,接口自动恢复到转发状态
环路保护
1. 根端口上激活环路保护1. 如果该接口长时间没有收到 BPDU ,那么交换机将会重新选举根端口,并将原本的根端口转换 为指定端口,此时交换机会将该接口状态切换为丢弃状态,避免环路。2. 在替代端口上激活环路保护1. 如果该接口长时间没有收到 BPDU ,那么交换机将替代端口转换为指定端口,但是将其状态保 持在丢弃。
拓扑变更保护
[Huawei]stp tc-protection交换机在单位时间(hello time)内只能处理一次TC报文[Huawei]stp tc-protection threshold 2 ---修改单位时间内处理TC报文的次数
改进点7:拓扑变更机制改进
MSTP---802.1S---多实例生成树
实例---instance---一个或多个vlan的集合。
instance ID --- 12位二进制 --- 0-4094 --- 实例为华为特殊设计,并且默认所有vlan都属于该实例。
BID优先级中的后12位:扩展系统ID --- 用来携带instance ID。区分不同树发送的BPDU
基于instance的生成树被称为MSTI(多生成树实例),一个instance可以包含多个vlan,但是一个vlan只能被映射到一个instance
将交换机划分到同一个MST域中要保证三个参数相同:
相同域名相同的修订等级
相同的vlan和instance的映射关系