博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LACP和STP
阅读量:5924 次
发布时间:2019-06-19

本文共 7581 字,大约阅读时间需要 25 分钟。

昨天的延续:

1、华为设备上的 “链路捆绑” - 动态

在华为设备,批量配置端口

port-group  group-member gi0/0/1 to gi0/0/3          ->同时进入 gi0/0/1 , gi0/0/2 , gi0/0/3 端口;

在链路上使用 LACP 协议的时候,基于平台和使用的软件有关系,

有些端口是无法明确的指定端口 Active 或 passive 状态, 那么此时,每个参与 LACP 协议中的端口,默认都是 active 状态。

在通过 LACP 动态协商形成 eth-trunk 互联设备中,设备之间是有

主从关系。从设备对成员链路的选择,完全是跟随主设备的决定的;  主从关系的确定,是通过比较 LACP 交换机上的以下信息:  系统优先级和系统ID     系统优先级默认是   32768 ,取值范围是 0 --- 65535     系统ID是 MAC 地址的形式,其实是 eth-trunk(20) 端口的 MAC 地址。  比较原则是:      #首先比较优先级,越小越好;      #如果相同,则比较 MAC地址,越小越好。

当设备之间的成员链路数据量多余“活动链路数量”时,那“主设备”会

在所有的成员链路中,选择“比较好”的成员链路,作为活动链路使用。 选择原则是:      #首先比较每个端口的优先级,默认是 32768,值越小越好;      #如果端口优先级相同,则比较端口的 PortNo 参数;值越小越好;

配置命令如下:

-修改交换机的额 LACP 优先级 
[SW1]lacp priority 0 -->
-修改端口的 LACP 优先级 
[SW1]interface gi0/0/1 
[SW1-gi0/0/1] lacp priority 40000
-启用 Eth-trunk 上的“抢占功能" (建议都开启)
[SW1]interface eth-trunk 20
[SW1-eth-trunk] lacp preempt enable --> 开启;默认是关闭的;
[SW1-eth-trunk] lacp preempt delay 10 --> 默认是30s

验证命令: 

display eth-trunk
display trunkmembership eth-trunk 20

==============================================================

STP: spanning tree protocol - 生成树协议

-where

交换网络中,即所谓的交换机上;也就是,该技术是一个2层技术。
-why
因为在传统的交换网络中,存在“单点故障”的问题,
所以为了解决该问题,我们引入了“备份链路/设备“解决方案,
但是,带来了新的问题 - 2层数据环路,
所以,为了解决该问题,我们提出了 STP 解决方案。

-环路形成:

演示过程 - 自己画图,理解。

环路现象 -         交换机上会提示以下信息:              MAC A flapping between Fas0/1  and  Fas0/2          通过查看交换机上的端口的 LED 指示灯查看:              疯狂闪烁

-作用:

在交换网络中,存在备份链路的情况,防止2层数据转发环路的发生。

-实现:

-报文 
BPDU - bridge protocol data unit 
桥接 协议 数据 单元
-类型
config BPDU : 配置BPDU
TCN BPDU :拓扑变更通知 BPDU 
-原理
1、确定交换机的角色
根交换机
非根交换机
选举依据:BID - bridge ID , 桥ID
优先级 + MAC地址 
2Byte 6Byte
选举原则:
1、首先比较 BID 的优先级,越小越好;
默认是32768
2、如果优先级相同,则比较 MAC 地址,越小越好。
本质上是交换机的“基MAC地址”,也就是
交换机的主板的MAC地址 - show version

2、确定端口的角色     (root-port)          根端口 :在每一个非根交换机上,有且只有一个,距离根交换机,最近的端口     (designated-port)    指定端口:在每一个网段(冲突域),有且只有一个,距离根交换机,最近的端口     (non-designated-port)非指定端口:其他所有端口,都称之为非指定端口。                在 STP 中,如何表示“距离”?                     - cost :开销                         表示的是去往根交换机的距离

Mr.Zero 距离的大小与端口带宽有关系。

带宽 cost(默认的对应关系)
10M -- 100
100M -- 19
1G -- 4

3、确定端口状态            down/disable:表示端口是关闭的,挂掉的;            listening:表示的是侦听状态,该状态是不能收发用户数据的            learning :表示的是学习状态,该状态是不能收发用户数据的            forwarding:表示的是转发状态,该状态可以正常收发(最终状态)            blocking:表示的是阻塞状态,该状态不能收发使用户数据(最终状态)

验证命令:

show spanning-tree // 查看交换机上的 STP 信息。


BPDU报文结构:

Root-ID //表示的是根交换机的 ID (优先级+base-MAC)
Cost //表示的是发送这个BPDU的交换机到根交换机的距离;
BID //表示的是发送这个BPDU的交换机的名字;
Port-ID //表示的是发送这个BPDU的交换机的出端口
hello-time //表示的是发送BPDU的周期,默认是2s;
forward-delay //表示的是转发延迟,默认是15s;
max-age //表示的是最大存活时间,默认是20s;

注意:

STP在工作过程中,选择交换机角色、端口角色时,是通过比较BPDU的
以上的前面的4个字段来进行确定的。
如果 root-id相同,则比较下一个,
cost值越小越好,如果相同,则比较一下个
BID越小越好,如果相同,则比较下一个
Port-id越小越好,不可能相同。
-port-id的组成:
port-优先级 + port-号
默认是128

STP收敛时间

-收敛
所谓的收敛,指的是当网络出现故障时,到再次恢复联通所需要的时间。
-时间
30s---50s

随着网络的发展,基础网络对网络收敛时间的要求越来越高,

故30-50的时间太长了,所以我们开发了新的公有标准协议 - RSTP , 
快速生成树。


STP的类型:

公有标准 私有协议(cisco)

IEEE 802.1d(STP) -生成树 PVST
IEEE 802.1w(RSTP) -快速生成树 PV-RSTP
IEEE 802.1s(MSTP) -多生成树 MIST

RSTP的工作过程与传统的 STP 相似,

但是能够提高收敛速度的原因,包含以下几个方面:

1、发现问题的效率提高了:

在传统的STP中,一个交换机如果发现一个链路出现故障,则会产生
一个 TCN BPDU ,为的是告诉根交换机,然后根交换机,重新产生
一个新的 配置BPDU,然后下发给其他的所有的非根交换机。

在 RSTP 中,一个交换机如果发现一个链路出现故障的话,则会产生

一个新的 TCN BPDU ,直接发送给与其相连的所有的交换机

2、 解决问题的效率提高了

细化端口角色:
根端口
指定端口 
替代端口 - 是根端口的替代者;
备份端口 - 是指定端口的备份者;
精简端口状态:
learning -> 学习(该状态学习的MAC地址表)
forwarding -> 转发
discarding -> 丢弃
(相当于STP中的 down / listening / blocking)


#交换机默认情况下开启了 STP 功能,是可以关闭的;

#交换机默认情况下运行的 STP 模式,是 RSTP(不同产品,模式不同)
#STP 模式查看:
SW1#show spanning-tree summary
#STP 模式转变:
SW1(config)# spanning-tree mode ? ->就可以看到该设备支持的STP其他模式

注意:

在企业项目中,对 STP 最多的操作,也就是仅仅配置一个主根交换机
和辅根交换机的身份。
一般将其配置到具备高性能转发的交换机上面。

SW1:VLAN10 的主根,VLAN 20 的辅根;

spanning-tree vlan 10 priority 0 
spanning-tree vlan 20 priority 4096
SW2:VLAN20 的主根,VLAN 10 的辅根;
spanning-tree vlan 20 priority 0 
spanning-tree vlan 10 priority 4096

我们在配置交换机的 STP 优先级的时候,所配置的数值必须是   4096的倍数。因为在 BID 的2个字节的优先级中,其实表示   优先级本身的,仅仅是4个bit,后面的12bit,表示的sys-id-ext   ,即扩展系统ID,其实数值本身为 VLAN号。主要的目的,就是为了   引入以VLAN为基础而运行的 STP ,比如 PVST。

基于VLAN 设计 STP(PVST) ,可以让我们在多个交换机之间,以 VLAN 为基础
进行流量的负载均衡,从而可以提高设备的利用率。

STP特性

快速收敛
portfast
-该特性可以将端口的状态,直接从 down 跳转到 forwarding,
从而略过 listening 和 learning 状态,节省了 30s ; 
-一般该特性都是配置在连接终端的 access 链路上。
-配置命令:
access链路: 
interface fas0/1
spanning-tree portfast 
trunk 链路: 
interface fas0/23 
spanning-tree portfast trunk 
[一般不建议在交换机之间的trunk链路上使用 port-fast]
[因为会导致一个临时的环路,最终还是会阻止环路的]
[但是在单臂的 trunk 链路上,强烈建议使用该特性]

-验证命令:           show spanning-tree interface fas0/2 portfast

uplink-fast(由原来的50s,降低到 30s,节省了20s)        默认情况下,当交换机收到一个次级BPDU的时候,会默默的        承受20s,该计时器过了以后,交换机就会将自己本地保存的        根交换机的 BPDU 发送给对方是设备,对方收到真正的根的        BPDU以后,就会进行交换机角色的确定,成为非根交换机,        随后会进行端口角色的转变,由之前的盲目自信状态下确定的        指定端口,变成根端口,然后再进行端口状态的转变,经历        侦听、学习状态,到达转发,又经过了30s。所以,默认情况下        总共需要花费50s的时间。        但是,        如果我们使用了 uplink-fast 特性,那么交换机在收到次级BPDU        的时候,该交换机为了确保安全,会主动的发送一个 BPDU报文给        根交换机,问一下根交换机是否还活着,如果能得到根交换机的        回复,则说明根交换机是没问题的。此时,该交换机会立刻将真实        根交换机的信息,发送给对方。那么虚拟的根交换机,就会立刻进行        交换机角色的转变,变成非根交换机,然后进行端口角色的转变,        最后进行端口状态的转变,经历了2个15s,  共30s .         所以,使用了 uplink-fast ,可以保证在交换机的上行链路出现        故障的时候,将链路的切换时间,由原来的50,,减少到 30s .        即加速了20s 。              SW1(config)#spanning-tree  uplink-fast         前提:            确保该特性生效,必须保证该交换机的STP优先级             是默认值 - 32768

安全特性   bpdu guard        -bpdu保护           启用该功能的端口,不能接收BPDU,如果收到,           则会将端口直接转换为 err-disable 状态,            该状态的端口相当于 shutdown;        -在什么端口应用?            在access端口上使用。            因为该端口连接的是终端设备,而默认情况下,终端设备            是不支持发送BPDU,所以正常情况,Acess端口是不会收到            BPDU。如果收到了,只能说明存在“恶意攻击”,所以才会            启动该功能,让收到BPDU的端口,进入到err-disable状态        -配置命令:             interface fas0/1  --> 连接终端设备的 Access                spanning-tree bpduguard enable         -恢复 err-disable 端口:            #手动恢复            interface fas0/1                shutdown                no shutdown            #自动恢复              SW1(config)#err-disable recovery cause bpduguard                                 //指定 错误自动恢复的原因是 BPDU 防护;              SW1(config)#err-disable recovery interval 60(单位是s)                               //指定 错误自动恢复的时间间隔是 60s,默认是 300s ;               SW1(config)#err-disable detected cause bpduguard

bpdufilter          - BPDU过滤            表示启用该功能的端口,不能收,也不能发;            如果真的收到了,就直接丢弃;          -应用端口:              连接重要设备的 access ,比如连接网络设备的端口             或者是连接服务器的端口,或者是连接老板的端口。          -配置命令:              SW1(config)#interface fas0/1               SW1(config-if)#spanning-tree bpdufilter enable    root-guard         -根交换机保护功能          表示启用该功能的端口,永远是指定端口。          那么如果在该端口,收到一个比自己本身保存的BPDU          还牛的BPDU,则将该端口转换到 “端口非一致” 状态,          相当于 disable 状态。          如果对方设备更改了自己本身的 STP 配置,BPDU赶不上          该端口保存的好了,那么端口会自动恢复到 forwarding         -配置端口:            该功能,不一定非得配置在“根交换机”上。           一般将该特性配置在交换机的“边缘”端口上,从而可以防止           外部接入的交换机,对原有交换网络的根的身份造影响。           该端口可以是 access端口,也可以是 trunk 端口。                      -配置命令:            interface fas0/1                spanning-tree guard root         -验证命令:          show spanning-tree inconsistenports // 查看设备上的非一致的端口。

华为设备上面的 STP

CIST --> common instance spanning tree : 通用实例生成树

其实表示的就是 MSTP 生成的“树”;

默认情况下,华为设备(某些型号)上运行的 STP 是 MSTP 。 

可以通过以下命令进行配置与测试:

[SW1]stp mode stp / rstp / mstp -->配置 STP 的运行模式

[SW1]stp priority {value} --> 更改 STP的优先级,手动配置为主/辅根

[SW1]interface gi0/0/12 

[SW1-gi0/0/12]stp cost {value} -->更改端口的cost,1G链路,默认是20000;
[SW1-gi0/0/12]stp bpdu-filter enable --> 开启 bpdu 过滤功能
[SW1]stp timer hello 
forwar-delay 
max-age 
验证命令: 
display stp brief 
display stp interface gi0/0/12 --> 可以查看某个端口的信息, 
同时,还可以查看全局信息;


华为中的 STP 特性 :

bpdu

转载地址:http://dpsvx.baihongyu.com/

你可能感兴趣的文章
MySQL之自定义函数实例讲解
查看>>
用.htaccess获取文件夹和文件名
查看>>
自我提升mysql
查看>>
步步为营之——建造者模式(Builder)
查看>>
快速排序——Java
查看>>
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
避免头文件重复包含
查看>>
Oracle:Authid Current_User的使用
查看>>
陈天桥:欣赏360保护隐私 用户安全永远第一
查看>>
【Jump Game II 】cpp
查看>>
ubuntu 下 apache+tomcat整合_(mod-jk方法)[转]
查看>>
iis6 zencart1.39 伪静态规则
查看>>
Python学习之路7——深浅拷贝剖析
查看>>
宁波竞赛题
查看>>
Java实现Socket5代理服务器
查看>>
Android-异步图像装载机
查看>>
MySQL学习笔记——安装及配置环境
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
android 物理按键 监听
查看>>