1.网络环境描述
1.1 核心层
①核心层路由器为R3、R4、R6、R8、R9、R11
②核心层IGP使用EIGRP实现核心层路由可达
③以环回口建立全互联iBGP对等体关系
这里使用环回口建立对等体的原因在于提高稳定性,如果使用物理接口建立BGP对等体关系,一旦物理接口down,BGP对等体关系也随之中断
而采用环回口,即便物理接口down,通过IGP依然可能能够通过其它路径抵达环回口,进而不影响BGP会话
建立全互联iBGP对等体关系是因为每台核心层路由器由于都可能成为其它路由器转发流量时的中间传输设备,因此每台核心层路由器都必须有全网的路由
④每台核心层路由器都需要建立3个路由协议进程
核心层BGP进程、核心层EIGRP进程、路由器所在区域EIGRP进程
1.2 核心层与区域间
①核心层EIGRP与该路由器所在区域的EIGRP进程相互独立,不做重分发
如R3的EIGRP 100与EIGRP 101,这两个EIGRP相互独立
②核心层路由器向其所在区域下发缺省路由使区域内路由器能够抵达核心层以及其他区域
如R3上通过EIGRP 101产生EIGRP缺省路由
③区域内的路由前缀通过宣告或重分发的方式进入BGP进程
为了增加可控性,建议使用宣告的方式使区域内前缀进入BGP进程(如果使用重分发,需要过滤不必要的路由,尤其是区域IGP进程产生的缺省路由)
1.3 区域内
①区域内通过 IGP实现可达性
②区域内去往外部网络依靠缺省路由
1.4 路由
(1)前缀数
①区域内路由器拥有整个区域的路由信息加上由所属核心层路由器下发的缺省路由
②核心层路由器拥有整网路由
(2)next-hop-self的必要性
核心层路由器在将所属区域内通过IGP学习到的路由宣告进BGP进程时,其NEXT_HOP将继承原路由的下一跳
该路由在通告给其它核心层路由器时不会改变
由于不同EIGRP进程间相互独立,核心层其它路由器无法抵达该路由的下一跳
因此,所有核心层路由器在建立对等体关系时,都需要配置next-hop-self以防止路由失效
(3)MED
区域内路由通过宣告、重分发方式进入BGP进程时,MED会继承原路由的metric值
路由在传递给其它iBGP peers时,会携带MED属性,以此反映区域内的拓扑情况
(4)bestpath compare-routerid的必要性
在Cisco的BGP实现中,为了提高选路的可预测性,应当防止“最先通告的”路由选路的比较,因此建议配置bgp bestpath compare-routerid
2.网络分析
2.1 Path selection & Routingpolicy
(1)默认选路
①何时比较
当一个区域有多台核心层路由器或者有多个区域通告了相同的前缀时,需要依靠选路进程执行最佳路劲抉择
②主要选路属性
a.比较MED
由于区域内路由宣告进BGP进程时携带了区域内的metric,当某个前缀有多条路径时,通过MED选择最佳路径
b.比较到下一跳IGP开销
当MED相同时,比较到IGP下一跳开销,由于这里建立的是全互联iBGP会话,并且做了next-hop-self,此时比较的是接收方到其iBGP Peer环回口的metric
如上图中,R4、R6都向R11通告其所属区域的路由,当MED相同时将比较R11去往R4、R6环回口的开销,R11将优选R6
c.负载均衡
如果手动配置,将有可能出现负载均衡现象(如果上图中R4与R11也有直连链路),多条路径将装载入BGP转发表中
d.比较RID
由于配置了compare-routerid,此时不再比较“最先通告的”更新,而是选路最小的router-id的设备作为优选的下一跳
(2)选路策略部署
当有多台路由器通告同一前缀时,如果期望其它路由器优选其中某台作为主路径,属性的修改应当在路由产生时进行而非发送给特定对等体或对等体接收到更新时执行,否则可能会导致优选下一跳与实际路径不一致,甚至是环路――保持各路由器选路的一致性
例如,当R8、R9都通告某个前缀时,如果R11上通过修改LP优选R8作为下一跳,流量将从R11转发到R6上
此时如果R6部署自己的策略优选R9作为下一跳,该流量又将转发回R11,造成环路
另外,需要注意物理拓扑的局限性
如上图中,对于R11而言,即便通过修改LP使得R11优选R4作为下一跳,实际流量转发时,由于去往R4的最优路径为R11―R6―R4,因此R6将始终收到该数据包并且直接转发入区域内而不再经过R4
由于这种局限性是物理拓扑(IGP)与逻辑拓扑(BGP)的不一致造成的,解决办法是通过修改IGP的metric使得BGP选路与IGP选路一致。而这种局限性直接影响了BGP选路的灵活性
(3)区域互访控制
在该网络中,由于核心层路由器都必须拥有全网路由,而核心层路由器向其所属的区域下发的又都是缺省路由
因此,区域互访控制无法通过BGP进程做路由过滤
较为理想的互访控制是在核心路由器连接区域方向接口上做包过滤
2.2 Failure and recovery
(1)区域内链路、设备故障
区域内链路或设备故障将被IGP检测并收敛以响应
如果在区域所属的核心层路由器上做了聚合,则区域内小范围的故障将有可能仅局限于区域内而不会导致整个核心网跟着一起收敛
(2)核心层设备、链路故障
①链路故障
核心层链路故障并不严重时,iBGP会话不受影响而只影响底层抵达路径,如上图中R11与R6之间的链路故障时,R11抵达R6的路径将发生改变
此外,考虑到BGP选路时考虑下一跳IGP的metric,当发生链路故障时还会对BGP选路造成影响,如上图中R11与R6之间的链路故障时,R11去往R4、R6所在区域的流量将只能从R4走
核心层链路故障较为严重时,将导致iBGP会话的中断,此时形成孤岛,在所属区域内出现路由黑洞
如果网络设计得当,链路故障往往导致IGP路径的切换而不影响BGP会话的建立,链路恢复时的收敛速度主要取决于IGP收敛速度
收敛总时间为 IGP收敛时间 + BGP响应时间
②设备故障
设备故障直接导致其直连链路的失效以及iBGP会话的中断
如果区域所属的核心层路由器只有一台,则将导致区域孤岛问题;而当有多台时,iBGP会话中断导致相关路由被其它设备回收,重新进行最佳路径抉择
2.3 Administrative control
该网络环境的区域划分并不明确
核心网路由器由于同时还运行了所属区域的IGP进程,实际进行管理时,无法使核心网管理与区域网管理分离
2.4 Scalability
(1)不增加核心层设备
当有新的区域接入核心层时,如果不新增路由器的数量,部分核心层路由器将
①增加额外的链路连接新区域
②再运行一个EIGRP进程
新区域依然通过其EIGRP进程下发缺省路由
鉴于该玩过架构管理域的划分不明确,多个区域IGP进程在一台设备上的重叠将导致更为复杂的管理问题
③核心层路由器依然拥有全网路由
(2)增加新设备及链路
①此时核心层规模将扩大
每台核心层设备都需要建立额外的iBGP会话
核心层网络的收敛速度及其物理结构复杂性将受到网络规模扩大的影响
②可以保证每台核心层路由器依然只运行3个路由协议进程,因而减小复杂性
3.结论
在以iBGP为核心的网络架构中
①通过引入BGP,减小了区域内路由器的路由前缀数量,提高了可扩展性
②路由选择主要受到MED以及下一跳IGP度量值的影响,策略的实现依赖于实际网络拓扑
③收敛速度取决于
a.网络本身的健壮性
b.IGP的收敛速度
c.BGP响应速度
④该网络架构主要的问题在于管理域划分的不明确
⑤网络的可扩展性一般,随着新区域的增多,网络逐渐区域复杂