HCIP(BGP的聚合、反射器、联邦)

本文深入探讨BGP协议的几个关键方面:路由宣告涉及本地路由的传递和成本考量;自动和手工路由聚合及其防环策略;BGP的认证确保邻居间安全通信;路由策略用于精细化路由控制;路由反射器和联邦技术解决IBGP水平分割问题;最后,详述了BGP的选路原则,如Preferred-value、Local-Preference、AS_PATH和Origin属性的选择。
摘要由CSDN通过智能技术生成

BGP 的宣告问题:

  • 在BGP协议中本地可以宣告本地路由表中所有的直连、静态、IGP产生的路由,由于在实际工程中,一个As内部存在大量的未运行BGP协议的路由器,他们的用户网段需要边界运行BGP协议的设备来代为宣告共享到其他AS,所以BGP设备宣告本地路由表中的路由条目时,默认将携带cost值,携带cost值的路由将会被传递给本地的EBGP/IBGP邻居;用于判断其他AS判断多个EBGP邻居谁离目标更近。
  • 从一个IBGP邻居处学习到的路由,再转发给其他EBGP邻居时,度量值清0,导致选路问题,所以建议所有存在EBGP邻居的BGP路由器均宣告本AS的路由条目

自动汇总问题:

  • 当代的路由设备默认就关闭了BGP的自动汇总功能
  • 自动汇总规则与正常BGP协议共享,或在BGP协议通过network宣告命令产生的路由条目无关;仅针对IGP重发布到BGP的路由条目
  • BGP的宣告可以理解为是逐条的重发布IGP到BGP;BGP中将IGP重发布到BGP可以理解为批量的IGP路由宣告到BGP协议;两种操作的产生的路由条目产生的起源属性不同,宣告由于重发布
  • 在开启了自动汇总的前提下,重发布进入的路由不携带子网掩码,按主类掩码进入,不携带本地到达目标的度量值,度量值为0,若关闭自动汇总进入路由将正常携带掩码,且携带度量值,此时和宣告路由仅仅起源属性不同,所以建议不要开启自动汇总
  • 在一个AS中,建议所有运行BGP协议的设备均宣告相同路由,若进行重发不配置,也建议所有运行BGP协议的设备均进行重发布

BGP的认证

[r1-bgp]peer 12.0.0.1 password cipher 123 //邻居间需要密钥一致,传递出去的密钥必然被加密

BGP的聚合

自动聚合:

  • 该方法只能针对重发布发布的路由信息生效

  • 自动聚合的路由只能按照主类进行聚合,将形成巨大的路由黑洞,华为设备BGP的自动聚合功能是默认关闭的

抓取流量
[r1]ip ip-prefix aa permit 172.16.0.0 22 greater-equal 24 less-equal 24

做路由策略
[r1]route-policy aa permit node 10
[r1-route-policy]if-match ip-prefix aa
在重发布过程中调用路由策略
[r1-bgp]import-route direct route-policy aa
 [r1-bgp]summary automatic --- 开启自动聚合的方法()自动聚合后,发布的汇总路由信息将在本地路由表中产生一条指向汇总的空接口,自动防环
*> 172.16.0.0 127.0.0.1 --- 通过自动聚合会发布一条新的汇总路由,他是不携带子网掩码的,因为按照主类汇总,则子网掩码取主类默认值。而且通过聚合发布的路由信息其下一跳属性为127.0.0.1

状态码S:抑制路由条目的传递

手工聚合:

  • 因为自动聚合存在两个缺陷,所以需要对汇总进行精准把控时,手工聚合是最佳方案

    [r1-bgp]aggregate 172.16.0.0 22 — 手工聚合

    *> 172.16.0.0/22 127.0.0.1 — 手工聚合后发布的路由条目将携带掩码信息,并且下一跳也是指向127.0.0.1,则其也会自动生成一条到达汇总网段指向空接口的路由进行防环。

手工聚合的问题:

  • 发布聚合路由的情况下,不会抑制明细路由,导致汇总操作并没有减少路由条目数量,反而增加了。

  • 在进行汇总的时候,发布的汇总路由不会继承明细路由的属性,尤其是AS_PATH,则将导致汇总路由部分属性缺失,甚至可能出现环路。

为了避免以上两个问题的产生,我们必须在配置过程中增加命令来完成。

  • [r4-bgp]aggregate 172.16.0.0 22 detail-suppressed — 在发布汇总路由条目的同时将抑制所有的明细路由但是,因为BGP协议的一些特殊性,我们往往不能将其所有的明细路由全部抑制。只能够抑制部分的路由信息 — 所以我们需要使用到suppressed - policy。
抓取流量,使用前缀列表
[r4]ip ip-prefix aa permit 172.16.1.0 24
使用路由策略匹配流量
[r4]route-policy aa permit node 10
[r4-route-policy]if-match ip-prefix aa
使用抑制策略调用路由策略
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy aa

对于第二个问题,我们专门设计了一个AS_SET关键字,如果在配置命令的时候,将这个关键字激活,则BGP在汇总路由时,将携带上明细的AS_PATH属性,来进行防环。

[r4-bgp]aggregate 172.16.0.0 22 suppress-policy aa as-set

*> 172.16.0.0/22 127.0.0.1 0 {1 4}? — 如果明细路由携带的AS_PATH属性不一样,则在激活了AS_SET属性后,汇总路由将会把明细路由的AS号都携带上并且用大括号括起来,之后,在进行防环的时候,里面所有AS号都将生效,都不能回传。但是,在使用AS_PATH属性进行选路的时候,当作一个AS来看待。

因为聚合后的路由信息存在属性丢失问题,所以,这样的汇总路由需要格外的关注。为此,我们为BGP专门引入了两个属性 —ATOMIC_AGGREGATE,AGGREGATOR

ATOMIC_AGGREGATE — 纯粹预警属性 — 只有在抑制全部明细路由时才会携带

AGGREGATOR — 将携带汇总者的RID以及其所在的AS号

Aggregator: AS 2, Aggregator ID 4.4.4.4, Atomic-aggregate

[r4]display bgp routing-table 172.16.0.0查看一条路由的详细情况

有条件的打破IBGP的水平分割

在一个AS设备中一台设备运行了BGP协议,那么正常应该都连接了其他的AS,存在EBGP邻居关系,又由于IBGP的水平分割原则,导致从外部学习到的路由传递给本地时,需要和本地AS中所有运行BGP协议的设备逐一建立IBGP关系;两两间均为IBGP邻居关系,建立数量成指数上升

有条件的打破指的时在保障无环的情况下消除IBGP水平分割机制:-AS-BY-AS

路由反射器

  • 路由反射器:RR,可以通过配置,将某些设备在一定的条件下设置为路由反射器,该设备将可以反射学习到IBGP的路由信息

  • 在指定一个路由器为反射路由器的同时,必须在他的IBGP对等体中选择一个或多个设备作为他的客户,RR和客户之间所构成的系统我们称为反射簇,每一个反射测都将使用RR的route-id作为簇id,其余没有成为RR客户的对等体关系,我们将其称为非客户

路由反射器的反射规则:

  • RR从一个EBGP邻居处学习到的路由,可以传递给本地的客户端、非客户端,其他EBGP邻居
  • 当路由反射器从自己客户处学到一条路由,则他会将把这条路由信息反射给自己的客户及非客户,其他EBGP邻居
  • 如果路由反射器从自己的非客户处学到路由,则他将把这条路由信息反射给自己所有的客户,但是不能反射给非客户(非非不传

因为IBGP水平分割是为了防止环路的产生,而路由反射器将路由反射之后打破了IBGP的水平分割,就可能造成环路的出现,而路由反射器为了防止环路的出现,又引入了两个属性:Originator_ID(起源者ID),Cluster_list(簇列表)

  • 起源者属性:当一条路由信息来到路由反射器时,反射器需要将这条路由信息反射,反射前将在该路由信息中添加这个属性,这个属性的值为该反射器收到这条路由信息的通告者的RID,之后,别的路由反射器收到一条路由信息如果其中包含O-ID,则他不会改变这个属性,如果一台设备收到一条路由条目其中的起源者id为自己本地的RID,则将不会学习这条路由信息,起到防止环路的效果
  • 如果在一个AS当中,存在多次反射,则一定存在多个反射簇,则每个RR在反射路由信息时都会在其簇列表属性中添加本地的簇id,当一个设备收到一条反射的路由信息后,其中的簇列表属性中包含本地簇id,则将不再学习该路由,防止环路的产生

联邦

  • 联邦的思想就是将同一个AS当中的IBFGP对等体关系改变为EBGP对等体关系,通过这种方式打破IBGP的水平分割。这需要将不同的IBGP对等体划分到不同成员AS中,成员AS之间建立的EBGP对等体关系是特殊的EBGP对等体关系,他们之间仅遵循EBGP对等体关系的传递性,而从传递的内容看,依然需要循序AS-BY-AS规则,从宏观的角度看,他们仍然属于同一个AS

  • 联邦的做法也相当于打破了IBGP的水平分割,则也可能出现环路问题,则需要考虑防环,在AS-Path属性中添加成员AS号来防止环回,为了区分成员AS和正常的AS,成员AS号将使用小括号括起来。

联邦的配置:

[r2]bgp 64512 --- 联邦成员设备启动BGP进程时需要使用小号来启动

[r2-bgp]confederation id 2 --- 声明联邦成员的大号

[r2-bgp]peer 3.3.3.3 as-number 64512 --- 联邦成员之间建立IBGP对等体关系需要使用小号来建立

[r3-bgp]confederation peer-as 64513 --- 在需要建立联邦的EBGP对等体关系的设备上需要声明建邻的成员AS号

[r3-bgp]peer 4.4.4.4 as-number 64513 --- 联邦的EBGP对等体关系使用小号建邻

[r3-bgp]peer 4.4.4.4 ebgp-max-hop --- 因为联邦的EBGP对等体关系之间需要遵循EBGP对等体的传递性,所以,其TTL值默认为1,在非直连建邻时需要将TTL值修改才能正常建邻

BGP的选路原则

  • 优选Preferred-value属性值最大的路由

    • Preferred-value是华为的私有属性,可以理解为权重,数值学大,其优先级越高,该属性是本设备上选路最方便的一个属性;这个属性只能在本设备上生效,他无法传递给任何BGP对等体

    • 修改Preferred-value影响选路的配置

      • 方法一:全局修改

      [r4-bgp]peer 3.3.3.3 preferred-value

      • 方法二:精细化控制
        抓取流量
        [r4]ip ip-prefix PV permit 10.0.0.0 24
        做路由策略
        [r4]route-policy PV permit node 10
        [r4-route-policy]if-match ip-prefix pv
        [r4-route-policy]apply preferred-value 100
        [r4]route-policy PV permit node 20 注意,必须要配置空表放通剩余所有流量
        在BGP中调用路由策略
        [r4-bgp]peer 3.3.3.3 route-policy PV import
  • 优选local_Preference属性值最大的路由

    • local-preference:本地优先级,默认值为100,越大越优,这个属性可以在IBGP对等体之之间传递,是AS内部选路最常用的属性,路由信息在传递给EBGP对等体时不携带这个属性

    • 通过修改LP值来影响选路

      • 方法一:全局修改

        [r3-bgp]default local-preference 200 — R3之后发给IBGP对等体的路由的LP属性都将被改为200

      • 方法二:精细化控制

        在R3的出方向做

        抓取流量

      [r3]ip ip-prefix lp permit 10.0.0.0 24

      做路由策略
      [r3]route-policy lp permit node 10
      [r3-route-policy]if-match ip-prefix lp
      [r3-route-policy]apply local-preference 300
      [r3]route-policy lp permit node 20

      在BGP进程中调用
      [r3-bgp]peer 4.4.4.4 route-policy lp export

  • 本地始发的BGP路由优于从其他对等体学到的路由,本地始发的路由优先级:手动聚合>自动聚合>network>import>从对等体学到的

  • 优选AS_Path属性值最短的路由

    在AS_Path属性进行选路时,需要注意两点:

    • 在进行路由聚合时,如果激活了AS_set关键字之后,将不同的AS的明细路由进行聚合,则AS_Path属性中将携带的所有明细AS的AS号,并使用大括号括起来,在选路比较时,大括号的内容当作一个AS号来看待

    • 在联邦时,我们内部也需要使用AS-Path来防环,将使用小括号将AS括起来,在进行选路比较时,将不计算小括号里的内容

      • 在R1的出方向修改AS_PATH属性。

        抓取流量
        [r1]ip ip-prefix as permit 10.0.0.0 24

        配置路由策略
        [r1]route-policy as permit node 10
        [r1-route-policy]if-match ip-prefix as
        [r1-route-policy]apply as-path 11 22 33 ?

        additive Append to original As Number ---- 在原有AS_PATH属性的基础上添加配置的AS号

        overwrite Overwrite original As Number ---- 直接覆盖原有的AS_PATH属性值

      [r1-route-policy]apply as-path 11 22 33 additive — 建议使用添加,因为AS_path属性主要任务用来防止环路,将原有属性覆盖可能导致路由回传,造成环路产生。

      [r1]route-policy as permit node 20
      3,在BGP中调用策略
      [r1-bgp]peer 12.0.0.2 route-policy as export

      * >i 10.0.0.0/24 3.3.3.3 0 100 0 1i

      \* i 2.2.2.2 0 100 0 1 11 22 33

      *> 10.0.0.0/24 12.0.0.1 0 0 11 22 33 1i

[r2-route-policy]apply as-path 1 1 1 additive
建议在AS_PATH属性中添加真实离开的AS的AS号,因为AS_PATH属性本身具有防环作用,添加AS号后可能导致路由无法发送到对应的AS当中,影响路由的传递。AS_PATH属性在进行选路时,仅关注AS号的长短,不关注内容。

  • 优选Origin属性最优的路由,Origin属性值按照优先级从高到低的排序是:IGP,EGP以及incomplete

    • 起源码的优先级:i>E>?

      • i:代表该路由信息起源于IGP协议(不局限于IGP协议,包括静态,直连),代表该路由条目起源于AS内部 — 通过network发布出来的路由信息其起源码为I
      • E: 代表该路由信息起源于EGP协议 — EGP指的是BGP之前使用的外部网关协议
      • ?: 通过除了以上两种方式学习到的路由 — 重发布导入的路由起源码都是?
    • 控制选路的方法:

      抓流量

      [r2]ip ip-prefix ogn permit 10.0.0.0 24

      配置路由策略
      [r2]route-policy ogn permit node 10
      [r2-route-policy]apply origin incomplete
      [r2]route-policy ogn permit node 20

      在BGP中进行调用
      [r2-bgp]peer 12.0.0.1 route-policy ogn import

  • 优选MED属性值最小的路由

    • MED:多出口鉴别属性,MED值的默认初始值不是0,而是继承了路由表中该条目的开销值,它可以反应到达目标网段在本AS内部的开销值大小,通过这个参数,别的AS的流量在进入本AS时可以选择开销值较小的入口进入。通过修改这个属性值,我们可以影响其他AS的流量流入本AS的路径

    • 若本地通过IBGP对等体学习到一条BGP路由,其中存在MED值,之后需要将这条路由信息传递给本地的EBGP对等体,则将不再携带MED值,这种设置可能会造成选路不佳的情况,所以建议如果存在多组边界设备需要将路由转发给EBGP对等体关系时,需要将所有的路由信息都发布(每台设备都需要发布)

      • 干涉选路的方法:

        在R2上配置,影响R1的选路

        抓取流量

        [r2]ip ip-prefix med permit 4.4.4.0 24

        配置路由策略
        [r2]route-policy med permit node 10
        [r2-route-policy]if-match ip-prefix med
        [r2-route-policy]apply cost 10
        [r2]route-policy med permit node 20

        在BGP进程中调用
        [r2-bgp]peer 12.0.0.1 route-policy med export

        注意:MED值影响的是别的AS的流量通过多个出口进入到本AS内部,如果流入的不是同一个AS,即收到的路由条目中AS_PATH属性最左边的AS号不同,则将不比较第六条,直接比较第7条。
        [r4]ping -r -a 4.4.4.4 1.1.1.1 — 可以记录流量流过的全过程

  • 优选从EBG对等体学到的路由(EBGP路由优先级高于IBGP路由)

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

  • 优选Cluster_List最短的路由

  • 优选Route_id(Origin-id) 最小的设备通过的路由器

  • 优选具有最小IP地址的对等体通过的路由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值