继续来看!特别全面应用广泛的动态路由BGP协议!

编程入门 行业动态 更新时间:2024-10-05 01:18:14

继续来看!特别全面应用广泛的动态<a href=https://www.elefans.com/category/jswz/34/1771390.html style=路由BGP协议!"/>

继续来看!特别全面应用广泛的动态路由BGP协议!

动态路由BGP协议!

  • 一.AS的概念
  • 二.BGP概述
  • 三.BGP的路径矢量特征
  • 四.BGP协议特征
  • 五.BGP的报文类型
  • 六.BGP的状态机
  • 七.BGP Peer
    • IBGP
    • EBGP
  • 八.传输AS中的黑洞问题
  • 九.BGP同步
  • 十.BGP的水平分割
  • 十一.BGP路由通告规则
  • 十二.BGP相关的几张表
  • 十三.BGP基本配置
    • 1.配置对等体
    • 2.BGP引入IGP路由
    • 3.指定更新源
    • 4.BGP的EBGP多跳
  • 十四.BGP路径属性
    • 1.路径属性的分类
    • 2.属性的概念
      • (1)Preferred-Value:华为私有
      • (2)Local_Preference:本地优先级
        • Local_Preference注意事项
      • (3)AS_Path
      • (4)Origin
      • (5)MED
      • (6)Next_Hop
        • ① Next_Hop
        • ② Next_Hop的缺省操作
    • 3. BGP路由的优先规则
      • (1)技术背景
      • (2)BGP路由表示例
      • (3)优选规则

一.AS的概念

(1)自治系统(Autonomous System,AS),指的是在同一个组织管理下、使用相同策略的设备的集合。

(2)不同AS通过AS号区分,AS号取值范围1王65535,其中64512- 65535是私有AS号。
IANA负责AS号的分发。

(3)中国电信163AS号:4134。中国电信CN2 AS号:4809。·中国网通AS号:9929。

二.BGP概述

边界网关协议是一种实现自治系统AS之间的路由可达,并选择最佳路由的量性协议。

早期发布的三个版本分别是BGP-1(Rfc1105)、gp-2(rfc1163)bgp3(RfC1267),1994年开始使用BGP-4(RFC177)也是目前使用的版本,2006年之后单播v4网络使用的版本是BGP4(R4271),其他网络使用的版本是MP-bGP(RFC4760)。

BGP的特点

(1)BGP能等承载大批量的路由信息能够支撑大规模网络;

(2)BGP提供了丰富的路由策略,能够灵活的进行路由选路,并能指导邻居按策略发布路由;

(3)BGP路由器值发送增量的BGP路由更新,或进触发更新(不会周期性更新);

(4)BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性;

(5)两个建立BGP会话的路由器互为对等体(Peer)。BGP对等体之间交换BGP路由表;

(6)运行BGP的路由器被称为BGP发言者,或BGP路由器;

(7)BGP使用TCP作为其传输层协议,端口号为179,路由器之间的BGP会话基于TCP连接而建立.

三.BGP的路径矢量特征

(1)BGP通常被称为路径矢量路由协议(Path -Vector- Routing Protocol)每条BGP路由都携带着多种路径属性( Path attribute),在各种路径属性中,AS_Path属性是非常关键的一个,AS_Path属性记录了BGP路由传递过程中所经过的AS号,实际上它是一个AS号的列表

(2) BGP路由器不接受AS_Path中包含其自身AS号的路由更新ASPath属性值的长短(A号的个数)会作为一个比较的依据,影响BGP路由选择的决策。


BGP的防环机制

BGP路由器不接受AS-Path中包含其自身AS号的路由更新。
AS-Path属性值的长短(AS号的个数)会作为一个比较的依据,影响BGP路由选择的决策。

四.BGP协议特征

(1)BGP使用TCP为传输层协议,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立。

(2)运行BGP的路由器被称为BGP发言者(BGP Speaker ),或BGP路由器。

(3)两个建立BGP会话的路由器互为对等体(Peer )。BGP对等体之间交换BGP路由表。

(4)BGP路由器只发送增量的BGP路由更新,或进行触发更新(不会周期性更新)。

(5)BGP具有丰富的路径属性和强大的路由策略工具。

(6)BGP能够承载大批量的路由前缀,用于大规模的网络中。

五.BGP的报文类型



其中:
Update:用于更新路由变化,记录到路由表当中,是增量更新;
keepalive:响应Open消息,用于保持邻居关系,没有携带什么消息及数据,默认情况下,发送报文周期60s发送一次,最长时间(老化时间)是180s,结束之后需要重新建立对等体关系。

六.BGP的状态机

七.BGP Peer

(1)BGP对等体也叫BGP邻居,基于直连接口建立。与OSPF、RIP等协议不同,BGP的会话基于TCP建立的,建立BGP对等体的两台路由器并不要求必须直连,只要路由可达即可。

(2)BGP存在两种对等体关系类型:
EBGP:外部边界网关协议,用于在不同的自治系统间交换路由信息,即AS号不同
IBEP:用于在相同的AS间交换路由信息,即AS号相同。

IBGP

IBGP ( Internal BGP ):位于相同自治系统的BGP路由器之间的BGP邻接关系。·两台路由器之间要建立IBGP对等体关系,必须满足两个条件:

①两个路由器所属AS需相同(也即AS号相同)。

②在配置BGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。

EBGP

EBGP (External BGP)∶位于不同自治系统的BGP路由器之间的BGP邻接关系·两台路由器之间要建立EBGP对等体关系,必须满足两个条件:

①两个路由器所属AS不同(也即AS号不同)。

②在配置BGP时,Peer命令所指定的对等体P地址要求路由可达,并且TCP连接能够正确建立。

八.传输AS中的黑洞问题

在传输AS (Transit AS ) 65102中,BCDE四台路由器运行了OSPF,确保AS内部路由实现互通。
B与E运行BGP,并且两者建立IBGP对等体关系(两者并非直连,但是对于BGP,这是允许的,仅需确保两者之间能够正确建立TCP连接即可)。C与D并未运行BGP。

解决方案1
将BGP路由引入到IGP,并关闭同步规则。

解决方案2
传输AS内所有路由器均运行BGP,实现BGP对等体关系的全互联,并关闭同步规则。

九.BGP同步

(1)若路由器从IBGP对等体学习到一条BGP路由,它不能使用该条路由,更不能将路由传递给自己的EBGP对等体,除非它又从IGP学习到该条路由,这就是BGP的同步规则。

(2)同步规则的存在,可以防止数据在传输AS内由于转发设备没有目标网络的路由而被丢弃的问题,也就是所谓的黑洞问题。

(3)为了使得BGP路由能够正常交互,我们就不得不在该传输AS内所有路由器上都运行BGP,且构建全互联的IBGP对等体关系;或者在AS边界上将BGP路由引入IGP。显然这两种方法各有利弊,尤其是后者,盲目地将BGP路由引入IGP是非常危险的。

(4)同步规则的存在意义是避免出现黑洞问题,而如果AS内路由问题已经解决,那么同步规则也就没有必要再开启了。华为路由交换产品缺省关闭同步规则。

十.BGP的水平分割

(1)BGP路由在AS之间的防环依赖于AS_Path路径属性,当路由器收到BGP路由后,发现该路由所携带的AS_Path属性中出现了其自己所处的AS号,则路由器认为出现了路由环路,它将忽略该条路由。

(2)AS_Path属性仅在路由离开AS时才会被更改,而BGP路由在AS内部传递时,路由的AS_Path属性值不会发生改变,如此一来,IBGP路由的防环就无法依赖AS_Path了。

(3)为了防止BGP路由在AS内部传递时发生环路,BGP要求:“路由器不能将自己从IBGP对等体学习到的路由再传递给其他IBGP对等体”,这就是IBGP水平分割规则。

(4)由于IBGP水平分割原则的存在,BGP要求AS内须保证IBGP对等体关系的全互联,因为只有这样,才能够确保每一个路由器都能学习到路由。

(5)考虑到IBGP水平分割规则的限制,为了使得AS内的路由器都能够正常学习到BGP路由,我们不得不建立一个全互联的IBGP对等体关系。

(6)然而在AS内的所有BGP路由器之间维护全互联的IBGP对等体关系是需要耗费大量资源的,网络的可扩展性、可维护性也非常差。
解决方案:①路由反射器②联邦

简而言之一句话:一个路由器不能将另外一个IBGP对等体中学习到路由。由于水平分割的存在,BGP要求AS内需保证对等体关系的全互联,因为只有这样,才能确保每个路由器都能学习到路由。

十一.BGP路由通告规则

(1)当存在多条路径,路由器只选取最优的BGP路由来使用;

(2)BGP只把自己使用的路由,也就是自己任务最优的路由传递对等体;

(3)路由器从EBGP对等体获得的路由汇传递给它所有的BGP对等体;

(4)路由器从IBGP对等体获得的路由不会传给给它的IBGP对等体;

(5)路由器从IBGP对等体获得的路由是否通告给它的EBGP对等体要是IGP和BGP同步的情况而定。

十二.BGP相关的几张表



十三.BGP基本配置

1.配置对等体

bgp 100       //配置bgp的AS号为100
router-id 1.1.1.1   //设备loopback接口的地址
peer 2.2.2.2 as-number 100  //配置对等体ip地址2.2.2.2进入到bgp 100

2.BGP引入IGP路由

需注意的是:BGP本身不发现路由,因此需要将其他路由引入到BGP路由表。

BGP引入路由时支持lmport和Network两种方式:

(1)lmport方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。Import方式还可以引入静态路由和直连路由。

(2)Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中。

BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置。

3.指定更新源

一般而言在AS内部,网络具备一定的冗余性。在R1与R3之间,如果采用直连接口建IBGP邻居关系,那么一旦接口或者直连链路发生故障,BGP会话也就断了,但是事实上,由于冗余链路的存在,R1与R3之间的IP连通性其实并没有DOWN(仍然可以通过R5到达彼此)。

4.BGP的EBGP多跳

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

十四.BGP路径属性

1.路径属性的分类

(1)公认属性Well-Known

①公认必遵属性Well-known mandatory
②公认自由决定属性Well-known discretionary

(2)可选属性Optional

①可选传递的Optional non-transitive
②可选非传递的 Optional non-transitive

2.属性的概念

(1)Preferred-Value:华为私有

① 路由的权重值,取值范围:0~65535;值越大,路由优先;

② 只能在路由器本地配置,而且只影响本设备的路由选择;该属性不会传播给任何BGP对等体;

③ 路由器本地实发的BGP路由默认的Preferred-Value为0,从其他BGP对等体学习到的路由默认Preferred-Value也为0。


(2)Local_Preference:本地优先级

① 本地优先级属性,是公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径;
② 属性值越大则BGP路由越优,缺省值为100;
③ 该属性只能被传递给BGP对等体,而不能传递给EBGP对等体。

Local_Preference注意事项

①Local_Preference属性只能在IBGP对等体间传递(除非做了策略否则Local_Preference值在IBGP对等体间传递过程中不会丢失),而不能在EBGP对等体间传递,如果在EBGP对等体间收到的路由的路径属性中携带了Local_Preference,则会触发Notifacation报文,造成会话中断;

②但是可以在AS边界路由器上使用Import方向的策略来修改Local_Preference属性值。也就是在收到路由之后,在本地为路由赋予Local_Preference。

③使用bgp default local-preference命令修改缺省Local_Preference值,该值缺省为100.

④路由器在向其EBGP对等体发送路由更新时,不能携带Local_Preference属性,但是对方接收路由之后会在本地为这条路由赋一个缺省Local_Preference值( 100 ),然后再将路由传递给自己的IBGP对等体

⑤本地使用network命令引入及重发布引入的路由,Local_Preference为缺省值100,并能在AS内向其他IBGP对等体传递,传递过程中除非受路由策略影响,否则Local_Preference不变。

(3)AS_Path

①该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表

②作用︰确保路由在EBGP对等体之间传递无环;另外也作为路由优选的衡量标准之一

③路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS-path不会发生改变。

AS_Path的重要作用之一便是影响BGP路由的优选,在上图中,R5同时从R2及R4学习到去往
10.1.1.0/24网段的BGP路由,在其他条件相同的情况下,R5会优选R2通告的路由,因为该条路由的AS_Path属性值较短,也即AS号的个数更少。

(4)Origin

①该属性为公认必遵属性,它标识了BGP路由的起源。如下表所示,根据路由被引入BGP的方式不同,存在三种类型的Origin。

②当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下Origin的下顺序优选路由:IGP >EGP > Incomplete。

(5)MED

① MED( Multi Exit Discriminator)是可选非传递属性,是一种度量值,用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时,AS可以使用MED动态地影响其他AS选择进入的路径。

② MED属性值越小则BGP路由越优。

③ MED主要用于在AS之间影响BGP的选路。MED被传递给EBGP对等体后,对等体在其AS内传递路由时携带该MED值,但将路由传递给其EBGP对等体时,缺省不会携带MED属性。

注意事项

① 缺省情况下,路由器只比较来自同一相邻AS的BGP路由的MED值,也就是说如果去往同一个目的地的两条路由来自不同的相邻AS,则不进行MED值的比较。

② 一台BGP路由器将路由通告给EBGP对等体时,是否携带MED属性,需要根据以下条件进行判断(不对EBGP对等体使用策略的情况下):

③ 如果该BGP路由是本地始发(本地通过 tnetwork或 import-route-命令引入)的,则缺省携带MED属性发送给EBGP对等体。

④ 如果该BGP路由是从其他BGP对等体学习过来的,那么将该路由通告给EBGP对等体时不携带MED

⑤ 在G对等体之间传递路由时,MED值会被保留并传递,除非部署了策略,否则MED值在传递过程中不发生改变也不会丢失。

①如果路由器通过IGP学习到一条路由,并通过network或import-route的方式将路由引入BGP,产生的BGP路由的MED值继承路由在IGP中的metric。例如上图中如果R2通过OSPF学习到了11.1.1.0/24路由,并且该路由在R2的全局路由表中OSPF Cost=100,那么当R2将路由network进BGP后,产生的BGP路由的MED值为100。

②如果路由器将本地直连路由通过network或import-route的方式引入BGP,那么这条BGP路由的MED为0,因为直连路由cost为0。

③如果路由器将本地静态路由通过network或import-route的方式引入BGP,那么这条BGP路由的MED为0,因为静态路由cost为0。

MED的默认操作

①如果路由器通过BGP学习到其他对等体传递过来的一条路由,那么将路由更新给自己的EBGP对等体时,默认是不携带MED的。这就是所谓的:“MED不会跨AS传递”。例如在上图中,R2将携带MED属性的BGP路由传递给R3,则R3将该路由传递给R4时,不会携带MED。
②可以使用default med命令修改缺省的MED值,default med命令只对本设备上用import-route命令引入的路由和BGP的聚合路由生效。例如在R2上配置default med 999,那么R2通过import-route及aggregate命令产生的路由传递给R3时,路由携带的MED为999。

(6)Next_Hop

① Next_Hop

该属性是一个公认的必遵属性,用于指定到达目标网络的下一跳地址

当路由器学习到BGP路由后,需对BGP路由的Next_Hop属性值进行检查,该属性值必须在本地路由可如果不可达,则这条BGP路由不可用

在EBGP及IBGP对等体场景中,Next_Hop的缺省操作是存在差异的。

② Next_Hop的缺省操作

路由器将BGP路由通告给自己的EBGP对等体时,将该路由的Next_Hop设置为自己的更新源IP地址

路由器在收到EBGP对等体通告的BGP路由后,在将路由传递给自己的IBGP对等体时,会保持路由的Next_Hop属性值不变

3. BGP路由的优先规则

(1)技术背景

①当BGP设备学习到去往同一个目的网络的多条BGP路由(路径)时,设备将这些路由都装载到BGP路由表,并在这些条目中进行路由优选,最终决策出最优(Best)的路由,将该BGP路由加载到全局路由表中,作为数据转发的依据。

②当存在多路径时,BGP只会将其选择出来的最优路由通告给其他对等体。

③BGP定义了一系列路由优选规则,从而使得设备能够在多条路由中选择出最优的路由。BGP在选择路由时严格按照先后顺序比较路由的属性,如果通过当前的属性就可以选出最优路由,BGP将不再进行后面的比较。

④BGP的选路规则与BGP路径属性及路由策略息息相关,它们使得BGP拥有了强大的路由操控能力。

(2)BGP路由表示例


关于100.0.1.0/24这个目的网络,存在两条BGP路由(路径),设备在这两条路由中进行决策选择出最优的路由,最优的路由将出现“>”符号,它将被加载到设备的全局路由表中。

在BGP路由表中的路由必须首先是可用的(Valid ),可用的路由在表项行首存在“*"号,可用意味着该BGP路由的Next_hop是路由可达的,设备在其全局路由表中查询到了去往该Hext_hop地址的路由,即认为该BGP路由可用。如果BGP路由不可用,则不会被优选。

(3)优选规则

优选具有最大的Preferred-vlue的路由

优选具有最大Local_preference的 路由

优选起源于本地的路由

优选AS_path最短的路由

Origin(IGP>EGP>Incomplete)

优选MED最小的路由

优选EBGP对等体所通告的路由

优选到Next_Hop的IGP度量值最小的路由

BGP路由负载分担

优选Cluster_List最短的路由

优选Router-ID最小的BGP对等体发来的路由

优选Peer-IP地址最小的对等体发来的路由

更多推荐

继续来看!特别全面应用广泛的动态路由BGP协议!

本文发布于:2024-02-13 14:42:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1758881.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路由   协议   动态   BGP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!