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进程相关的连接,拒绝新连接。
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进程相关的连接,拒绝新连接。