基于Linux平台配置浮动IP实现跨地域容灾的研究与实现
2018-12-27王辉静刘君尧刘云霞汪卫明
王辉静,刘君尧,刘云霞,汪卫明
(深圳信息职业技术学院,广东 深圳 518172)
容灾技术是保证计算机系统高可用性的重要技术之一。当生产站点发生故障时,会自动或者手动切换到容灾站点,以便继续提供服务。当进行容灾切换时,如果对外提供服务的IP地址发生了变动,那么外部访问用户就需要知晓系统是否发生了容灾切换,以便确认使用生产站点的服务IP地址还是容灾站点的服务IP地址来访问系统,给正常的访问带来了不便。因此,此时保持系统对外提供服务的IP地址不变就尤为重要了,当系统发生容灾切换时,要确保将生产站点的对外服务的IP地址,同时也切换到容灾站点上。
为了实现这种切换,当前主要用到的技术有:(1)采用DNS,通过域名来屏蔽生产站点和容灾站点不同的IP地址。(2)将生产站点和容灾站点之间的网络直接大二层打通,采用二层组网+arp方式进行IP地址的切换。上述两种方案都存在一些问题和缺陷,DNS方案需要单独维护DNS成本较高,并且整体切换的效率比较低(一般为分钟级或者小时级);大二层打通组网方案对网络要求较高,需要在生产站点和容灾站点之间搭建VPN,有额外的成本支出[1]。
本文主要介绍了通过开放式最短路径优先(Open Shortest Path First,OSPF)网络协议,通过与路由器的交互,实现跨3层组网下的IP地址切换,能够有效实现异地跨地域故障切换,从而有效提升系统应用稳定性。
1 容灾系统的组网描述
容灾系统一般生产站点和容灾站点会部署在不同的地域(比如北京部署生产站点、上海部署容灾站点)。站点之间由于跨地域,一般采用3层组网。一般实现的组网图如图1所示。
在3层组网容灾系统中,用户访问或者两个站点之间通信,都是通过3层网络进行,容灾系统对外提供的服务IP地址,对于用户是固定的。
2 OSPF协议介绍
OSPF是一种链路状态路由协议,链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。
图1 容灾系统3层组网示意
OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,通过Dijkstra算法来生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。OSPFv2是由RFC 2328定义的,OSPFv3是由RFC 5340定义的。
OSPF协议具有以下特点[2]:
(1)OSPF把自治系统(Autonomous System,AS)划分成逻辑意义上的一个或多个区域。
(2)O S P F通过链路状态通告(L i n k S t a t e Advertisement,LSA)的形式发布路由。
(3)OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一。
(4)OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。
OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。所谓的路由域,是指一个AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
OSPF协议工作流程如图2所示。
图2 OSPF协议工作流程示意
OSPF协议工作主要分为四大步骤:(1)寻找邻居。通过两次握手建立起邻居关系,进入邻接关系确立阶段。(2)建立邻接关系。通过双方的路由器ID来确定邻接关系,路由器ID大的为主设备。确定好邻接关系后,从设备以主设备的DD报文序列号向主设备发送DD报文,并转换自己接收DD报文的接口为exchange状态;主设备收到从设备DD报文后也将收到DD报文的接口转换为exchange状态。(3)链路状态同步。主设备开始向从设备发送带有LSA header字段的报文,对从设备进行数据更新,测试链路状态同步邻居为FULL状态。(4)计算路由。
3 基于OSPF实现跨三层浮动IP地址原理
将需要配置浮动IP地址(系统对外提供服务的IP地址)的Linux服务器模拟为一台路由器,并在该Linux服务器上运行OSPF协议,通过OSPF协议与真正的路由器进行交互,将路由转发到配置浮动IP的服务器。同时在生产站点和容灾站点配置相同的IP地址(即浮动IP地址),通过OSPF路由的选择,在生产站点发生故障时,通过OSPF路由的重新计算,自动将路由转发到容灾站点的相同IP地址。即正常状态下,路由转发到生产站点;当生产站点发生故障时,通过OSPF协议,重新计算路由,将路由转发到容灾站点[3]。
4 实验测试
测试采用组网示意如图3所示。
图3 测试组网示意
配置为3个OSPF区域,正常情况下,由Linux服务器A发布VIP,当Linux服务器A出现故障时,OSPF路由可以自动选择到Linux服务器B。
测试结果如表1所示。
表1 测试结果
5 结语
通过OSPF协议进行跨3层的IP地址浮动,具有快速切换,组网简单,无额外成本的优势,在异地容灾系统中可以参考使用。