双机热备是一种概念,各种设备均可以采用此概念进行部署,比如三层交换机 、路由器、防火墙、服务器等。如果仅部署一台设备,难免会有单点故障的风险,所以部署两台,一主一备较为保险,一台坏了,另一台自动“顶上”,保证业务不中断,这就是双机热备。最常见的双机热备就是同时带着同一品牌的两台手机,A坏了,B登录A的账号,通讯录与邮箱会同步过来,与保证业务不中断。
NOTE:
- 等保三级以上要求必须要有冗余设备,关键设备必须是一主一备的,这样才能保证业务的稳定性。双机热备是网络工程师必须熟练掌握的技术之一。
- 防火墙的双机热备其它设备不同,防火墙的双机热备需要一条专门的备份通道,用于两台防火墙之间的协商主备状态,以及会话等状态信息。双机热备主要包括主备备份和负载分担两个场景。主备备份指正常情况下仅由主用设备处理业务,备用设备空闲;当主用设备接口、链路或整机故障时,备用设备切换为主用设备,接替主用设备处理业务。负载分担也可以称为“互为主备”,即两台设备同时处理业务。当其中一台设备发生故障时,另外一台会立即承担其业务,保证业务不中断。
讲双机热备之前,必须先讲链路聚合和VRRP,因为双机热备是在这两个技术的基础上进行实现的。
2.1 链路聚合的基本概念
因为以太网的信息传输率主要有:10Mbit/s、100Mbit/s、1000Mbit/s(1Gibt/s)、10Gibt/s、100Gibt/s,它们之间的关系呈10倍递增。
-
发送/接收速率为10Mbit/s的以太网端口称为标准以太网端口。
-
发送/接收速率为100Mbit/s的以太网端口称为快速以太网端口,简称FE(fast ethernet)。
-
发送/接收速率为1000Mbit/s的以太网端口称为千兆以太网端口,1000兆达到了吉,所以也称GE(gigabit ethernet)。
-
发送/接收速率为10Gbit/s的以太网端口称为万兆以太网端口,一吉等于1000兆,十吉就等于十个1000兆,十个1000就是一万,所以这种接口就被称为万兆以太网端口。
-
发送/接收速率为100Gbit/s的以太网端口称为百吉端口。
如果一条链路的两头端口是GE端口,那么这条链路就是GE链路;如果一条链路的两头端口是FE口,则这条链路就是FE链路,如此类推。
2.2 链路聚合产生的背景
现在有10台终端 ,汇聚层交换机与终端连接时使用提FE接口,速率可达100Mbit/s,汇聚层与核心交换机之间使用GE接口,速率可达1000Mbit/s。现在终端增加到20台,用户的带宽总需求是2G,但一条GE链路只能最多提供1G的带宽,怎么办呢?
总不能把GE接口从交换机拿出来换一个万兆的吧?这是不可能实现的。换交换机成本又太高了,这时候就在汇聚层与核心层之间连接两根GE链路,将这两根链路逻辑上绑定到一起,这样带宽就可达到2Gbit/s,这样即满足了需求,也没有增加成本,一举两得!哦不!应该是一举三得,为什么这么说呢?当一条链路坏了之后,另一条链路还可以继续工作,只不过速度稍微慢一些。一得满足需求,二得不增加成本,三得冗余。如果空闲的口比较多的话,多个口做聚合也是可以的,这样速率更高。
理论上两个GE接口聚合带宽可达2Gbit/s,但实际的情况是小于2Gbit/s的。
2.3 链路聚合适用的场景
本文中所讲的链路聚合针对的仅是以太网。
链路聚合可以应用在交换机与交换机之间、交换机与服务器之间、交换机与路由器之间,服务器与服务器之间等等。服务器与服务器做链路聚合的情况比较少见,为什么?从原理上来看,因为服务器不过就是性能高一点的计算机罢了,我们主要还是利用它的计算性能;但是从应用的角度来看,服务器的地位就高了,我们要保证服务器的可靠性,所以服务器与交换机之间做链路聚合的场景比较常见。
2.4 链路聚合的原理
从理论上讲,同一聚合链路中的各成员链路的带宽可以是不同的,但实际上,由于实际难度和实现成本等方面的原因,我们总是要求各成员的链路带宽保持一致。
发送方交换机:
第一步:来自交换机内部的数据帧进入到eth-trunk口的队列
第二步:通过帧分发器分发给子接口,这个分发是基于某种算法,从这个角度来看,帧分发器颇有点负载均衡的意思。
接收方交换机:
第一步:接收方子接口收集来自来自发送方交换机的数据帧
第二步:收集之后统一在帧收集器“集合”,某一个帧完全进入帧收集器之后就把这个帧送到接收队列。
2.5 链路聚合的配置思路
-
创建eth-trunk口,两端的编号要一致。
-
配置模式:手工或者自动
-
将物理接口加入到eth-trunk口当中
-
设备允许通过的vlan
3、VRRP
3.1 VRRP的工作过程
VRRP是一种容错协议,它保证当主机的下一跳路由器(默认网关)出现故障时,由备份路由器自动代替出现故障的路由器完成报文转发任务,从而保持网络通信的连续性和可靠性。
将两台路由器的的下行接口划分在一起,形成一个VRRP备份组。VRRP备份组就相当于一台虚拟路由器,这个虚拟路由器有自己的IP和MAC,VRID是VRRP备份组的ID。所以,局域网的主机可以将默认网关设置为VRRP备份组的虚拟IP地址。在局域网的主机看来,它们就是与虚拟路由器进行通信的,然后通过虚拟路由器与外部网络进行通信。
VRRP备份组的多个路由器会根据管理员指定的备份组优先级确定各自的状态。优先级高的是master,其它的为backup。VRRP备份组的状态决定了路由器的主备状态。VRRP备份组状态为master的路由器为master路由器,VRRP备份组状态为backup的路由器为backup路由器。Master正常时,master工作,master故障之后,backup路由器立刻顶上。
管理员在路由器配置完VRRP备份组和优先级之后,VRRP备份组会短暂的工作在initialize(初始化)状态,如果接口状态正常的话并收到接口up的消息之后,会立即切换成backup状态,在bakcup状态等待计时器超时,超时之后立马切换为master,所以谁的等待计时器最短,谁就成为master,这其实里面并没有优先级的事儿。只不过,优先级越大,计时器越短,所以通常是优先级大的成为master!
选举成功之后,master路由器会立即周期性的向VRRP备份组内的所有bakcup成员组播宣告自己的优先级和master状态,宣告自己已经这个组内的“王”。
同时,master还会发送ARP报文,将VRRP备份组的虚拟IP和MAC通知给与它连接的交换机。
当master路由器发生故障之后,它将无法发送VRRP报文通知backup路由器。如果backup路由器在定时器超时后仍然收不到master发送的VRRP报文,则认为master路由器故障,从而将自身的状态切换为master。还有一种情况:当master路由器主动放弃master地位(如master路由器退出vrrp备份组)时,会立即发送优先级为0的VRRP报文,使用backup路由器快速切换成master路由器。
当VRRP备份组的状态切换完成后,新的master路由器会立即发送携带VRRP备份组虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接设备(下行交换机)中的MAC地址表。
当原master路由器故障恢复之后,优先级肯定会高于现在的master路由器。如果配置抢占功能,原master会在抢占定时器超时后将状态切换成为master,重新成为新的master路由器;如果没有配置抢占功能,原master路由器将仍然保持backup状态。
3.2 VRRP的不足
当两组VRRP同时运行时,会导致来回的流量往返的路径不一致,而导致业务流量中断。
VRRP备份组之间的相互独立的,当一台设备出现多个VRRP备份组时,它们之间的状态无法同步。网络设备和安全安全设备为了解决这个问题走向了两条不同的道路,我们主要还是介绍防火墙如何解决这个问题的。
VGMP的产生解决了这个问题,VGMP被称做是组管理协议,用来实现对VRRP备份组的统一管理,保证多个VRRP备份组状态的一致性。我们将防火墙的所有VRRP组加入到多个VGMP组当中,由VGMP组来集中监控并管理所有的VRRP备份组状态。如果VGMP级检测到一个VRRP组的状态发生变化,则VGMP组会控制组当中所有的VRRP备份组统一进行状态切换,保证各个VRRP备份组状态的一致性。
VGMP组有状态和优先级两个基本属性,并且有三条基本的运行原则:
-
两台防火墙的VGMP组状态是通过相互比较优先级的方式来决定的,优先级更高的VGMP组为active,优先级低的VGMP组为standby。
-
VGMP组的状态决定了组内VRRP备份组的状态,也决定了防火墙的主备状态。
-
VRRP备份组的状态变化会影响到VGMP的优先级,一旦VRRP备份组内的线路故障则会导致此VRRP组所在的VGMP组优先级降低,并且VGMP的状态也会发生改变,VGMP的优先级为降低2.
总结:
VGMP刚启动的时候,VGMP的状态决定了VRRP组的状态,在VGMP运行的过程当中,VRRP组的状态又决定了VGMP组的状态,只是一个先后问题,并不存在冲突。
我们在FW1上将VRRP备份组1和VRRP备份组2都加入到状态为active的VGMP组里,在FW2将VRRP备份组1和VRRP备份组2加入到状态为standby的VGMP组里面。由于VGMP组的状态会决定组内VRRP备份组的状态,也决定了防火墙的主备状态,因此,状态为active的VGMP组里面的FW1在两个VRRP备份组的状态就都为active,这个active是即代表是备份组1的active,也代表了是备份组2的active,FW2则反之,所以上下行的业务流量都会被引导到主用设备FW1转发。