3、【实战中提升自己】华为 华三中小型企业网络架构搭建 【MSTP、链路聚合、VRRP部署】

2020-03-26 20:29:05 admin 811

 说明 前提  


   首发就从实战开始吧,这个系列是之前在给某个机构做内部培训讲解的时候写的一个实战内容,从拓扑设计到地址规划、以及网络需求、为什么需要用到这些技术做了全面的分析,大部分都可以用ENSP来模拟,想深入学习的朋友一定不要错过。(后面有提问,有兴趣的朋友可以参加哦,一方面可以增加自己思考能力,为什么要这样做,也可以把不懂的询问博主)


 1 拓扑与说明             

 图片关键词某公司的网络架构,这样的架构在目前的网络中是在常见的,假设您接收一个这样的网络,应该如何部署,该实战系列,就是一步一步讲解,如何规划、设计、部署这样一个环境,这里会针对不同的情况给出不同的讲解,比如拓扑中有2个ISP,假设客户需求是,想实现主备的效果,又或者是想负载分担。DHCP部署在防火墙上面或者是单独的服务器上面又该如何配置部署。

 2 分析说明                

5.1分析说明
5.1.1 MSTP技术实现的效果
STP可以有三种,一种为最先的STP、后续增强的RSTP,以及目前主流的MSTP,不使用STP与RSTP的原因其实很简单,因为它只能做到单一链路传输,而不能实现跟MSTP以实例的方式实现负载负担。

图片关键词

以访客厅为例,该交换机下面有VLAN 1与VLAN 19的流量,如果我们部署的是STP或者RSTP的话,则我们VLAN 1与VLAN 19的流量,要么从左边的链路传递给核心交换机转发,要么从右边的网络传递给核心交换机转发,这样的话,白白的浪费了一条链路带宽,如果VLAN流量比较多的话,则造成的情况是,一条链路拥塞,另外一条链路则没有任何流量经过。而MSTP实现的是,以多个VLAN为一个实例,不同的实例可以实现不同的链路转发,假设访客厅有20个VLAN,则可以实现10个VLAN走左边链路,而另外10个VLAN走右边链路,这样充分的利用了链路的带宽,也减少出现拥塞的几率。

5.1.2 链路聚合实现的效果

图片关键词

在这个案例中,部署了链路聚合的链路就是在两台核心交换机之间部署了,核心交换机之间加入这条线路的作用是,后续的VRRP流量都通过这条线路传递,也有人也喜欢把这条线路叫心跳线,有链路聚合的存在,除了提高带宽以外,还增加了冗余性,这样不会出现当这条链路故障后,所有的VRRP流量都需要经过下面的接入层交换机来转发。另外就是下面VLAN流量访问服务器或者 不同VLAN间互访流量通过。

(PS:想深入学习华为与考试的朋友,HCNP官方学习指南必须拥有,更能读懂该系列实战哦)

5.1.3 VRRP部署

VRRP的作用是充当网关的默认网关的,可以说PC定义的默认网关不生效的话,则整个网络都访问不了了,只能访问同一个VLAN内的,如果在没有部署VRRP之前,两台设备有2个IP地址,都可以充当PC的网关,而PC又没有任何的检测机制,来判断该网关是否出现了故障,而进行切换,所以如果没有VRRP之前,则只能通过人为修改,这个工作量肯定是巨大的,特别是中大型网络,而且非常不实际,不可能指望一个不懂技术的人去设置网关地址。VRRP解决的问题就是,通过VRRP技术协商,虚拟一个IP地址出来(VRRP可以直接使用接口定义了的地址的),这样的好处是,下面PC只需要定义VRRP定义的那个地址作为网关即可,当主设备出现故障后,会自动切换到备用上面,从而对客户来说是透明的。


为什么需要负载分担:因为默认情况下,所有的数据包都是交给主处理的,只有当主出现故障的时候,备用才会处理数据报文,如果所有的主都定义在一台设备上面的话,就意味着所有的数据包默认情况下都是由该设备处理,而备用则被闲置了,浪费了资源不说,很可能导致主设备处理能力跟不上,导致网络延迟很大,所以我们需要规划的是,把下面网段的网关平均分配到两台设备上面,比如192.168.1.0/24网段定义A为主,B为备用,而192.168.2.0/24网段定义B为主,A为备用,这样实现负载分担,达到资源利用。

VRRP与MSTP配合:我们之前分析过MSTP是保证链路的有效分担利用的,可以把VLAN的流量分摊到不同链路上去,然后在上行设备上面定义不同实例的根,定义根的作用是,对应的实例内的VLAN会把流量引向根的方向,而根也分为主根与备份根,这个跟VRRP的主备相似,所以我们在定义VRRP与MSTP的时候,要保持主备统一,比如VLAN 10、20、30的根在A设备上面,那么对应的网关 VRRP,则A为主,B为备用,而VLAN 40 、50 、60的根在B设备上面,那么对应的网关VRRP,则B为主,A为备用。这样的话到达路径最优,资源利用最大化,如果MSTP与VRRP的定义相反,那么就会造成,路径次优了,比如VLAN 10,20.30定义根是B设备,而对应的网关VRRP则为A,那么它们首先会把流量引向B设备,然后再由B设备交给A,这样中间转发又延迟了,也增加了设备的处理负担。

 3 具体配置   

 5.2.1 链路聚合配置

说明:这里必须先配置链路聚合,因为中间那条链路传递VRRP的流量,并且也传递STP的BPDU,所以先配置链路聚合是有必要的。
Core-A
[Core-A]interface Eth-Trunk 1
[Core-A-Eth-Trunk1]trunkport g0/0/18
[Core-A-Eth-Trunk1]trunkport g0/0/19
[Core-A-Eth-Trunk1]port link-type trunk
[Core-A-Eth-Trunk1]port trunk allow-pass vlan 19 to 23 88 100
[Core-A-Eth-Trunk1]load-balance src-dst-ip
说明:创建了一个链路聚合口,然后关联了G0/0/18与19,这2个口就是连接Core-B的,另外定义该类型为Trunk,允许了现在存有的VLAN流量通过,其余的则不允许。并且配置了负载均衡的方式为源目IP的,因为流量到达Core后,上面的都是走三层了,基于源目IP分担会更加有效率。

Core-B
[Core-B]interface Eth-Trunk 1
[Core-B-Eth-Trunk1]trunkport g0/0/18
[Core-B-Eth-Trunk1]trunkport g0/0/19
[Core-B-Eth-Trunk1]port link-type trunk
[Core-B-Eth-Trunk1]port trunk allow-pass vlan 19 to 23 88 100
[Core-B-Eth-Trunk1]load-balance src-dst-ip
说明:创建了一个链路聚合口,然后关联了G0/0/18与19,这2个口就是连接Core-A的,另外定义该类型为Trunk,允许了现在存有的VLAN流量通过,其余的则不允许。并且配置了负载均衡的方式为源目IP的,因为流量到达Core后,上面的都是走三层了,基于源目IP分担会更加有效率。

图片关键词


 4 MSTP配置    

分析:之前已经分析过MSTP与VRRP配合的时候要主备统一,而在规划的时候已经规划好了对应的VLAN IP谁为主,谁为备用,所以我们这里根据VRRP的定义来定义MSTP即可。

图片关键词

254的定义则为PC网关,这是Core-A上面定义的,为254的VLAN 有 VLAN 1、19、21,则VLAN 1 、19、21 A为主根,对应的B为这些VLAN的备用根, 那么为253的地址则是充当备用的,也就是说 20、88、100这些VLAN,Core-A充当的是备用根,而Core-B是主根。

Core-A的MSTP配置
[Core-A]stp region-configuration
[Core-A-mst-region]region-name ccieh3c.taobao.com
[Core-A-mst-region]instance 1 vlan 1 19 21
[Core-A-mst-region]instance 2 vlan 20 88 100
[Core-A-mst-region]active region-configuration
[Core-A]stp instance 1 root primary
[Core-A]stp instance 2 root secondary


说明:这里进入了MSTP的配置域,定义了一个名字为ccieh3c.taobao.com(这个同一个MSTP域必须保持一致),然后定义了2个实例,就是刚刚分析的那2个,最终激活配置。
红色部门定义的是,Core-A为1的主根,为实例2的备份根。

Core-B MSTP配置
[Core-B]stp region-configuration
[Core-B-mst-region]region-name ccieh3c.taobao.com
[Core-B-mst-region]instance 1 vlan 1 19 21
[Core-B-mst-region]instance 2 vlan 20 88 100
[Core-B-mst-region]active region-configuration
[Core-B]stp instance 1 root secondary
[Core-B]stp instance 2 root primary
说明:这里进入了MSTP的配置域,定义了一个名字为ccieh3c.taobao.com(这个同一个MSTP域必须保持一致),然后定义了2个实例,就是刚刚分析的那2个,最终激活配置。
红色部门定义的是,Core-B为2的主根,为实例1的备份根。与A相反。

 5 访客厅、高层人员、财务 服务器集群、AC的MSTP配置  

[FKT]stp region-configuration
[FKT-mst-region]region-name ccieh3c.taobao.com
[FKT-mst-region]instance 1 vlan 1 19 21
[FKT-mst-region]instance 2 vlan 20 88 100
[FKT-mst-region]active region-configuration
说明:访客厅、高层人员、财务MSTP的配置是一样的,所以这里就给出一个访客厅的配置,其余的一样配置即可,这里需要说明的是,虽然访客厅只有 VLAN 1与19的流量,但是一样要定义对应的实例,因为同一个MSTP域检查的是一个hash值,只有配置定义一样,hash值才会相同,这样才会认为是同一个域的,否则不能进行协商,这样导致MSTP计算出错。

 6 结果验证【以高层人员、Core-A为例】   


图片关键词

高层人员上面可以看到实例1与2,0可以不用管,是默认其余没有定义的VLAN规划存在的,我们这里主要看1与2。

1、实例1:G0/0/2上联接口为Root,而G0/0/1为阻塞,因为实例1的根为Core-A,而G0/0/2上联的接口就是Core-1,而G0/0/1则是Core-2.
2、实例2:实例2与实例1相反,因为实例2的根在Core-B上面,所以这里G0/0/1为Root,G0/0/2阻塞。
实现的效果:实例1的流量走G0/0/2这条链路,而实例2的流量则走G0/0/1这条链路,实现复杂分担。

图片关键词

Core-A上面接口比较多,但是不会出现阻塞的效果,因为它在实例1与实例2中,不是主就是备,所以不会出现阻塞的接口,阻塞接口只会出现在接入层,比如高层人员的设备上面,看到的上联接口有一个是阻塞的。

 7 VRRP配置   


Core-A VRRP配置

[Core-A]int vlan 1
[Core-A-Vlanif1]vrrp vrid 1 virtual-ip 192.168.1.254
[Core-A-Vlanif1]vrrp vrid 1 priority 105

[Core-A]int vlan 19
[Core-A-Vlanif19]vrrp vrid 19 virtual-ip 192.168.19.254
[Core-A-Vlanif19]vrrp vrid 19 priority 105

[Core-A]int vlan 20
[Core-A-Vlanif20]vrrp vrid 20 virtual-ip 192.168.20.254

[Core-A]int vlan 21
[Core-A-Vlanif21]vrrp vrid 21 virtual-ip 192.168.21.254
[Core-A-Vlanif21]vrrp vrid 21 priority 105

[Core-A]int vlan 88
[Core-A-Vlanif88]vrrp vrid 88 virtual-ip 192.168.88.254

[Core-A]interface vlan 100
[Core-A-Vlanif100]vrrp vrid 100 virtual-ip 192.168.100.254
说明:之前分析了VLAN 1,19,21的VRRP 主为Core-A,所以这里除了定义一个地址外,还定义了一个优先级,这里建议定义为105,因为如果检测到链路出现故障,默认减低优先级为10,如果高了的话,就算减低优先级,还是为主用。另外为备用的地方只需要配置IP地址即可。

Core-B VRRP配置
[Core-B]int vlan 1
[Core-B-Vlanif1]vrrp vrid 1 virtual-ip 192.168.1.254

[Core-B]int vlan 19
[Core-B-Vlanif19]vrrp vrid 19 virtual-ip 192.168.19.254

[Core-B]int vlan 20
[Core-B-Vlanif20]vrrp vrid 20 virtual-ip 192.168.20.254
[Core-B-Vlanif20]vrrp vrid 20 priority 105

[Core-B]int vlan 21
[Core-B-Vlanif21]vrrp vrid 21 virtual-ip 192.168.21.254

[Core-B]int vlan 88
[Core-B-Vlanif88]vrrp vrid 88 virtual-ip 192.168.88.254
[Core-B-Vlanif88]vrrp vrid 88 priority 105

[Core-B]interface vlan 100
[Core-B-Vlanif100]vrrp vrid 100 virtual-ip 192.168.100.254
[Core-B-Vlanif100]vrrp vrid 100 priority 105
说明:之前分析了VLAN20、88、100 的VRRP 主为Core-B,所以这里除了定义一个地址外,还定义了一个优先级,这里建议定义为105,因为如果检测到链路出现故障,默认减低优先级为10,如果高了的话,就算减低优先级,还是为主用。另外为备用的地方只需要配置IP地址即可。

 8 结果验证   


图片关键词
图片关键词

可以看到所有的状态都是正常的,跟PC测试,在后续的DHCP分配后,可以测试使用。

 9 存在一个大问题(容易被忽略)     


图片关键词

分析:这里VRRP配置了,正常情况下是没任何问题的,就算中间和下面的链路断了,是不会出现什么问题的,VRRP不会有影响,但是如果上面的链路端了,也就是连接防火墙的,那么则会出现一个问题,就是次优路径。
上面配置可以得到 VLAN1的默认网关在A上面,而B则是备用,当A的上行链路出现故障后,VRRP是不会感知到的,所以还是会正常转发数据,但是上联链路已经失效了,这时候当一个数据包过来需要A进行转发给出口防火墙的时候,由于上行链路出现故障,那么这时候则只能通过A与B之间的链路传递给B,B这时候只做一个透传的作用,然后传给防火墙,防火墙在转发给外网,外网回包后,防火墙这时候需要回应数据包了,它回应给的是网关地址,也就是VLAN 100做的VRRP网关,正常情况下是直接转发给A的,但是这时候与A的链路断了,只能通过转发给B,然后由B在转发给A进行处理,所以这时候,数据包的路径并不是最优的,这样造成的后果就是,加重B设备的处理能力,与B与A之间的链路带宽【这里有链路聚合,带宽还不会被阻塞】。

(PS:后续会涉及到防火墙的知识点,这边属于华为防火墙学习最好的,不管是理论点、实验、还是排错都分析的很好)

 10 解决办法                      

 

在VRRP中有一个track功能,默认情况下 VRRP是不监控上行链路的,但是通过track功能后,是可以直接监控上行链路,这样可以避免上面的情况出现。

前提:但是track技术部署的前提就是不能使用接口地址作为VRRP的地址,也就是VRRP的虚拟地址与接口地址不能是同一个,所以这个环境如果要部署track的话,则需要改变下IP地址。这里只是特备作为提醒存在,因为在实际部署中非常容易忽略这个细节。,所以这里并没有在一开始就这样规划,而是用一个分析进行讲解。

图片关键词

这里以VLAN 1举例说明下,track的作用,实际工作中根据需求是否需要部署 来决定,另外还可以关联BFD,NQA等技术关联。
作用的命令是,当G0/0/22(上联接口)出现故障后,自动减低优先级10,也就是变为95,这样的话 B自然抢占为主了。

图片关键词

可以看到现在还是为Master

图片关键词

当我手动把22号接口关闭后,可以看到VLAN1由 Master变为Backup了,也就是变成了备用。

图片关键词

这时候,B成为了Master。
说明:track技术只需要在VLAN部署VRRP为主的情况下调用,备用则不需要。因为主监控上行链路失效后,自然会减低优先级,备用就成为主用了,当主用的链路恢复后,又恢复优先级,则又成为主用。

建议,在工作中可以使用track技术的话,就使用,可以减少很多情况发生,案例也已经改为部署了track方案的,之前没部署,主要是想说明下为什么需要部署track。


修改后的配置

图片关键词
图片关键词

说明:可以看到之前的Core-A与B的主地址为254的,现在都改为252了,主要是不与VRRP地址是同一个,这样就可以调用track技术了。

图片关键词
图片关键词

说明:上面的为Core-A的,下面的为Core-B的,可以看到调用了track的都是为Master的,备用不需要调用。



转载自微信公众号:网络之路博客公众号

电话咨询
邮件咨询
在线地图