今天笔者把一个比较典型的项目进行了整理,分享给大家。这篇博客的重点在于广域网连接,路由协议的设计。

项目需求:

  某互联网公司总部在北京,现在要在北京和广州新建两个IDC机房,两个IDC机房之间会有较大的数据交互(数据同步和接口调用),并且北京总部办公楼有通过内网访问两个机房的需求。最终需要实现的功能如下:

  • 集团总部、北京IDC、广州IDC网络全部通过MSTP专线连通;
  • 总部访问北京IDC默认走总部与北京IDC之间的专线,访问广州IDC默认走总部与广州IDC之间的专线,两个IDC互访走IDC之间的专线;当任何一条专线出现故障,通过动态路由协议实现流量自动切换。
  • 由于总部与IDC之间的专线带宽严重低于IDC之间的带宽,在IDC之间链路故障后会导致数据拥塞,因此在总部与IDC之间的链路部署QOS,确保管理流量、监控流量、办公访问流量优先,最后是数据同步的流量。 

网络设计思路:

  • 网络拓扑图

bgp 引入OSPF路由添加本地优先级 ospf中引入bgp_OSPF

  • 设备选型

  在本次项目中,两个IDC的核心交换机均为思科Nexus 7009,所有路由器均为思科ISR系列路由器,办公楼核心交换机为思科6506。

  • DCI互联

  目前在企业网或数据中心之间互联的方式主要有裸纤、专线、VPN;裸纤适用于距离短,吞吐量大(配合DWDM)的场景,不适合用在这里;VPN稳定性较差。因此,我们在这里最终选择使用专线。专线主要有MPLS VPN、DDN、MSTP,MSTP(多业务传输平台)是一种基于SDH的提供以太网接入的专线,传输质量高,速率可由2M至1G;DDN、FR都是老掉牙的技术,早被淘汰了;MPLS VPN是一种基于IP的服务,传输质量不如MSTP。最终,我们使用了MSTP专线。并且由总部到北京的专线和总部到广州的专线使用不同的运营商,以防目运营商故障两条链路全部瘫痪。

  • BGP路由协议设计

  本次方案路由协议采用BGP+OSPF的设计。按照地域的不同,每个地域分为一个AS。BGP使用私有AS号,总部使用65001,北京IDC为65002,广州IDC为65003。每个AS内有且仅有两台边界路由器运行BGP协议。想邻的AS通过物理接口建立EBGP邻居关系,AS内的两台路由器通过loopback接口建立iBGP邻居关系。

  • OSPF路由协议设计

  在每个AS内部,使用OSPF路由协议,边界路由器和核心交换机都运行在区域0中。两个IDC均为二层架构,核心交换机下面直接是接入层交换机,相当于全部处于area 0。集团总部核心交换机下面为三层汇聚交换机,将汇聚交换机置为骨干区域,通过汇总减少路由表和路由抖动。

  • IP编址与路由发布

  为便于IP地址的汇总、管理和扩展,每个AS分配使用4个B的连续地址段,共65535*4,约262140个地址可用。北京办公楼使用10.0.0.0/14,北京IDC使用10.4.0.0/14,广州IDC使用10.8.0.0/14。具体的地址分配,每个AS内再进行细分。每个区域内都会通过OSPF学习到本AS内所有的明细路由。在边界路由器上通过静态汇总指向null0路由的方法,将本as内汇总路由通行进BGP中。再将BGP中的路由重分布到OSPF中。总的原则是,ospf到bgp使用network静态汇总的方式,bgp到ospf,使用重分布的方式。这样,最终每个AS内的路由器只会有本AS内的明细路由和其他AS的一条汇总路由,大大减少路由表消耗和路由抖动。

  • 路由优化与加速收敛

  由于OSPF的默认dead时间是40秒,而BGP更是高达3分钟,而这种收敛时间在对网络高度依赖的今天是不能忍受的。因此,分别采用BFD,IP SLA,Track技术对路由进行加速收敛。

  针对OSPF,在本案例中没有MA网络存在,因此所有的OSPF网络接口类型均改为point-to-point,活动建立邻居时选举DR所用的一个"wait"时间(40s)。

修改OSPF接口网络类型配置如下:

interface Ethernet1/1
  ip ospf network point-to-point

 

  在所有运行OSPF的接口启用BFD功能,通过BFD,使得路由协议在毫秒内就可以感知到邻居失效,从而收敛,切换流量 ,减少网络中断时间;在ebgp之间启用bfd功能,加速BGP收敛。

 启用BFD配置命令如下:

interface Ethernet1/1
  bfd interval 300 min_rx 300 multiplier 5
  
  interface Ethernet1/0
  bfd interval 300 min_rx 300 multiplier 5
  
 router ospf 110
  bfd all-interfaces

 router bgp 65002
  neighbor 10.204.1.1 fall-over bfd

 

  还有一点需要注意,由于每台边界路由器上是通过静态路由指向null0的方式来进行汇总和BGP宣告的时候,这时候存在一个问题,以上图为例子,在R2上有一条ip route 10.0.0.0 252.0.0.0 null 0的路由,而当R2和SW2中间的链路断开的时候,该路由仍然存在,这样BGP协议中仍然会有该条路由,由AS65002过来的数据包就会在R2上被丢弃。这里需要在每台边界路由器上启用 track功能,track所有内网接口,并在静态路由后加上track。当连接所有内网的线路都down了以后,track检测到接口down,则静态路由消失,路由消失则BGP会在update报文包含撤回路由的信息。

 

track配置如下:

track 1 list boolean or
  object 2
  object 3
 track2 interface Ethernet1/1 line-protocol
 track3 interface Ethernet1/0 line-protocol
 ip route 10.4.0.0 255.252.0.0 Null0 track 1
  • QOS部署:

  把办公网访问IDC,IDC之间经过专线的流量进行分类,大致定义为管理类流量 (telnet、ssh、RADIUS、tacacs+、IPKVM流量),监控类流量 (snmp)、业务流量(即办公网访问IDC内网的业务,如后台编辑、内网系统等)、数据同步类流量(如主从同步、备份)。通过在边界路由器进行QOS设置,为管理类流量预留2Mbps带宽,监控类流量预留2Mbps带宽,业务流量预留6Mbps带宽。

  • 网络扩容:

  扩容分两种,一种是区域内扩展,这只需要在机房内增加新的交换机,并且network相应网段即可。另一种是要新增加一个机房。本方案是按照环网的设计思路来进行设计的,如果添加新的IDC节点,只需要新建机房,租用专线,新建AS,建立BGP邻居即可,最终形态应该仍然是一个环。例如要在深圳新添加一个IDC机房,仍然按照目前的模式,双核心交换机,双边界路由器,租用一条到广州机房的专线,将广州至总部办公的专线迁移至深圳即可。

 

总结:以上只是一种设计思路和一些重点,具体项目的实施还要根据实际情况来进行部署。笔者水平有限,有不对的地方还请留言指正。