- 最后登录
- 2018-6-29
- 注册时间
- 2011-7-1
- 阅读权限
- 20
- 积分
- 359

- 纳金币
- 335582
- 精华
- 0
|
7. 支持路由策略的必备集合
BGP策略以配置信息的形式实现。该信息不直接编入协议。因此,BGP可以提供非常复杂的路由策略。但是,并不要求所有的BGP实现支持这些策略。
我们不试图将路由策略标准化使其适用于每个BGP实现,强烈鼓励所有的实现支持如下的路由策略集:
1. BGP实现应允许一个AS控制向相邻AS广播由BGP学习来的路由。实现还应支持对地址前缀大小的控制。实现还应支持对自治系统大小的控制,不管该自治系统是起源,还是邻居。如果某路由对某外部对等体按上述控制声明,则需注意该路由不能向那个对等体通告。特别地,本地系统必须明确向那个对等体通告,该路由现在不可用。
2. BGP实现应允许一个AS对某条路径优先考虑(当存在多条可用路径时)。实现至少具备以下相同功能,允许管理者对来自邻居的路由设置优先级。优先级的大小应在0到2^(31)-1之间。
3. BGP实现应允许一个AS忽略某些在AS_PATH属性中存在特定AS的路由。该功能的实现,可以使用[2]中说明的技术,设置这些AS的"weight"为"infinity"。路由选择过程必须忽略那些"weight"为"infinity"的路由。
8. 与其他外部路由协议的关系
本部分建议的指导方针与[3]中陈述的指导方针一致。
一个AS应通告它内部目标网络的最小聚合及与实际使用的地址空间的关系。这可以被非BGP-4的AS的管理者用来决定从某条聚合路由可以解聚出多少路由。
一个携带ATOMIC_AGGREGATE路径属性的路由,不应传递于BGP-3或EGP2,除非这种传递不出现路由NLRI的解聚。
8.1 与EGP2交换信息
本文档对于BGP-4与EGP2间的路由信息交换,建议如下方针。
为过渡顺利,一个BGP发言人EGP2和BGP-4都可以参与。因此,一个BGP发言人接收IP可达性信息,可能产自EGP2,也可能产自BGP-4。由 EGP2产生的信息,将ORIGIN路径属性设为1后,可插入BGP-4。同样地,由BGP-4产生的信息也可以插入EGP2。但是,第二种情况,当从 BGP-4接收来的IP前缀代表连续的A/B/C类网络集合时,应清楚潜在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入时,要求BGP发言人将相应的网络插入EGP2。本地系统将提供控制EGP2与BGP-4之间可达性信息交换的机制。特别地,当把来自BGP-4的可达性信息插入EGP2 时,一个一致实现要求支持所有如下选项:
-插入默认的(0.0.0.0),不传递其他NLRI
-允许受控的解聚,但只对特定路由;
-允许传递非聚合的NLRI
-允许只传递非聚合的NLRI
在一个参与BGP-4的BGP发言人和一个单纯的EGP2发言人之间以EGP2交换路由信息的情况,只可能发现在域(自治系统)边界。
8.2 与BGP-3交换信息
本文档对于BGP-4与BGP-3间的路由信息交换,建议如下方针。
为过渡顺利,一个BGP发言人BGP-3和BGP-4都可以参与。因此,一个BGP发言人接收IP可达性信息,可能产自BGP-3,也可能产自BGP-4。
一个BGP发言人可能按如下方式将来自BGP-4的信息插入到BGP-3。
如果一条BGP-4路由的AS_PATH属性带有AS_SET路径段,那么,BGP-3路由的AS_PATH属性应为将此AS_SET段视作 AS_SEQUENCE段,最后的AS_PATH为单纯的一个AS_SEQUENCE。这个过程损失了set/sequence信息,但不影响预防路由回路,但可能影响策略,如果策略是建立在AS_PATH属性的内容或顺序上的话。
把源自BGP-4的NLRI插入BGP-3,当从BGP-4接收来的IP前缀代表连续的A/B/C类网络集合时,应清楚潜在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入时,要求BGP发言人将相应的网络插入BGP-3。本地系统将提供控制BGP-3与BGP-4之间可达性信息交换的机制。特别地,当把来自BGP-4的可达性信息插入BGP-3时,一个一致实现要求支持所有如下选项:
-插入默认的(0.0.0.0),不传递其他NLRI
-允许受控的解聚,但只对特定路由;
-允许传递非聚合的NLRI
-允许只传递非聚合的NLRI
在一个参与BGP-4的BGP发言人和一个单纯的BGP-3发言人之间以BGP-3交换路由信息的情况,只可能发现在自治系统边界。在一个单独的自治系统内部,所有BGP发言人的会话必须要么是BGP-3,要么是BGP-4,不能是混合体。
9. 在虚拟交换线路上的运作
BGP使用在虚拟交换子网(SVC)上,被要求产生尽可能少的流量。特别地,可能被要求消除由周期性KEEPALIVE消息所产生的流量。BGP包含了一个机制,在虚拟交换线路(SVC)服务运作时,避免SVCs始终开启,允许它终止周期性KEEPALIVE消息的发送。
本部分论述了如何在没有周期性KEEPALIVE消息的条件下,使用智能的SVC管理,使SVC使用最少。所提议的方案也适用于"永久"线路,"永久"线路支持类似链路质量监测的特性,或者可以显示请求来决定链路连接的状态。
9.1 建立BGP连接
通过在OPEN消息中设定Hold Time为0来实现
9.2 线路管理器特性
线路管理必须具备足够的功能来弥补周期性KEEPALIVE消息的缺失:
-必须能够在失败发生的可预见的有限时间内,确定链路层的不可达性。
-关于确定不可达性,应该:
-开启一个配置死寂的计数器(与典型的保持计数器值相比)。
-试图重建链路层连接。
-如果死寂计数器终止,应该:
-发送一个内部线路DEAD指示给TCP。
-如果连接重建,应该
-取消死寂计数器
-发送一个内部线路UP指示给TCP。
9.3 TCP特性
TCP须做一点修改,来处理来自线路管理器的内部通告:
-DEAD:清除发送队列,取消TCP连接。
-UP:发送任何队列数据,或者允许向进程传递TCP调用
9.4 混合特性
一些应用可能无法保证BGP进程和线路管理器统一工作;也就是说,当一个停止或崩溃时,另一个仍独立存在。
如果这是事实,在BGP进程和线路管理器之间周期性的双向握手就需要实现。如果BGP进程发现线路管理器死亡,它就关闭所有相关的TCP连接。如果线路管理器发现BGP进程死亡,它将关闭所有与BGP进程相关的连接,拒绝新连接。
10. 结论
BGP协议为域间路由提供高度的控制和柔韧性,执行策略约束,避免路由回路。在此说明的指导方针为BGP使用提供了一个起点,随着BGP增长,它将提供更多高级和可管理的路由方法。
附录A. BGP与IGP的关系
本部分概述了BGP与IGP交换路由信息的方法。这些方法此处不提议作为标准BGP使用的一部分。这些方法仅是信息补充。应用在引入IGP信息时,可能需要考虑这些方法。
这是适用于一般IGP的概述信息。
BGP与某特定IGP的关系不在此部分讨论。特定IGP的方法应在其他文档论述,在将来应成为标准化用法。
概论
根据定义,所有过渡AS必须能运输那些源于或终于该AS的流量。这要求在BGP和那个特定AS使用的内部网关协议(IGP)之间具有一定的联系和协调。一般来说,源于外部AS的流量将同时穿越内部网关(只支持IGP)和边界网关(支持IGP和BGP)。所有内部网关都通过IGP从一个以上的边界网关那儿接收有关外部路由的信息。
依靠在一个AS内传播BGP信息的机制,BGP和IGP之间的一致性须得到特别关注,因为状态的改变可能以不同的速度在AS 内传播。可能出现时间窗,两个时刻分别为:在某边界网关(A)从相同AS内的另一台边界网关(B)获取新的BGP路由信息;AS的IGP能够路由过渡流量到边界网关(B)。在这两个时刻之间,错误路由和"黑洞"均可能发生。
为了尽可能减轻这个路由问题,在AS的所有内部网关准备好将目标为外部 IP 的流量发往正确出口边界网关(B)之前,边界网关(A)不应该向外部对等体广播那些通过边界网关(B)运往外部目标网络的路由。换句话说,内部路由须会聚一个合适的出口网关,然后才能广播通过该出口网关前往外部对等体的路由。
A.2 实现稳定关系的方法
下面的讨论概述了几个能实现在AS内BGP和IGP之间稳定关系的技术。
A.2.1 通过IGP传递BGP信息
BGP 提供自己的机制在AS内传递BGP信息,同样,只要IGP支持全部路由信息的洪泛(提供分散BGP信息的机制)和一条通路的会聚(使得机制有效原子化),就可以用来传输BGP信息。如果一个IGP用来传递BGP信息,前述的异步时间将不复存在,因为AS内部的BGP信息传递与IGP同步,IGP的会聚或多或少与新路由信息的到来同步。注意,IGP只运输BGP信息,不对其解析或处理。
A.2.2 标记的内部网关协议
当向外的路由在 AS内传递时,一定的IGP可以用它们的出口点给它们做标记。每个边界网关应使用同一的标记声明外部路由信息(通过BGP接收),不管这些路由信息是进入 IGP还是传递到其他的内部对等体(拥有相同AS号的对等体)。边界网关产生的标记必须唯一对应那个特定的边界网关——不同的边界网关必须使用不同的标记。
在一个AS内的所有边界网关必须遵守如下两条规则:
1. 如果边界网关A从内部对等体接收到信息声称某些目标网络不可达,则它必须向所有外部对等体传递该信息。
2. 如果边界网关A从内部对等体接收到关于某些可达目标网络X的信息,则它必须拥有到X的IGP路由,而且IGP和BGP的路由信息都有对应标记,否则无法将这些信息传递到任何外部对等体。
这些规则保证了除非IGP正确支持,否则不向外声明路由信息。它也可以部分避免"黑洞"。
在AS内标记BGP和IGP的一种方法是使用出口边界网关的IP地址。这种情况下,BGP的UPDATE消息的"gateway"域将用作标记。
A.2.3 封装
封装为运输AS间过渡流量提供了最简单的机制(关于IGP和BGP的联系)。用这种方法,过渡流量封装在一个地址为出口网关的IP数据包内。这种方法对IGP的唯一要求是能够支持同一AS内边界网关间的路由。
前往某些外部目标网络X的出口网关A的地址,通过A向同一AS内其他边界网关发送的BGP OPEN消息中的BGP标识符进行声明。为了路由流量到目标X,AS内的每个边界网关都封装流量到以网关A为地址的IP数据包。然后,网关A解封装,将原始数据包发送到外部AS的对应网关。
因为封装不依靠IGP来运输外部路由信息,所以在BGP和IGP之间无需同步。
一些方法用来标识包含封装IP的数据包,如用IP协议类型码,必须在使用前定义。
注意,如果一个封装后的数据包的长度非常接近MTU,这个数据包将被那个执行封装的网关分片。
A.2.4 遍布的BGP
如果一个AS内的所有路由器都是BGP发言人,那么就没有必要联系BGP和IGP。这种情况下,AS内的所有路由器拥有BGP路由的全部信息。IGP只用来在AS中路由,不再有BGP路由被导入成IGP。
如果路由器按此方式工作,它们必须能够完成对路由表的循环查找。第一次查找将使用一条BGP路由来建立出口路由器,第二次查找将决定前往出口路由器的IGP路径。
这种情形下,IGP不携带任何外部信息,所有BGP发言人一旦获得路由的新信息,该AS内的路由器将很快会聚。因为不存在为IGP的会聚延迟,一个应用能广播这些路由,而没有延迟。
A.2.5 其他情况
有些AS的IGP,可能既无法传输BGP信息,也无法标记外部路由(比如,RIP)。另外,封装可能不可行或不被接受。这些情况下,以下两条规则须被遵守:
(1). 如果边界网关A从内部对等体接收到信息声称某些目标网络不可达,则它必须向所有外部对等体传递该信息。
(2). 如果边界网关A从内部对等体接收到关于某些可达目标网络X的信息,则它必须拥有到X的IGP路由,而且有足够的时间使IGP路由会聚,否则无法将这些信息传递到任何外部对等体。
以上规则只说明了传递BGP路由信息到其他AS的必要(但不充分)条件。与标记的IGP相比,这些规则不能保证,在传递路由到其他AS之前,到出口网关的内部路由存在。
如果IGP会聚时间比某小值X还小,IGP和BGP不同步造成的时间窗也将小于X,那么,路由不稳定是异常短暂的,这个问题就可以忽略。至于这个X的合理取值,尚待研究,但至少应小于1秒。
如果IGP会聚时间无法忽略,就需要不同的方法。适合这种情形的机制和技术尚待深入研究。 |
|