1.现网环境描述

①全网运行IGP OSPF,实现全网全通,区域划分如图所示

②核心层路由器开启环回口x.x.x.x/32并宣告进OSPF Area 0

③远程站点帧中继建立全互联PVC

④原网络所有设备都有23条路由(直连+OSPF)

⑤现要求从现网环境迁移到Internal/External BGP核心架构


2.迁移前分析

2.1 OSPFEIGRP的区别

①全网OSPF与EIGRP最大的差别在于,即便路由表中的OSPF路由被EIGRP取代,也不会影响OSPF LSA的扩散,在该网络环境下并不强求修改BGP的AD值

②OSPF如果利用passive-interface中断邻居关系,不像EIGRP那样触发发送Goodbymessage,其邻居直到邻居关系超时后才会中断邻接关系

③分割IGP域之前依然要求区域内设备能够抵达区域外部网络,如果OSPF下发的缺省路由,会以外部路由的形式扩散至整个OSPF域

④远程站点不能像EIGRP那样通过关闭水平分割实现IGP路由相互备份

2.2 出现的主要问题及解决办法

(1)邻居关系单边中断

①这里与部署EIGRP时相同,在分割IGP域之前,必须先确保每个区域内路由器有缺省路由以抵达外部区域,区域边界路由器及核心层路由器通过BGP提供可达性

②单边邻居关系中断时,会导致流量的流入和流出依靠不同协议(OSPF、BGP),在该网络环境中无明显危害

(2)缺省路由影响全网

①如果区域内路由器数量不多,可以考虑静态缺省路由的使用

②某个区域边界路由器产生的缺省路由如果不可避免地影响其它区域,此时需要保证BGPCore以及各个区域边界路由器的缺省路由为BGP缺省而不能被OSPF取代,这样,即便本区域内的设备学习了不必要的缺省路由,路由出区域时必须通过区域边界路由器。因此,只要区域边界路由器及BGP Core的缺省路由指向不受改变,不同区域的可达性以及外部网络的可达性依然可以保证

具体的做法为配置BGP AD值小于OSPF路由

当然,这会导致BGP路由完全取代OSPF路由,但是在OSPF环境下这并不会造成直接的问题

注意:

在进行IGP域分割前必须确保所有区域边界路由器都发布了IGP缺省路由并被正确学习,否则在分割IGP域时会导致网络中断

例如R1发布的OSPF缺省路由虽然会被R15学习,但是当R1、R2将OSPF邻居关系中断后,R15无法获得缺省路由,而R15又未开启BGP,因此Location A网络此时在R15不可达

(3)远程站点hubs无法相互备份IGP

①NBMA网络

由于存在DR、BDR竞选,NBMA网络中路由有效性要求同时具有有效的LSA-1以及LSA-2

假设上图中R1为DR,R3为DR-Other,此时如果R1、R3之间的PVC中断,将导致R1与R3之间的OSPF连接被断开,这将导致R1发布的LSA-2的attached router中删除R3。这导致在R2、R4看来,R3的LSA是无效的

可见,原网络的设计无法提供较好的容错性,在网络改造时,建议对远程站点的OSPF连接方式同样进行改造以防止PVC中断导致的路由中断

②P2MP网络

此时没有DR、BDR竞选而且不要求修改原有的IP地址规划,当某条PVC失效时,路由不会因此而失效

如上图中,R1、R3间PVC失效时,R3的路由可以通过R2、R4通告,此时对于R1而言,网络逻辑拓扑如下:

P2MP可以较好地解决PVC故障导致的路由中断问题,但是同时带来了复杂性以及冗余的路由


平滑过渡:

由于修改OSPF的网络类型不可避免地需要中断邻接关系,路由也会面临短暂中断。如果对于网络业务不间断性要求较高,此时建议先采用EIGRP在路由层面取代OSPF,待OSPF收敛完毕后清除EIGRP进程


3.迁移步骤

3.1 建立BGP对等体关系

(1)区域边界多台路由器建立iBGP对等体关系

①在如上拓扑中,指的是R1与R2,R7与R8,R3与R11

②首先运行BGP进程,配置其BGP Router-ID

③以其直连物理接口为源建立对等体关系

(2)核心层路由器建立全互联iBGP对等体关系

①在如上拓扑中,核心层路由器指的是R4、R5、R6、R10

②首先运行BGP进程,配置其BGP Router-ID

③以环回口为源建立对等体关系(neighbor指环回口地址,配置更新源地址为环回口地址)

(3)各区域与核心层直连设备建立eBGP对等体关系

①关注每一段DMZ中有几个eBGP对等体关系需要建立

②直接指定远端设备的直连物理接口为对等体地址

③不同区域间不建立eBGP对等体关系

(4)校验

校验每台设备的BGP会话数是否正确、对等体地址的指定是否无误

3.2 路由注入前准备

(1)next-hop-self

所有iBGP对等体间使用,使BGP通告的路由下一跳可达

(2)bestpath compare-routerid

确保BGP选路可预测

(3)metric-type internal

当核心层有多台设备连接同一区域时,核心层向区域发送的路由更新中应当携带MED值以反映核心层网络拓扑情况

MED取值为核心层设备通告的该路由的下一跳IGP metric

(4)BGP AD

为了确保后期发布OSPF缺省路由时各个核心层设备以及区域边界设备的缺省路由指向不发生变化,必须修改BGP的AD值(iBGP、eBGP)小于OSPF

3.3 注入BGP路由

(1)企业网出口下发BGP缺省路由

①R12、R13仅对其直连核心层路由器R4、R10发布BGP缺省路由

②检查BGP缺省路由学习、下一跳、路由表中BGP缺省的AD值

(2)各个区域边界路由器宣告区域路由

区域边界路由器通过BGP只宣告实际被需要的路由信息

3.4 分割IGP域

(1)企业网出口设备防止缺省路由倒灌

由于当前网络环境中,R12、R13本地并没有缺省路由,而是通过neighbor命令向eBGP Peer下发,因此OSPF的缺省路由会进入R12、R13路由表

这里可以采用的解决办法为:

①在R12、R13上关闭OSPF进程

or

②使用distribute-list防止缺省路由进入路由表

or

③写去往外网的静态路由防止被OSPF取代

(2)各区域边界路由器下发OSPF缺省路由

在此网络环境中,R1、R2、R3、R11、R7、R8、R9即为区域边界路由器,通过OSPF进程中default-informationoriginate命令产生缺省路由

由于各个区域边界路由器之前通过BGP学习到了来自R12、R13的缺省路由,此时并不强制要求添加always关键字

(3)校验缺省路由

此时,各个区域内路由器(R14、R15、R16、R17)应当存在一条或多条OSPF OE2缺省路由,指向各个区域的边界路由器

而各区域边界路由器以及核心层路由器上路由表中依然为BGP的缺省路由,缺省方向指向企业网出口或核心层路由器

(4)通过passive-interface中断区域间OSPF联系

逐个区域中断OSPF邻居关系并及时检查连通性(不包括核心层路由器)

(5)彻底分割

取消区域外部网络的宣告、取消passive-interface的配置,此时各个核心层路由器上也需要取消相关的宣告

配置完毕后,查看OSPF邻居关系建立数量是否符合预期

3.5 AD还原

各台运行BGP的路由器取消AD修改命令,通过clear iproute命令使AD还原

3.6 远程站点OSPF改造

(1)运行EIGRP

①从区域边界路由器开始向区域内方向依次开启EIGRP

②修改EIGRP外部路由AD为91(小于OSPF),以保证后续发布的缺省路由能够被EIGRP取代

③发布EIGRP缺省路由(BGP重分发),保证OSPF连接中断时,缺省路由依然使得当前设备能通向外网

④检查EIGRP邻居关系建立

⑤检查路由表中IGP路由学习

(2)修改OSPF网络类型

①将各台设备的OSPF网络类型修改为P2MP

②检查OSPF邻居关系建立

(3)还原OSPF

按照建立EIGRP的顺序依次关闭EIGRP进程

3.7 路由聚合

①在需要进行聚合的区域边界路由器上配置聚合命令,添加summary-only关键字

②校验

检查聚合路由的学习情况、下一跳等信息


实际部署拓扑以及配置流程都在附件中