网络的冗余

介绍:

一般在网络中,都会考虑网络的健壮性,之前我给web服务器做负载均衡的时候,也会给调度器做一个冗余,用到的也是常用的VRRP虚拟路由冗余协议。做冗余是为了保障单个节点出现故障时,有另一个backup顶替上去使得服务不会出现瘫痪,给用户带来不好的体验。

这里说的主要是网路设备的冗余,但其实原理都相似的:

  • 交换冗余
  • 路由冗余
  • 网关的冗余
    • VRRP
    • HSRP
    • GLBP
  • 链路的冗余
    • Etherchannel
  • STP 的灵活使用

交换冗余

在交换网络中,主要两大类冗余:

  • 硬件方面:电源冗余、引擎冗余、模块冗余、设备堆叠
  • 软件方面:stp的使用、EtherChannel

为了防止核心层断电导致网络的大规模瘫痪,通常情况下会采取双电源的冗余,由芯片来控制电源进行负载均衡。

引擎的冗余:交换引擎是交换机的核心,所以在核心层通常也会扩展引擎。

设备的堆叠:常见的交换机扩展,分清级联和堆叠的区别:

  • 级联:使用双绞线通过交换机端口与其他交换机相连,从而实现网络连接距离的增加,但是管理麻烦,很容易产生链路瓶颈。
  • 堆叠:使用专用的堆叠端口和堆叠线,将交换机背板直接连在一起,通过几条简单的命令就可以配置。堆叠只能在相同厂家之间进行,几台堆叠的交换机在逻辑上可以看作一台,算得上是电源、引擎、模块的多重冗余。

路由的冗余

静态路由的冗余:前面说过静态路由,配置过浮动路由。就是地址一条权重更低的路由,当主路由出问题的时候换到设置好的权重低的路由,这就是静态路由的冗余。

动态路由因为本身会根据网络自动学习调整,所有无需冗余,只需要设计一条备用线路就行。

网关的冗余

网关是一个网段到另一个网段的大门,通常有两种方式配置:

  • 手动为设备指定网关ip地址
  • 使用DHCP动态主机配置协议为设备分配ip地址
    DHCP是一个应用层的协议,全称是 Dynamic Host Configuration Protocol,动态主机配置协议。网内每新增一台主机、终端设备就去手动配置很麻烦,所以就出现了 DHCP。其主要的功能便是有一台转发的设备作为 DHCP 服务端,他有很多的 IP 地址,网内可用的 IP 地址都让他去管理,每增加一台设备让他们在网内广播发出请求,DHCP 服务端就给他分配一个 IP 地址,主机收到之后,就自动的将收到的 IP 地址与网管配置好。

这里我们说一下网关的冗余,如果网关的设备出问题了,那么这个网段所有的主机都不能和外界通信了。

通常我们会创建一个虚拟的网关(IP),而在这个虚拟的网关背后,有两个真正的网关(ip),外界看到是虚拟的ip,而真正工作的其实还是背后的其中一个。
实现这个功能的协议有:

  • VRRP:虚拟路由冗余协议,由 IETF 在颁布的 RFC 5798中有所描述,这是一个标准的开放协议,所有的厂家设备都会支持该协议;
  • HSRP:Hot Standby Router
    Protocol,热备路由协议,是由思科自主研发的协议,所以该协议是思科的专有协议,在其他厂家的设备上并不支持;
  • GLBP:Gateway Load Balancing
    Protocol,网关负载均衡协议,这也是由思科自主研发的协议,所以该协议也是思科的专有协议,在其他厂家的设备上不支持该功能。

VRRP工作流程

在 VRRP 中有三种状态:

  • Initialize:初始化状态,在该状态的下,VRRP 为不可用,此时的设备处于刚刚启动或者设备检测到了故障。
  • Master:主路由的状态,在该状态下的设备为主要的工作设备。
  • Backup:备路由的状态,在该状态下的设备处于闲置状态,也就是说此时的设备并没有太多的任务需要做。

他们的简单工作过程是这样的:

对终端有一个虚拟网关,终端设置网关时便设置为虚拟网关的 IP 地址,而在虚拟网关后有多台设备,Master 设备作为主要工作者,他会告诉所有设备此时他是领导者,他的 IP 地址、Mac 地址是多少,只要发到虚拟网关的数据包都发送给他,由他转发。一旦 Master 故障了,Backup 马上接替工作告知其他设备,今天它是领导,所有发往虚拟网关的数据包都给他。

具体的工作流程是这样的:

1.开启功能

在设备启动了 VRRP 功能之后,设备进入初始化的状态。当连接其他设备的接口处于 UP 的状态之后,设备会先查看自己的优先级值,若是小于 255 则首先将自己切换到 Backup 的备份状态。

2.切换第一个状态

在启动了 VRRP 之后有一个 Master_Down_Interval 计时器也随之启动开始计时(因为主路由一旦启动便会主动的为备用路由发送消息,告知它还是正常的,若是备用路由有一段时间没有收到这样的消息了,他就会发包去询问主路由的情况如何,而这个计时器便是计算这个时间间隔所用的),在 VRRP 中该时间的默认值为 3 秒,计时器一旦超时了便会认为网络中的 Master 的失效了、不工作了、偷懒了或者是故障了。

3.选举 Master

同一个工作组的其他设备收到 VRRP 的通告之后就会获取报文中的信息由此来做这样的判断(假设其他设备处于 Backup 的状态,下文讨论 Master 的状态):

收到的报文中设备的优先级高于自己的优先级,并且自己此时本就是 Backup 的状态,便保持状态不变
收到的报文中设备的优先级低于自己的优先级,便去检查自己是否开启了抢占模式:
若是自己开启了抢占模式,那么将自己切换成 Master 的状态
若是自己没有开启抢占模式,并且此时自己又是 Backup 的状态,那么则保持状态

一般在配置时有先后顺序,首先配置的设备按照这样的过程便成为了 Master。但是若是同一个工作组中有多台设备,而设置又是同时配置,那么此时会出现这样的特殊情况,一开始大家都没有收到 Master 的通过(因为大家都处于 Backup 的状态),所以大家都切换成 Master 的状态,然后相互发送通告。

通告中 Master 设备的优先级高于自身设备的优先级,则将自己修改为 Backup 的状态;
通告中 Master 设备的优先级低于自身设备的优先级,保持状态,不做任何的改变;
通告中 Master 设备的优先级与自身设备的优先级相同,那么便对比 Master 的 IP 地址:
若是对方 IP 地址大于自己的 IP 地址那么将自己切换成 Backup 的状态
若是对方 IP 地址小于自己的 IP 地址那么将保持自己的 Master 状态

当然这里还有这样的一种特殊情况就是虚拟网关的 IP 地址就是他自身的 IP 地址,那么经过初始化状态状态之后直接将自己切换为 Master 状态。

4.发送通告
作为 Master 的设备会非常的繁忙,他们会做这样的人一些事情:

只要发送向虚拟 IP 地址的 ARP 请求都会转发给他,由他做出响应。
如果发送向虚拟 IP 地址的 IP 数据报文请求,他会直接丢包,因为是虚拟 IP 地址,是逻辑意义上的一台设备,但是若是这个虚拟 IP 地址就是其本身的 IP 地址,他会以自己的身份去响应。
在局域网中是通过数据帧传递消息,通过 MAC 地址找到这台虚拟网关设备,需要通过他转发数据与其他网络通信,Master 负责转发数据

最后 Master 还有最重要的事情需要做,就是定时的向其他设备发送通告,在通告中富含有设备的优先级情况以及自己的工作状态,其他的备用设备收到通告之后由此来判断设备能否胜任工作。

其中这个定时的时间间隔叫做 Advertisement_Interva 通告区间。有个 Timer 来计时,一旦超时就发送通告然后重置 Timer,如此反复。其默认值是一秒。

5.Master 的变化

当 Master 因为负载过高或者其他等等的情况会主动放弃 Master 的状态,此时 Master 发送的通告中会将自己的优先级设置为 0。这样备份设备收到数据包之后就会将自己切换成 Master。而通过这样情况来切换成 Master 的时间叫做 Skew time。这个时间的值:Skew time=(256-备份设备的优先级值)/256

还有一种情况也就是 Master 设备真的出故障了,没办法工作了。Backup 设备中的 Master_Down_Interval 计时器超时了,便知道主设备无法工作了,因为他都没有办法给我发送报文了肯定是出事了,所以会将自己切换成 Master。而上文中说它的默认值是 3s。

VRRP配置网关冗余

网络的冗余_第1张图片
按拓扑图配置端口ip和路由:
r1

r1(config)#inter e0/1
r1(config-if)#ip address 202.205.1.1 255.255.255.0
r1(config-if)#no shutdown
r1(config-if)#exit
r1(config)#inter lo 0
r1(config-if)#ip address 202.203.1.1 255.255.255.0
r1(config-if)#no shutdown
r1(config-if)#exit
r1(config)#inter e0/0 
r1(config-if)#ip address 202.204.1.1 255.255.255.0 
r1(config-if)#no shutdown
r1(config-if)#exit
配置ospf路由:
r1(config)#router ospf 10
r1(config-router)#network 202.203.1.0 0.0.0.255 area 0
r1(config-router)#network 202.204.1.0 0.0.0.255 area 0
r1(config-router)#network 202.205.1.0 0.0.0.255 area 0

r2

r2(config)#inter e0/0
r2(config-if)#ip address 202.204.1.2 255.255.255.0
r2(config-if)#no shutdown
r2(config-if)#inter e0/1
r2(config-if)#ip address 192.168.1.2 255.255.255.0
r2(config-if)#no shutdown
r2(config-if)#exit
r2(config)#router ospf 10
r2(config-router)#network 202.204.1.0 0.0.0.255 area 0
r2(config-router)#network 192.168.1.0 0.0.0.255 area 0

r3

r3(config)#inter e0/0 
r3(config-if)#ip address 202.205.1.2 255.255.255.0
r3(config-if)#no shutdown
r3(config-if)#exit
r3(config)#inter e0/1
r3(config-if)#ip address 192.168.1.3 255.255.255.0
r3(config-if)#no shutdown
r3(config-if)#exit
r3(config)#router ospf 10
r3(config-router)#network 202.205.1.0 0.0.0.255 area 0
r3(config-router)#network 192.168.1.0 0.0.0.255 area 0

pc1

pc1(config)#inter e0/0
pc1(config-if)#no switch
pc1(config-if)#ip address 192.168.1.4 255.255.255.0
pc1(config-if)#no shutdown
pc1(config-if)#exit
pc1(config)#no ip routing 
pc1(config)#ip default-gateway 192.168.1.2

配置之后,此时是可以ping通r1的环回地址,但是当r2出问题之后,pc便ping不通了,这就是单点故障。

配置 VRRP
r2

r2(config)#inter e0/1
r2(config-if)#vrrp 1 ip 192.168.1.1
r2(config-if)#vrrp 1 priority 100
r2(config-if)#vrrp 1 preempt
r2(config-if)#no shutdown
r2(config-if)#exit

r3

r3(config)#int e0/1
r3(config-if)#vrrp 1 ip 192.168.1.1
r3(config-if)#vrrp 1 priority 80
r3(config-if)#vrrp 1 preempt  //开启抢占模式
r3(config-if)#no shutdown
r3(config-if)#exit

在pc上重新设置网关:

pc1(config)#inter e0/0
pc1(config-if)#ip default-gateway 192.168.1.1

开启了抢占模式之后,一旦原 Master 设备回复正常能在第一时间将自己修改为 Master,把当前替补的设备踢回 Backup 的状态。

查看vrrp:

r3#show vrrp

你可能感兴趣的:(网络,网络)