BGP基本原理与案例 - 图文(4)

2019-08-31 19:05

六、BGP增强配置

作为主要应用于AS之间的路由协议,BGP更经常的被应用和部署于大规模的网络中,而这些大规模的网络中存在BGP对等体众多、路由表庞大等问题,基本的BGP属性并不能满足在大规模网络中的路由需求。

1、 大规模BGP网络概述

在大规模BGP网络中,部署BGP可能会面临如下的问题:

? BGP对等体众多:解决方法:通过配置对等体组和BGP团体; ? BGP路由表庞大:解决方法:通过配置BGP汇聚;

? IBGP全连接:解决方法:通过配置BGP路由反射和联盟; ? 网络中路由变化频繁:解决方法:通过配置BGP衰减; 配置IBGP对等体组:

BGP对等体组(peer group)是一些具有某些相同属性的对等体的集合。当一个对等体加入对等体组中时,此对等体将获得与所在对等体组中相同的配置。当对等体组的配置改变时,组内成员的配置也相应改变。

根据所在的AS,对等体组可分为: ? IBGP对等体组:对等体组中的对等体与当前路由器位于同一AS。

配置IBGP对等体组:

group group-name internal

其中internal表示创建的是IBGP对等体组。 peer ip-address group group-name ? EBGP对等体组:对等体组中的对等体与当前路由器位于不同AS。

group group-name external

peer group-name as-number as-number peer ip-address group group-name

配置BGP团体属性:

团体是一个路由属性,在BGP对等体之间传播,是一组有相同特征的地址的集合,没有物理上的边界,与其所在的AS无关并不受到AS范围的限制。

包含有团体属性的路由,表示路由是一个路由团体中的一员,该路由团体具有某种或者多种相同特征。根据这些特征区别不同的路由,可以大大简化路由策略的配置工作,同时也增强路由策略的能力。如:一个ISP可以改自己所有的客户路由指定一个具体的团体属性,这样学习到该路由的路由器想要给这些路由指定MED或者Local_Pref等属性时,直接基于该团体属性进行操作,而不需要逐条路由的去操作指定。

一条路由可以具有一个以上的团体属性,就像一条路由可以再其AS_Path属性中含有一个以上的AS号一样。在一条路由中看到多个团体属性值得BGP发言者可以根据一个、一些或所有这些属性值采取行动。路由器在将路由传递给其他对等体之前可以增加或者修改团体属性值。

团体属性是可选传递属性。RFC 1997定义了一些公认团体属性,具有全球意义。公认的团体属性有:

? Internet:缺省情况下,所有的路由都属于Internet团体。

具有此属性的路由可以被通告给所有的BGP对等体。

? No_Export:具有此属性的路由在收到后,不能被发布到本

地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其它子AS。

? No_Advertise:具有此属性的路由被接收后,不能被通告给

任何其它的BGP对等体。

? No_Export_Subconfed:具有此属性的路由被接收后,不能

被发布到本地AS之外,也不能发布到联盟中的其它子AS。

除了以上这些公认的团体属性值,可以依据网络需求自己定义团体属性值,一般这些团体属性值使用一些数字来标识。

在路由策略中通过团体来进行路由过滤,可以提高路由策略配置的灵活度,并简化路由策略的管理,从而降低维护管理的难度。

配置团体属性时,用户可以先通过路由策略定义一组目的地址属于某个指定团体,然后配置向对等体/对等体组发布团体属性。向对等体/对等体组发布团体属性的命令为:

peer {group-name|ip-address} advertise-community

配置BGP聚合:

在大规模的网络中,BGP路由表十分庞大,存储路由表占有大量的路由器内存资源,传输和处理路由信息所必须的带宽和路由器传送与处理路由信息需要大量的资源使用路由聚合可以大大减小路由表的规模。

路由聚合实际上是将多条路由合并的过程。这样BGP在向对等体通告路由时,可以只通告聚合后的路由,而不是讲所有具体路由都通告出去。通过对路由条目的聚合,隐藏一些具体的路由可以减少路由震荡对网络带来的影响。

BGP路由聚合除了达到减少路由数量的作用的外,还可以结合灵活的路由策略,从而使BGP更有效的传递和控制路由。

MSR路由器提供两种BGP聚合方式——自动聚合与手动聚合; Summary automatic 自动聚合

Aggregate ip-address {mask|mask-length}

[as-set|attribute-policy route-policy-name |detail-suppressed | origin-policy route-policy-name | suppress-policy route-policy-name]

? As-set:生成具有AS集合段的路由。

? Attribute-policy:根据指定的路由策略设置聚合路由的属性。 ? Detail-suppressed:仅通告聚合路由。

? Suppress-policy:根据指定的路由策略抑制选定的具体路由,

不通告部分具体路由。

? Origin-policy:根据指定的路由策略选择用于聚合的原路由。 配置自动聚合后,BGP发言者将不会向它的BGP对等体发布子网路由,而仅发布自然网段的路由,也即按照A、B、C类地址进行聚合。

自动聚合只能对引入的IGP子网路由进行聚合,对从BGP邻居学习来的路由和通过network命令发布的路由不能进行自动聚合。

在BGP发言者自身不具备一个完整的自然网段路由的情况下,自动聚合的方式存在引入路由黑洞的潜在危险,所以通常不建议采取该方式进行BGP聚合。

相比较自动聚合,手动聚合允许网络管理者采取灵活的路由聚合和发布

策略,以在不同的网络普陀条件下达到最优的路由收敛效果。MSR路由器支持的手动聚合策略包括有:

? 同时发布聚合的路由以及具体的路由; ? 抑制具体路由,仅发布聚合的路由; ? 发布聚合路由同时抑制部分具体路由; ? 将指定的具体路由生成聚合路由;

配置手动聚合,不仅可以对IGP引入的子网路由和用network命令发布的路由进行聚合而且还可以根据需要定义聚合路由的子网掩码长度。 2、 配置BGP反射与联盟

为保证IBGP对等体之间的连通性,需要在IBGP对等体建立全连接关系。假设一个AS内部有n台路由器,那么应该建立的IBGP连接数为n(n-1)/2。当IBGP对等体数目很多时,对网络资源和CPU资源的消耗很大。通过实施路由反射,IBGP对等体之间可以不需要全连接也能保证连通性。

路由反射就是允许某些网络设备将从IBGP对等体处接收到的路由信息发布给其他特定的IBGP对等体,而这些网络设备被称为路由反射器(Route Reflector,RR)。而路由反射器扮演了一个路由汇集点,客户机只需和路由反射器建立IBGP连接,如此有效的减少了IBGP连接数。

BGP路由反射器:

路由反射的IBGP对等体被分为两类:客户机(Client)和非客户端(Non-Client)。

路由反射器与客户机(Client)之间建立IBGP连接并传递(反射)路由信息,而客户机之间不需要建立IBGP连接。(有点儿类似OSPF中的DR、BDR)

在同一AS内,既不是反射器也不是客户机的BGP路由器被称为非客户机(Non-Client)。非客户机与路由反射器之间,以及所有的非客户机之间仍然必须建立全连接关系。

路由反射器和它的所有客户机构成一个群(Cluster),缺省情况下,路由反射器是使用自己的Router ID作为集群ID来识别该群。

路由反射器在它的客户机与非客户机之间传送路由更新原则: ? 如果路由更新是从非客户机收到的,仅反射给客户机;

? 如果路由更新是从客户机收到的,反射给所有非客户机以及客户机,

除了这个路由更新的始发者;

? 如果路由更新是从EBGP对等体收到的,反射给所有的客户机和非客

户机。

路由反射器能够将从IBGP对等体学习到的路由信息发布给其他的IBGP对等体,这可能使从某个群发出的路由在经过多次反射后又回到该群。为了防止AS内部的路由环路,路由反射器使用了两个属性:Originator_ID和Cluster_List。

Originator_ID属性用以写到本地AS内部路由发起者的路由器ID,Cluster_List记录一条路由经过群的群ID来跟踪它的反射路径。BGP发言者将丢弃Originator_ID与自己路由器ID相同的路由信息;而路由反射器会检查接收到的路由信息中的Cluster_List,如果在其中发现了自己集群的集群ID,那么就将丢弃此路由信息。

BGP路由反射器作为一个群的路由汇集点出现,将AS内部的拓扑由全网状连接变为了部分星型结构,这也引入了潜在的单点故障,如果路由反射器

出了故障,其客户机将被隔离。为了增强网络的健壮性以及防止单点故障,在一个集群中可以布置多个路由反射器,客户机的群里的每一个路由反射器之间均建立对等关系。

为了避免AS内部的路由环路,在一个集群中的每个路由反射器都要配置相同的Cluster_ID。

考虑到冗余的实际意义,在部署多个路由反射器的应用中,应该尽量保证客户机和每个路由反射器之间存在直接的物理连接。

BGP反射配置:

在配置BGP反射时,通常只需要配置路由反射器负责路由反射,并不需要对客户机和非客户机进行配置。客户机和非客户机并不知道路由反射。

Peer {group-name|ip-address}reflect-client 通常,一个集群只有一个路由反射器,此时是由反射的路由器ID来识别该集群的。设置多个路由反射器可提高网络的稳定性。如果一个集群中配有多个路由反射器,则需要在BGP视图下配置路由反射器的集群ID。

Reflector cluster_id cluster_id

缺省情况下,每个路由反射器是使用自己的Router ID作为集群ID。 通常情况下,路由反射器的客户之间不要求是全连接的,路由缺省通过反射器从一个客户反射器到其它客户;如果客户之间是全连接的,可以禁止客户间的反射,以便减少开销。在BGP视图下配置禁止客户机到客户机的路由反射,命令如下:

Undo reflect between-clients

缺省情况下,允许客户机到客户机的路由反射。 BGP联盟:

联盟(Confederation)是替代IBGP全连接的另一种方法。

联盟将一个自制系统划分为若干个子自制系统,每个子自制系统内部的IBGP对等体建立全连接关系,子自制系统之间建立联盟内部EBGP连接关系。

在不属于联盟的BGP发言者看来,属于同一个联盟的多个子自制系统是一个整体,外界不需要了解内部的子自制系统情况,每个联盟使用联盟ID作为其自制系统号向联盟外部的BGP对等体宣告,也即联盟ID就是标识联盟这一整体的自制系统号。

在联盟内,各个子系统使用AS号标识自己,子自制系统的AS号使用私有AS号,范围为65412~65535,该AS号仅在联盟内部可见。一个联盟最多可包含32个子自制系统。

联盟改变了标准的AS内部结构,BGP通过扩展AS_Path属性来避免在联盟内部出现环路。不仅联盟中的AS_Path属性的处理方式发生了变化,对于MED、Next_Hop、Local_Pref属性的处理也与标准的BGP不同,他们被允许附加在路由表更新信息中发送至属于联盟内部不同的子自制系统AS的EBGP对等体。

与路由反射器环境中仅要求反射器支持路由反射功能不同,联盟内部的所有BGP发言者都必须支持联盟功能。

联盟的缺陷是,从非联盟方案向联盟方案转变时,要求路由器重新进行配置,逻辑拓扑也要改变。

BGP联盟配置: Bgp as-number

Confederation id as-number

如果路由器与该联盟的其他子自制系统建立EBGP邻居关系,则需要在BGP视图下指定一个联盟体中包含了哪些子自制系统联盟ID:

Confederation peer-as as-number-list 其中as-number-list为子自制系统号列表,在同一条命令中最多可配置32个子系统。

配置BGP衰减:

BGP路由衰减用来解决路由不稳定的问题。路由不稳定的主要表现形式是路由震荡,即路由表中的某条路由反复消失和重现。

BGP衰减使用惩罚值来衡量一条路由的稳定性,惩罚值越高则说明路由越不稳定。路由没发生一次震荡(路由从激活状态变为未激活状态,称为一次路由震荡),BGP便会给此路由增加一定的惩罚值(1000,此数值为系统固定,不可修改)。当惩罚值超过抑制阀值时,此路由被抑制,不加入路由表中,也不再向其他BGP对等体发布更新报文。

被抑制的路由每经过一段时间,惩罚值便会减少一半,这个时间称为半衰期(Half-life)。当惩罚值降到使用阀值时,此路变为可用并被加入到路由表中,同时向其他BGP对等体发布更新报文。

BGP路由衰减配置命令:

Dampening [half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name]

? half-life-reachable:指定可达路由的半衰期; ? half-life-unreachable:指定不可达路由的半衰期;

? reuse:指定路由接触抑制状态的阀值。当惩罚值降低到该值以下,

路由就被再使用。

? suppress:指定路由进入抑制状态的阀值。当惩罚值超过该极限值

时,路由受到抑制。

? ceiling:惩罚上限制,即惩罚值最多达到该值,则不再增加。 half-life-reachable、half-life-unreachable、reuse、suppress和ceiling都是相互依存的,因此配置了以上参数中的任何一个,那么所有参数都必须指定。

该命令只对从EBGP邻居学到的路由进行衰减,对IBGP路由不进行衰减。 3、 部署多出口BGP网络

在多出口网络上部署BGP来学习外部路由,一般有以下三种方式: ? 每个ISP只发布缺省路由;

? 每个ISP都发布一条缺省路由和部分Internet明细路由; ? 每个ISP都发布全部Internet明细路由。 多出口网络BGP部署方式一:

多出口网络BGP部署的方式一是ISP边界路由器只发布缺省路由给企业网的出口路由器,而出口路由器将本地所有的路由通过BGP发布给ISP。

企业网出口路由器与ISP边界路由器建立EBGP连接后,通过实施策略,ISP边界路由器仅将缺省路由发布到企业网络,再由企业网络出口路由器在企业网络内部进行发布。企业网内部路由器的路由表中会存在多条缺省路由,分别指向不同的出口路由器。内部路由器通过IGP协议对多条缺省路由进行优选,选择花费最小的作为最优路由,将数据向ISP转发。

这种部署方式对出口路由器的要求较低,且配置简答、实施容易。但是,因内部路由器根据缺省路由进行报文转发,必然会导致所有的数据流会发往某一出口路由器,无法实现负载分担。

多出口网络BGP部署方式二:

企业网多出口网络BGP部署的方式二是ISP边界路由器发布部分Internet明细路由和缺省路由给企业网络出口路由器,而本地企业网将自己所有的路由发送给所有的出口ISP。

在这种部署方式下,内部路由器的路由表中不但存在到ISP的缺省路由,还有部分Internet明细路由,这些Internet路由指向不同的出口路由器。如果报文匹配了Internet路由,则按照Internet路由转发;否则按照缺省路由转发。

采用这种部署方式,很容易实现负载分担,同时可以使用路由策略而实现部分路由的选路。不过,发布Internet明细路由会占用企业网络内部路由器的系统资源。

采用这种部署方式时,出口路由器可以选择以下两种方式将外部路由发布到企业网络中:

? 将外部路由以引入IGP的方式发布,此时出口路由器与内部路由器

间运行IGP;

? 通过BGP协议来发布外部路由器,此时出口路由器与内部路由器间

建立IBGP连接,运行BGP协议。此时需要内部路由器能够支持BGP。 两种方式各有利弊,推荐使用后一种方式。因为利用BGP丰富的属性来进行精确的路由控制,易于实现负载分担。

多出口网络BGP部署方式三:

企业网多出口网络BGP部署的方式之三是ISP边界路由器发布全部的Internet路由给企业网络出口路由器。

这种方式下,企业网出口路由器将接收到全部Internet路由。通常,出口路由器与内部路由器之间运行IBGP,内部路由器通过BGP协议来选择从哪一个出口路由器到外部网络。

也可以在出口路由器和内部路由器间运行IGP,在出口路由器上采取路由策略,将部分外部路由即缺省路由引入到IGP中。内部网络路由器以IGP路由的方式完成到出口路由器的选路。但这并不是一个推荐的方式,因为引入路由时丢失源路由的属性,可能会造成次优路由。

多出口网络BGP三种部署方式对比:

? 部署方式一:ISP只发布缺省路由给企业网。

? 部署方式二:ISP发布部分明细路由和缺省路由给企业网。 ? 部署方式三:ISP发布全部Internet路由。

七、BGP综合配置

BGP丰富的属性赋予了BGP强大的路由选路功能,在应用中能够灵活应用BGP的属性完成复杂路由选路与策略应用时BGP的精华所在。


BGP基本原理与案例 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实时荧光定量PCR

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: