关于在链路聚合下做smart,monitor link的转发测试

关于在链路聚合下做smartmonitor link的转发测试

这次又要开始瞎折腾了。没事找事了。毕竟我还是很无聊的;

这个实验主要要涉及到以下几个方面:

1、gvrp的应用:

2、Smart LinkMonitor Link的配置;

3、链路聚合;

先复习一波基本知识:

GVRP:

GVRP(GARP VLAN Registration Protocol) GARP VLAN注册协议

GARP(Generic Attribute Registration Protocol 通用属性注册协议

可以让交换机之间能够相互交换VLAN配置信息,动态创建和管理VLAN,用于只需要对少数交换机进行VLAN配置即可动态的传播VLAN信息;

手工配置的VLAN成为静态VLAN。通过GVRP协议创建的VLAN称为动态VLAN;

GVRP的三种注册模式:

Nomal模式:允许接口动态注册,注销vlan,传播静态vlan信息;

fixed模式:禁止接口动态注册,注销vlan,只传播静态vlan信息;

forbidden模式:禁止该接口动态注册、注销VLAN。不传任何VLAN1以外的任何VLAN信息。

Smart LinkMonitor Link

为了提高网络可靠性,通常采用双归属上方式进行组网、

网络中两条上行链路在正常情况下,只有一条处于联通状态。而另一条处于阻塞状态,从而防止环路问题。当主用链路发生故障的时候,流量会在毫秒级的时间迅速切换到备用链路,当原主链路回复时候,将维持在阻塞状态,不进行抢占,从而保持了网络的稳定,

monitor link是用于扩展smart link的链路备份的范围

通过监控上游设备的上行链路,而对下行链路进行同步设置。达到上游设备的上行链路故障迅速传达给下行设备,从而触发下游设备的smart link

的主备链路切换,防止长时间因上行链路故障而出现网络故障;

配置Eth-Trunk

1负载分担;

2提高可靠性,当某个成员接口出故障的时候,流量会切换到其可用的链路上

3增加带宽。总带宽是各成员接口带宽之和

Eth-Trunk工作模式可以分成两种

1。手工负载分担模式:需要手动创建链路聚合组合,并配置多个借口加入到所创建的 Eth-Trunk中

2。静态LACP模式:该模式通过LACP协议协商Eth-Trunk参数后自主选择活动接口;

实验模式:

首先呢,这个是我们这次实验的基本图,这个图就不设置很多套路了。(比如说不会设置vlan),在这个图中呢,预计打算在LSW1LSW2LSW3之间设置链路聚合;之后我们在使用gvrp配置下接口状态;(虽然我喜欢手动配置,不过看来还是又要加vlan然后在LSW4设置Smart Link,使其能够快速切换;然后在LSW2LSW3上设置相应的Monitor Link,做一个检测作用,当下行链路出现问题时候,使其能够通知上行链路迅速切换;

在这里先补张图,就是我所理解的smart linkmonitor link的原理;到时候我们就这么配置;、

(在这里我们不讨论关于生成树的问题,因为默认为我都掌握)

第一步:我们先进行链路聚合:

在我们进行链路聚合前、先用PC1pingPC3。看下报文传播的路径好了;

当我们进行一个简单的抓包之后,就会发现数据报传输的链路;从LSW1->LSW2->LSW3,但是在没有进行链路聚合之前,我们发现:这三条路,会根据生成树协议选择没有阻塞的端口发出,至于什么生成树就不过多解释;

不过我发现一个比较有意思的事情:

在我没有对LSW1做任何手脚的时候:

它的stp是这样的;

1当我选择把LSW1e0/0/5端口shutdown,(这个端口是转发数据的端口),数据只会经过很短暂时间的超时:然后马上恢复正常;

(估计1秒都要不到

这个时候的LSW1已经没有eth0/0/5而是马上(重点是马上!)根端口变成了eth0/0/6

2、然后我再次把刚刚shutdown的链路(LSW2e0/0/2端口)恢复正常后*undo shutdown),他居然不转发报文了!有点高冷;

3然后我马上,速度很快很快很快的查看了下stp brief(生成树协议情况),发现eth0/0/5马上出现了。然后又再次变成了根端口,没有毛病啊,依旧处于转发状态啊;但是报文就是一直超时啊。就是ping不通啊;作者表示很尴尬;

4到现在,都过了3,4分钟了。Pc1还是超时状态;我想了想,貌似也超过stp定时器的delay时间了啊。所以也不应该是生成树重新计算时候导致的链路阻塞;不过就在我准备放弃的时候,尼玛啊,它又通了。打我脸啊、(但是讲真,这个时间真的太久了。)

5、基于我本人无聊的原则,我还是要搞清楚为什么!

和前面的做法一模一样,先shutdown交换机LSW1转发数据的端口,这时候报文没有在E5上跑。而是在新晋根端口E6上面跑;

我们可以发现,我们shutdown端口E5之后,报文在E6上跑的很欢!

在这个时候,我再次把e0/0/5打开(undo shutdown

我们发现,这时候这俩个都动了!都没有任何的数据包从这里转发;这个时候发送的全都是stp的配置信息;但是对于生成树协议来说,没有任何问题;然而他就是不转发;

于是我们抓包:交换机和主机之间的链路:

有从pc1发到pc3ping请求的报文;但是没有任何应答;

所以,我还是没有发现那里有问题:先把问题丢在这,我很难过!

不过我发现,只要重启下pc1ping,就又能ping通;

**************************************************

好了,先写会DSP压(he)压(he)惊(da);

第一步:先进行链路聚合:

复制代码

[LSW1]interfaceEth-Trunk1在LSW1上建立eth-trunk1接口

[LSW1-Eth-Trunk1]modemanualload-balance设置为手工负载分担模式

[LSW1-Ethernet0/0/1]eth-trunk1将三个端口添加到eth-trunk1接口

[LSW1-Ethernet0/0/5]eth-trunk1[LSW1-Ethernet0/0/6]eth-trunk1[LSW1]displayeth-trunk1用这个命令可以查询eth-trunk接口下的端口

[LSW1]displayinterfaceEth-Trunk1查看s1和s2的eth-Trunk接口的信息

复制代码

以下两张图是使用这两条命令对相应信息的查看:

[LSW1]display eth-trunk 1

[LSW1]display interface Eth-Trunk 1

将LSW1LSW2LSW3之间的链路都进行聚合;

如果只聚合一端的话,将无法通信,会返回:

将所有的链路都进行了聚合:如下图:

现在有一个小问题:如果链路聚合之后,数据包会怎么在聚合链路上转发呢?

在目前看来,当进行了链路聚合之后,报文也只是在E0/0/5上跑。并没有达到均衡负载;

不过当我shutdown E5,然后在undo shutdown E5的时候,PC1pingPC3时候的恢复速度比之前没有做链路聚合的时候恢复的更快;大概是15S的样子;

因为从上面的图看到:只经过了一个延时,说明只可能是RSTP或者是MSTP,不可能是stp,因为STP从去能到转发需要经过2倍的FWDLY;而rstpmstp只需要经过1fwdly

第二步:发现数据如何在作了链路聚合的隧道上发送

当我们使用PC1pingPC3的时候,我们通过抓包发现:

我们发现:

【1】LSW1LSW2之间,LSW2LSW3之间都作了链路聚合,但是发现,在LSW1LSW2之间报文requestreply报文发送的链路是不同的,但是在LSW1LSW2之间报文requestreply报文发送链路却是相同的;所以作了链路聚合之后,出现了链路流量分配不均匀;

百度到的答案:负载分担是基于一定特征带哈希选路的,默认是基于SIPDIP,只有数据流多的时候,才能看出负载分担的效果,一条流肯定就只选一条路了

所以链路聚合之后并不会按照stp生成树的端口来发送数据,而是根据一种算法,先放过这个,先把后面的做完了再说

第三步:配置LACP链路聚合:

因为之前配置了手动模式,如果需要转换状态,就需要全部取消才行;

所以就直接使用了新的拓扑图;

两条链路其中一条链路出现了问题,另外一条备用的链路马上顶替出问题的链路工作,保证是两条链路工作如何实现呢?

开启所有的链路:

复制代码

[LSW1-Eth-Trunk1]modelacp---GigabitEthernet0//]eth-trunk--trunk--Eth-Trunk1]maxactive-linknumber-GigabitEthernet0//]lacppriority-GigabitEthernet0//]lacppriority
设置两个优先级为100的链路,目的是为了确定这两个链路成为活动状态

通过设置。g0/0/1和g0/0/2成为活动状态,。而G0/0/5成为备份链路,当现在的活动链路出现问题时候,g0/0/5成为活动链路但是g0/0/1如果断开在连接,则不会恢复为活跃状态;

当接口数量超出了最大负载阈值时,剩余接口不会转发流量的

第四步:配置Smart Link

Smart link 要注意的地方是:需要关闭stp;

Smart link网络中两条上行链路在正常情况下,只有一条处于联通状态。而另一条处于阻塞状态,从而防止环路问题。当主用链路发生故障的时候,流量会在毫秒级的时间迅速切换到备用链路,当原主链路回复时候,将维持在阻塞状态,不进行抢占,从而保持了网络的稳定,

1】先取消掉stp

[LSW1]undostpenable

[LSW1]stpdisable

这种时候就会出现路由环路。当我用pc1pingpc3的时候,抓包任意一条链路,都会发现里面的报文成倍的疯长;并且不能ping通;

2】然后再设置smart link

[LSW1]smart-linkgroup1在LSW1上创建只能链路组

[LSW1-smlk-group1]smart-linkenable开启智能链路

突然发现并不能添加端口进去,提示的是:该端口已经运行在stp下。所以在LSW上关闭stp没啥用啊,还是要进入到每个端口中,停止stp协议;

1
2
3
4
5
6
7
[LSW1-Eth-Trunk1]stp disable
[LSW1-smlk-group1]port Eth-Trunk 1 master 设置eth-trunk为主
[LSW1-smlk-group1]port Ethernet 0/0/2 slave 设置Eth0/0/2为辅
[LSW1]display smart-link group 1 查看smart-link的主备状态

3配置回切功能

当主接口出现问题,备份接口变城active状态,当原主接口恢复,主接口不自动回切到active;

需要手工配置回切功能

[LSW1-smlk-group1]restore enable (当主接口恢复的时候自动变成active)

第五步:配置Monitor Link,是用于扩展smart link的链路备份的范围

[LSW2]monitor-linkgroup1创建monitor-link分组1

[LSW2-mtlk-group1]portEth-Trunk1uplink设置上行链路

[LSW2-mtlk-group1]portEth-Trunk2downlink设置下行链路;

然后ping通。发现超时!但是感觉配置没有问题,于是抓个包看看:

按照这个架势,莫非我中了传说中的广播风暴之毒?~

于是乎,我百度了下,发现了问题所在:

我配置的都是LSW2的本地接口,明显是错误的。

应该配置上行端口或者下行端口,就是对端的端口!

所以重新再做一遍,虽然我LSW2上做的配置都取消掉了。但是任然ping不同, 因为链路上还存在着广播风暴。所以我索性关机,重启,然后整个人都爽了;

但是我发现呢:应该不是上述问题造成的,因为是做了链路聚合的,所以我吧本端和远端都设置为一样的名字;所以问题不是这里的;

可能的原因:

1、之前我没有对LSW3进行相同的配置;导致出现链路风暴;

2、在我对我的LSW2配置之后,广播风暴就已经存在在环路中了。所以有可能是环路风暴导致报文不能正确到达目的地,而我也只是单方面的认为是配置的问题;

3、有可能是我这个地方改错了:

这里我用黄色的线标注的地方;我之前手贱就把后面那个1去掉了。但是去掉之后就不能成功ping通。而且正确配置之后还是有这个1;所以我觉得最后一个可能比较大,说明以后还是不能手贱;

最后一步:配置gvrp

又要配置vlan了。表示很不爽;

首先呢:还是给主机和交换机之间的接口设置端口类型为access;并都设VLAN10

交换机和交换机之间的接口设置端口类型为trunk;设置为全通过;

如何配置就不写了;

1】在出口(就是连接到外界主机的交换机)的LSW1LSW4配置到如下图所示:

【2】将交换机之间所互联的接口全部设置为trunk并设置为全部通过

【3】在所有交换机上面开启GVRP功能,并在所有交换机两两互联的接口下也开启GVRP功能。

gvrp注册默认模式为Normal模式;

复制代码

[LSW1]gvrp在交换机上设置gvrp

[LSW1-Eth-Trunk1]gvrp在聚合链路(trunk)上设置gvrp

[LSW1-GigabitEthernet0/0/2]gvrp在普通端口(trunk)上设置gvrp

【错】[LSW1-Ethernet0/0/3]gvrp尝试在access端口上设置gvrp

【报错】Info:Notatrunkport;can'tspecifygvrp!

但是因为我设置的是很简单vlan。所以并不能看出来很好的效果,毕竟这个图主要是为了链路聚合所产生的;

不过最后还是能够ping通的;

【感觉】但是个人感觉这个GVRP并没有很实在的作用的。GVRP是动态祖册,也许是因为我的拓扑图太小;但是总感觉使用动态注册这个模式,花费了很多时间去适应做动态配置所需要的达到的要求;目前感觉并没有很方便;也许我学的不够还没有掌握到精髓吧;

2017.3.15              by:tea

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是设计模式一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验 的总结;使用设计模式是为了 可重用 代码、让代码 更容易 被他人理解、保证代码 可靠性;设计模式使代码编制  真正工程化;设计模式使软件工程的 基石脉络, 如同大厦的结构一样;并不直接用来完成代码的编写,而是 描述 在各种不同情况下,要怎么解决问题的一种方案;能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免引
单一职责原则定义(Single Responsibility Principle,SRP)一个对象应该只包含 单一的职责,并且该职责被完整地封装在一个类中。Every  Object should have  a single responsibility, and that responsibility should be entirely encapsulated by t
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强烈推荐。原文截图*************************************************************************************************************************原文文本************
适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合作。
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题,总结出来的一套通用的解决方案。
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
外观模式又叫门面模式,它提供了一个统一的(高层)接口,用来访问子系统中的一群接口,使得子系统更容易使用。
单例模式(Singleton Design Pattern)保证一个类只能有一个实例,并提供一个全局访问点。
组合模式可以将对象组合成树形结构来表示“整体-部分”的层次结构,使得客户可以用一致的方式处理个别对象和对象组合。
装饰者模式能够更灵活的,动态的给对象添加其它功能,而不需要修改任何现有的底层代码。
观察者模式(Observer Design Pattern)定义了对象之间的一对多依赖,当对象状态改变的时候,所有依赖者都会自动收到通知。
代理模式为对象提供一个代理,来控制对该对象的访问。代理模式在不改变原始类代码的情况下,通过引入代理类来给原始类附加功能。
工厂模式(Factory Design Pattern)可细分为三种,分别是简单工厂,工厂方法和抽象工厂,它们都是为了更好的创建对象。
状态模式允许对象在内部状态改变时,改变它的行为,对象看起来好像改变了它的类。
命令模式将请求封装为对象,能够支持请求的排队执行、记录日志、撤销等功能。
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 基本介绍 **意图:**在不破坏封装性的前提下,捕获一个对象的内部状态,并在该
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为
享元模式(Flyweight Pattern)(轻量级)(共享元素)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结