BGP选路与聚合


路由原则

路由选择的三种情况

  1)、BGP路由到达目的只有唯一的路由,直连路由;
  2)、BGP路由对到达同一目的多条路由,优选优先级最高的;
  3)、BGP路由到达同一目的的多条路由,优先级一样,需要更细的优选原则;

路由优先级规则

  1)、丢弃下一跳不可达的路由;
  2)、优选Preference_Value值最高的路由(私有属性,仅本地有效),默认值为0,值越大越优先;
  3)、优选本地优先级(Local_Preference)最高的路由(仅在IBGP之间有效)用于判断流量离开AS时的最佳路由,一般用来控制我本区域流量怎么出去,默认情况下Local-Pref值为100,该数值越大,优先级越高;
  4)、优选手动聚合>自动聚合>network>import>从对等体学到的;
  5)、优选AS_Path短的路由;
  6)、起源类型IGP>EGP>Incomplete;
  7)、对于来自同一AS的路由,优选MED值小的;
  8)、优选从EBGP学来的路由(EBGP>IBGP);
  9)、优选AS内部IGP的Metric最小的路由;
  10)、优选Cluster_List最短的路由;
  11)、优选Orginator_ID最小的路由;
  12)、优选Router_ID最小的路由器发布的路由;
  13)、优选具有较小IP地址的邻居学来的路由;

Preference_Value属性

在这里插入图片描述
  如图所示,AS 200内有一个200.0.0.0/24的用户网段,AS 100内的管理员希望通过高带宽链路访问AS 200内的200.0.0.0/24网段,并希望在RTA上的策略只能影响自己的选路,不能影响其他设备,如何实现?
  解决办案:在RTA上设置ip-prefix匹配200.0.0.0/24的路由,再设置route-policy调用该ip-prefix,并设置Preference_Value为100,将策略应用在对RTC发布路由的 import方向。
  验证:RTC上使用Tracert命令,查看访问200.0.0.0/24网段经过的路由器。

聚合方式对选路的影响

  聚合方式的优先级:手动聚合 >> 自动聚合
在这里插入图片描述
  如图所示,在AS 200内,RTB与RTC上存在200.0.0.0/24网段的用户,RTB与RTC将200.0.0.0/24的网段通过import方式变为BGP路由,在RTB上将路由聚合后发给RTA,同时开启自动聚合与手动聚合,RTB如何优选聚合路由?
  如图所示,在RTB上同时使能自动聚合与手动聚合,使用命令查看,可以发现,手动聚合的路由条目被发送给RTA,自动聚合的路由条目则没有通告,说明手动聚合的优先级高于自动聚合。
  在使用路由聚合时需要注意,自动聚合只能对引入的BGP路由进行聚合,手动聚合可以对存在于BGP路由表中的路由进行聚合,后续在BGP路由聚合中详细介绍。上述场景中,因为需要聚合的路由都是引入的路由,所以使用自动聚合与手动聚合都可以实现聚合的目的。如果BGP路由表中既有引入的路由又有network宣告的路由时,只能采用手动聚合实现

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邻居学来的路由。

AS内部IGP Metric

在这里插入图片描述
  如图所示,AS 200内有一个200.0.0.0/24的用户网段,通过EBGP发布给RTB与RTC,RTB与RTC通过IBGP将路由发布给RTA。AS 100内的管理员希望通过高带宽链路访问AS 200内的200.0.0.0/24网段, RTA上该如何实现?
  将RTA与RTB所连接口的OSPF Cost值调为100,RTA则将选择RTA->RTC->RTD的路径访问200.0.0.0/24网段:
  原因是RTA访问200.0.0.0/24时,到Next_hop 10.1.34.4的Cost(2)小于到Next_hop 10.1.24.4 (101)的Cost。

Router-ID与IP地址对BGP选路的影响

在这里插入图片描述

  如图所示,AS 200内有一个200.0.0.0/24的用户网段,通过EBGP发布给RTB和  RTC,RTB和RTC通过IBGP将路由发布给RTA。RTA和RTB之间通过2条链路相连,RTA会如何优选?
  RTA会选择下一跳为10.1.12.2作为下一跳访问200.0.0.0/24的网段:
  RTA选择RTA->RTB->RTD的路径访问200.0.0.0/24网段,原因是RTB的Router-ID比RTC小,BGP优选Router-ID较小的路由器发布的路由;
  RTA选择下一跳为10.1.12.2地址所在的接口为出接口,原因是BGP优选IP地址较小的邻居学来的路由。

BGP路由策略控制实例

  如图所示,AS 300内有两个用户网段,AS 100内用户访问这两个网段时,希望在RTB和RTC上实现流量分担。AS 200访问这两个网段时,希望在RTE和RTF上实现流量分担。请用尽可能多的方法来实现上述需求。
在这里插入图片描述
  根据需求,在AS 100访问这两个网段时,希望在RTB和RTC上实现流量分担;在AS 200访问这两个网段时,希望在RTE和RTF上实现流量分担。假设RTA访问100.0.0.0/24时的路径为RTA->RTB->RTD->RTE->RTG,访问200.0.0.0/24时的路径为RTA->RTC->RTD->RTF->RTG,根据所学路径属性的知识,可供参考解决方案如下:
  RTE和RTF向RTD通告携带团体属性的路由;
  RTD收到携带团体属性的路由后,使用两个Community-filter分别匹配不同的团体属性,再使用两个route-policy分别调用Community-filter,将匹配团体属性300:100的路由的下一跳设为RTE上的出接口地址;将匹配团体属性300:200的路由的下一跳设为RTF上的出接口地址;
  RTD上再设置两个route-policy,一个是将匹配团体属性为300:100的路由设置其MED值为100,在对RTC的export方向调用;另一个是匹配团体属性为300:200的路由并设置其MED值为100,在对RTB的export方向调用。
RTD上的配置:

bgp 200
 peer 10.1.24.2 as-number 100 
 peer 10.1.34.3 as-number 100 
 peer 10.1.45.5 as-number 300 
 peer 10.1.46.6 as-number 300 
 #
 ipv4-family unicast
  undo synchronization
  peer 10.1.24.2 enable
  peer 10.1.24.2 route-policy MED-20 export
  peer 10.1.24.2 advertise-community
  peer 10.1.34.3 enable
  peer 10.1.34.3 route-policy MED-10 export
  peer 10.1.34.3 advertise-community
  peer 10.1.45.5 enable
  peer 10.1.45.5 route-policy 10 import
  peer 10.1.46.6 enable
  peer 10.1.46.6 route-policy 10 import
#
route-policy 10 permit node 10 
 if-match community-filter 10 
 apply ip-address next-hop 10.1.45.5 
#
route-policy 10 permit node 20 
 if-match community-filter 20 
 apply ip-address next-hop 10.1.46.6 
#
route-policy MED-10 permit node 10 
 if-match community-filter 300:100 
 apply cost 100 
#
route-policy MED-20 permit node 10 
 if-match community-filter 20 
 apply cost 100 
#
ip community-filter 10 permit 300:100
ip community-filter 20 permit 300:200

验证:在RTA上执行如下命令:
  tracert 100.0.0.1,观察所经过的IP地址。
  tracert 200.0.0.1,观察所经过的IP地址。
  其他方法有待大家探索。

BGP路由聚合

  BGP在AS之间传递路由信息,随着AS增加,BGP路由表将会变的十分庞大,因此就会引发两个问题:
  1)、存储路由表会占用大量的内存资源,传递和理解路由需要耗费大量的带宽资源;
  2)、如果传输的路由频繁的更换或撤销,对网络的稳定性会很大的影响;

BGP路由聚合的必要性

  如图所示,AS 100内有4个用户网段,AS 200内有4个用户网段。AS 300连接了一个Client AS,该AS内的路由器比较低端,处理能力较低,因此既希望能访问AS 100与AS 200内的网段,又不希望接收过多的明细路由,如何解决该问题?
在这里插入图片描述
解决方案:
  在RTC上将AS 100和AS 200内的明细路由聚合成10.1.8.0/21的一条路由,并将此聚合路由发布给Client AS。
  现在Internet上的路由条目数量众多,处理这些路由时存在以下问题:
  存储路由条目的路由表将占用大量的内存资源,传输路由信息需要占用大量的带宽资源;
  明细路由频繁震荡造成网络不稳定。
  因此,通过路由聚合来节省内存和带宽资源,减少路由震荡带来的影响成为必然。

BGP路由聚合-静态

  如图所示,AS 100内有4个用户网段,RTA通过路由聚合屏蔽明细路由,只将一条聚合后的路由10.1.8.0/22发布给AS 200内的RTB。在这里插入图片描述
使用静态路由配置路由聚合的思路:
  使用静态路由将明细路由聚合成10.1.8.0/22,下一跳指向NULL 0,因为聚合路由并不是具体的地址,发送给AS 200时只是明细路由的替代,为了防止路由环路,所以将下一跳指向Null 0。
  由于使用静态路由,路由表中产生了一条10.1.8.0/22的路由,下一跳为Null 0。使用network命令将IP路由表中的10.1.8.0/22路由变为BGP路由,并通告给对端BGP邻居,达到聚合的目的。

BGP路由聚合-自动聚合

  如图所示,AS 100内有4个用户网段,通过import的方式变为BGP路由,AS 200连接了一个Client AS,该AS内的路由器处理能力较低,因此既希望能访问AS 100与AS 200内的网段,又不希望接收过多路由,如何解决该问题?
在这里插入图片描述
解决方案:自动聚合只对引入BGP的路由进行聚合,聚合到自然网段后发送给邻居。

BGP路由聚合-手动聚合

  如图所示,AS 100内有4个用户网段,既有通过import的方式引入BGP的路由,又有通过network方式引入BGP的路由。AS 200连接了一个Client AS,该AS内的路由器处理能力较低,因此既希望能访问AS 100与AS 200内的网段,又不希望接收过多路由,如何解决该问题?
在这里插入图片描述

  解决方案:手动聚合对BGP本地路由表里存在的路由进行聚合,并且能指定聚合路由的掩码。

解决BGP路由聚合带来的问题

1)问题1:路由器选路问题;
2)问题2:环路问题;
在这里插入图片描述
为了解决BGP路由聚合带来的问题,设置了两个AS_Path属性:
   Atomic-Aggregate:公认任意属性,用于警告下游路由器出现了信息丢失,如图所示,AS 200内设置了路由聚合的路由器在聚合后发生了路径丢失的现象,此时该路由器通过Update报文携带该属性通知自己的邻居发生了路径丢失。
   Aggregator:可选过度属性,该属性包含发起聚合的路由器的AS号和Router-ID,表明发生聚合的位置。

AS_Path属性有两种类型:
   AS_Sequence:表示AS_Path内的AS号是一个有序的列表。
   AS_Set:表示AS_Path内的AS号是一个无序的列表。
   AS_Path本身是一个有序的列表,因为AS_Path每经过一个AS都会将AS号添加到AS_Path中,并且按经过的顺序从左到右排列。

  如图所示,AS 400向AS 300通告聚合路由时,AS_Path属性(大括号的除外)表示该聚合路由依次经过了AS 200和AS 400。
  当发生聚合后,如果需要聚合路由携带所有明细路由经过的AS号来防止环路,则在配置聚合的命令后添加as-set参数。
  如图所示,AS 200内发生了聚合并配置了as-set参数,则聚合路由会将明细路由的AS_Path信息用一个AS-Set集表示(放在中括号里的AS号信息,该集合的AS号没有先后顺序),携带在聚合路由后用以防止环路。

讨论:
  路由聚合解决了两类问题,一是减轻了设备传输和计算路由所需资源的负担,二是隐藏了具体的路由信息,减少了路由震荡的影响。但是路由聚合后,AS_Path属性丢失,存在产生环路的风险。
  如果路由聚合后携带所有明细路由经过的AS信息,当明细路由发生频繁震荡时,聚合路由也可能受其影响频繁刷新。
  因此,聚合路由是否携带丢失的AS_Path信息,需要设计者综合考虑网络环境。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

darkqaz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值