一、背景说明 某客户,有两个数据中心,业务系统是互备状态,任何一个数据中心业务故障后,能快速切换到备数据中心。各站点到两个数据中心核心交换机走的是EBGP路由协议。 二、设计过程 现主备数据中心各有一台我司AD设备,原计划通过两台采用集群方式来实现,但是主备数据中心横向内部只做业务维度的数据同步,业务之间通过专线IP地址无法互通。导致两台AD无法组件集群(没有组建心跳线的线路)。故最终采用两个数据中心的AD独立部署的方式来开展。 (1)主备中心分别有1台AD,初始状态为AD1和AD3为主机 (2)各路公司交换机发布BGP的接口包括与客户端互连的接口、交换机之间互连的接口,所有交换机完成预配。 (3)AD发布BGP的接口为与核心交换机互连的接口。 (4)主备AD通过IP Anycast技术,将虚拟服务发布到BGP中,各公路公司通过BGP优先级设定主数据中心AD发布的虚拟服务的优先级高于备数据中心AD发布的虚拟服务。一旦主数据中心业务检测异常(检测方式通过构造http、数据库等多维度)虚拟IP自动删除注入BGP中的路由信息,实现各公路公司通过路由选路的方式实现访问备数据中心,当主数据中心业务恢复后,主数据中心的IP重新注入到BGP中,通过路由选路功能实现各分公司访问主数据中心的效果。 三、具体配置实现方式 AD1配置为例(AD3基本一样): 这里说明主数据中心A的AD1和直连的核心交换机走EBGP协议,备数据中心B的AD3和直连的核心交换机走EBGP协议。 1)路由和接口配置: VLAN74做EBGP上互联,VLAN75做业务口数据到数据中心下联最终服务侧。到内网服务器侧走静态路由。 2)BGP配置 注意:启用IP any cast路由注入功能,对用的BGP(OSPF也一样)上的静态路由重发布要开启,否侧注入不成功。 邻接关系建立 3)查看路由表 4)修改健康检查敏感度提高BPG收敛时间,并链接节点池 5)建立虚拟服务 6)路由注入 注意点:选择【该IP发布的所有虚拟服务可用】,也就说一旦有一个虚拟服务不能用了,就不在注入BGP路由表里面。 四、遇到的问题(走了比较多的坑,很多人也不知道): 问题1:IP anycast填写的网关IP要填写啥。 答复:填写本地AD上的BGP配置界面的【路由器ID 】 问题2:AD可否与多跳建立BGP关系。 本次使用的接口IP作为routeID,且和邻居是直接链接的故条数是1,是可以建立邻接关系的。 原本和客户的链接方式是:BGP1----BGP2,使用routeID来链接的是2跳,我司的AD发布的BGP默认条数为255跳。但是AD的BGP状态一直是connect 和openconfirm状态之间切换。后来在HW的工程师协助下,怀疑是ebgp-multihop问题(华为修改跳数为3也不行),最后修改成了直连接口做Route-ID。即1跳就好了,可能是解决多跳的姿势不对。 参考资料:AD修改跳数的方法 https://support.sangfor.com.cn/cases/list?product_id=31&type=1&category_id=14792&isOpen=true OSPF+anycast的案例 https://tskb.atrust.sangfor.com/plugin.php?id=menu_tags:index&mod=viewdatabase&tid=10445&search=65507a31496758707a6777502d&highlight= |