BGP原理与案例配置

1.最初的外部网络EGP用于AS之间动态交换路由信息,但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求;BGP是为取代最初的EGP而设计的另一种外部网关协议,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息

2.BGP的特点: BGP使用TCP作为其传输层协议(端口号为179),使用触发式路由更新,而不是周期性路由更新。 BGP能够承载大批量的路由信息,能够支撑大规模网络。 BGP提供了丰富的路由策略,能够灵活的进行路由选路,并能指导对等体按策略发布路由。 BGP能够支撑MPLS/VPN的应用,传递客户VPN路由。 BGP提供了路由聚合和路由衰减功能用于防止路由振荡,通过这两项功能有效地提高了网络稳定性 BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol)。 每条BGP路由都携带多种路径属性(Path attribute),BGP可以通过这些路径属性控制路径选择,而不像IS-IS、OSPF只能通过Cost控制路径选择,因此在路径选择上,BGP具有丰富的可操作性,可以在不同场景下选择最合适的路径控制方式。 3.BGP在企业中的应用:
 3.1 企业内部互通:大型企业分支间采用BGP进行路由传递,不同的分支属于不同的BGP AS,它们通过BGP进行路由交互
 3.2 企业与运营商互通:企业与运营商之间可使用BGP进行路由交互,使得企业网络获得到达运营商网络的具体路由,运营商也可获得到达企业内部的路由

4.BGP存在两种对等体关系类型:EBGP及IBGP,对等体建立顺序:三次握手、Open报文、keepalive、Update报文



5.BGP报文:Open、Update、Notification【报告错误信息,中止对等体关系】、Keepalive、Route-refresh【路由策略发生变化,触发对等体重新通告路由】





6.BGP路由表生成
6.1
 不同于IGP路由协议,BGP自身并不会发现并计算产生路由,BGP将IGP路由表中的路由注入到BGP路由表中,并通过Update报文传递给BGP对等体。
 BGP注入路由的方式有两种:
 Network
 import-route
 与IGP协议相同,BGP支持根据已有的路由条目进行聚合,生成聚合路由
 Network方式注入路由虽然是精确注入,但是只能一条条配置逐条注入IP路由表中的路由,如果注入的路由条目很多配置命令将会非常复杂,为此可以使用import-route方式,将:
 直连路由
 静态路由
 OSPF路由
 IS-IS路由
 等协议的路由注入到BGP路由表中。



6.2 BGP路由通告原则
 第一条原则:只发布最优且有效(即下一跳地址可达)路由
 第二条原则:从EBGP对等体获取的路由,会发布给所有对等体
 第三条原则:从IBGP对等体获取的BGP路由,不会再发送给其他IBGP对等体
 第四条原则:当一台路由器从自己的IBGP对等体学习到一条BGP路由时(这类路由被称为IBGP路由),它将不能使用该条路由或把这条路由通告给自己的EBGP对等体,除非它又从IGP协议(例如OSPF等,此处也包含静态路由)学习到这条路由,该条规则也被称为BGP同步原则
6.2 案例配置
 BGP对等体关系、AS号、设备互联地址如图所示。
 所有设备的Loopback1接口地址为10.0.x.x/32,其中x为设备编号,所有设备都使用Loopback1地址作为Router ID。
 R1、R3之间使用Loopback1地址作为更新源地址建立IBGP对等体关系,R3、R4之间使用互联接口地址作为更新源地址建立EBGP对等体关系。



 R1的配置如下:
 [R1] bgp 100
 [R1-bgp] router-id 10.0.1.1
 [R1-bgp] peer 10.0.3.3 as-number 100
 [R1-bgp] peer 10.0.3.3 connect-interface LoopBack1
 R3的配置如下:
 [R3] bgp 100
 [R3-bgp] router-id 10.0.3.3
 [R3-bgp] peer 10.0.1.1 as-number 100
 [R3-bgp] peer 10.0.1.1 connect-interface LoopBack1
 [R3-bgp] peer 10.0.34.4 as-number 200
 R4的配置如下:
 [R4] bgp 200
 [R4-bgp] router-id 10.0.4.4
 [R4-bgp] peer 10.0.34.3 as-number 100
 验证:
 display bgp peer

7.BGP路径属性:
任何一条BGP路由都拥有多个路径属性(Path Attributes),当路由器通告BGP路由给它的对等体时,该路由将会携带多个路径属性,这些属性描述了BGP路由的各项特征,同时在某些场景下也会影响BGP路由优选的决策,



 7.1 公认必遵:必须包括在每个Update消息里,有:Origin、AS_Path、Next_hop
  A.Origin:它标识了BGP路由的起源。如上表所示,根据路由被引入BGP的方式不同,存在三种类型的Origin


  B.AS_Path:是前往目标网络的路由经过的AS号列表、确保路由在EBGP对等体之间传递无环;另外也作为路由优选的衡量标准之一
  C.Next_hop:用于指定到达目标网络的下一跳地址
 7.2 公认任意:可能包括在某些Update消息里,有:Local_Preference、Atomic_aggregate
  A.Local_Preference:即本地优先级属性,可以用于告诉AS中的路由器,哪条路径是离开本AS的首选路径,Local_Preference属性值越大则BGP路由越优。缺省的Local_Preference值为100【只能在IBGP中传递】
 7.3 可选过渡:BGP设备不识别此类属性依然会接受该类属性并通告给其他对等体,有:Aggregator、Community
  A.Community:用于简化路由策划
 7.4 可选非过渡:BGP设备不识别此类属性会忽略该属性,且不会通告给其他对等体,有:MED、Cluster-List、Originator-ID
  A.MED:是一种度量值,用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时,AS可以使用MED动态地影响其他AS选择进入的路径,MED属性值越小则BGP路由越优,MED主要用于在AS之间影响BGP的选路。MED被传递给EBGP对等体后,对等体在其AS内传递路由时,携带该MED值,但将路由再次传递给其EBGP对等体时,缺省不会携带MED属性



  B.Originator ID:RR将一条BGP路由进行反射时会在反射出去的路由中增加Originator_ID,其值为本地AS中通告该路由的BGP路由器Router  ID;当BGP路由器收到一条携带Originator_ID属性的IBGP路由,并且Originator_ID属性值与自身的Router ID相同,则它会忽略关于该条路由的更新,主要用于防环

  C.Cluster_List:也是防环的,路由器发送路由更新时会加上Cluster_ID,如果收到路由更新带有自己的Cluster_ID,证明有环路,需要丢弃路由更新

8.BGP路由反射器
 前因:
 由于水平分割的原因,为了保证中转AS200所有的BGP路由器都能学习到完整的BGP路由,就必须在AS内实现IBGP全互联。然而实现IBGP全互联存在诸多短板:
 路由器需维护大量的TCP及BGP连接,尤其在路由器数量较多时;
 AS内BGP网络的可扩展性较差


 8.1 路由反射规则:将一台BGP路由器指定为RR【路由反射器】的同时,还需要指定其Client。至于Client本身,无需做任何配置,它并不知晓网络中存在RR
  A.如果路由反射器从自己的非客户对等体学习到一条IBGP路由,则它会将该路由反射给所有客户
  B.如果路由反射器从自己的客户学习到一条IBGP路由,则它会将该路由反射给所有非客户,以及除了该客户之外的其他所有客户
  C.如果路由学习自EBGP对等体,则发送给所有客户、非客户IBGP对等体

9.BGP路由优选规则:
 1.优选Preferred-Value属性值最大的路由。
 2.优选Local_Preference属性值最大的路由。
 3.本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。
 4.优选AS_Path属性值最短的路由。
 5.优选Origin属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。
 6.优选MED属性值最小的路由。
 7.优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。
 8.优选到Next_Hop的IGP度量值最小的路由。
 9.优选Cluster_List最短的路由。
 10.优选Router ID(Orginator_ID)最小的设备通告的路由。
 11.优选具有最小IP地址的对等体通告的路由。
 前8个规则都无法选出最佳路由,可以做BGP负载分担

10.MP-BGP:(Multiprotocol Extensions for BGP-4)用于实现BGP-4的扩展以允许BGP携带多种网络层协议(例如IPv6、L3VPN、EVPN等)

11.EVPN:EVPN是下一代全业务承载的VPN解决方案,它颠覆了传统二层VPN通过转发面来学习MAC地址的机制,引入了控制面,利用BGP扩展协议来传递MAC信息。EVPN基于MP-BGP,定义了一系列新的BGP EVPN路由类型,从而使EVPN网络中的不同站点间可以相互学习MAC地址信息。