Chinaunix首页 | 论坛 | 博客
  • 博客访问: 368909
  • 博文数量: 61
  • 博客积分: 2451
  • 博客等级: 上尉
  • 技术积分: 650
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-06 21:24
文章分类

全部博文(61)

文章存档

2012年(1)

2011年(44)

2010年(16)

分类:

2011-04-01 16:30:13

为了避免单点失效对链路进行备份。分为冷备份(物理备份) 和 热备份(逻辑上断开链路从而避免环路)

冗余链路会导致的问题

1 广播风暴

2 多帧复制

3 mac 地址表不稳定

 

stp 生成树协议 就是为了解决以上问题的

三个步骤:

1 选择根桥

比较网桥ID

网桥ID 由 交换机优先级(默认是32768 两个字节表示,最小的是4096 其他的都是4096 的倍数) 和 MAC地址组成

交换机的每个接口有一个mac地址。而且还有一个cpu的mac地址应该是最小的

可以通过命令:

image 进行查看

包含扩展系统ID的桥ID 12位的扩展系统ID

 

选举根桥:1 先看网桥优先级 选最小的 2 优先级一样选择mac地址最小的

2 选择根端口

根端口是在非跟桥上选举

选择根端口的依据

(1) 到根桥最低的根路径成本

         在非根桥上某一个端口到根桥的根路径成本(跟桥发送BPDU到达端口路径成本)之和。

image

(2) 直连的网桥ID最小(sender’s bridgeid)

(3) 端口ID最小(sender’s portid)

         端口ID 由 端口优先级和端口编号组成 端口默认的优先级为128

(4)比较本交换机的portid

       

3 选择指定端口

在每个网段上选

每个网段 一个指定端口 根桥上的端口都是指定端口

比较依据:

(1) 根路径成本低的

(2) 所在的交换机的网桥ID的值较小(这一步一般就能够比较出来了)

(3) 端口ID的值较小

        * 选择根端口时,比较的是接收到的对端端口ID

 

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

BPDU 桥协议数据单元

使用组播发送

分2种:

1 配置BPDU

(一般由根桥发出)

2 拓扑变更BPDU

 

交换机端口的几种状态:

转发 :全功能 接收发送 BPDU 学习mac 转发数据

15s

学习 :接收BPDU 参与根端口 指定端口的选举 学习mac地址

15s

侦听 :可以接收BPDU 参与 根端口 指定端口的选举 依然不能学习mac地址

20s

阻塞 :可以接收BPDU 不能接收 发送数据 不能学习mac地址

 

BPDU :

image

协议ID(2 字节):protocol ID
当前保留没有被利用,该值通常为0

协议版本(1 字节):version
该值通常为0

BPDU类型(1 字节):message type
通常有两种BPDU:一种是配置BPDU,一种是TCN的BPDU

标志位(1 字节):flags
该位为8个比特,但是就现在的BPDU只用到了两个比特,一个是第一个比特,叫TCA位(拓扑变化确认),这位如果置位的话,标志着别人告诉我拓扑发生变化了,我要进行一个确认,
另外一个比特叫TC位,这位如果置位的话,标志着我这个BPDU是一个通告拓扑变化的BPDU

当交换机检测到链路down掉时 就会沿着root port 向root bridge 发送TCN bpdu。直到 root bridge 回复一个TCA 才停止发送

 

根桥ID(8 字节):Root ID
表示当前网络里的根桥,你可以认为它是统领这个2层网络的

根路径开销(4 字节):Cost of path
网桥到达根网桥的路径开销,或者说,是我这个交换机的这个接口到达根桥的开销是多少,从根发出的BPDU发出的cost是0

网桥ID(8 字节):Bridge ID
指发送BPDU的网桥,包括:
网桥优先级 (2 字节)
网桥的Mac地址 (6 字节)

端口ID(2 字节):Port ID,端口ID不等于端口号
指发送BPDU的网桥端口,包括:
端口优先级(CISCO的IOS默认是128,CAT交换机默认是32)
端口号

Message Age(2 字节)
BPDU的有效存活时间

Maximum Age(2 字节)
BPDU的最大有效存活时间,默认为20秒

Hello Time(2 字节)
周期发送BPDU的时间间隔,默认为2秒

Forward Delay(2 字节)
端口转入发送状态的时延,默认为15秒

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

 

portfast

如果交换机的某些端口接的是客户端 不需要参加stp选举。就可以将该端口配置成portfast端口来避免stp选举导致该端口要经过50s才能进行转发数据。

给某借口配置成portfast

接口模式下 spanning-tree portfast

将所有接口配置成portfast

全局:spanning-tree portfast default

配置好后通过命令:

show run int f0/1 来验证

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

uplinkfast

全局下 spanning-tree uplinkfast

使某条冗余上行链路在一条down时 从block到forward 不用经过50s 作用和portfast类似。

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

pvstp

per vlan stp : 即值每一个vlan都有一颗生成树=>充分利用链路带宽

 

image

对于stp来说通过阻塞某一个端口来热备份。这导致某条链路带宽就被浪费了。pvstp解决了这个问题

每个vlan都维护者一个生成树。如上图:

配置:

在switchA 上配置使其成为vlan1 的根桥

spanning-tree vlan 1  root primary

spanning-tree vlan 2 root secondary

或者直接修改优先级:

spanning-tree vlan # priority priority

然后在switch B 上配置:

spanning-tree vlan 1 root secondary

spanning-tree vlan 2 root primary

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

bpduguard

如果当前网络已经收敛了,而此时突然接入一个低优先级的交换机。那么就会造成网络重新收敛,因为他发送BPDU 由于他的优先级比较低 他将会成为root bridge,从而影响网络的稳定性。为了避免发生这种情况 在某些端口启用bpduguard

接口模式下:

spanning-tree bpduguard enable

阅读(4136) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~