BGP(Border Gateway Protocol)是用于自治系统(Autonomous Systems)之间交换路由信息的协议,BGP可以设置路由策略,如政策、安全和经济上的考虑。

我们可以利用BGP协议在Internet的BGP路由器插入到Virtual IP Address的路由信息。在不同区域的LVS集群向它附近的BGP路由器广播到Virtual IP Address的路由信息,这样就存在多条到Virtual IP Address的路径,Internet的BGP路由器会根据评价函数选出最近的一条路径。这样,我们可以使得用户访问离他们最近的LVS集群。当一个LVS集群系统失效时,它的路由信息自然不会在Internet的BGP路由器中交换,BGP路由器会选择其他到Virtual IP Address的路径。这样,可以做到抗灾害性(Disaster Tolerance)。


图2.6:基于BGP的地理分布服务器集群调度例子

下面我们举一个基于BGP的地理分布服务器集群调度例子,它也是我们在实验室中测试的。测试的例子如图2.6所示,R11、R22分别在不同自治系统AS1和AS2中的Internet服务提供商(Internet Service Provider),R31和R32表示在自治系统AS3中两个ISP。两个LVS集群系统分别放置在两个不同数据中心IDC1和IDC2中,LB1和LB2分别是两个LVS集群系统的负载调度器,它们对外提供网络服务的IP地址为10.101.4.1。在第一个集群中,请求被调度到服务器10.101.5.11和10.101.5.12执行。在第二个集群中,请求被调度到服务器10.101.6.11和10.101.6.12。10.101.4.1是在自治系统AS5的网络10.101.4.0/24中。LB1上的BGP服务进程将网络10.101.4.0/24的路由信息广播到邻近的AS1,LB2上的BGP服务进程将网络10.101.4.0/24的路由信息广播到邻近的AS2中。

我们在R31端口10.101.3.1相连的BGP路由器上查到AS5的自治系统路径为3→1→5。在与R32端口10.101.3.9相连的BGP路由器上查到AS5的自治系统路径为3→2→5,并在该路由器上访问10.101.4.1上提供的Web服务,是由服务器10.101.6.11处理的。当我们关掉LB2后,在该BGP路由器上查到AS5的自治系统路径变为3→1→5。