MSTP多实例的配置

MSTP多实例的配置

这次实验主要是为了加强对stp生成树协议中,RP(根端口),DP(指定端口),AP(阻塞端口)的判断方法;虽然很多时候不需要我们人工判断,因为当我们吧所有的配置好之后,然后开启生成树协议,电脑会自动进行判断:而我们现在需要对其原理进行详细的了解:

一、我们先对各种端口进行简介

根端口(RP):非根交换机去往根桥路径最优的端口,根端口不可能存在在跟桥上;非根桥上只能存在一个根端口;

根端口选举:按照下面的条件进行比较:

设置的优先级(默认优先级都是32768)越小越好——>根路径开销RPC:——>路径上所有出端口开销的总和 ;越小越好;——>对端BID对端PID(选择小的) ;——>本端PID;

根端口都是接收最优BPDU

指定端口(DP):交换机向所连网段转发BPDU的端口 每个网络有且只有一个指定端口;但每个交换机上可以有几个指定端口;

指定端口选举:设置的优先级——>根路径开销RPC——> 本端的BID ——>本端的PID;

指定端口是发送最优BPDU;

预备端口(AP):预备端口将被阻塞,虽然不能转发用户数据帧,但是可以接收并处理STP协议帧;

根桥选举:桥ID=桥优先级+MAC地址(BID)越小越优

PID=端口优先级+端口号  端口开销

BPDU:网桥协议数据单元:

  BPDU类型:

a.配置BPDU包含了桥ID 路径开销 端口ID等参数

b.TCN BPDU 是指下游交换机感知到拓扑发生变化时向上游发送的拓扑的变化通知

 

  配置BPDU信息:

a.根桥ID:由根桥的优先级和MAC地址组成

b.根路径开销:到根桥的最短路径开销

c.指定桥ID:指定桥的优先级和MAC地址组成

d.指定端口ID:由指定端口的优先级和端口号组成

STP定时器:

message age:配置BPDU在网络中传播的生存期

max age:配置BPDU在设备中能够保存的最大生存期(20s)

hello time:配置BPDU发送的周期

forward delay 端口状态迁移的延时

实验过程:其实这一章并没有那么多问题来探究;所以我也没有发现有什么坑可以去跳。所以就简单的对一些常用的命令进行验证;但是又太无聊了。所以想到哪儿写到哪儿吧;

第一步:先按照图中的配置将所有的ip配置好;(所有的主机IP都是10.0.0.x)、因为都是在二层网络中,所以他们都存在于同一个网段;因为在模拟器中,将整个系统启动之后,都会自动启动stp(默认的mstp);

接下来我做的实验是一个比较陌生的实验:mstp应用;

什么是mstp呢?

多生成树(MST)使用修正的快速生成树(RSTP)协议,叫做多生成树协议(MSTP)

通过MSTP把一个交换网络划分成多个域,每个域内形成多颗生成树,生成树之间彼此独立。每个域叫做一个MST域,每个生成树叫做一个多生成树实例:MSTI;

mstp由一个或多个mst域组成,每个mst域中可以包含一个或者多个msti。(mst实例)mst域中含有一个vlan映射表。描述了vlan和msti之间的映射关系,默认

情况下所有的vlan都映射到msti0中,msti之间彼此独。每个Vlan只能对应一个msti,即同一个vlan的数据只能在一个msti中传输;而一个msti可能对应多个vlan;

Mstp又有什么优势呢?

rstp和stp有一个共同的缺陷:局域网所有的VLAN共享一颗生成树,链路被阻塞后将不能承载任何流量,造成宽带浪费,因此无法再vlan间实现数据流量的均衡负载,

这个是通过我个人理解画出来的神作,里面的细节在我脑海中。估计也只有我自己能看懂;

实验正式开始:

先献上我的图:

第一步:将所有的主机进行配置;先不对vlan进行划分,路由器不做任何的配置;看看交换机的状态:

使用命令:

[LSW1]display stp brief

[LSW1]display stp

这张图是通过命令查询:发现的所有的有关信息并且把重要的信息记录在图上了;在这里我们可以看到LSW3是根桥(因为LSW3的mac地址最小);然后将所有的端口的类型已经标示在图上;

然后我们选择测试连通性:使用PC1pingPC4,因为目前没有对进行vlan设置,所以根据生成树协议,按照一条固定的路径传输;(图上黄色路径表示);并且除了pc1pingPC2,无论是哪个源主机ping哪个目标主机,都会按照同一个路径传输,不会产生环路;

 

这个就像是线性拓扑结构一样,一根线上串上很多个主机,但是不同的是,这个是一捆电缆,并不会导致端口信号冲突(全双工模式),所以也不需要“带有冲突检测的载波侦听多路访问方式”;CSMA/CD;

顺便补充下什么是CSMA/CD;

但是我们现在可以很明显的发现这个网络的问题所在:

局域网中共享一颗生成树;一旦链路被阻塞后将不能承担任何的流量;在本图中LSW1和LSW2之间的链路,除了能够转发配置BPDU,但是不承担任何流量,所有造成了资源的浪费;

第二步:在交换机上进行配置;设置access和trunk端口;(在这里只做一个示范;)

[LSW1-Ethernet0/0/1]port link-type access

[LSW1-Ethernet0/0/1]port default vlan 10

 [LSW1-Ethernet0/0/3]port link-type trunk

[LSW1-Ethernet0/0/3]port trunk allow-pass vlan all

在LSW1上配置成功之后:

在LSW2上配置成功之后:

在LSW3上配置成功之后:

当所有配置ok后,这下所有不同区域的主机是不能互相访问的;当然,这个不是我们今天讨论的重点:因为今天的主要问题是mstp;

如果不对交换机做其他的设置的话:所有的数据都只会按照上图的生成树(黄线标注)的方向进行转发;

 

第三步:对交换机进行配置,实现mstp多实例;

Pc1和pc3相互访问按照图中红色的路径传输;

Pc2和pc6相互访问按照图中蓝色的路径传输;

Pc4和pc5相互访问按照图中黄色的路径传输;

这样就不会出现链路资源浪费的情况,并且能实现负载均衡;

[LSW1]stp region--mst-region]region--mst-region]revision-level -mst-region]instance  vlan    将vlan10映射到msti1

[LSW1-mst-region]active region-configuration   使用这个命令激活mst域配置;

当我们三个交换机都做同样的配置:开启mstp 的多实例;

将vlan10映射到msti1;

Vlan20映射到msti2;

Vlan30映射到msti3;

但是我们可以通过上述三个图片中,可以了解到:每个msti实例中,根交换机根本就没有变化。三个根交换机的根桥都是LSW3;

通过抓包:LSW1和LSW3之间的链路:然后选择用pc1pingpc3;

发现,本来不应该出现在这条链路上的数据也出现在这条链路上了。

所以说到底还是没有实现负载均衡;

因为我还没有做完实验啊,哈哈哈哈

第四步:设置每个msti实例的根桥;

[LSW1]stp instance 1 priority 0[LSW2]stp instance 2 priority 0[LSW3]stp instance 3 priority 0

这才是最关键的:将不同的msti实例下设置不同的根桥;这样也不会产生环路同样也能实现负载均衡;

结果我发现:我吧LSW1设置为了根桥。结果它的role竟然没有变化?!Excuse?!

然后通过我的分析,原来是我自己只是在LSW1上设置了vlan10到msti1的映射,并没有设置从vlan20到msti2的映射和从vlan30到msti3 的映射;所以对于msti1来说,只有LSW1一个交换机;这就很尴尬了。所以我们要解决问题:

第五步:在每个交换机中设置好所有的实例:

我在每个交换机上都设置了三种映射关系;结果为什么LSW2并没有MSTID3?

[LSW2]vlan 30 当我添加上这个命令就成功出线了。

原因:应该是我之前没有在LSW2上创建需要的vlan30;所以在设置映射的时候,由于msti3并不能映射到没有设置的vlan30上。所以没有建立映射;

 

 

因为画布问题。所以我就截取关键地方:

如上图所示,三个不同的交换机上面的不同的mtsi实例上面都有着不同的根桥;

相当于:vlan10的数据帧会在msti1的生成树上传递

Vlan20的数据帧会在msti2的生成树上传递

Vlan30的数据帧会在msti3的生成树上传递

现在再次使用PC1pingPC3;抓包LSW1和LSW2之间的链路:

发现从PC1到pc3的数据从之前是阻塞的链路上传递过来的;因此成功的实现;

最后一步:对网络进行优化设置

在这里我想配置端口的root的保护功能:

作用:在制定端口使能根保护功能后,收到的优先级更高的BPDU时(RP根端口)该端口状态将进入Discarding状态,不在转发报文;在经过一段时间(通常为两倍delay),如果一直没有收到优先级高的BPDU,该制定端口将会自动回复到正常的Forwarding状态;但是配置了根保护的端口将不能再配置环路保护功能;

默认情况是关闭的。

在这里提一下什么是环路保护功能:

配置交换机设备的根端口或者阻塞端口的环路保护功能:不能配置在制定端口;

再启动了环路保护功能后,如果根端口或者阻塞端口长时间收不到来自上游设备的BPDU报文时,则会向网管发出通知信息;此时RP会进入discarding状态,而阻塞端口保持阻塞状态,不转发报文,从而不会形成环路;直到收到了bpdu,才能恢复正常;

默认情况下也是关闭的;

于是乎,我对LSW3上的指定端口进行了根保护:于是不好的事情发生了:

这个图是LSW3配置了端口保护功能的图:突然发现:本来端口的root保护功能只能配置在指定端口下,但是对于mstid=2的实例来说:e0/0/3是根端口结果也被配置了root保护功能;

这个是为什么呢?

待我问清楚了在写:

时间: 2024-08-26 09:40:45

MSTP多实例的配置的相关文章

MSTP多生成树的配置

STP的不足 STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢,影响了用户通信质量 而且如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断 RSTP对STP的改进 端口角色与端口状态 快速收敛机制 拓扑变化处理机制 保护功能 RSTP的配置实现 stp enable #全局开启STPstp mode rstp #配置STP模式为RSTPstp root primary #配置SWA为根桥stp bpdu-protection   #全局开启BPDU防护,配

MySQL多实例安装配置

MySQL多实例安装配置 一.基本概念 MySQL多实例就是,在一台机器上开启多个不同的服务端口(如:3306,3307,3308...),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的端口提供服务. MySQL可以共用一套安全程序,使用不同的my.cnf配置文件,启动程序,数据文件. 逻辑上是独立的,但是一个实例过载过高的时候会对其他造成影响. MySQL多实例的作用与问题: 1.有效利用服务器资源 2.节约服务器资源 3.资源互相抢占问题 当某个服务实现并发生很高的

《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明

感谢唯笑志在分享 原博主原地址:http://www.cnblogs.com/lsjwq/ 一.综述 SuperIO(SIO)定位在PC终端(上位机)应用,它只有一个服务实例,配置参数是全局属性.但是,ServerSuperIO(SSIO)与SuperIO(SIO)定位不一样,SSIO定位在服务器端,不管是串口通讯模式,还是网络通讯模式,都支持多服务实例,所以每个服务实例都有自己的配置参数,全部配置参数的定义在ServerConfig.cs文件中. 如下图示意: 二.配置参数说明 1 2 3 4

BIND服务企业实例安装配置

BIND服务企业实例安装配置 防伪码:思而不学则罔,学而不思则殆. 前言:BIND是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley  Internet  Name Domain 它是目前世界上使用最为广泛的DNS. 理论知识: DNS的分类: 主DNS服务器:就是一台存储着原始资料的DNS服务器. 从DNS服务器:使用自动更新方式从主DNS同步数据的DNS服务器.也称为辅助DNS服务器. 缓存服务器:不负责本地解析,采用递归方式转发

mysql多实例的配置

1.创建多实例的目录: mkdir -p /data/mysql/mysql_3307/{data,tmp,logs} mkdir -p /data/mysql/mysql_3308/{data,tmp,logs} 2.修改my.cnf的配置文件 vi /data/mysql/mysql_3306/my3306.cnf #my.cnf [client] port            = 3306 socket          = /data/mysql/mysql_3306/tmp/mysq

mysql 多实例应用配置部署指南

一,Mysql 多实例的作用的问题 1,有效利用服务器的资源 当单个服务器资源有剩余的时候,可以充分利用剩余的资源以提供更多的服务 2,节约服务器的资源 当公司资源紧张,但是数据库各自需要独立提供服务,而且需要主从同步等技术时候,此时使用多实例是最好的. 3,资源互相抢占的问题 当某个服务实例并发很高或者有慢查询的时候,整个实例会消耗更多的CPU,内存,磁盘IO资源,导致服务器上其他的实例提供的服务质量大大下降,相当于一个大房子,多个卧室,大家共用一个卫生间,早餐起床,一个人上厕所,长期占用,其

Amazon EC2安装mysql多实例并配置主从复制

1.MySQL安装: EC2直接使用yum安装mysql非常方便: yum install mysql mysql-server mysql-libs 此处安装了三个包 完事之后能够直接使用 service mysqld start 启动mysql服务 改动root密码: mysqladmin -u root -p password "root" 2.使用mysqld_multi安装多实例mysql: vim /etc/my.cnf 加入实例的配置信息 [mysqld] datadir

mysql单实例安装配置指南

1.操作系统:CentOS 2.数据库: mysql-5.1.73.tar.gz 3.任务:单实例安装配置指南 提示:下载数据库有两种方式:一种是官网,另一种途径是国内镜象网站:国内镜象下载资源的速度比官网要快,例如,我们这次下载的就是国内搜狐镜象: http://mirrors.sohu.com/mysql/MySQL-5.1/ http://mirrors.sohu.com/ 整个安装过程: [[email protected] tools]#wget http://mirrors.sohu

oracle安装后新建数据库实例及配置

ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法 (2011-01-20 13:50:37) 转载▼http://blog.sina.com.cn/s/blog_5007d1b10100oqo8.html 标签: it 分类: 技术 早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,帮其解决后,发现很多人遇到过这样的问题,因此写着这里. 也许你没有遇到过,原因如下: 你o