华为NP课程笔记9-BGP 3

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nplbnb12/article/details/88225245

二、BGP的路径

1、BGP路径属性被分为四大类 :

(1)公认必遵(Well-know mandatory),所有BGP路由器都可以识别,且必须存在于Update消息中,如果缺少这种属性,路由信息就会出错

(2)公认任意(Well-kown discretionary),所有BGP路由器都可以识别,但不要求必须存在于update消息中,可以根据具体情况来决定是否添加到update消息中

(3)可选过渡(optional  transitive),BGP路由器可以选择是否在Update消息中携带这种属性。接收的路由器如果比识别这种属性,可以转发给邻居路由器,邻居路由器可能识别并使用到这种属性

(4)可选非过渡(optional non-transitive),BGP路由器可以选择是否在Update消息中携带这种属性。在整个路由发布的路径上,如果部分路由器不能识别这种属性,可能导致该属性无法发挥效用。因此接收的路由器如果不识别这种属性,将丢弃这种属性,不必再转发给邻居路由器

2、常见 BGP路由属性

(1)origin 属于公认必遵

   某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP,比如通过network命令注入BGP的路由;通过EGP学到的路由,则origin属性为EGP;其他情形下,Origin属都为Incomplete,比如通过impor命令注入BGP的路由。

  origin属性值默认情况下不被任何路由器修改。

(2)as_path 属于公认必遵

   路由传递过程中,经过的AS路径。主要用来防环。

   AS_Path属性有两种类型:

   AS_Sequence:表示AS_Path内的AS号是一个有序的列表。

   AS_Set:表示AS_Path内的AS号是一个无序的列表。

(3)next hop 属于公认必遵

  BGP路由器将本端始发路由发布给IBGP邻居时,会把该路由信息的Next_hop设为本端建立邻居关系所使用的接口IP。

   BGP路由器在向EBGP邻居发布路由时,会把路由信息的Next_hop设置为本端与对端建立BGP邻居关系的接口IP。

如图所示,RTB将100.0.0.0/24的网段发布给RTC时,Next_hop为RTB上与RTC直连的接口IP。

    BGP路由器在向IBGP邻居通告从EBGP学来的路由时,不改变该路由下一跳属性。

    特例:如图所示,RTA从RTB学到RTC发布的200.0.0.0/24的网段时,Next_hop为RTD的出接口IP,因为RTB与RTD在同一网段,RTC通告给RTB的Next_hop为RTD的出接口IP。

 

对于上述三种情况的解释:

EBGP邻居之间一般采用直连接口建立邻居关系,EBGP邻居在相互通告路由时会修改Next_hop为自己的出接口IP;

IBGP邻居通常采用Loopback接口建立邻居,当路由是本路由器起源的,在发送给邻居之后Next_hop改为自己的更新源地址,这样即使网络中出现链路故障,只要Next_hop可达,同样可以访问目的网段,提高网络稳定性;

相对于IGP,如RIP在发布路由时,每经过一个路由器都会修改下一跳,发布路由的路由器都宣称自己能够到达目标地址,并采用逐跳传递的方式将数据包发送给目标网络,但网络中的路由器并不知道谁是真正的始发路由器,因此会造成环路。BGP在EBGP之间传递时才修改Next_hop,IBGP发送从EBGP学来的路由给IBGP邻居时并不修改下一跳,在一定程度上起到了防环作用。

(4)med (Multi-Exit-DISC)属于可选非过渡

  MED可以区别到达同一邻居AS的多条入口链路(MED值越小,链路越优先)。而且MED值默认只比较同一个AS的,需要手动配置compare diffrent as med才能比较不同AS的MED值。

  MED主要作用在EBGP对等体上,而LOCAL_PREF则主要作用在IBGP对等体上。MED通常通过EBGP对等体向外发送,从而实现对对端AS入流量的控制;而LOCAL-PREF通常向IBGP对等体发送,从而实现对本地AS出流量的控制。MED越小越优先,默认是0。

(5)local-preference 属于公认任意

Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,值越大越优。

Local_Pref属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP邻居获得目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由,其默认值为100。

(6)atomatic-aggregate 属于公认任意

(7)aggregator  属于可选过渡

(8)community 属于可选过渡

团体属性,团体是一组由相同性质的目的地址路由。目的就是将路由信息编组,通过组的标识决定路由传递的策略。

 团体属性是由一系列4字节(0x00000000--0xFFFFFFFF)数值所组成。

 保留的团体属性:

0x00000000--0x0000FFFF、0xFFFF0000--0xFFFFFFFF

 公认团体属性:

Internet:缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP邻居;

NO_EXPORT(0xFFFFFF01):路由器收到带有这一团体值的路由后,不应该把路由通告给一个联盟之外的对等体(本AS传递);

NO_ADVERTISE(0xFFFFFFFF02):路由器收到带有这一团体值的路由后,不应该把该路由通告给任何的BGP对等体;

NO_EXPORT_SUBCONFEED(0xFFFFFF03):路由器收到带有这一团体值的路由后,可以把路由通告给他的IBGP对等体,但不应通告给任何的EBGP对等体(包括联盟内的EBGP对等体,本小AS传递)。

  私有团体属性:

 AS(2B):Number(2B)

团体属性配置:

router-policy comm permit node 10

  apply community no-export

bgp 100

  peer 10.1.12.1 route-policy comm import  //对10.1.12.1传进的路由打上no-export community标签

dis bgp routing-table 11.1.2.0      //查看路由的属性

community属性在华为设备中需要手动配置才能传递。

bgp 100

  peer 44.1.1.1  advertise-community   //配置通告给44.1.1.1团体属性

 

(9)originator-id 属于可选非过渡

(10)cluster-list 属于可选非过渡

 

三、BGP路由聚合

1、BGP协议可以使用命令,将具体路由聚合成一条聚合路由。

2、自动聚合:对BGP引入的IGP子网路由进行自然掩码聚合。配置自动聚合后,生成聚合后的自然两端路由,而原引入的子网路由被抑制,不会被优选和发布给BGP邻居。注意针对的是引入路由,对network宣告的无效。而且聚合后的是自然网段。

bgp 100

  import-route direct

  peer 10.1.1.2 as-num 101

  summary automatic        //配置自动聚合

3、手动聚合(优先级高于自动聚合)

bgp 100

aggregate 11.1.0.0 21 detail-suppressed   //手动聚合的同时抑制明细路由  

 

4、聚合路由不继承原有BGP路由属性,但可以通过命令修改聚合路由属性:

aggretate ip-address mask [as-set|attribute-policy route-policy-name1|detail-suppressed | origin-policy route-policy-name2 | suppress-policy route-policy-name3 ]

(1)BGP进行路由聚合后,as-path会消失,需要手动设置继承as-path(即设置AS_SET):

bgp 100

aggregate 11.1.0.0 21 detail-suppressed as-set    

 

 

(2)attribute-policy

aggregate 160.0.0.0 255.0.0.0 detail-suppressed attribute-policy att1

 

route-policy att1 permit node 10

   apply origin incomplete               配置聚合的origin属性为incomplete

 

过滤策略:

origin-policy:使用关键字origin-policy仅选择符合route-policy的具体路由来生成聚合路由

suppress-policy:关键字suppress-policy能产生聚合路由,但抑制指定路由的通告,可以用route-policy的if-match子句有选择地抑制一些具体路由,其他具体路由仍被通告。

 

配置11.1.2.0、11.1.4.0抑制:

aggregate 11.1.0.0 255.255.248.0 as-set detial-suppressed suppress-policy A

route-policy A permit node 10

  if-match acl 2000

acl 2000

   rule permit source 11.1.2.0 0.0.0.255

   rule permit source 11.1.4.0 0.0.0.255

 

四、BGP选择路由策略

1、(0)如果此路由的下一跳不可达,忽略此路由

(1)Preferred-Value值数值高的优先,华为私有属性,仅本地有效

bgp 100

  peer 33.1.1.1 preferred-value 1000   //默认值为0,取值范围0-65535

(2)local-preference值最高的路由优先

bgp 100

  default local-preference 1000  

(3)依次优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。

    自动聚合只能对引入的BGP路由进行聚合,手动聚合可以对存在于BGP路由表中的路由进行聚合,后续在BGP路由聚合中详细介绍。上述场景中,因为需要聚合的路由都是引入的路由,所以使用自动聚合与手动聚合都可以实现聚合的目的。如果BGP路由表中既有引入的路由又有network宣告的路由时,只能采用手动聚合实现。

 

(4)优选AS路径(AS_Path)最短的路由

修改AS路径:

acl 2000

  rule permit source 144.1.1.1

route-policy AS permit node 10

  if-match acl 2000

  apply as-path 200 100 additive  //添加路径200 、 100,也可以是overwrite(覆盖)

route-policy AS permit node 20   //放行其他路由

bgp 100

  peer 10.1.12.2 route-plicy AS import

dis bpg routing-table 144.1.1.1

(5)依次优选Origin类型为IGP、EGP、Incomplete的路由

(6)对于来自同一AS的路由,优选MED值最低的路由

通过策略配置MED值:

acl 2000

  rule permit source 144.1.1.1

route-policy MED permit node 10

  if-match acl 2000

  apply cost 100                  //修改MED值为100,默认为0

route-policy AS permit node 20   //放行其他路由

bgp 100

  peer 10.1.12.1 route-plicy MED export

dis bpg routing-table 144.1.1.1

 

(7)依次优选EBGP路由、IBGP路由,EBGP>IBGP

   AS 200内有一个200.0.0.0/24的网段,通过EBGP邻居关系通告给RTA与RTB,RTB会通过IBGP邻居关系将200.0.0.0/24的网段通告给RTA,于是RTA会收到两条到达200.0.0.0/24的路由,RTA会如何优选?

   根据选路原则,RTA会优选从EBGP邻居学来的路由。

 

 

(8)优选到BGP下一跳IGP度量值(metric)最小的路由

(9)当以上全部相同,且as-path完全相同,则为等价路由,可以负载分担(注意 AS_PATH必须一致 ,当负载分担时,以下3条原则无效)

 负载分担配置:

bgp 200

  maximum load-balancing

(10)优选Cluster_List最短的路由

(11)优选Originator_ID最小的路由

(12)优选Router ID最小的设备发布的路由

(13)优选从具有最小IP Address的对等体学来的路由

 

五、BGP反射

1、BGP防环:

(1)EBGP,通过 AS-Path属性,丢弃从EBGP对等体接收到的在AS-Path属性里包含自身AS号的任何更新信息;

(2)BGP路由器不会将任何从IBGP对等体接收到的更新信息传给其他IBGP对等体;

2、路由反射:降低对指定路由器IBGP路由通告机制的限制,允许将从IBGP对等体接收到的更新信息传给某些IBGP对等体。

3、IBGP对等体可以有三种角色:路由反射器(RR)、客户机、非客户机

客户机只需要维护RR之间的IBGP会话

RR与RR之间需要建立IBGP的全互联

非客户机与非客户机之间需要建立IBGP全互联

RR与非客户机之间需要建立IBGP全互联

4、路由反射宣告原则

(1)当RR收到BGP对等体发来的路由,首先使用BGP选路策略来选择最佳路由。RR在发布学习到的路由信息的,按照RFC2796中的规则发布路由:从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机

(2)从客户机学到的路由,发布给此RR的所有非客户机和客户机(发起此路由的客户机除外)

(3)从EBGP对等体学到的路由,发布给所有的非客户机和客户机

5、简单配置

RR配置:

bgp 100

  peer 33.1.1.1 reflect-client    //配置自己为RR,33.1.1.1为客户机

  dis bgp peer 33.1.1.1 verbose   //查看邻居详细信息

6、路由反射簇(Cluster)

当一个AS内存在多台RR为CLIENT提供冗余时,RR间的路由更新很有可能会形成环路,为防止该现象,引入了Cluster的概念。

通过4字节的Cluster_ID来标识Cluster,通常会使用Loopback地址作为Cluster_ID,一个Cluster里可以包括一个或多个RR:一个Client可以同时属于多个Cluster。

路由反射环路防止机制--Originator_ID,用于防止在反射器和客户机/非客户机之间形成环路,属性长4字节,可选非过度属性,属性类型为9,是由路由反射器RR产生的,携带了本地AS内部路由发起者的Router ID。当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入到这条路由,标识这条路由的始发路由器。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID。当其他BGP Speaker接收到这条路由的时候,将比较收到的Originator_ID和本地的Router ID,如果两个ID相同,BGP Speaker会忽略掉这条路由不做处理。

路由反射环路防止机制--Cluster_List,用于防止AS内部的环路,是可选非过渡属性,属性类型编码为10,Cluster_List由一系列的Cluster_ID组成,描述了一条路由所经过的反射器路径,这和描述路由经过的As路径的AS_Path属性有相似之处,Cluster_List由路由反射器产生。当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluster_List的前面。如果Cluster_List为空,RR就创建一个,当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入Cluster_List,然后反射该更新路由。

 RR配置:

bgp 100

  reflector cluster-id 1.1.1.1     //默认会将router-id作为簇id

7、AS内多个簇

一个AS内可以有多个簇,这些簇可以是并联的,还可以是上下级的,一个RR还可以是上一级 RR的客户端。

 

 

 

六、BGP联盟

1、联盟:将大的AS分成若干小的AS,而小AS之间建立EBGP对等体关系。大的AS叫联盟AS,小的叫做成员AS。成员AS之间是EBGP关系,成员AS内部是IBGP关系。

2、AS-Path回顾

AS-Path共有四种类型:

(1)AS_SET,做路由汇聚时,继承路径,防止环路

(2)AS_SEQUENCE,有序AS_Path

(3)AS_CONFED_SEQUENCE,联盟内的

(4)AS_CONFED_SET,联盟内的

3、简易配置

undo bgp 200

bgp 65535                             //指定成员AS号 

   confederation id 200                 //指定联盟AS号

   confederation peer-as 65534           //配置其他成员AS号       

   peer 44.1.1.1 as-number 65534

   peer 44.1.1.1 connect-interface lo 0

   peer 44.1.1.1 ebgp-max-hop

联盟的扩展性非常差,所以实际工作过程经常采用路由反射。

猜你喜欢

转载自blog.csdn.net/nplbnb12/article/details/88225245
3/9
今日推荐