计算网络之MSTP协议与VRRP协议
一.MSTP协议
MSTP协议出现是基于STP协议和RSTP协议的,要了解MSTP协议就需要先了解其它两个协议
首先,STP协议是交换机生成树协议,它的出现主要是为了解决二层交换机环路的问题,当多个交换机构成环路时,就会发生网络风暴,即一个数据包不断的在环路中传递,浪费交换机资源
为了解决这一问题,就诞生了生成树协议STP,有很多交换机也是自运行STP协议,如华为的,STP解决环路的主要方法是阻塞端口,
当环路存在会在交换机中选取根桥交换机,负责数据的转发,其根桥的端口都是指定端口用来发送数据的
而其它交换机就会选举出根端口或指定端口,根端口负责接收数据
当没有被选上的端口就会阻塞,即不是根端口也不是指定端口
STP也叫单生成树协议,当环路被阻塞一个端口后,其构成的网络拓扑就好比一棵树一样,但是这种STP协议由于出现早,技术不成熟,导致了它对于链路的选举十分慢
所以后面就出现了RSTP快速生成树协议,它的收敛速度很快,并且在STP的基础上增加了2种端口标识,并且把端口属性充分地按照状态和角色解耦
但是RSTP协议也是单生成树协议,它和STP应用面临相同的问题,即无法实现负载均衡
如上图:
当使用STP或RSTP协议时,以阻塞端口解除环路时,它的问题就是不能实现负载均衡,但是容灾能力依旧存在
不管是PC9还是PC10,访问LSW9和LSW10,路径都是同样的路径3,路径4,这使得路径3的开销会很大,而被阻塞的那个路径没有数据传输的开销,这就使得它们不能实现负载均衡
还有一个问题就是次优路径的问题,我们看图PC10,如果他要去LSW10应该是通过被阻塞的那条路径是最短的,但是它是被阻塞的,导致它要绕道LSW9然后到LSW10,所以就产生了链路存在最优路径,而被迫走次优路径的情况
所以为了解决这些问题,MSTP孕育而生了
MSTP出现解决了STP收敛慢的特点,又解决了RSTP不能实现负载均衡和次优路径的问题
MSTP协议也叫多生成树协议,听名字就知道,它不再是单独的一棵生成树,MSTP是基于实例来划分生成树的,实例可以有255个,每个实例中装的都是VLAN,每个实例可以装多个Vlan
这样我们大概就可以知道,MSTP中生成树就是根据Vlan来划分成的,每个实例都有自己的一些vlan,所以不同的实例就会走自己的生成树,从而不同的生成树堵塞端口也不一样
如上图:
这就是MSTP生成树协议的解除环路的方式,它不在统一构建单颗生成树,而是依旧实例vlan构建多棵生成树
由于LSW9是PC9的网关,而LSW10是PC10的网关,在通信时它们会依据生成树去找网关,这就解决了负载均衡的问题
当到达网关后,它可以沿着网关去任何一条路径,并且两个实例的路径时对立的,不存在走重的路径,这就解决了一个PC去网关需要去另外一个PC的路径借道到网关,使得发生次优路径的情况
理论我们已经清楚了,记住提到MSTP协议一定要想到多生成树,现在来看看实现
二.MSTP配置(ENSP)
配命令:
LSW9:
vlan batch 10 20
stp instance 1 root primary
stp instance 2 root secondary
stp region-configuration
region-name huawei
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
interface Ethernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
interface Ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
LSW10:
vlan batch 10 20
stp instance 1 root secondary
stp instance 2 root primary
stp region-configuration
region-name huawei
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
interface Ethernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
interface Ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
LSW11:
vlan batch 10 20
stp region-configuration
region-name huawei
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
interface Ethernet0/0/1
port link-type access
port default vlan 10
interface Ethernet0/0/2
port link-type access
port default vlan 20
interface Ethernet0/0/21
port link-type trunk
port trunk allow-pass vlan 2 to 4094
interface Ethernet0/0/22
port link-type trunk
port trunk allow-pass vlan 2 to 4094
提出MSTP协议的关键配置:
stp mode mstp
切换默认STP协议为MSTP协议
stp region-configuration
进入MSTP协议的配置
region-name huawei
配置服务为华为云服务区域名称
instance 1 vlan 10
将Vlan10加入实例1
instance 2 vlan 20
将Vlan20加入实例2
active region-configuration
激活MSTP配置
三.抓包分析MSTP
如上图:
实例10的路径是沿着LSW11 到 LSW9 在到LSW10因为ping的是对方的网关,自己的网关是LSW9
根据抓包路径就可以看到实例10是阻塞的LSW11 到 LSW10这条路径,
如果是STP协议那么实例20也应该是堵塞的这条路径,但是这是MSTP协议,我们在看看实例20的抓包,相同的也是ping对方的网关,也就是实例10的网关
如上图
实例20走的路径则是和实例10相反,为什么呢?因为多生成树协议,解决了次优路径的问题,
通过图就可以看到LSW11 到 LSW10的路径到网关是最短的,LSW10是实例20的网关,因为要先到网关再到实例10的网关
同时我们也可以发现LSW11 到 LSW9这段路径被阻塞了,然后具体分析一下
实例10堵塞的是路径:LSW11----LSW10
实例20堵塞的是路径:LSW11----LSW9
通过上面的抓包就大概可以了解到为什么MSTP是多生成树协议了吧,因为它真的生成了多棵树,而且是更具最优路径来生成树
补充:
要想实例10去网关都走LSW9,其实相对于LSW9来说,它就是实例10这颗生成树的根桥交换机,所以要想它被选为实例10的根桥交换机,就可以对其进行配置:
stp instance 10 root primary
在LSW9交换机上配置stp实例10为其根桥
相同的道理,实例20去网关都走LSW10,那么LSW10也是实例20的根桥交换机,对其配置:
stp instance 20 root primary
如上,配置LSW10后它就是实例10这颗生成树的根桥了,数据包会优先到根桥交换机,然后转发
这样它即是根桥交换机又是网关,二者兼得
四.VRRP协议
什么是VRRP协议?
VRRP叫路由冗余协议,是一种提高网络可靠性的容错协议,它可以在主机的下一跳设备故障时,及时将业务切换到备份设备,从而保证网络的正常通信
从定义中我们需要抓住一个关键字,备份,路由冗余协议需要备份什么,当然是路由
VRRP常常用于备份网关,它和MSTP协议结合使用,首先我们要知道VRRP是怎么来备份的,
它在备份的设备上设置一个网关,且优先级大于100,因为默认的VRRP虚拟接口是100,大于100则表示在本机未故障的时候优先级是最高的,而其它设备上就需要备份设置相同的网关,不更改优先级就是100,那么它就是次优网关
当然,多备份的时候,只要小于主交换机的时候,也是可以当作备份的网关
这就和浮动路由很像,有两条路径都可以到达目的地址,但是在路由表中会记录最优的那条路径,当最优路径down掉以后,另外一条次优路径才会浮起来,保证链路通畅
相同的VRRP的配置中只要主网关还存在,那么其它的网关都是浮动的,无效路由,只有主网关(优先级最高的)宕机以后,其它的备份网关才会浮起来
VRRP配置的网关也是一个在虚接口上,所以它可以在物理层上将两个或多个路由器逻辑的划分为一个,根据优先级来决定去那个路由器
这也是VRRP主要的实现方式,逻辑的将多个路由器网关构成一个网关
如上图:
当两个VRRP虚拟接口网关都存在的时候,则是优先级高的来当网关,提供网关服务
当优先级高的网关2宕机以后,备份网关1也就浮动起来了,然后由网关1来当网关,然后继续提供网关服务
VRRP实验(ENSP)
实现的目的
LSW9作为192.168.1.0网段的主网关,并且作为192.168.2.0的备份网关
LSW10作为192.168.2.0网段的主网关,并且作为192.168.1.0的备份网关
然后来看配置:
LSW9:
interface Vlanif10
ip address 192.168.1.200 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.254
vrrp vrid 1 priority 200 interface Vlanif20
ip address 192.168.2.200 255.255.255.0
vrrp vrid 2 virtual-ip 192.168.2.254
LSW10:
interface Vlanif10
ip address 192.168.1.200 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.254 interface Vlanif20
ip address 192.168.2.200 255.255.255.0
vrrp vrid 2 virtual-ip 192.168.2.254
vrrp vrid 2 priority 200
如上,
在交换机上配置IP地址是需要先进入Vlanif中的,如果是在路由器上配置就进入接口中就行了
首先给Vlanif增加一个IP地址,因为VRRP是虚拟接口,所以不需要直接配置在Vlanif接口上
而是在此接口上虚拟化一个VRRP,在LSW9上192.168.1.254的优先级为200,而192.168.2.254的优先级为100(默认)
且在LSW10上192.168.1.254优先级为100,192.168.2.254的优先级为200
由此LSW9为192.168.1.0的主网关,为192.168.2.0的备份网关
LSW10为192.168.2.0的主网关,为192.168.1.0备份网关
在任何一个交换机故障后,VRRP配置会使备份顶上来,维护链路完整通信。
计算网络之MSTP协议与VRRP协议的更多相关文章
- 冗余网络构建方案对比:VRRP协议、多网卡绑定及WN202冗余链路网卡
在组建网络时为网络设计冗余方案已经成为提高网络可用性必不可少的一环,伴随着网络技术的发展实现网络冗余的技术方案也是层出不穷,例如应用于服务器端的HA.LB,应用于存储的SAN.DAS.NAS等.本文重 ...
- Keepalived原理与实战精讲--VRRP协议
. 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简 ...
- VRRP协议介绍--转
http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...
- Keepalived原理及VRRP协议与应用配置(详细)
转载自:https://blog.csdn.net/u010391029/article/details/48311699 1. 前言 VRRP(Virtual Router Redundancy P ...
- 虚拟路由冗余(VRRP)协议
1. 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还 ...
- 入木三分学网络第一篇--VRRP协议详解第一篇(转)
因为keepalived使用了VRRP协议,所有有必要熟悉一下. 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是解决局域网中配置静态网关时,静 ...
- 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- VRRP协议具体解释
转帖:http://blog.chinaunix.net/space.php?uid=11654074&do=blog&id=2857384 Contents ...
- [转]VRRP协议详解
原文地址:VRRP协议详解 文中涉及缩略语 缩略语 英文全名 中文解释 VRRP Virtual Router Redundancy Protocol 虚拟路由器冗余协议 NQA Network Qu ...
- 在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章?(QQ 为什么采用 UDP 协议,而不采用 TCP 协议实现?)
为了解决这题,可以具体看看下面这个讨论. 解灵运工程师 185 人赞同 某次架构师大会上那个58同城做即时通信的人说:原因是因为当时没有epoll这种可以支持成千上万tcp并发连接的技术,所以他们使用 ...
随机推荐
- Linux 命令:diff
用途 示例 备注 查看区别 diff file_1 file_2 不加选项 并排输出 diff file_1 file_2 -y -W 50 类似vimdiff 生成patch diff -ruN f ...
- 2022-02-08 IValueConverter和StringFormat
主页 后台 stringFormat
- 【游记】NOIP2022 预备赛游记
Day -2 \(NOIP\) 就要来了,\(CSYZ\) 斥巨资给我们在 \(NOIP\) 正式考点举办了一场 \(NOIP\) 预备赛,真是太感动了~~ \(cy\) 说明天要颁奖,激动激动! D ...
- Pandas:获取Dataframe索引
解决方案 效果图 参考链接 https://blog.csdn.net/YENTERTAINR/article/details/109254583
- django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported.
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing a ...
- springboot jar thin
springboot jar thin springboot 应用 jar 瘦身.springboot jar 太大.jar与依赖包分离. 两种方法,第一种,spring-boot-thin-laun ...
- go语言环境要这样搭建才"省钱"
go语言环境要这样搭建才省钱 目录 go语言环境要这样搭建才省钱 本篇概要 集成开发环境工具(ide) Goland或IntelliJ IDEA Visual Studio Code 其他集成开发环境 ...
- shell编程之存储读写测试实战脚本
Shell编程是一种在命令行环境中编写程序的技术,常用于Linux和Unix系统.它主要使用Shell脚本语言来编写程序.Shell编程常用于系统管理.自动化任务.批处理等领域. 常用的Shell脚本 ...
- Flink-读Kafka写Hive表
1. 目标 使用Flink读取Kafka数据并实时写入Hive表. 2. 环境配置 EMR环境:Hadoop 3.3.3, Hive 3.1.3, Flink 1.16.0 根据官网描述: htt ...
- Java实践项目 - 购物车模块
Smiling & Weeping ----世界上美好的东西不太多,立秋傍晚从河对岸吹来的风, 加入购物车 1.数据创建--创建t_cart CREATE TABLE t_cart( cid ...