BGP协议!

文章目录

BGP协议

边界网关协议( Border Gateway Protocol , BGP )是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议,工作在传输层

BGP特点

  • BGP通常被称为路径矢量路由协议( Path-Vector Routing Protocol), 它能够承载大批量的路由信息,能够支撑大规模网络
  • BGP具有丰富的路径属性和强大的路由策略,能够灵活的进行路由选路,并能指导邻居按策略发布路由
  • BGP使用TCP作为其传输层协议(端口号为179),路由器之间的BGP会话基于TCP连接而建立
  • 运行BGP的路由器被称为BGP发言者( BGP Speaker ) , 或BGP路由器
  • 两个建立BGP会话的路由器互为对等体( Peer ),BGP对等体之间交换BGP路由表
  • BGP路由器只发送增量的BGP路由更新,或进行触发更新(不会周期性更新)

BGP的AS-Path路径属性

每条BGP路由都携带着多种路径属性( Path attribute ) ,在各种路径属性中, AS_Path属性是非常关键的一个。AS_ Path属性记录了BGP路由传递过程中所经过的AS号, 实际上它是一一个AS号的列表。BGP路由器不接受AS_ Path中包含其自身AS号的路由更新。AS_ Path属性值的长短( AS号的个数)会作为一个比较的依据,影响BGP路由选择的决策

BGP五种报文类型

  • Open报文:
    BGP对等体之间需先建立TCP连接,如果TCP连接成功,那么BGP向对等体发送Open报文,来协商BGP邻居的各项参数,建立邻居关系
  • Update报文:
    连接建立后,有路由需要发送或路由变化时,发送Update报文通告对端路由信息
  • Notification报文:
    当BGP运行时发现错误信息时,要发送Notification报文通告对端,并且中止对等体关系
  • Keepalive报文:
    定时发送Keepalive报文(每60s一次)以维持对等体关系,Keepalive报文有180秒的老化时间
  • Route-refresh报文:
    当路由更新时,触发请求对等体重新通告路由

BGP状态机

BGP协议!

BGP两种对等体类型

  • IBGP:
    IBGP ( Internal BGP ) : 位于相同AS自治系统的BGP路由器之间的BGP邻接关系。两台路由器之间要建立IBGP对等体关系,必须满足两个条件:两个路由器所属AS需相同(也即AS号相同)。在配置BGP时, Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。
  • EBGP:
    IBGP ( Internal BGP ) : 位于不同AS自治系统的BGP路由器之间的BGP邻接关系。两台路由器之间要建立IBGP对等体关系,必须满足两个条件:两个路由器所属AS需相同(也即AS号相同)。在配置BGP时, Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。

IBGP水平分割

BGP路由在AS之间的防环依赖于AS_ Path路径属性,当路由器收到BGP路由后,发现该路由所携带的AS_ Path属性中出现了其自己所处的AS号,则路由器认为出现了路由环路,它将忽略该条路由。
AS_ Path属性仅在路由离开AS时才会被更改,而BGP路由在AS内部传递时,路由的AS_ Path属性值不会发生改变,如此一来, IBGP路由的防环就无法依赖AS_ Path 了。 为了防止BGP路由在AS内部传递时发生环路, BGP要求:“路由器不能将自己从IBGP对等体学习到的路由再传递给其他IBGP对等体”, 这就是IBGP水平分割规则。,由于IBGP水平分割原则的存在, BGP要求AS内须保证IBGP对等体关系的全互联,因为只有这样,才能够确保每一个路由器都能学习到路由。

BGP路由通告规则

当存在多条路径时,路由器只选取最优( Best )的BGP路由来使用(没有激活负载均衡的情况下)。BGP只把自己使用的路由,也就是自己认为最优的路由传递给对等体。路由器从EBGP对等体获得的路由会传递给它所有的BGP对等体(包括EBGP和IBGP对等体)。
路由器从IBGP对等体获得的路由不会传递给它的IBGP对等体(存在反射器RR的情况除外)。路由器从IBGP对等体获得的路由是否通告给它的EBGP对等体要视IGP和BGP同步的情况来决定。

BGP引入IGP路由

BGP本身不发现路由,因此需要将其他路由引入到BGP路由表。
BGP引入路由时支持Implort和Network两种方式:Import方式是按协议类型,将RIP、 OSPF、ISIS等协议的路由引入到BGP路由表中。Import方式还可以引入静态路由和直连路由。
Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中。BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置。

BGP配置,EBGP多跳

通常EBGP的对等体关系基于直连接口建立。如果EBGP的对等体关系并非基于直连接口建立,而是基于Loopback接口,又或者EBGP对等体不是直连的(中间隔着其他设备) , 那么要注意EBGP多跳的问题:在EBGP之间,所发送的BGP报文默认的TL为1 ,因此如果EBGP对等体之间存在多跳,则需修改最大跳数限制。

路径属性分类

BGP协议!

BGP Update报文

  • Preferred-Value:
    华为私有的路径属性,相当于路由的权重值,取值范围: 0~65535 ;该值越大,则路由越优先。Preferred-Value只能在路由器本地配置,而且只影响本设备的路由优选。该属性不会传播给任何BGP对等体。路由器本地始发的BGP路由默认的Preferred-Value为0 ,从其他BGP对等体学习到的路由默认Preferred-Value也为0。
  • Local-Preference:
    也即本地优先级属性,是公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径。Local_ Preference属性值越大则BGP路由越优。缺省的Local_ Preference值为100.该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体。
  • AS-Path:
    该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表;作用:确保路由在EBGP对等体之间传递无环;另外也作为路由优选的衡量标准之一;路由在被通告给EBCP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS-path不会发生改变。
  • Origin:
    该属性为公认必遵属性,它标识了BGP路由的起源。如下表所示,根据路由被引入BGP的方式不同,存在三种类型的Origin。
    当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下, BGP将按如Origin的下顺序优选路由: IGP > EGP > Incomplete.(BGP路由表中的“i”表示为“network”注入的网段,“?”表示为“import”注入的网段)
  • MED:
    MED ( Multi Exit Discriminator )是可选非传递属性,是一种度量值,用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时, AS可以使用MED动态地影响其他AS选择进入的路径。MED属性值越小则BGP路由越优。
    MED主要用于在AS之间影响BGP的选路。MED被传递给EBGP对等体后,对等体在其AS内传递路由时,携带该MED值,但将路由传递给其EBGP对等体时,缺省不会携带MED属性。

BGP路由优选规则

1.优选具有最大Preferred-Value的路由
2.优选具有最大Local_ Preference的路由
3.优选起源于本地的路由
4.优选AS_ Path最短的路由
5. Origin ( IGP> EGP > Incomplete )
6.优选MED最小的路由
7.优选EBGP对等体所通告的路由
8.优选到Next_Hop的IGP度量值最小的路由
9. BGP路由负载分担
10.优选Cluster _List 最短的路由
11.优选Router-ID最小的BGP对等体发来的路由
12.优选Peer-IP地址最小的对等体发来的路由

上一篇:oracle 在线重定义


下一篇:浅析通过操纵BGP Communities影响路由选路