BGP-边界网关协议RFC1772翻译( 六 )


依靠在一个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路径 。

推荐阅读