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

时间:2023-02-22 18:23:13

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

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

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

1、gvrp的应用:

2、Smart Link与Monitor 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 Link 与 Monitor Link

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

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

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

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

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

配置Eth-Trunk

1负载分担;

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

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

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

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

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

实验模式:

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

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

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

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

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

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

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

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

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

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

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

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

它的stp是这样的;

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

关于在链路聚合下做smart,monitor link的转发测试(估计1秒都要不到)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

[LSW1]interface Eth-Trunk                   在LSW1上建立eth-trunk1接口

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

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

[LSW1-Ethernet0//]eth-trunk 

[LSW1-Ethernet0//]eth-trunk 

[LSW1]display eth-trunk                    用这个命令可以查询eth-trunk接口下的端口  

[LSW1]display interface Eth-Trunk           查看s1和s2的eth-Trunk接口的信息

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

[LSW1]display eth-trunk 1

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

[LSW1]display interface Eth-Trunk 1

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

将LSW1和LSW2和LSW3之间的链路都进行聚合;

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

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

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

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

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

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

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

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

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

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

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

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

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

我们发现:

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

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

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

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

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

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

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

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

开启所有的链路:

[LSW1-Eth-Trunk1]mode lacp-static
更改eth-trunk的模式; [LSW1-GigabitEthernet0//]eth-trunk
然后挨个将接口添加到eth-trunk接口中去 [LSW1]display eth-trunk
查看eth-trunk接口状态; [LSW1]lacp priority
修改系统优先级为100 使其成为主动端;按照主动端设备的接口来选择活动接口;
两端设备选择了一致的活动接口,活动链路组便可以建立起来; [LSW1-Eth-Trunk1]max active-linknumber
设置活动接口的上线阈值为2(最大活动链路数量)默认活动接口最大阈值为8 [LSW1-GigabitEthernet0//]lacp priority
在s1上配置接口的优先级确定活动链路 [LSW1-GigabitEthernet0//]lacp priority
设置两个优先级为100的链路,目的是为了确定这两个链路成为活动状态

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

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

第四步:配置Smart Link

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

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

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

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

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

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

【1】先取消掉stp:

[LSW1]undo stp enable

[LSW1]stp disable

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

【2】然后再设置smart link;

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

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

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

[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的主备状态

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

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

【3】配置回切功能

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

需要手工配置回切功能

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

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

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

[LSW2-mtlk-group1]port Eth-Trunk  uplink               设置上行链路

[LSW2-mtlk-group1]port Eth-Trunk  downlink             设置下行链路;

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

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

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

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

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

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

 

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

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

 

可能的原因:

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

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

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

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

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

最后一步:配置gvrp

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

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

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

如何配置就不写了;

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

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

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

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

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

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

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

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

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

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

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

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

【报错】Info: Not a trunk port; can't specify gvrp!

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

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

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

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

 

 

2017.3.15                                     by:tea

关于在链路聚合下做smart,monitor link的转发测试的更多相关文章

  1. LACP链路聚合控制协议

    LACP链路聚合控制协议 来源: https://www.cnblogs.com/taosim/articles/4378691.html http://storage.chinabyte.com/6 ...

  2. ESXi与物理交换机静态链路聚合配置过程中的小陷阱

    作者:陆斌文章来自微信公众号:平台人生 内容简介:ESXi与物理交换机之间配置静态链路聚合时,因为静态链路聚合的特点,在进行down网卡和从虚拟交换机移除网卡的操作时,可能会无法完成故障流量切换,影响 ...

  3. centos 网卡聚合及Cisco交换机链路聚合

    一.配置环境 centos 系统.网卡1口和2口做链路聚合.    交换机网口 6口和7口. 二.服务器操作步骤 centos 6 1.创建一个channel bonding interface #v ...

  4. centos7 链路聚合+KVM桥接连网

    一.两个物理网卡做链路聚合(em3,em4) 1)创建team类型的网卡,连接别名为team0,使用的模式为activebackup-主备/loadbalance-负载均衡nmcli con add ...

  5. 华为5700s配置链路聚合

    /创建聚合链路,数值可以随意. port link-type trunk /设置成trunk模式.(如果是接入vlan的话,link-type acess) port trunk allow-pass ...

  6. Linux 链路聚合

    Linux 链路聚合 链路聚合与双网卡绑定几乎相同,可以实现多网卡绑定主从荣誉,负载均衡,提高网络访问流量.但链路聚合与双网卡绑定技术(bond)不同点就在于,双网卡绑定只能使用两个网卡绑定,而链路聚 ...

  7. 华为交换机以 LACP 模式实现链路聚合

    LACP 链路聚合模式简介 以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的.链路聚合分为手工模式和LACP模式. LACP模式需要有链路聚合控制协议LAC ...

  8. Eth-Trunk链路聚合配置

    Eth-Trunk概述 Eth-Trunk接口能够实现负载分担.增加带宽和提高可靠性 Eth-Trunk接口把多个物理接口捆绑成一个逻辑接口 Eth-Trunk接口的链路聚合模式 链路聚合模式 应用场 ...

  9. H3C 交换机基本设置(telnet、SSH、链路聚合)

    http://www.h3c.com/cn/d_201710/1038172_30005_0.htm#_Toc493869056 H3C S5560S-SI&S5130S-SI[LI]&amp ...

随机推荐

  1. JavaScript随笔2

    JavaScript的组成:ECMA.DOM.BOM闭包,子函数可以使用父函数的局部变量 函数:arguments是个参数数组oDiv.style.width:只能操作行间的样式.在IE下oDiv.c ...

  2. 【.net core 跨平台】第一步 在Ubuntu16.04 配置.net core环境

    本次使用VMware10.0.4工具安装Ubuntu16.04系统并配置.net core环境   Ubuntu 16.04 desktop下载地址:http://releases.ubuntu.co ...

  3. Codeforces Round #375 (Div. 2) - D

    题目链接:http://codeforces.com/contest/723/problem/D 题意:给定n*m小大的字符矩阵.'*'表示陆地,'.'表示水域.然后湖的定义是:如果水域完全被陆地包围 ...

  4. 关于Response.redirect()方法

    1. sendRedirect 后面要加上return.2. sendRedirect 执行过程是先转向还是先执行后续代码再转向?答: 先执行代码再转向,在一个sendRedirect后面不能再有其他 ...

  5. nginx+php-fpm 502 bad gateway

    输出日志配置: http://blog.csdn.net/wzy_1988/article/details/8486888 解决方案: http://www.cnblogs.com/jackluo/p ...

  6. .NET(C#):分析IL中的if-else,while和for语句并用Emit实现

    这是一篇关于IL和反射Emit的文章(所以不喜欢IL或者Emit的就没必要往下看了),要求读者对IL和Emit工作原理较了解.所有分析IL均在Visual Studio 2010 SP1下编译生成.( ...

  7. Use Excel to write insert SqlScript

    ="insert into Process.dbo.TempHampInGoodStandingLoanList (Loan_No,ProgramType,ModificationEffec ...

  8. 移动端日历控件 mobiscroll 的简单使用、参数设置

    mobiscroll 在性能方面比较好,可选用多种效果,滑动效果也比较顺畅.   提供样式文件和js文件,直接点击下载,该版本是 mobiscroll 2.13的 官方地址 :https://docs ...

  9. kubernetes 留言版DEMO

    kubernates hello world1 关闭防火墙 $systemctl disable firewalld $systemctl stop firewalld 2 安装etcd 和 kube ...

  10. 关于cin的用法一些小结

    在写二叉树的时候遇到if(!cin)那几个标志位弄得并不清楚,还遇到了诸如cin.clear()等函数,感觉C++又白学了,于是打算去网上搜了几篇靠谱的文章,有时候看来,一些事件处理类的工程代码,在A ...