BGP在大规模网络的应用
- 大规模BGP网络概述
- 一、配置BGP对等体组
- 二、配置BGP团体属性
- 三、配置BGP聚合
- 四、配置BGP反射
- 4.1.BGP反射概述
- 4.2.Originator_ID和Cluster_List
- 4.3.反射器备份
- 4.4.AS内多个集群
- 4.5.分级反射器
- 4.6.配置分级反射器
- 五、配置BGP联盟
- 5.1.BGP联盟概述
- 5.2.避免联盟内环路
- 5.3.对比BGP反射与联盟
- 5.4.配置BGP联盟
- 六、配置BGP衰减
- 6.1.BGP衰减概述
- 6.2.配置BGP衰减
- 七、部署多出口BGP网络
- 7.1.多出口BGP部署方式一
- 7.2.多出口BGP部署方式二
- 7.1.多出口BGP部署方式三
——————————————————————————————————————————————————
大规模BGP网络概述
——————————————————————————————————————————————————
在大规模BGP网络中,部署BGP可能面临4个问题。
1、BGP对等体众多:在大规模BGP网络中,突出的特点就是对等体数目众多,导致配置繁琐,后期维护难度大。
2、BGP路由表庞大:对等体数目众多,必然导致大量BGP连接数目和规模庞大的BGP路由表。占用了大量的路由器资源。
3、IBGP全连接:为了防止AS内部环路,BGP发言者不允许将从IBGP对等体学习到的路由发布给其他的IBGP对等体,从而要求一个AS内部的所有BGP发言者必须构成全网状连接。在大规模网络,逻辑全网状态连接实现起来不仅非常困难,而且实现全网状态连接使得应用和管理BGP难度增加。
4、网络中路由变化频繁:大规模路由网络中,因链路不稳定、人为增删路由等因素导致的路由频繁变化对路由器消耗巨大,因为基于TCP,所以这种路由变化会以单播方式向所有对等体发送。路由器会消耗相当数量的资源来进行路由信息的交互和路由表更新。
——————————————————————————————————————————————————
为了解决大规模BGP遇到的问题,BGP提供了4个应对办法:
1、BGP对等体众多解决办法:可以通过在BGP上配置对等体组和团体来解决。BGP对等体组是一种简化大量对等体配置的方法。而BGP团体是一种路由属性,可以大大简化路由策略的配置工作。
2、BGP路由表庞大解决办法:可以通过配置BGP路由聚合,减少BGP路由数量。同时实施BGP路由聚合后,一些子网路由信息被屏蔽,从而在一定程度上避免路由变化引起的路由震荡,增强路由稳定性。
3、IBGP全连接解决办法:可以配置BGP路由反射或者BGP路由联盟来解决。BGP路由反射通过在IBGP对等体内部建立一个BGP反射器来解决IBGP路由传递的问题,而BGP联盟则通过将一个大的自治系统划分为若干小的自治系统来解决AS内IBGP路由传递问题。
4、路由变化频繁的解决办法:配置BGP衰减,对路由的稳定性进行评估,将某段时间内表现不稳定的路由进行抑制,从而摆脱网络路由震荡的影响。
——————————————————————————————————————————————————
一、配置BGP对等体组
对等体组(Peer Group)是具有某些相同属性的对等体的集合。当一个对等体加入对等体组时,此对等体将获得与所在对等体组相同的配置。当对等体组的配置改变时,组内成员的配置也相应改变。
根据所在AS的不同,分为两类。
IBGP对等体组:对等体组中的对等体与当前路由器位于同一个AS内。
EBGP对等体组:对等体组中的对等体与当前路由器位于不同的AS内。EBGP对等体组又分为纯EBGP对等体组和混合EBGP对等体组。如果对等体组中的对等体属于同一个外部AS,就是纯EBGP。如果位于不同的外部AS,就是混合EBGP对等体组。
[AR1]bgp 100
[AR1-bgp]group in internal //创建IBGP对等体组
[AR1-bgp]peer 10.1.1.2 as-number 100 //指定对等体AS号
[AR1-bgp]peer 10.1.1.2 group in //对等体加入对等体组
[AR1]bgp 100
[AR1-bgp]group ex external //创建EBGP对等体组
[AR1-bgp]peer 10.1.1.2 as-number 200
[AR1-bgp]peer 10.1.1.2 group ex
对于IBGP加入对等体组:可以直接写成peer 10.1.1.2 group in。不用指定AS号
——————————————————————————————————————————————————
二、配置BGP团体属性
对等体组可以使一组对等体共享相同的策略,而利用团体可以使一组路由共享相同的策略。团体是一个路由(Community)属性,在BGP对等体之间传播,是一组有相同特征的目的地址集合,没有物理边界,与其所在AS无关,不受AS范围限制。
包含团体属性的路由,表示该路由是一个路由团体的一员,该路由团体具有某种或多种共同的特征。根据这些特征区分不同的路由,可以大大简化路由策略的配置工作。同时也增强了路由策略的能力。例如:运营商可以给自己的所有客户路由指定一个具体的团体属性,这样学习到该路由的路由器想要给这些路由指定MED值或Local-pref等属性时,直接基于该团体属性进行操作,而不需要逐条路由操作指定。
一个路由可以具有一个以上的团体属性值,就像一条路由可以再其AS_PATH属性中包含有一个以上的AS号一样。在一条路由中看到多个团体属性的BGP发言者可以根据一个、一些或者所有这些属性值来采取行动。路由器在将路由传递给其他对等体之前,可以增加或修改团体属性值。
团体属性是可选传递属性。RFC1997定义了一些公认的团体属性,具有全球意义。
Internet:收到带有这一团体值的路由后,可以被通告给所有的BGP对等体,缺省,所有都属于该团体。
NO_Export:收到这一团体值路由后,不能被发布到本地AS之外,如果使用了联盟,则不能发布到联盟之外,但可以发布给联盟中的其他子AS。
NO_Advertise:收到带有这一属性的路由后,不能被通告给任何其他的BGP对等体。
NO_Export_Subconfed:收到带有这一团体属性的路由后,不能被发布到本地AS之外,也不能发布到联盟中的其他子AS。
BGP路由器在将带有团体属性的路由发布给其他对等体之前,可以改变此路由原有的团体属性,除了使用公认的团体属性外,还可以使用团体属性过滤器自定义扩展团体属性,以便更灵活控制路由策略。
在路由策略中通过团体来进行路由过滤,可以提高路由策略配置的灵活度,简化路由策略的管理,降低维护的难度。
在配置团体属性时,可以先通过路由策略定义一组目的地址属于某个指定团体,然后配置向对等体/组发布团体属性。发布团体属性命令为:
peer { ip-address | group-name } advertise-community
——————————————————————————————————————————————————
三、配置BGP聚合
在大规模网络中,BGP路由表十分庞大,使用路由聚合(Routes Aggregation)可以大大减少路由表规模。路由聚合实际上是将多条路由合并的过程,这样通告路由时,可以通告聚合后的路由,而不是将所有路由都通告出去。BGP路由聚合除了减少路由数量以外,还可以结合灵活的路由策略,使BGP更有效的传递和控制路由。
——————————————————————————————————————————————————
目前支持自动聚合和手动聚合两种方式,使用后者还可以控制聚合路由的属性,以及决定是否发布具体路由。
自动聚合
命令:[AR1-bgp]summary automatic 用来配置对引入的子网路由进行自动聚合,默认下,不对引入的子网进行自动聚合。
需要注意两点:
自动聚合除了缺省路由外,用Network命令引入的路由也不能进行自动聚合。
配置summary automatic后,BGP将抑制从IGP引入的子网路由,从而减少路由选择信息的数量。
——————————————————————————————————————————————————
手动聚合
命令:ahhregate
ipaddress:聚合的目的IP地址。 mask:聚合的子网掩码。
as-set:生成具有AS集合段的路由。
attribute-policy:根据指定的路由策略,设置聚合路由的属性。
detail-suppressed:仅通告聚合路由。
suppress-policy:根据指定的路由策略,抑制选定的具体路由,而不通告部分具体路由。
origin-policy:根据指定的路由策略,选择用于聚合的源理由。
上述命令的用法
as-set:设置该关键字,创建一条聚合路由,该路由的AS路径包含了具体路由的AS路径信息,若聚合较多的AS路径,请慎用此关键字。
detail-suppressed:该关键字不抑制聚合路由,但抑制所有具体路由的通告。如果想要对一部分具体路由抑制,可使用peer filter-policy命令
suppress-policy:该关键字能产生聚合路由,但抑制指定路由的通告。可以用路由策略if-match子句有选择的抑制一些具体路由,其他具体路由仍然被通告。
origin-policy:该关键字仅选择符合路由策略的具体路由来生成聚合路由。
attribute-policy:该关键字可设置聚合路由的属性,通过peer route-policy等方式也可以实现相同的功能,该关键字不能设置聚合路由AS-PATH属性。
对比自动聚合,手动聚合允许管理员采取灵活的路由聚合和发布策略。路由器上支持的手动聚合策略包括:
同时发布聚合的路由以及具体的路由;
抑制具体路由,仅发布聚合后的路由;
发布聚合路由同时抑制部分具体路由;
将制定的具体路由生成聚合路由。
手动聚合,不仅可以对IGP引入的子网和Network发布的路由进行聚合,还能设置聚合路由的子网掩码长度。
——————————————————————————————————————————————————
四、配置BGP反射
——————————————————————————————————————————————————
4.1.BGP反射概述
为保证IBGP对等体之间的连通性,需要在对等体之间建立全连接关系。假设在一个AS内部有N台路由器,那么建立的IBGP数量为n(n-1)/2。利用路由反射可以解决这问题,如图:在一个AS内,其中一台路由器作为路由反射器RR(Router Reflector),其他路由器作为客户机。客户机与路由反射器之间建立IBGP连接。路由反射器和它的客户机组成一个集群(Cluster)。路由反射器在客户机之间传递(反射)路由信息,客户机之间不需要建立BGP连接。
既不是反射器也不是客户机的BGP路由器被称为非客户机,非客户机与路由反射器之间,以及所有的非客户机之间仍然必须建立全连接。
当RR收到IBGP发来的路由时,首先使用BGP选择路由的策略选择最佳路由,在公布学习到的路由时,RR按照RFC2796中规定发布路由。
1、从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机。
2、从客户机学到的路由,发布给此RR的所有非客户机和客户机(发起的客户机除外)。
3、从EBGP对等体学到的路由,发布给所有的非客户机和客户机。
RR一个好处就是配置方便,因为只需要在反射器上配置,客户机不需要知道自己是客户机。在某些网络中,路由反射器的客户机之间已经建立了全连接,可以直接交换路由信息,此时客户机到客户机之间的路由反射是没有必要的,还占用带宽资源。 路由器支持配置命令reflect between-clients来控制在客户机之间反射路由。默认下,禁止客户机之间的路由反射,但客户机到非客户机的路由仍然反射。
——————————————————————————————————————————————————
4.2.Originator_ID和Cluster_List
路由反射器能够将从IBGP对等体学习到的路由信息发布给其他的IBGP对等体。这可能使从某个群发出的路由在经过多次反射后又回到该群,为了防止AS内部路由环路,RFC2796定义了Originator_ID和Cluster_List属性,用于检测和防止环路。
Originator_ID 属性4字节长度,由路由反射器RR产生的,携带了本地AS内部路由发起的router ID。
1、当一条路由第一次被RR反射的时,RR将Originator_ID属性加入这条路由,标识这条路由的发起路由器。如果一条路由已存在Originator_ID属性,则RR不会被创建新的Originator_ID。
2、当其他BGP发言者接收到这条路由时,将比较收到的Originator_ID和本地的Router ID,如果两个ID相同,则发言者会忽略这条路由。
3、Originator_ID属性保证路由在反射器和客户机/非客户机之间不出现循环。
对于AS之间,BGP用于防止环路的主要措施是通过AS_PATH属性来记录途径的AS路径,带有本地AS号的路由被丢弃。对于AS内,BGP防止环路的方法是禁止IBGP对等体发布从AS内部学来的路由。
路由反射器的实现是基于放宽对BGP在AS内学到的路由不会再AS内转发的要求,即允许在IBGP对等体之间发布从AS内学到的路由,在这种情况下,Cluster_List属性被引入,用于防止AS内部的环路。
Cluster_List 由一系列Cluster_ID组成,描述一条路由经过的反射器路径,和AS路径的AS_PATH属性相似,Cluster_List由反射器产生
1、当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluster_List的前面,如果Cluster_List为空,RR就创建一个。
2、当RR接收到一条更新路由信息时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,则丢弃该路由,如果没有,就将其加入Cluster_List,然后反射该更新路由。
3、Cluster_List只被RR用来检测路由环路,本身不是RR的客户机和非客户机不会检测该属性。
4、Cluster_List只在AS内传播,从EBGP对等体收到的含有Cluster_List的路由将被丢弃。
——————————————————————————————————————————————————
4.3.反射器备份
防止单点故障,需要在一个集群中配置一个以上的反射器,这时,相同集群中的路由反射器要共享相同的Cluster_ID,以避免环路。使用命令:reflector cluster-id给所有位于同一个集群内的路由反射器配置相同的Cluster_ID。
在冗余环境里,客户机会收到不同反射器发来的到达同一目的的多条路由,这时客户机应用BGP选择路由的策略来选择最佳路由。
图中,反射器AR16和AR15在同一个Cluster内。在RR16和RR15之间配置IBGP连接,即两个反射器互为非客户机。
1、当客户机AR17从外部对等体接收一条更新路由时,它通过IBGP向RR16和RR15通告这条路由。
2、RR16接收到该更新后,它向其他客户机(AR18和AR19)和非客户机RR15反射,同时将本地Cluster_ID添加到Cluster_List前面。
3、RR15接收到该反射后,检查Cluster_List,发现自己的Cluster_ID已经包含在Cluster_List中,因此,丢弃该更新路由,不再向自己的客户机反射。
如果RR15和RR16配置不同的ID,当AR15收到AR16反射的更新路由后,检查list,发现没有本地ID,它会将自己的ID添加到List前面,然后反射给自己的客户机,这样AR17会接收到自己转发出去的路由并更新该路由,造成环路。
——————————————————————————————————————————————————
4.4.AS内多个集群
一个AS可能存在多个集群Cluster。各个RR之间是IBGP对等体关系,一个RR可以把另一个RR配置成自己的客户机和非客户机,因此灵活的配置AS内部集群与集群之间的关系。
例如:一个骨干网被分为多个反射集群,每个RR将其他的RR配置成非客户机,各RR之间建立全连接。每个客户机只与所在集群的RR建立IBGP连接。这样自治系统内所有BGP路由器都会收到反射路由信息。
——————————————————————————————————————————————————
4.5.分级反射器
在实际的反射器部署中,常用的是分级反射器的场景。
ISP为AS100提供internet路由,ISP与AS100内建立双出口EBGP连接,AS100内部分为两个集群。集群1内的4台路由器是核心路由器。
1、集群1中部署了两个一级RR-1,这种冗余结构保证了AS100内部网络核心层的可靠性。核心层其余两台路由器作为RR1的客户机。
2、集群2中部署了一个二级RR-2,这个RR-2同时也是RR-1的客户机。
——————————————————————————————————————————————————
4.6.配置分级反射器
在配置BGP反射时,只需要配置路由反射器负责路由反射即可。并不需要对客户机和非客户机进行配置。客户机和非客户机并不知道路由反射。
在BGP视图下配置将本机设置为路由反射器,并将对等体/组作为路由反射的客户机。命令为:
[Huawei-bgp]peer 10.1.1.1 reflect-client
默认,没有配置路由反射器及其客户。
一般一个集群里只有一个路由反射器。此时是由反射器的路由器ID来识别该集群的。设置多个路由反射器可以提高稳定性。如果需要配置多个反射器,则需要在BGP视图下配置路由反射器的集群ID。配置命令:
[Huawei-bgp]reflector cluster-id
默认,每个路由反射器都使用自己的RID作为集群ID。
通常,反射器的客户之间不需要全连接,如果是全连接,可以禁止客户机的反射,减少开销。禁止命令:
[Huawei-bgp]undo reflect between-clients
默认,允许客户到客户的路由反射。
——————————————————————————————————————————————————
五、配置BGP联盟
——————————————————————————————————————————————————
5.1.BGP联盟概述
联盟(Confederation)是处理AS内部的IBGP网络连接激增的另一种方法,它将一个自治系统划分为若干个子自治系统,并且为每个子自治系统内部建立IBGP全连接关系,以及子自治系统之间建立EBGP连接关系。
如图:AS100内部划分了3个子自治系统:AS65101.AS65201和AS65301,在子自治系统之间建立EBGP连接,而在子自治系统内部建立IBGP连接。
在不属于联盟BGP Speaker看来,属于同一个联盟的多个子自治系统是一个整体,外接不需要了解内部的子自治系统情况,联盟ID就是标识联盟这一整体的自治系统号,如图,AS100就是联盟ID。
在联盟内,各个子自治系统使用AS号标识自己,子自治系统的AS号使用私有的AS号,范围64521-65535,该AS号仅在联盟内部可见。
一个联盟最多包含32个子自治系统。
——————————————————————————————————————————————————
5.2.避免联盟内环路
联盟改变了标准AS内部结构,BGP通过扩展AS_PATH属性来避免在联盟内出现环路。不仅联盟中的AS_PATH属性的处理方式发生了变化,对MED、Next_Hop及Local_Pref属性的处理方式也与标准不同,对MED、Next_Hop及Local_Pref属性的处理方式也与标准不同,他们被允许附加在路由更新信息中发送至属于联盟内部不同子自治系统AS的EBGP对等体。
RFC3065扩展了AS_PATH属性,应用于联盟。
1、AS_Confed_Sequence:联盟内部AS号的有序集,用法同AS_Sequence。
2、AS_Confed_Set:联盟内部AS号的无序集,用法同AS_Set。
当BGP Speaker向对等体发布一条学习到的路由时,AS-PATH属性是否需要修改,取决于对等体的位置。
1、对等体与BGP发言者在联盟内的同一AS内部,不修改路由的AS-PATH属性。
2、对等体与BGP发言者不再联盟内的同一AS内部,但对等体所在的AS属于联盟,将按照以下规则更新AS_PATH属性。
(1)如果AS-PATH属性中存在AS_Confed_Sequence,则BGP路由器将自己的AS号添加到序列的最左端。
(2)如果AS-PATH属性中不存在AS_Confed_Sequence,则创建一个包含本地AS号的新的AS_Confed_Sequence。
3、对等体与BGP发言者不再同一个AS内,且对等体所在AS不属本地联盟,将按照以下规则更新AS-PATH属性。
(1)AS-PATH属性中包含AS_Confed_Sequence,或者同时包含AS_Confed_Sequence和AS_Confed_Set,则在AS_PATH属性中删除这两个类型的序列,并按照下面的步骤执行。
(2)如果在删除后,AS_PATH属性中包含AS_Sequence,则BGP路由器将自己所在的联盟ID添加到序列的最左端。
(3)如果在删除后,AS_PATH属性中不包含AS_Sequence,则创建一个新的序列(包含所在联盟的ID号)。
当BGP发言者产生一条新路由时,要么发往AS内部对等体的路由中,AS-PATH属性为空,要么发往联盟内不同的AS路由中,且AS_PATH属性的AS_Confed_Sequence中包含本地AS号。
当发往外联盟AS的路由中时,AS-PATH属性的AS_Sequence中包含本地的AS号。
——————————————————————————————————————————————————
5.3.对比BGP反射与联盟
反射器的配置比较简单,只在反射器上配置,仅需充当反射器的路由器具有反射功能即可。而联盟则需要在每一个路由器上进行配置,且要求加入联盟的路由器具有联盟功能。
联盟的缺陷:当从非联盟向联盟方案转变时,要求路由器重新进行配置,逻辑拓扑也要改变。
在大型BGP网络中,路由反射器和联盟可以同时使用。
——————————————————————————————————————————————————
5.4.配置BGP联盟
配置联盟ID。
指定与本地AS连接的其他EBGP对等体所属的子自治系统号。
一个联盟最多可包括32个子自治系统,配置属于联盟的子自治系统时使用的AS-NUMBER在联盟内有效。
——————————————————————————————————————————————————
六、配置BGP衰减
——————————————————————————————————————————————————
6.1.BGP衰减概述
路由衰减(Route Dampening)用来解决路由不稳定的问题,路由不稳定的主要表现形式是路由震荡(Route flaps),即路由表中的某条路由反复消失和重现。当发生路由震荡时,路由协议就会向邻居发布路由更新,收到更新报文的路由器需要重新计算路由并修改路由表。频繁的路由震荡会消耗大量的带宽和硬件资源,严重时会影响网络的正常工作。
BGP衰减使用惩罚者来衡量一条路由的稳定性,惩罚值越高则说明路由越不稳定。每发生一次震荡(路由从激活状态变为未激活状态,称为一次路由震荡),BGP便会给此路由增加一定的惩罚值(1000)。当惩罚值超过抑制阈值时,此路由被抑制,不加入到路由表中,也再不向其他BGP对等体发布更新报文。
被抑制的路由每经过一段时间,惩罚值便会减少一半,这个时间称为半衰期(Half-life)。当惩罚值降到再使用阈值时,此路由变为可用并被加入到路由表中,同时向其他BGP对等体发布更新报文。
BGP衰减速,只对EBGP路由进行衰减。
——————————————————————————————————————————————————
6.2.配置BGP衰减
[Huawei-bgp]ipv4-family unicast //进入IPV4单播地址族视图
[Huawei-bgp-af-ipv4]dampening //配置BGP路由衰减参数
在配置BGP路由衰时,所指定的reuse、suppress及ceiling三个阈值是依次增大。
dampening 命令只对EBGP路由生效。
haif-life-reachable:指定可达路由的半衰期,取值范围1-45,单位为分钟,默认15分钟。
half-life-unreachable:指定不可达路由的半衰期,好像路由器没有这个,取值范围1-45,单位分钟,默认15分钟。
reuse:指定路由解除抑制状态的阈值。当惩罚值降低到该值以下时,路由就被再使用,范围1-20000,默认750。
suppress:指定路由进入抑制状态的阈值。当惩罚值超过该极限时,路由受到抑制,范围1-20000,默认2000。
ceiling:惩罚上限值,即惩罚值最多达到该值。取值1001-20000,实际配置必须大于suppress,默认16000。
route-policy-name:路由策略。
——————————————————————————————————————————————————
七、部署多出口BGP网络
企业网络一般会选择一个价格、带宽、链路稳定、服务好的ISP作为上行Internet的出口。使用这种连接方式,企业网出口路由器并不需要部署BGP,只需要配置一条缺省路由。但是出于网络的可靠性考虑,越来越多的企业网络更愿意选择多个ISP上连到Internet,这种多出口的连接方式具有两个好处。
1、增强了网络的可靠性:上连到两个ISP意味着有了冗余的物理链路。如果其中一条链路出现问题,还可以从另外一条链路访问Internet。
2、实现流量的负载分担:通过应用策略路由,可以将访问Internet的流量分布到不同的链路上,从而实现负载分担,更加高效的利用带宽。
在使用多个ISP上连到Internet后,企业网络可以选择部署BGP路由协议与ISP交互。与部署静态路由相比,部署BGP的好处在于,如果企业网内部路由有变化,ISP侧的接入路由器会自动通过EBGP而更新路由,无须手动改变。另外,与其他动态路由相比,BGP具有强大的路由管理功能,可实现更加合理的路由优选,更高效的实现负载分担与备份。
其实现实中的这种方案,我不能说是有问题,一般的做法都是通过策略路由等实现多ISP。一般出口的BGP网络都是通过专线和总部相连。可能是我见识太短。还是那句话,如果是做企业网的网工,不去运营商维护骨干网,接触大型BGP网络是很少的。
在多出口网络上部署BGP来学习外部路由,一般有如下3种方式:
1、每个ISP只发布缺省路由。
2、每个ISP都发布一条缺省路由和部分Internet明细路由。
3、每个ISP都发布全部Internet明细路由。
可以根据上述3种方式结合不同实际需求来完成多出口BGP部署。
——————————————————————————————————————————————————
7.1.多出口BGP部署方式一
多出口网络BGP部署方式之一是,ISP边界路由器只发布缺省路由给企业网的出口路由器,而出口路由器将本地所有的路由通过BGP发布给ISP。
如图:企业网出口路由器与ISP边界路由器建立EBGP连接后,通过实施策略,ISP边界路由器仅将缺省路由发布到企业网络,再由企业网络出口路由器在企业网络内部进行发布。企业网内部路由器的路由表会存在多条缺省路由,分别指向不同的出口路由器。内部路由器通过IGP协议对多条缺省路由进行优选,选择花费最小的作为最优路由,将数据向ISP转发。
这种方式对出口路由器的要求较低,配置简单,实施容易,但因内部路由器根据缺省路由进行转发,必然会导致所有的数据流会发往某一个出口路由器,无法实现负载分担。
——————————————————————————————————————————————————
7.2.多出口BGP部署方式二
企业网多出口网络BGP部署方式二是:ISP边界路由器发布部分Internet明细路由和缺省路由给企业网络出口路由器,而本地企业网将自己所有的路由发送给所有的出口ISP。
如图:内部路由器的路由表中不但存在到ISP的缺省路由,还有部分internet路由明细,这些internet路由指向不同的出口路由器。如果报文匹配了internet路由,则按照internet路由转发,否则按照缺省路由转发。
这种方式,很容易实现负载分担,同时可以使用路由策略而实现部分路由的选择。不过,发布internet明细路由会占用企业网内部路由器的资源。
如上图,当AR10发送报文到10.0.0.8/8时,会选择AR11作为出口,因为AR11将路由发布到了企业网络。同理AR12。
采用这种方式,出口路由器可以选择以下两种方式将外部路由发布到企业网中。
1、将外部路由以引入IGP方式发布,此时出口路由器与内部路由器间运行IGP。
2、通过BGP协议发布外部路由,此时出口路由器与内部路由器建立IBGP连接,运行BGP协议,此时需要内部路由器支持BGP。
推荐使用后面的方式,因为可以利用BGP丰富的属性来进行精确的路由控制,易于实现负载分担。
——————————————————————————————————————————————————
7.1.多出口BGP部署方式三
ISP边界路由器发布全部Internet路由给企业网络出口路由器。
企业网络出口路由器将接收到全部internet路由,通常,出口路由器与内部路由器之间运行IBGP,内部路由器通过BGP协议选择从哪一个出口路由器到达Internet。
如图:当AR11和AR12接收到internet路由后,通过IBGP连接发布给对等体AR10,AR10根据BGP路由选路原则,将目的地址为10.0.0.8/8的报文发送给AR11,在经AR11发送至internet。12.0.0.8原理相同。
也可以在出口路由器和内部路由器间运行IGP,在出口路由器上采用路由策略,将部分外部路由及缺省路由引入到IGP中。内部路由器以IGP路由的方式完成出口路由器的选路。但这不是推荐方式。因为引入路由时丢失了原路由的属性,可能会造成次优路由。
多出口网络BGP部署的3种方式各有利弊。总结下:
1、方式一:ISP只发布缺省路由给企业网。这种方式简单,实施容易,对路由器占用资源少,管理维护容易。但是缺点也非常明显,该方式不能对不同的目的网段实施灵活的策略,实现负载分担困难。
2、方式二:ISP发布部分明细路由和缺省路由给企业网。这种方式在一定程度上弥补了方式一的不足,既可以实施丰富的路由策略,还可以节省路由器系统资源,但是对于大量未知的internet路由,该方式还不能实现最佳路径的选路而且该方式配置相对复杂。
3、方式三:该方式是较常用的部署方式。ISP发布全部internet路由。这种方式可以实施最丰富的路由策略,容易实施负载分担,对每一个目的地都可以找到最佳路径。但是这种方式缺点也非常明显,由于要学习大量internet路由,占用大量资源维护难度高。对设备性能要求高。
——————————————————————————————————————————————————