实战系列说明
实战系列,每个星期一发送一到两篇,预计18篇左右,整理跟排版都需要时间,博主也只是业余时间写写技术文档,请大家见谅,大家觉得不错的话,可以推荐给朋友哦,博主会努力推出更好的系列文档的,点击上面可以查看汇总文档。如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路博客,http://ccieh3c.com。
拓扑
拓扑可以保存到本地,然后扩大查看,这样才能看的更清楚。(拖动到新窗口打开即可)
5.1分析说明
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间互访流量通过。
5.1.3 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,这样中间转发又延迟了,也增加了设备的处理负担。
5.2 具体配置
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分担会更加有效率。
结果查看
5.2.2 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相反。
访客厅、高层人员、财务 服务器集群、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计算出错。
结果验证【以高层人员、Core-A为例】
高层人员上面可以看到实例1与2,0可以不用管,是默认其余没有定义的VLAN规划存在的,我们这里主要看1与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中,不是主就是备,所以不会出现阻塞的接口,阻塞接口只会出现在接入层,比如高层人员的设备上面,看到的上联接口有一个是阻塞的。
5.2.3 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地址即可。
结果验证
可以看到所有的状态都是正常的,跟PC测试,在后续的DHCP分配后,可以测试使用。
存在一个大问题【容易被忽略的】
上面配置可以得到 VLAN1的默认网关在A上面,而B则是备用,当A的上行链路出现故障后,VRRP是不会感知到的,所以还是会正常转发数据,但是上联链路已经失效了,这时候当一个数据包过来需要A进行转发给出口防火墙的时候,由于上行链路出现故障,那么这时候则只能通过A与B之间的链路传递给B,B这时候只做一个透传的作用,然后传给防火墙,防火墙在转发给外网,外网回包后,防火墙这时候需要回应数据包了,它回应给的是网关地址,也就是VLAN 100做的VRRP网关,正常情况下是直接转发给A的,但是这时候与A的链路断了,只能通过转发给B,然后由B在转发给A进行处理,所以这时候,数据包的路径并不是最优的,这样造成的后果就是,加重B设备的处理能力,与B与A之间的链路带宽【这里有链路聚合,带宽还不会被阻塞】。
解决办法
在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为主的情况下调用,备用则不需要。因为主监控上行链路失效后,自然会减低优先级,备用就成为主用了,当主用的链路恢复后,又恢复优先级,则又成为主用。
修改后的配置
说明:可以看到之前的Core-A与B的主地址为254的,现在都改为252了,主要是不与VRRP地址是同一个,这样就可以调用track技术了。
说明:上面的为Core-A的,下面的为Core-B的,可以看到调用了track的都是为Master的,备用不需要调用。
下个星期一发布预告
华为 华三中小型企业网络架构搭建 【DCHP部署,内网DHCP需求、DHCP中继等】
关于博客资源下载说明
(1)第一种是书籍PDF与视频类,全部放在博客分享,觉得对大家学习有帮助的博主会收集好、然后以博主的经验整理分类后排序好分享出来。
(2)第二种是技术性文章与视频,全部放在公众号(网络之路博客)/B站(网络之路Blog)发布,以博主原创为主,主要分享系列为主,由浅入深的带大家了解工作中常用到的一些网络技术,当然也会分享一些比较经典的案例。
(3)分享资源有涉及到您的利益以及版权问题,请联系博主,24小时候内删除。
学习视频系列(总有您想要的)
Book与实验手册(从初级到高级)
数通系列(路由交换 无线、防火墙VPN等)
实战系列(最贴近企业需求的案例)
想第一时间收到最新更新内容吗,点击获取~~~