平台人生
作者平台人生2018-12-20 17:03
软件开发工程师, 平台人生

SDN-高可用浅析(VRRP)

字数 2042阅读 6592评论 2赞 9

写在前面

在软件定义网络中,高可用的合理实现,是一个最具鲜明特色的例证。高可用是分布式系统架构设计中必须考虑的因素之一。
本文将从高可用的应用场景入手,通过对场景实现的描述,到keepalived软件的原理,再到VRRP协议的剖析,将高可用某些应用向大家做简要介绍。


高可用应用场景

Keepalived实现集群高可用使用场景为主备集群高可用,以公有云现有的网络产品为例,VRRP协议在部署中的应用见下图:
qid5t8xvkjb

qid5t8xvkjb

同类型的网关增加,只增加物理接口及网段,不增加VLAN以及IP地址;
同类型网关间通过VRRP协议进行主备部署与探活,如需扩容则在集群下新增一对设备即可。其高可用实现的原理如下:
0zbzdw9goy9j
0zbzdw9goy9j

网关设备与互联NLA交换机互联,一对网关间运行VRRP协议(keepalived),完成主备集群部署。
网关1和网关2的VRRP状态均设置为backup,且设置为非抢占模式,默认情况下网关1的优先级为100,网关2的优先级为50。后期决定主备关系则依靠控制台下发“主备状态”至网关来决定。主备设备间keepalived探测间隔为1S,默认备机3次探测不到主机地址便发生切换。此外,因配置了garp_master_delay 1,故会延时1S发送master节点的arp更新报文。
如果发生故障,例如:网关1与交换机互联线路中断,则最迟4s后网关2接管流量,交换机上关于网关1的路由消失。访问流量切换至网关2。
由此,一条完整的由VRRP协议主导的探活切换机制就呈现了出来。

keepalived软件

上文提到某些网关设备的高可用,是通过keepalived实现的。那么keepalived又是什么:
Keepalived的实现基于VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)。
Keepalived是一款用c语言编写,基于GNU GPL开源许可协议开发的开源软件。
Keepalived的功能主要包括两方面:
(1)实现服务高可用: Keepalived是基于vrrp协议的一款高可用软件,Keepalived服务器集群共享一个虚拟IP,同一时间只有一个服务器占有虚拟IP并对外提供服务,若该服务器不可用,则虚拟IP漂移至另一台服务器并对外提供服务;
(2)实现服务器集群状态监控:keepalived可以对LVS服务器集群做监控。若对LVS若应用服务器不可用,则keepalived将其从集群中摘除,若应用服务器恢复,则keepalived将其重新加入集群中。
Keepalived可以单独使用,即通过IP漂移实现服务的高可用,也可以结合LVS使用,即一方面通过IP漂移实现LVS负载均衡层的高可用,另一方面实现LVS应用层的探测。
keepalived是模块化设计,不同模块负责不同的功能,下面是keepalived的核心组件 :

  • WatchDog 负责监控 checkers 和 VRRP 进程的状况。
  • Checkers 负责真实服务器的健康检查 healthchecking,是 keepalived 最主要的功能。
  • VRRP Stack 负责负载均衡器之间失败切换 FailOver。
  • IPVS wrapper 用来发送设定的规则到内核 ipvs 代码。
  • Netlink Reflector 用来设定 vrrp 的 vip 地址等。

7c8xsj7i6if

7c8xsj7i6if

在 Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会枪占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快可以小于1秒。

VRRP协议

通过对keepalived的简要介绍,我们了解了在某些高可用中的软件定义的实现途径。
但是,在keepalived中起到关键作用的VRRP又是什么呢:
VRRP是为了解决静态路由的高可用。
VRRP由IETF提出,目的是为了解决局域网中配置默 认网关的单点失效问题,遵循RFC3768协议标准。
VRRP虚拟路由器由多个VRRP路由器组成,每个VRRP路由器都有各自的IP和共同的VIP、虚mac和VRID(0-255)。
VRRP路由器通过竞选成为MASTER,占有VIP,对外提供路由服务,其他成为BACKUP,MASTER以IP组播(组播地址:224.0.0.18)形式发送VRRP协议包,与BACKUP保持心跳连接,若MASTER不可用(或BACKUP接收不到VRRP协议包),则BACKUP通过竞选产生新的MASTER并继续对外提供路由服务,从而实现高可用。
配置VRRP时,需要路由器支持VRRP功能。同时VRRP管理的机器,要在同一个二层网络下,或同一个VLAN下。
kdffzu333jc

kdffzu333jc


写在最后

通过本文,笔者旨在通过对高可用某些应用实现方式的介绍,让大家对SDN这个概念能有一个更加感性的认识。
其实,看似晦涩的它,并没有那么难懂。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

9

添加新评论2 条评论

weiwei000111weiwei000111网络工程师, 某支付公司
2021-02-17 23:32
谢谢分享
wuwenpinwuwenpin软件开发工程师, 南京
2018-12-20 17:57
好东西,收藏了!
Ctrl+Enter 发表

本文隶属于专栏

作者其他文章

相关文章

相关问题

相关资料

X社区推广