HCIP(十一)BGP动态路由协议(下)

目录

BGP属性 

        公认必遵:BGP的Update消息中必须包含的属性。

        公认任意:不必存在于BGP的Update消息中,可以根据需求自由选择的属性。

        可选过渡:BGP不能识别该属性,但可以接收该属性并将其发布给它的邻居的属性。

        可选非过渡:BGP可以忽略包含该属性的消息并且不向它的邻居发布。

 一,BGP属性 - Origin

二,BGP属性 - AS_Path​

三,BGP属性 - Next_hop 

四,BGP属性 - Local_Preference

五,BGP属性 - MED

六, BGP属性 - Community

 Preference_Value对选路的影响

BGP路由优选原则

 BGP路由聚合原因

BGP路由反射器 


BGP属性 

对于BGP来说,BGP路径属性被分为四大类:公认(必遵,任意),可选(过度,非过渡)

公认属性:所有BGP路由器都必须识别并支持的属性。

        公认必遵:BGP的Update消息中必须包含的属性。

        公认任意:不必存在于BGP的Update消息中,可以根据需求自由选择的属性。

可选属性:不要求所有的BGP路由器都能够识别的属性。

        可选过渡:BGP不能识别该属性,但可以接收该属性并将其发布给它的邻居的属性。

        可选非过渡:BGP可以忽略包含该属性的消息并且不向它的邻居发布。

 一,BGP属性 - Origin

Origin属性是决定最优路径的一个因素,用于标明路由的起源。

Origin的3种属性:

               i  (内部的)--- 表明BGP路由通过network命令注入;

               e (外部的) --- 表明BGP路由是从EGP学来的,EGP协议在现网中很难见到,但可以通过路由策略将路由的Origin属性修改为e;

              ? (引入的)---  即Incomplete表明BGP路由通过其它方式学到路由信息,如使用import命令引入的路由。

3种Origin属性的优先级为:i>e>Incomplete(?)。 


二,BGP属性 - AS_Path

  AS-Path放环:不接收含有自己AS号的路由。

  AS-Path也可用于选路。只要  AS-Path短则优。

BGP针对以上2个问题,设计了AS_Path属性,该属性记录了路由经过的所有AS的编号:

         图中RTA从RTB收到100.0.0.0/24的路由时,AS_Path为(2,4),RTA从RTC收到100.0.0.0/24的路由时,AS_Path为(3,5,4)。规定AS_Path越短(记录的AS编号越少),路径越优,因此RTA会优选从RTB收到的100.0.0.0/24的路由。

        以RTE为例,通过BGP发布100.0.0.0/24的路由,路由可能通过RTE->RTB->RTC->RTD->RTE形成环路。为了防止环路的产生,RTE在收到RTD发来的路由时会检查AS_Path(该路由携带的)属性,如果发现该路由的AS_Path中包含自己的AS号,则丢弃该路由。

AS_Path的4种类型:

                            AS_Sequence(后续讲解BGP路由聚合时会详细说明);

                            AS_Set(后续讲解BGP路由聚合时会详细说明);

                            AS_Confed_Sequence(应用于联盟,本课程不涉及);

                            AS_Confed_Set(应用于联盟,本课程不涉及)。

三,BGP属性 - Next_hop 

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

          如图所示,RTA将100.0.0.0/24的网段发布给RTB时,如果RTA与RTB使用直连接口建立IBGP邻居,则Next_hop为RTA上与RTB直连的接口IP;如果RTA与RTB使用Loopback接口建立IBGP邻居,则Next_hop为RTA的Loopback接口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邻居时并不修改下一跳,在一定程度上起到了防环作用。 

四,BGP属性 - Local_Preference

 

范围: Local_Preference只能在IBGP之间传递,不能在EBGP之间传递。 

如图所示,AS 200内有一个200.0.0.0/24的用户网段,通过BGP发布给AS 100。AS 100内的管理员如何设置才可以实现通过高带宽链路访问200.0.0.0/24的网络?

    解决办法:

              在RTC上设置ip-prefix匹配200.0.0.0/24的路由,使用route-policy调用该ip-prefix,并设置Local_Preference为200,将策略应用在对RTA发布路由的export方向。

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

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

五,BGP属性 - MED

 通过度量进行选路,传播受限,只能穿一次EBGP邻居,所以只能在两个AS之间传播。

MED不可能去比较不同AS的值,来自不同AS的MED不具有可比性。

 如图所示,AS 300内的管理员希望在AS 300内操作影响AS 200通过高带宽链路访问100.0.0.0/24,如何实现?

解决方法:

        在RTE上设置ip-prefix匹配100.0.0.0/24的路由,再设置route-policy调用该ip-prefix,并设置MED为100,将策略应用在对RTC发布路由的export方向。

          MED(Multi-Exit-Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS。如图所示,AS100内并不会收到AS 300内设置的MED值,但是AS 200内会收到AS 300内设置的MED值,因此AS 200内可以选择高带宽的路由。

          MED属性相当于IGP使用的度量值(Metric),它用于判断流量进入AS时的最佳路由。当一个运行BGP的路由器通过不同的EBGP邻居获得目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由,其默认值为0。

举个小例子: 

上图有三个AS,有两个运营商:电信,联通。

现在要去目标a,从电信去并要求电信回包,去电信用Local_Preference(影响自己),  百度从电信回包用 AS-Path(以长短来选路)。 此时不用MED,原因是:它只能在两个AS之间传播。

MED不可能去比较不同AS的值。假设:同一条路由从电信传回来值时50.从联通传回来值是60,则来自不同AS的MED不具有可比性。

六, BGP属性 - Community

 如图所示,AS 10内有10.1.10.0/24的用户网段,AS 11内有10.1.11.0/24的用户网段。为了区分用户网段,AS 10内的10.1.10.0/24设置了10:12的Community,AS 11的10.1.11.0/24设置了11:12的Community,通过BGP发送给AS 12后,AS 12希望汇总后屏蔽掉明细路由再发送给AS 13,并且希望AS 13收到路由后不再传递给其他AS,如何实现?

解决方法:

     在RTC上设置Community-filter,匹配Community为10:12和11:12的路由,再设置route-policy匹配Community-filter,将两条路由聚合成10.1.10.0/23的路由并调用route-policy。

在RTC上设置route-policy,设置团体属性为no-export,在RTC通告给RTD的export方向调用该route-policy。

Community属性分为两类:

                  一类是公认团体属性,另一类是扩展的团体属性。

公认团体属性分为4类:

            Internet:缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP邻居;              No_Export:收到此属性的路由后,不将该路由发布到其他AS。

                     如图,RTB上希望10.1.11.0/24的路由发布给AS 12之后,不再发布给其他AS,则可将10.1.11.0/24的Community属性设置为No_Export;

           No_Advertise:收到此属性的路由后,不将该路由通告给任何其他的BGP邻居。如图,RTB上希望只将10.1.11.0/24的路由发布给RTC,并且不再通告给任何其他的BGP邻居,则可将10.1.11.0/24的Community属性设置为No_Advertise;

           No_Export_Subconfed:在联盟中使用,这里不做介绍。

扩展的团体属性用一组4字节为单位的列表来表示,路由器中扩展的团体属性格式为aa:nn或团体号: aa:nn中,aa通常为AS编号,nn是管理员定义的团体属性标识;

团体号范围为0-4294967295,在RFC1997中,0-65535与4294901760-4294967295为预留值。

 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网段经过的路由器。

BGP路由优选原则

 BGP路由聚合原因

 聚合后就是消灭明细,重新创造聚合后的路由。--- 聚合路由

 

使用静态路由配置路由聚合的思路:

             使用静态路由将明细路由聚合成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路由反射器 

路由反射器的基本概念是:

          指定一个或一组路由器作为IBGP会话的中心点。多个非中心点BGP路由器都与中心点建立IBGP邻居关系,依靠中心点的反射进行路由交换。执行路由反射的一个或一组设备称为路由反射器。

 区别:

EBGP防环:通过AS-PATH属性,丢弃从EBGP对等体接收到的在AS-PATH属性里面包含自身AS号的任何信息。

IBGP防环:BGP路由器不会将任何从IBGP对等体收到的更新信息传给其他IBGP邻居。

路由反射:允许将从IBGP对等体接收到的更新信息传给某些IBGP对等体!【打破IBGP水平分割】

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值